Αυτό που εκτελέσαμε στην προηγούμενη ενότητα ήταν Batch Gradient Descent. Στον αλγόριθμο Batch Gradient Descent, για κάθε επανάληψη (epoch) υπολογίζεται το gradient (η κλίση) της συνάρτησης κόστους χρησιμοποιώντας ολόκληρο το σύνολο των δεδομένων training (εκπαίδευσης). Στη συνέχεια οι παράμετροι του μοντέλου ενημερώνονται προς την κατεύθυνση που μειώνει το σφάλμα, ενώ το learning rate καθορίζει το μέγεθος του βήματος της ενημέρωσης. Η μέθοδος αυτή συγκλίνει στο ολικό ελάχιστο όταν η συνάρτηση κόστους είναι κυρτή (convex), ενώ για μη κυρτές συναρτήσεις συγκλίνει σε κάποιο τοπικό ελάχιστο (St-Aubin, n.d.).
Ωστόσο, όταν τα δεδομένα είναι πολύ μεγάλα, ο υπολογισμός του gradient σε ολόκληρο το dataset σε κάθε επανάληψη μπορεί να είναι υπολογιστικά κοστοβόρος. Για τον λόγο αυτό χρησιμοποιείται συχνά το Stochastic Gradient Descent (SGD). Στην περίπτωση αυτή το gradient υπολογίζεται χρησιμοποιώντας μόνο ένα δείγμα κάθε φορά και οι παράμετροι ενημερώνονται αμέσως μετά από κάθε υπολογισμό. Τα δεδομένα συνήθως ανακατεύονται πριν από κάθε epoch ώστε να αποφευχθεί μεροληψία από τη σειρά των παραδειγμάτων. Αν και το SGD είναι πιο γρήγορο υπολογιστικά, η πορεία σύγκλισής του παρουσιάζει μεγαλύτερες διακυμάνσεις (St-Aubin, n.d.).
Οι συναρτήσεις κόστους (loss functions) στη παλινδρόμηση χρησιμοποιούνται για να μετρήσουν πόσο διαφέρουν οι προβλέψεις ενός μοντέλου από τις πραγματικές τιμές. Οι περισσότερες βασίζονται στα residuals, δηλαδή στη διαφορά μεταξύ της πραγματικής τιμής y και της προβλεπόμενης τιμής f(x). Παρακάτω παρουσιάζονται μερικές από τις πιο συνηθισμένες συναρτήσεις κόστους.
Μετρά τη μέση διαφορά μεταξύ προβλεπόμενων και πραγματικών τιμών:
L = (1/n) Σ (yᵢ − f(xᵢ))
Αν και είναι απλή, δεν χρησιμοποιείται συχνά για εκπαίδευση μοντέλων γιατί τα θετικά και αρνητικά σφάλματα μπορούν να αλληλοαναιρεθούν.
Μετρά τον μέσο όρο των απόλυτων σφαλμάτων:
L = (1/n) Σ |yᵢ − f(xᵢ)|
Αποφεύγει την ακύρωση των σφαλμάτων και είναι πιο ανθεκτική σε ακραίες τιμές, αλλά μπορεί να δυσκολέψει τη σύγκλιση όταν τα σφάλματα είναι πολύ μικρά.
Είναι μία από τις πιο συχνά χρησιμοποιούμενες συναρτήσεις κόστους:
L = (1/n) Σ (yᵢ − f(xᵢ))²
Το τετράγωνο των σφαλμάτων δίνει μεγαλύτερη βαρύτητα στα μεγάλα σφάλματα, γεγονός που την καθιστά ευαίσθητη σε outliers (ακραίες, μεμονομένες τιμές).
Είναι η τετραγωνική ρίζα του MSE:
RMSE = √((1/n) Σ (yᵢ − f(xᵢ))²)
Έχει το πλεονέκτημα ότι βρίσκεται στην ίδια μονάδα μέτρησης με τη μεταβλητή στόχο.
Η Huber Loss συνδυάζει τα πλεονεκτήματα των MAE και MSE. Για μικρά σφάλματα λειτουργεί όπως το MSE, ενώ για μεγάλα σφάλματα συμπεριφέρεται όπως το MAE, γεγονός που την καθιστά πιο ανθεκτική σε ακραίες τιμές.
Η Log-cosh Loss βασίζεται στον λογάριθμο της υπερβολικής συνημίτονης των residuals. Είναι ομαλή και δύο φορές παραγωγίσιμη, γεγονός που την καθιστά χρήσιμη σε αλγορίθμους που απαιτούν υπολογισμό της Hessian.
Η RMSLE εφαρμόζει λογάριθμο στις τιμές πριν τον υπολογισμό του σφάλματος:
RMSLE = √((1/n) Σ [log(yᵢ+1) − log(f(xᵢ)+1)]²)
Χρησιμοποιείται σε προβλήματα όπου οι τιμές αυξάνονται εκθετικά ή όταν θέλουμε να αποφεύγουμε περισσότερο τις υποεκτιμήσεις από τις υπερεκτιμήσεις.
Montgomery, D. C., Peck, E. A., & Vining, G. G. (2021). Introduction to linear regression analysis (6th ed.). Wiley.
St-Aubin, A. (n.d.). An introduction to supervised machine learning. McGill University.