Middle — Senior
Γιατί η κανονικοποίηση L1 μηδενίζει μερικά βάρη, ενώ η L2 όχι;
sobes.tech AI
Απάντηση από AI
Η κανονικοποίηση L1 (Lasso) προσθέτει στη συνάρτηση απώλειας το άθροισμα των απόλυτων τιμών των βαρών (||w||₁), οδηγώντας σε σημεία γωνίας στην επιφάνεια βελτιστοποίησης. Αυτό προάγει την ακριβή μηδενική τιμή ορισμένων βαρών, δηλαδή τα μηδενίζει, διασφαλίζοντας την αραιότητα του μοντέλου.
Η κανονικοποίηση L2 (Ridge) προσθέτει το άθροισμα των τετραγώνων των βαρών (||w||₂²), δημιουργώντας μια ομαλή παραβολική επιφάνεια χωρίς γωνίες. Ως αποτέλεσμα, τα βάρη μειώνονται, αλλά σπάνια γίνονται ακριβώς μηδέν, καθώς η βελτιστοποίηση στοχεύει σε μικρές, αλλά όχι μηδενικές τιμές.
Παράδειγμα:
import numpy as np
from sklearn.linear_model import Lasso, Ridge
X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])
lasso = Lasso(alpha=0.1)
lasso.fit(X, y)
print('Βάρη L1:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Βάρη L2:', ridge.coef_)
Εδώ, το L1 μπορεί να μηδενίσει ορισμένα βάρη, ενώ το L2 τα μειώνει μόνο.