Perché il sovradimensionamento è negativo?


27

Ho studiato molto e dicono che il sovradimensionamento delle azioni nell'apprendimento automatico è negativo, ma i nostri neuroni diventano molto forti e trovano le migliori azioni / i sensi che passiamo o evitiamo, inoltre possono essere de-incrementati / incrementati da cattivi / buono con trigger buoni o cattivi, il che significa che le azioni saliranno di livello e finirà con le migliori (giuste) azioni super sicure. Come fallisce? Utilizza i trigger di senso positivo e negativo per ridurre / re-incrementare le azioni dire da 44pos. a 22neg.


4
Questa domanda è molto più ampia che non solo per l'apprendimento automatico, le reti neurali, ecc. Si applica ad esempi semplici come il adattamento di un polinomio.
Gerrit,


7
@ FriendlyPerson44 Dopo aver riletto la tua domanda, penso che ci sia una grande disconnessione tra il tuo titolo e la tua vera domanda. Sembra che ti stia chiedendo dei difetti della tua IA ( che è solo vagamente spiegata ) - mentre le persone rispondono " Perché il
troppo si adatta

3
@DoubleDouble Sono d'accordo. Inoltre, la connessione tra machine learning e neuroni è dubbia. L'apprendimento automatico non ha nulla a che fare con "agire come un cervello", simulare i neuroni o simulare l'intelligenza. Sembra che ci siano molte risposte diverse che potrebbero aiutare l'OP a questo punto.
Shaz,

2
Dovresti affinare la tua domanda e il titolo. Forse per: "Perché dobbiamo proteggere un cervello virtuale da un eccesso di adattamento mentre il cervello umano funziona alla grande senza contromisure da tale eccesso?"
Falco,

Risposte:


44

La migliore spiegazione che ho sentito è questa:

Quando esegui l'apprendimento automatico, supponi di provare a imparare dai dati che seguono una distribuzione probabilistica.

Ciò significa che in qualsiasi set di dati, a causa della casualità, ci sarà del rumore : i dati varieranno casualmente.

Quando ti alleni, finisci per imparare dal tuo rumore e includendolo nel tuo modello.

Quindi, quando arriva il momento di fare previsioni da altri dati, la tua precisione diminuisce: il rumore si è fatto strada nel tuo modello, ma era specifico per i tuoi dati di allenamento, quindi danneggia l'accuratezza del tuo modello. Il tuo modello non si generalizza: è troppo specifico per il set di dati che hai scelto di addestrare.


1
"Imparare dal rumore" mi sembra vago. Cosa succede esattamente? Puoi fare un esempio?
Raffaello

anche se i tuoi dati sono molto puliti e fuori dai valori anomali (sia quelli naturali che quelli non naturali) il "sovradimensionamento" è una cattiva pratica e dovrebbe essere eliminato dal tuo modello. quando il tuo modello è "sovradimensionato" significa che il tuo modello non ha generalizzato le conoscenze nascoste nei dati e non è in grado di prevedere altri punti di dati. Semplicemente quando si indossa troppo il modello, lo si adatta solo al set di dati del treno / test.
Aboelnour

2
@Raphael Il sistema inizia a vedere il rumore nel set di allenamento come funzioni. Se poi esegui la rete su dati reali in cui manca quel rumore specifico, finirai con una probabilità inferiore perché mancano funzionalità (= rumore incluso).
drake7707,

2
@Raphael Che dire per esempio: ho una raccolta di immagini da una telecamera del traffico. Formiamo una rete che rilevi se ci sono macchine presenti o meno. Dopo un po 'di allenamento ho un set con macchine e senza macchine, fantastico! Appliciamo la rete su un nuovo set per rilevare se una strada è vuota senza persone e eh, perché non rileva la mia strada vuota con un'alta probabilità? Guardando indietro sul set di esempio e noto che in ogni immagine c'erano persone sullo sfondo delle immagini quando non c'erano macchine. A causa del sovradimensionamento della rete ha posto l'accento sulle persone presenti
drake7707

