Sobes.tech
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 τα μειώνει μόνο.