Ποια είναι η διαφορά μεταξύ κανονικοποίησης L1 και L2;
sobes.tech AI
Απάντηση από AI
Οι κανονικοποιήσεις L1 και L2 είναι μέθοδοι για την αποτροπή του υπερεκπαίδευσης σε μοντέλα μηχανικής μάθησης, προσθέτοντας μια ποινή στη συνάρτηση απώλειας.
-
Κανονικοποίηση L1 (Lasso) προσθέτει στη συνάρτηση απώλειας το άθροισμα των απόλυτων τιμών των συντελεστών του μοντέλου:
[ \lambda \sum |w_i| ]
Αυτό οδηγεί σε σπάνια μοντέλα — πολλοί συντελεστές τείνουν προς το μηδέν, βοηθώντας στην επιλογή χαρακτηριστικών.
-
Κανονικοποίηση L2 (Ridge) προσθέτει το άθροισμα των τετραγώνων των συντελεστών:
[ \lambda \sum w_i^2 ]
Κάνει τους συντελεστές μικρούς, αλλά σπάνια τους κάνει ακριβώς μηδέν, βελτιώνοντας τη σταθερότητα του μοντέλου.
Βασικές διαφορές:
- Το L1 προάγει τη σπανιότητα και την επιλογή χαρακτηριστικών.
- Το L2 μειώνει το μέγεθος των συντελεστών, καθιστώντας το μοντέλο πιο σταθερό.
Παράδειγμα σε Python με sklearn:
from sklearn.linear_model import LogisticRegression
# Κανονικοποίηση L1
model_l1 = LogisticRegression(penalty='l1', solver='liblinear')
# Κανονικοποίηση L2
model_l2 = LogisticRegression(penalty='l2')
Η επιλογή μεταξύ τους εξαρτάται από το έργο: αν είναι σημαντική η επιλογή χαρακτηριστικών — L1, αν χρειάζεται σταθερότητα και ομαλοποίηση — L2.