1
Si consideri un sistema che ha il rumore aggiunto da un lancio di moneta. Sulle teste, aggiungi 1 al valore e sulle code aggiungi 0. Per rendere ovvi i risultati, sceglieremo un set di dati assurdamente piccolo di due punti: (2, 5) e (2.1, 8). Il lancio della moneta si dirige verso il primo punto, la coda per il secondo, introducendo rumore, creando il set di dati (3, 5), (2.1, 8). Ora la rete neurale sta imparando da un set di dati che sembra che ci sia una correlazione significativa tra i valori xey, anche se quasi tutto era rumore. Se poi invii questa 'rete a dati reali, genererà molti risultati sbagliati
Cort Ammon - Ripristina Monica

39

Versione ELI5

Questo è sostanzialmente il modo in cui l'ho spiegato al mio bambino di 6 anni.

Una volta c'era una ragazza di nome Mel ( "Capisci? ML?" "Papà, sei zoppo." ). E ogni giorno Mel suonava con un altro amico e ogni giorno suonava era una giornata di sole, meravigliosa.

Mel ha suonato con Jordan il lunedì, Lily martedì, Mimi mercoledì, Olive giovedì .. e poi venerdì Mel ha suonato con Brianna, e ha piovuto. È stato un temporale terribile!

Più giorni, più amici! Mel ha suonato con Kwan sabato, Grayson domenica, Asa lunedì ... e poi martedì Mel ha suonato con Brooke e ha piovuto di nuovo, anche peggio di prima!

Ora la mamma di Mel ha creato tutti i compagni di gioco, così quella sera durante la cena inizia a raccontare a Mel tutti i nuovi compagni di gioco che ha messo in fila. "Luis mercoledì, Ryan giovedì, Jemini venerdì, Bianca sabato -"

Mel si accigliò.

La mamma di Mel chiese: "Qual è il problema, Mel, non ti piace Bianca?"

Mel rispose: "Oh, certo, è fantastica, ma ogni volta che suono con un amico il cui nome inizia con B, piove!"


Cosa c'è che non va nella risposta di Mel?

Bene, potrebbe non piovere sabato.

Beh, non lo so, voglio dire, è arrivata Brianna e ha piovuto, è arrivata Brooke e ha piovuto ...

Sì, lo so, ma la pioggia non dipende dai tuoi amici.


10
E a quell'altra domanda, questo è ciò che significa "imparare dal rumore".
Kyle Hale,

Per il commento sulla pioggia - Ma lo facciamo, quindi continuiamo a lavorare in quel modo e impariamo di più in seguito.
Amichevole 44

13
@ FriendlyPerson44 Hai ragione, le persone commettono errori e fanno cose cattive come l'adattamento. La tua domanda ha chiesto perché il sovradimensionamento è negativo, non se le persone lo fanno o meno.
Kyle Hale,

1
Questo problema non si applica solo ai robot con scarsa conoscenza, ma anche alle persone con scarsa conoscenza.
Tomáš Zato - Ripristina Monica l'

Non seguo del tutto: la pioggia non dovrebbe essere una variabile predittiva in primo luogo, cosa c'entra con il sovradimensionamento?
mucaho,

14

Il sovradimensionamento implica che il tuo discente non si generalizzerà bene. Ad esempio, considera uno scenario di apprendimento supervisionato standard in cui provi a dividere i punti in due classi. Supponi di ricevere punti di allenamento. È possibile inserire un polinomio di grado che genera 1 sui punti di allenamento della prima classe e -1 sui punti di allenamento della seconda classe. Ma questo polinomio sarebbe probabilmente inutile nel classificare nuovi punti. Questo è un esempio di overfitting e perché è male.NNN


