2017-04-08 3 views
0

Ich habe einige Daten, bei denen sowohl die Eingabe als auch die Ausgabewerte standardisiert sind, so dass der Unterschied zwischen Y und Y_pred immer sehr klein wird.L1-Norm vs l2-Norm als Kostenfunktion beim Standardisieren

Ich glaube, dass die l2-Norm das Modell weniger straft als die l1-Norm, da die Quadrierung einer Zahl zwischen 0 und 1 immer zu einer niedrigeren Zahl führt.

Also meine Frage ist, ist es in Ordnung, die l2-Norm zu verwenden, wenn sowohl der Eingang als auch der Ausgang standardisiert sind?

Antwort

1

Es spielt keine Rolle.

Die Grundidee/Motivation ist, wie Abweichungen zu bestrafen sind. L1-Norm kümmert sich nicht viel um Ausreißer, während L2-Norm diese stark bestraft. Dies ist der grundlegende Unterschied und Sie werden eine Menge Vor- und Nachteile finden, sogar auf Wikipedia.

Also in Bezug auf Ihre Frage, ob es sinnvoll ist, wenn die erwarteten Abweichungen klein sind: Sicher, es verhält sich genauso.

Nehmen wir ein Beispiel machen:

y_real 1.0  ||| y_pred 0.8  ||| y_pred 0.6 
l1:    |0.2| = 0.2   |0.4| = 0.4 => 2x times more error! 
l2:    0.2^2 = 0.04  0.4^2 = 0.16 => 4x times more error! 

Sie sehen, ist die Grundidee gilt nach wie vor!

+0

danke für die Antwort. Wenn wir die L2-Norm verwenden, dann werden die Gewichte bei jeder Iteration des Gradientenabfalls nur sehr leicht korrigiert, wenn der Fehler niedriger ist. Also, dann sollte es mehr Trainings-Iterationen brauchen, um zu den optimalen Gewichten zu konvergieren. –

+0

Es geht nicht wirklich nur um die Gradientengröße eines Gewichts. Es geht mehr um die Gelenk-Gradienten. Es ist eine Art zu denken in einem lokalen (nur dieses Gewicht) vs. globalen (wie sich all diese Gewichte zusammen verhalten) Einstellung. Mehr noch: Lernraten-Tuning ist immer wichtig! Also die allgemeine Antwort (es gibt viel mehr zu reden; aber es ist zu komplex, um dies auf SO zu diskutieren; Glätte und Co.) Ist: es hängt vom Problem ab. – sascha

Verwandte Themen