Sobes.tech
Middle — Senior

Ποια είναι η διαφορά μεταξύ κανονικοποίησης 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.