Τεχνητή νοημοσύνη 101
Τι είναι η Καταβατική Κλίση;

Τι είναι η Καταβατική Κλίση;
Εάν έχετε διαβάσει πώς εκπαιδεύονται τα νευρωνικά δίκτυα,几乎 σίγουρα έχετε συναντήσει τον όρο “καταβατική κλίση” πριν. Η καταβατική κλίση είναι η πρωταρχική μέθοδος για την βελτίωση της απόδοσης ενός νευρωνικού δικτύου, μειώνοντας το ποσοστό λάθους/σφάλματος του δικτύου. Ωστόσο, η καταβατική κλίση μπορεί να είναι λίγο δύσκολο να κατανοηθεί για εκείνους που είναι νέοι στη μηχανική μάθηση, και αυτό το άρθρο θα επιχειρήσει να σας δώσει μια καλή直觉 για το πώς λειτουργεί η καταβατική κλίση.
Η καταβατική κλίση είναι ένας αλγόριθμος βελτιστοποίησης. Χρησιμοποιείται για την βελτίωση της απόδοσης ενός νευρωνικού δικτύου, κάνωντας μικρές αλλαγές στα παραμετρικά του δικτύου, ώστε η διαφορά μεταξύ των προβλέψεων του δικτύου και των πραγματικών/αναμενόμενων τιμών του δικτύου (που αναφέρεται ως λάθος) να είναι όσο το δυνατόν μικρότερη. Η καταβατική κλίση παίρνει τις αρχικές τιμές των παραμέτρων και χρησιμοποιεί επιχειρήσεις βασισμένες στη λογιστική για να điều chỉnh τις τιμές τους προς τις τιμές που θα κάνουν το δίκτυο όσο το δυνατόν πιο ακριβές. Δεν χρειάζεται να γνωρίζετε πολύ λογιστική για να κατανοήσετε πώς λειτουργεί η καταβατική κλίση, αλλά πρέπει να έχετε μια κατανόηση των κλισεων.
Τι είναι οι Κλίσεις;
Υποθέστε ότι υπάρχει ένα γράφημα που αντιπροσωπεύει το ποσό του λάθους που κάνει ένα νευρωνικό δίκτυο. Η βάση του γραφήματος αντιπροσωπεύει τα σημεία του χαμηλότερου λάθους, ενώ η κορυφή του γραφήματος είναι όπου το λάθος είναι το υψηλότερο. Θέλουμε να κινηθούμε από την κορυφή του γραφήματος προς τα κάτω. Μια κλίση είναι απλώς ένας τρόπος για να ποσοτικοποιήσουμε τη σχέση μεταξύ λάθους και βαρών του νευρωνικού δικτύου. Η σχέση μεταξύ αυτών των δύο πραγμάτων μπορεί να γραφτεί ως μια κλίση, με λανθασμένες βαρές που παράγουν περισσότερο λάθος. Η απότομη της κλίσης/κλίσης αντιπροσωπεύει πόσο γρήγορα μαθαίνει το μοντέλο.
Μια απότομη κλίση σημαίνει μεγάλες μειώσεις του λάθους και το μοντέλο μαθαίνει γρήγορα, ενώ αν η κλίση είναι μηδέν το μοντέλο είναι σε一个 οροπέδιο και δεν μαθαίνει. Μπορούμε να κινηθούμε xuống την κλίση προς μικρότερο λάθος, υπολογίζοντας μια κλίση, μια κατεύθυνση κίνησης (αλλαγή στις παραμέτρους του δικτύου) για το μοντέλο μας.
Ας μεταφέρουμε τη μεταφορά λίγο και να φανταστούμε μια σειρά από λόφους και κοιλάδες. Θέλουμε να φτάσουμε στο κάτω μέρος του λόφου και να βρούμε το μέρος της κοιλάδας που αντιπροσωπεύει το χαμηλότερο λάθος. Όταν ξεκινάμε από την κορυφή του λόφου, podemos να κάνουμε μεγάλες βήματα προς τα κάτω και να είμαστε βέβαιοι ότι κατευθυνόμαστε προς το σημείο του χαμηλότερου λάθους.
Ωστόσο, καθώς προσεγγίζουμε το σημείο του χαμηλότερου λάθους, τα βήματά μας πρέπει να γίνουν μικρότερα, ή else μπορούμε να ξεπεράσουμε το πραγματικό σημείο του χαμηλότερου λάθους και να βρεθούμε στην άλλη πλευρά. Παρόμοια, είναι δυνατόν ότι όταν điều chỉnhουμε τις βαρές του δικτύου, οι điều chỉnhες μπορούν να το απομακρύνουν από το σημείο του χαμηλότερου λάθους, και επομένως οι điều chỉnhες πρέπει να γίνουν μικρότερες με το χρόνο. Στο πλαίσιο της καταβάσεως ενός λόφου προς ένα σημείο του χαμηλότερου λάθους, η κλίση είναι ένας διανυσματικός/οδηγίες που μας λένε την πορεία που πρέπει να ακολουθήσουμε και πόσο μεγάλα πρέπει να είναι τα βήματά μας.
Τώρα που γνωρίζουμε ότι οι κλίσεις είναι οδηγίες που μας λένε την κατεύθυνση να κινηθούμε (ποιες συντελεστές πρέπει να ενημερωθούν) και πόσο μεγάλα πρέπει να είναι τα βήματά μας (πόσο πρέπει να ενημερωθούν οι συντελεστές), μπορούμε να εξερευνήσουμε πώς υπολογίζεται η κλίση.
Υπολογισμός Κλισεων & Καταβατική Κλίση

