7

Questa potrebbe sembrare una domanda stupida, ma non riesco a trovare una risposta ragionevole.Perché è necessario utilizzare la regolarizzazione nei problemi di apprendimento automatico?

Si dice che la regolarizzazione può aiutarci a ottenere modelli semplici rispetto a quelli complessi per evitare un adattamento eccessivo. Ma per un problema di classificazione lineare:

f(x) = Wx 

La complessità del modello è un po 'specificato: è lineare, non è quadratica o qualcosa di più complesso. Quindi, perché abbiamo ancora bisogno di regolarizzazione sui parametri? Perché preferiamo pesi più piccoli in questi casi?

+0

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

+0

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

+1

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

risposta

3

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.

Problemi correlati