Gradient Descent

Τι είναι το Gradient Descent;

Το Gradient Descent είναι ένας επαναληπτικός αλγόριθμος μαθηματικής βελτιστοποίησης που χρησιμοποιείται για την εύρεση της ελάχιστης τιμής μιας συνάρτησης. Στο πλαίσιο της πληροφορικής, υπολογίζει την παράγωγο (ή κλίση) μιας συνάρτησης και ενημερώνει σταδιακά τις μεταβλητές προς την αντίθετη κατεύθυνση της κλίσης για να φτάσει στη χαμηλότερη δυνατή τιμή.

 

Γιατί χρησιμοποιείται το Gradient Descent στο Machine Learning;

Χρησιμοποιείται κυρίως για την εκπαίδευση μοντέλων μηχανικής μάθησης ελαχιστοποιώντας τη cost function, η οποία μετρά το σφάλμα μεταξύ των προβλέψεων του μοντέλου και των πραγματικών δεδομένων. Ελαχιστοποιώντας αυτό το σφάλμα, το Gradient Descent προσαρμόζει συστηματικά τις εσωτερικές παραμέτρους του μοντέλου έτσι ώστε το μοντέλο να παράγει ακριβείς εξόδους.

 

Τι ακριβώς είναι το “gradient” ;

Το “gradient” είναι η κλίση , δηλαδή διάνυσμα που υπολογίζει τις μερικές παραγώγους της συνάρτησης σφάλματος του μοντέλου σε σχέση με κάθε μία από τις παραμέτρους του. Ορίζει μαθηματικά την κατεύθυνση και τον ακριβή ρυθμό με τον οποίο το σφάλμα αυξάνεται περισσότερο. Το Gradient Descent αφαιρεί αυτήν την κλίση από τις τρέχουσες παραμέτρους για να κινηθεί προς την κατεύθυνση όπου το σφάλμα μειώνεται.

 

Τι είναι το "Learning Rate" σε αυτό το πλαίσιο;

Το Learning Rate είναι μια προκαθορισμένη αριθμητική τιμή που ελέγχει το μέγεθος των προσαρμογών που γίνονται στις παραμέτρους του μοντέλου κατά τη διάρκεια κάθε επανάληψης. Εάν το Learning Rate έχει ρυθμιστεί πολύ υψηλά, ο αλγόριθμος ενδέχεται να υπερβεί την ελάχιστη τιμή. Εάν έχει ρυθμιστεί πολύ χαμηλά, ο αλγόριθμος θα απαιτήσει τεράστιο υπολογιστικό χρόνο για να φτάσει στην ελάχιστη τιμή.

 

Ποιες είναι οι τυπικές παραλλαγές του Gradient Descent;

Οι τρεις κύριοι τύποι είναι:

  • Batch Gradient Descent: Επεξεργάζεται ολόκληρο το σύνολο δεδομένων πριν από την ενημέρωση των παραμέτρων
  • Stochastic Gradient Descent: Ενημερώνει τις παραμέτρους μετά την επεξεργασία κάθε μεμονωμένου σημείου δεδομένων
  • Mini-batch Gradient Descent: Επεξεργάζεται δεδομένα σε υποσύνολα σταθερού μεγέθους πριν από την ενημέρωση των παραμέτρων, προσφέροντας μια ισορροπία μεταξύ υπολογιστικής ταχύτητας και σταθερότητας

 

Ένα παράδειγμα Gradient Descent που χρησιμοποιείται σε ένα μοντέλο machine learning:

Σε έναν αλγόριθμο linear regression που έχει σχεδιαστεί για να προβλέπει τιμές κατοικιών με βάση τα τετραγωνικά μέτρα, το μοντέλο ξεκινά με τυχαιοποιημένους πολλαπλασιαστές βάρους.

Το Gradient Descent υπολογίζει τη μαθηματική διαφορά μεταξύ των αρχικών προβλέψεων τιμών του μοντέλου και των πραγματικών τιμών στο σύνολο δεδομένων.

Υπολογίζει την κλίση αυτού του σφάλματος και ενημερώνει συνεχώς τους πολλαπλασιαστές βάρους σε πολλαπλές επαναλήψεις μέχρι η μαθηματική διαφορά μεταξύ των προβλεπόμενων και των πραγματικών τιμών να φτάσει στη χαμηλότερη δυνατή αριθμητική τιμή της.