Ma le sue azioni superfigurate sono collegate a sensi specifici e solo quando rivede gli stessi sensi abbina memoria e collegamenti a queste azioni, non le farà quando vede altre cose. La generalizzazione è due cose: tutte queste immagini di alberi sono alberi e usano la conoscenza del passato per capire questa nuova cosa. Perché la mia IA risolva questo, vede un albero e sente "albero", e che abbina la memoria e lo porta in primo piano, quindi vede nuovi alberi e i loro nomi e tutti si collegano ai sensi nella memoria più recente, la prima immagine dell'albero e suono. Scoprire nuove piccole cose correlate di Knwldge è una nuova actio
Friendly Person 44

2
@ FriendlyPerson44 Nell'apprendimento automatico supervisionato, l'esito della formazione non dovrebbe essere modificato ulteriormente. È qui che entra in gioco il "sovradimensionamento". Sarebbe come se la macchina avesse imparato a riconoscere un albero: prima dai colori, poi dalla forma generale, quindi da una forma specifica ( dove dovrebbe fermarsi ), ma poi inizia a distinguere gli alberi da ulteriori schemi casuali che ha trovato solo nel tuo set di allenamento. Quando gli lasci vedere nuove immagini casuali di alberi, decide che quelli non sono alberi. A quel punto, il caso peggiore è che è in uso e nessuno lo sta supervisionando!
DoubleDouble

Ma il mio riconosce un albero salvando l'immagine dell'albero e suonando "albero" e collegando i due sensi insieme, e quando si dice che l'albero combacia con ciò che è in memoria e porta la corrispondenza e qualsiasi altro ad esso collegato in primo piano della memoria e poi quando mostrato altri alberi e chiamato nuovi nomi queste immagini e suoni simili ai primi appresi. Tuttavia, gli alberi non sono fattori scatenanti, eccetto il cibo, non salverà azioni quando vede un colore o un motivo. Il mio impara davvero le azioni.
Amichevole 44

1
@ FriendlyPerson44 Che cosa ha a che fare con il perché il sovradimensionamento è negativo?
DoubleDouble

9

In parole povere, il sovradimensionamento si verifica in genere quando il rapporto

inserisci qui la descrizione dell'immagine

è troppo alto.

Pensa al sovradimensionamento come a una situazione in cui il tuo modello apprende a memoria i dati di allenamento invece di apprendere le immagini di grandi dimensioni che gli impediscono di essere in grado di generalizzare ai dati di test: questo accade quando il modello è troppo complesso rispetto alla dimensione di i dati di addestramento, vale a dire quando la dimensione dei dati di addestramento è troppo piccola rispetto alla complessità del modello.

Esempi:

  • se i dati sono in due dimensioni, si dispone di 10000 punti nel set formazione e il modello è una linea, si rischia di sotto -fit.
  • se i tuoi dati sono in due dimensioni, hai 10 punti nel set di addestramento e il modello è polinomiale a 100 gradi, è probabile che tu sia troppo adatto.

inserisci qui la descrizione dell'immagine

Da un punto di vista teorico, la quantità di dati di cui hai bisogno per addestrare correttamente il tuo modello è una domanda cruciale ma a cui non si può dare una risposta nell'apprendimento automatico. Uno di questi approcci per rispondere a questa domanda è la dimensione VC . Un altro è il compromesso della variazione di bias .

Da un punto di vista empirico, le persone in genere tracciano l'errore di allenamento e l'errore di test sulla stessa trama e si assicurano che non riducano l'errore di allenamento a spese dell'errore di test:

inserisci qui la descrizione dell'immagine

Consiglio di seguire il corso di Machine Learning di Coursera , sezione "10: Consigli per l'applicazione del Machine Learning".


1
Mi piace la linea "apprendimento a memoria" perché gli umani sono capaci (e lo fanno) in una certa misura. Immagina di fare un quiz estremamente difficile in cui le domande e le risposte non cambiano mai ma ti vengono fornite le risposte quando le ottieni errate. Fai finta che l'equazione (2 + 2) sia difficile, riconosci l'equazione e dici '4' - ma poi arriva (2 + 3), ma non hai imparato ad aggiungere, hai appena imparato a dire '4' quando hai "2 + 2"
DoubleDouble

