La necessità di regolarizzare un modello tenderà ad essere sempre minore man mano che si aumenta il numero di campioni con cui si desidera addestrare il modello o si riduce la complessità del modello. Tuttavia, il numero di esempi necessari per addestrare un modello senza (o con un effetto di regolarizzazione molto piccolo) aumenta [super] in modo esponenziale con il numero di parametri e possibilmente alcuni altri fattori ereditati in un modello.
Poiché nella maggior parte dei problemi di apprendimento automatico, non hanno il numero di campioni di training o la complessità del modello è grande dobbiamo utilizzare regolarizzazione al fine di evitare, o ridurre la possibilità, di un eccesso di raccordo. Intuitivamente, il modo in cui la regolarizzazione funziona è che introduce un termine di penalità a argmin∑L(desired,predictionFunction(Wx))
dove L
è una funzione di perdita che calcola quanto la previsione del modello si discosta dagli obiettivi desiderati. Quindi la nuova funzione di perdita diventa argmin∑L(desired,predictionFunction(Wx)) + lambda*reg(w)
dove reg
è un tipo di regolarizzazione (ad esempio squared L2
) e lambda
è un coefficiente che controlla l'effetto di regolarizzazione. Quindi, naturalmente, mentre si riduce al minimo la funzione di costo, i vettori di peso sono limitati per avere una piccola lunghezza quadrata (ad esempio squared L2 norm
) e si restringono verso zero. Questo perché più grande è la lunghezza al quadrato dei vettori di peso, maggiore è la perdita. Pertanto, anche i vettori di peso devono compensare l'abbassamento della perdita del modello mentre l'ottimizzazione è in esecuzione.
Ora immagina di rimuovere il termine di regolarizzazione (lambda = 0). Quindi i parametri del modello sono liberi di avere valori e così anche la lunghezza al quadrato dei vettori di peso può crescere, indipendentemente dal modello lineare o non lineare. Ciò aggiunge un'altra dimensione alla complessità del modello (oltre al numero di parametri) e la procedura di ottimizzazione può trovare vettori di peso che possono corrispondere esattamente ai punti dei dati di allenamento. Tuttavia, se esposti a set di dati non visibili (di validazione o test), il modello non sarà in grado di generalizzare correttamente poiché è sovra-adattato ai dati di allenamento.
La tua domanda: perché ridurre i parametri W a zero riduce la complessità del modello? Ad ogni modo - dovrebbe probabilmente essere migrato alle statistiche. – cel
No, sto chiedendo perché abbiamo bisogno di R (w) in f (x) = wx + R (w). Perché penso nella classificazione lineare, il complesso del modello è lo stesso per ogni w scegliamo. Ma perché preferiamo quelli più piccoli? – Demonedge
Bene, se non sai cosa rispondere alla mia domanda, posso rispondere facilmente alle tue: Perché vogliamo ridurre la complessità del modello. Un vettore 'w' più piccolo porta a un modello meno complesso, i modelli meno complessi sono spesso preferiti. Vedi https://en.wikipedia.org/wiki/Occam%27s_razor, per un punto di vista filosofico, o https://en.wikipedia.org/wiki/Regularization_(mathematics) per un punto di vista più matematico. – cel