Η καταβατική κλίση αρχίζει από ένα σημείο υψηλού λάθους και μέσω πολλαπλών επαναλήψεων, κάνει βήματα στην κατεύθυνση του χαμηλότερου λάθους, με στόχο να βρει την βέλτιστη διαμόρφωση βαρών. Φωτογραφία: Роман Сузи via Wikimedia Commons, CCY BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Gradient_descent_method.png)
Για να εκτελεστεί η καταβατική κλίση, οι κλίσεις πρέπει πρώτα να υπολογιστούν. Για να υπολογιστεί η κλίση, χρειαζόμαστε να γνωρίζουμε τη συνάρτηση λάθους/κόστους. Θα χρησιμοποιήσουμε τη συνάρτηση κόστους για να καθορίσουμε την παράγωγο. Στη λογιστική, η παράγωγο αναφέρεται απλώς στην κλίση μιας συνάρτησης σε ένα δεδομένο σημείο, οπότε βασικά υπολογίζουμε την κλίση του λόφου με βάση τη συνάρτηση λάθους. Καθορίζουμε το λάθος εκτελώντας τους συντελεστές μέσω της συνάρτησης λάθους. Αν αναπαραστήσουμε τη συνάρτηση λάθους ως “f”, τότε μπορούμε να πούμε ότι η εξίσωση για τον υπολογισμό του λάθους είναι η ακόλουθη (απλά εκτελούμε τους συντελεστές μέσω της επιλεγμένης συνάρτησης κόστους):
Λάθος = f(συντελεστής)
Στη συνέχεια, υπολογίζουμε την παράγωγο, ή καθορίζουμε την κλίση. Η λήψη της παραγώγου του λάθους θα μας πει ποια κατεύθυνση είναι προς τα κάτω στην κλίση, δίνοντάς μας το κατάλληλο σημάδι για να điều chỉnh τους συντελεστές μας. Θα αναπαραστήσουμε την κατάλληλη κατεύθυνση ως “δέλτα”.
δέλτα = συνάρτηση_παράγωγου(λάθος)
Τώρα έχουμε καθορίσει ποια κατεύθυνση είναι προς τα κάτω στην κλίση προς το σημείο του χαμηλότερου λάθους. Αυτό σημαίνει ότι μπορούμε να ενημερώσουμε τους συντελεστές στα παραμετρικά του νευρωνικού δικτύου και ελπίζουμε να μειώσουμε το λάθος. Θα ενημερώσουμε τους συντελεστές με βάση τους προηγούμενους συντελεστές minus την κατάλληλη αλλαγή τιμής όπως καθορίζεται από την κατεύθυνση (δέλτα) και ένα όρισμα που ελέγχει το μέγεθος της αλλαγής (το μέγεθος του βήματός μας). Το όρισμα που ελέγχει το μέγεθος της ενημέρωσης ονομάζεται “ποσοστό μάθησης” και θα το αναπαραστήσουμε ως “αλφα”.
συντελεστής = συντελεστής – (αλφα * δέλτα)
Στη συνέχεια, απλώς επαναλαμβάνουμε αυτή τη διαδικασία μέχρι το δίκτυο να συγκλίνει γύρω από το σημείο του χαμηλότερου λάθους, το οποίο πρέπει να είναι κοντά στο μηδέν.
Είναι πολύ σημαντικό να επιλέξετε την σωστή τιμή για το ποσοστό μάθησης (αλφα). Η επιλεγμένη τιμή του ποσοστού μάθησης πρέπει να είναι ούτε πολύ μικρή ούτε πολύ μεγάλη. Θυμηθείτε ότι καθώς προσεγγίζουμε το σημείο του χαμηλότερου λάθους, τα βήματά μας πρέπει να γίνουν μικρότερα, ή else μπορούμε να ξεπεράσουμε το πραγματικό σημείο του χαμηλότερου λάθους και να βρεθούμε στην άλλη πλευρά. Το σημείο του μικρότερου λάθους είναι μικρό και αν η ταχύτητα αλλαγής είναι πολύ μεγάλη, το λάθος μπορεί να αυξηθεί ξανά. Αν τα βήματα είναι πολύ μεγάλα, η απόδοση του δικτύου θα συνεχίσει να κινείται γύρω από το σημείο του χαμηλότερου λάθους, ξεπερνώντας το σε μια πλευρά και στη συνέχεια στην άλλη. Αν συμβεί αυτό, το δίκτυο δεν θα συγκλίνει ποτέ στο βέλτιστο συντελεστή βαρών.
Αντίθετα, αν το ποσοστό μάθησης είναι πολύ μικρό, το δίκτυο μπορεί να χρειαστεί ένα εξαιρετικά μεγάλο χρονικό διάστημα για να συγκλίνει στα βέλτιστα βάρη.
Τύποι Καταβατικής Κλίσης
Τώρα που κατανοούμε πώς λειτουργεί η καταβατική κλίση γενικά, ας ρίξουμε μια ματιά σε κάποιους από τους διαφορετικούς τύπους καταβατικής κλίσης.
Καταβατική Κλίση Μπατς: Αυτή η μορφή καταβατικής κλίσης εκτελείται σε όλα τα δείγματα εκπαίδευσης πριν ενημερώσει τους συντελεστές. Αυτός ο τύπος καταβατικής κλίσης είναι πιθανό να είναι ο πιο υπολογιστικά αποτελεσματικός τύπος καταβατικής κλίσης, поскольку τα βάρη ενημερώνονται μόνο μια φορά που έχει επεξεργαστεί ολόκληρος ο μπατς, που σημαίνει ότι υπάρχουν λιγότερες ενημερώσεις συνολικά. Ωστόσο, αν το σύνολο δεδομένων περιέχει ένα μεγάλο αριθμό δειγμάτων εκπαίδευσης, τότε η καταβατική κλίση μπατς μπορεί να κάνει την εκπαίδευση να διαρκέσει πολύ χρόνο.
Τυχαία Καταβατική Κλίση: Στη τυχαία καταβατική κλίση, μόνο ένα δείγμα εκπαίδευσης επεξεργάζεται για κάθε επανάληψη της καταβατικής κλίσης και ενημέρωσης παραμέτρων. Αυτό συμβαίνει για κάθε δείγμα εκπαίδευσης. Επειδή μόνο ένα δείγμα εκπαίδευσης επεξεργάζεται πριν ενημερωθούν οι παράμετροι, τείνει να συγκλίνει γρηγορότερα από την καταβατική κλίση μπατς, поскольку οι ενημερώσεις γίνονται συντομότερα. Ωστόσο, επειδή η διαδικασία πρέπει να εκτελεστεί σε κάθε αντικείμενο του συνόλου εκπαίδευσης, μπορεί να πάρει πολύ χρόνο για να ολοκληρωθεί αν το σύνολο δεδομένων είναι μεγάλο, και έτσι η χρήση ενός από τους άλλους τύπους καταβατικής κλίσης είναι προτιμότερη.
Καταβατική Κλίση Μίνι-Μπατς: Η καταβατική κλίση μίνι-μπατς λειτουργεί διαχωρίζοντας το ολόκληρο σύνολο δεδομένων σε υποενότητες. Δημιουργεί μικρότερες μίνι-μπατς που εκτελούνται μέσω του δικτύου, και όταν η μίνι-μπατς έχει χρησιμοποιηθεί για τον υπολογισμό του λάθους, οι συντελεστές ενημερώνονται. Η καταβατική κλίση μίνι-μπατς βρίσκει μια μέση λύση μεταξύ της τυχαίας καταβατικής κλίσης και της καταβατικής κλίσης μπατς. Το μοντέλο ενημερώνεται πιο συχνά από ότι στην περίπτωση της καταβατικής κλίσης μπατς, που σημαίνει μια немного ταχύτερη και πιο robust σύγκλιση στα βέλτιστα παραμετρικά του μοντέλου. Είναι επίσης πιο υπολογιστικά αποτελεσματική από την τυχαία καταβατική κλίση