bella spiegazione
Nikos M.

4

Penso che dovremmo considerare due situazioni:

Allenamento finito

Esiste una quantità limitata di dati che utilizziamo per addestrare il nostro modello. Dopodiché vogliamo usare il modello.

In questo caso, se ti alleni, non creerai un modello del fenomeno che ha prodotto i dati, ma creerai un modello del tuo set di dati. Se il tuo set di dati non è perfetto - ho difficoltà a immaginare un set di dati perfetto - il tuo modello non funzionerà bene in molte o alcune situazioni, a seconda della qualità dei dati su cui ti sei allenato. Pertanto, il sovradimensionamento porterà alla specializzazione del set di dati, quando si desidera che la generalizzazione modelli il sottostante fenomeno.

Apprendimento continuo

Il nostro modello riceverà continuamente nuovi dati e continuerà l'apprendimento. Forse c'è un periodo iniziale di maggiore elasticità per ottenere un punto di partenza accettabile.

Questo secondo caso è più simile a come viene allenato il cervello umano. Quando un essere umano è molto giovane, i nuovi esempi di ciò che vuoi imparare hanno un'influenza più pronunciata rispetto a quando sei più grande.

In questo caso l'overfitting presenta un problema leggermente diverso ma simile: i sistemi che rientrano in questo caso sono spesso sistemi che dovrebbero svolgere una funzione durante l'apprendimento. Considera come un essere umano non è semplicemente seduto da qualche parte mentre i nuovi dati gli vengono presentati per imparare da. Un essere umano interagisce e sopravvive continuamente nel mondo.

Si potrebbe sostenere che, poiché i dati continuano ad arrivare, il risultato finale funzionerà bene, ma in questo arco di tempo ciò che è stato appreso deve essere utilizzato! L'overfitting fornirà gli stessi effetti a breve termine del caso 1, peggiorando le prestazioni del modello. Ma dipendi dalle prestazioni del tuo modello per funzionare!

Guarda in questo modo, se ti alleni potresti riconoscere quel predatore che sta cercando di mangiarti in futuro dopo molti altri esempi, ma quando il predatore ti mangia è discutibile.


Buona risposta alla domanda che l'opera implica: "Perché dobbiamo evitare un eccesso di adattamento nei cervelli virtuali, quando i nostri cervelli sembrano funzionare bene, senza alcuna compensazione eccessiva" - perché una macchina è addestrata, mentre gli umani imparano da soli.
Falco,

3

Supponiamo che tu voglia insegnare al computer a determinare tra prodotti buoni e cattivi e dargli il seguente set di dati per imparare: diagramma con set di dati.  Da 0 a 50 sono 0. 52 e 74 sono 0. I valori rimanenti da 51 a 100 sono 1

0 indica che il prodotto è difettoso, 1 indica che è OK. Come puoi vedere, esiste una forte correlazione tra l'asse X e l'asse Y. Se il valore misurato è inferiore o uguale a 50 è molto probabile (~ 98%) che il prodotto sia difettoso e sopra sia molto simile (~ 98%) è OK. 52 e 74 sono valori anomali (misurati in modo errato o non misurati che svolgono un ruolo; noto anche come rumore). Il valore misurato potrebbe essere spessore, temperatura, durezza o qualcos'altro e la sua unità non è importante in questo esempio Quindi l'algoritmo generico sarebbe

if(I<=50)
    return faulty;
else
    return OK;

Avrebbe una probabilità del 2% di errori di classificazione.

Un algoritmo di overfitting sarebbe:

if(I<50)
    return faulty;
else if(I==52)
    return faulty;
else if(I==74)
    return faulty;
else
    return OK;

