Ho appena appreso della regolarizzazione come approccio per il controllo del sovra-adattamento e vorrei incorporare l'idea in una semplice implementazione di backpropagation e Multistrater perceptron (MLP) che ho messo insieme.
Attualmente per evitare un eccesso di adattamento, convalido e mantengo la rete con il miglior punteggio finora sul set di convalida. Funziona bene, ma l'aggiunta della regolarizzazione mi gioverebbe in quella scelta corretta dell'algoritmo e dei parametri di regolarizzazione che farebbero convergere la mia rete su un modello non in forma più sistematica.
La formula che ho per il termine di aggiornamento (dal corso Coursera ML) è indicata come un aggiornamento batch, ad esempio per ogni peso, dopo aver sommato tutti i delta applicabili per l'intero set di allenamento dalla propagazione dell'errore, lambda * current_weight
viene aggiunto anche un aggiustamento prima del combinato il delta viene sottratto alla fine del batch, dove si lambda
trova il parametro di regolarizzazione.
La mia implementazione della backpropagation utilizza aggiornamenti di peso per articolo. Temo di non poter semplicemente copiare l'approccio batch, anche se per me sembra intuitivo. Un termine di regolarizzazione più piccolo per articolo funziona altrettanto bene?
Ad esempio, lambda * current_weight / N
dove N è la dimensione del set di allenamento, a prima vista sembra ragionevole. Non sono riuscito a trovare nulla sull'argomento, e mi chiedo se ciò sia dovuto al fatto che la regolarizzazione non funziona altrettanto bene con un aggiornamento per articolo, o addirittura ha un nome diverso o una formula modificata.