Quindi l'algoritmo di overfitting classificherebbe erroneamente tutti i prodotti che misurano 52 o 74, anche se c'è un'alta probabilità che siano OK quando vengono dati nuovi set di dati / usati nella produzione. Avrebbe una probabilità del 3,92% di errori di classificazione. Per un osservatore esterno questa classificazione errata sarebbe strana ma spiegabile conoscendo il set di dati originale che era stato sovraccaricato.

Per il set di dati originale l'algoritmo con overfit è il migliore, per i nuovi set di dati l'algoritmo generico (non overfit) è probabilmente il migliore. L'ultima frase descrive in modo basilare il significato di overfitting.


2

Nel mio corso di AI al college, il nostro istruttore ha fornito un esempio simile a quello di Kyle Hale:

Una ragazza e sua madre escono insieme camminando nella giungla, quando improvvisamente una tigre salta fuori dal pennello e divora sua madre. Il giorno dopo cammina attraverso la giungla con suo padre, e di nuovo la tigre salta fuori dal pennello. Suo padre le grida di scappare, ma lei risponde "Oh, va bene papà, le tigri mangiano solo le madri".

Ma d'altra parte:

Una ragazza e sua madre escono insieme camminando nella giungla, quando improvvisamente una tigre salta fuori dal pennello e divora sua madre. Il giorno dopo suo padre la trova rannicchiata nella sua stanza e le chiede perché non è fuori a giocare con i suoi amici. Lei risponde "No! Se esco fuori una tigre mi mangerà sicuramente!"

Sia l'eccesso che l'eccesso possono essere negativi, ma direi che dipende dal contesto del problema che stai cercando di risolvere, che ti preoccupa di più.



2

Uno che ho effettivamente incontrato è qualcosa di simile. Innanzitutto, misuro qualcosa in cui mi aspetto che il rapporto input / output sia approssimativamente lineare. Ecco i miei dati non elaborati:

Input   Expected Result
1.045   0.268333453
2.095   0.435332226
3.14    0.671001483
4.19    0.870664399
5.235   1.073669373
6.285   1.305996464
7.33    1.476337174
8.38    1.741328368
9.425   1.879004941
10.47   2.040661489

Ed ecco un grafico:

inserisci qui la descrizione dell'immagine

Sicuramente sembra adattarsi alle mie aspettative per i dati lineari. Dovrebbe essere piuttosto semplice dedurre l'equazione, giusto? Quindi lascia che il tuo programma analizzi questi dati per un po ', e infine segnala che ha trovato l'equazione che colpisce tutti questi punti di dati, con una precisione del 99,99%! Eccezionale! E quell'equazione è ... 9sin (x) + x / 5. Che assomiglia a questo: inserisci qui la descrizione dell'immagine

Bene, l'equazione prevede sicuramente i dati di input con una precisione quasi perfetta, ma dal momento che è così sovradimensionata ai dati di input, è praticamente inutile per fare qualsiasi altra cosa.


Penso che un overfitting sia più una questione di cosa fai in modo errato una volta che hai i dati di input. Qui non c'è niente che tu possa fare; gli input sono inadeguati a causa del sottocampionamento.
Emre,

1
@Emre: non intendo il sottocampionamento, intendevo che l'input / output fosse lineare, ma l'over-fitting produceva un'equazione chiaramente non lineare. Modificherò per chiarire.
Mooing Duck

1

Dai un'occhiata a questo articolo, spiega abbastanza bene il troppo e il meno.

http://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html

L'articolo esamina un esempio di dati di segnale da una funzione coseno. Il modello di overfitting prevede che il segnale sia una funzione leggermente più complicata (che si basa anche su una funzione del coseno). Tuttavia, il modello sovradimensionato lo conclude non basandosi sulla generalizzazione ma sulla memorizzazione del rumore nei dati del segnale.


4
Se quel link si interrompe, la tua risposta sarà quasi inutile. Fornisci almeno un riepilogo (con attribuzione, ovviamente) in modo che la risposta abbia un valore indipendente da quel link.
Raffaello

1

Senza esperienza nell'apprendimento automatico e nel giudicare dalla risposta di @ jmite, ecco una visualizzazione di ciò che penso significhi:

Grafico casuale di forma approssimativa a destra per dimostrazione

Supponiamo che le singole barre nel grafico sopra siano i tuoi dati, per i quali stai cercando di capire le tendenze generali da applicare a gruppi di dati più grandi. Il tuo obiettivo è trovare la linea curva. Se ti alleni - invece della linea curva mostrata, connetti insieme la parte superiore di ogni singola barra e quindi applichi quella al tuo set di dati - e ottieni una strana risposta spigolosa in modo accurato quando il rumore (variazioni rispetto al previsto) viene esagerato nei tuoi set di dati di pratica reale.

Spero di aver aiutato un po '...


0

Overfitting nella vita reale:

La persona bianca vede la notizia della persona nera che commette un crimine. La persona bianca vede un'altra notizia della persona nera che commette un crimine. La persona bianca vede una terza notizia di una persona di colore che commette un crimine. La persona bianca vede notizia di una persona bianca che indossa una camicia rossa, genitori benestanti e una storia di malattia mentale che commette un crimine. La persona bianca conclude che tutti i neri commettono un crimine e solo i bianchi che indossano magliette rosse, i genitori benestanti e una storia di malattia mentale commettono un crimine.

Se vuoi capire perché questo tipo di overfitting è "cattivo", sostituisci semplicemente "nero" sopra con qualche attributo che ti definisce più o meno in modo univoco.


Lo stereotipo è ciò che i laici chiamano overfitting.
Emre,

3
Non è troppo adatto. Il sistema di overfitting sarebbe decidere che le uniche persone che sono criminali sono quelle che hanno lo stesso colore della pelle, il colore della camicia, il reddito dei genitori e la storia di malattia mentale di uno dei criminali nelle notizie.
David Richerby,

8
@Emre No, gli stereotipi sono esattamente l'opposto del sovradimensionamento. Lo stereotipo sta arrivando a conclusioni che ignorano la maggior parte delle proprietà dei dati di allenamento. L'overfitting sta arrivando alla conclusione che solo i dati che ogni punto nei dati di training descrivono perfettamente parte delle cose che stai cercando di riconoscere.
David Richerby,

Nota del moderatore: commenti fuori tema / fuori contesto eliminati. Per discussioni generali, visitare la chat di informatica . Se hai una domanda su un particolare programma che può o non può usare utilmente il sovradimensionamento, fai una nuova domanda.
Gilles 'SO- smetti di essere malvagio' il

2
@ArnabDatta Overfitting sta abbinando un modello eccessivamente complicato con precisione ai dati di allenamento; lo stereotipo è l'uso di un modello eccessivamente semplificato.
David Richerby,

0

Tutti i dati testati avranno proprietà che vuoi che apprendano e alcune proprietà che sono irrilevanti che NON vuoi che apprendano.

John ha 11 anni
Jack ha 19 anni
Kate ha 31 anni
Lana ha 39 anni


Adattamento corretto: le età sono approssimativamente lineari, passando per ~ 20 anni Sovrapposizione: due esseri umani non possono essere separati di 10 anni (proprietà del rumore nei dati)
Sottovalutazione: 1/4 di tutti gli esseri umani hanno 19 anni (stereotipi)


Benvenuto! Abbiamo già molti esempi informali, quindi non sono sicuro che questo aggiunga molto. E sembra difficile rendere questo esempio più formale. Ad esempio, qual è la funzione lineare che citi? L'input per la funzione sembra essere il nome della persona, che non è un numero. Nel frattempo, "due esseri umani non possono essere distanti dieci anni" e "1/4 degli umani sono 19" non sono esempi di funzioni apprese dai dati.
David Richerby,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.