Domanda sulla sottrazione media sul treno / valido / set di test


11

Sto eseguendo la preelaborazione dei dati e dopo costruirò un convoglio sui miei dati.

La mia domanda è: supponiamo di avere un set di dati totale con 100 immagini, stavo calcolando la media per ciascuna delle 100 immagini e quindi sottratto da ciascuna delle immagini, quindi diviso in treno e set di convalida e faccio lo stesso passaggi per l'elaborazione su un determinato set di test, ma sembra che questo non sia un modo corretto di farlo secondo questo link: http://cs231n.github.io/neural-networks-2/#datapre

" Trabocchetto comune . Un punto importante da chiarire sulla preelaborazione è che qualsiasi statistica di preelaborazione (ad es. La media dei dati) deve essere calcolata solo sui dati di addestramento e quindi applicata ai dati di validazione / test. Ad esempio, calcolare la media e sottrarla da ogni immagine attraverso l'intero set di dati e quindi la divisione dei dati in suddivisioni treno / val / test sarebbe un errore, ma la media deve essere calcolata solo sui dati di allenamento e quindi sottratta equamente da tutte le suddivisioni (treno / val / test). "

Sto indovinando che l'autore sta dicendo che, non calcolare la media e sottrarla all'interno di ogni immagine ma calcolare la media del set di immagini totale (cioè (image1 + ... + image100) / 100) e sottrarre la media per ciascuna immagine.

Non capisco bene qualcuno può spiegare? e forse anche spiegare perché ciò che stavo facendo è sbagliato (se è davvero sbagliato).


Benvenuto nella community. Si prega di vedere la mia risposta qui sotto.
usεr11852,

Risposte:


6

Supponiamo che tu abbia 100 immagini in totale; 90 sono dati di allenamento e 10 sono dati di test.

Gli autori affermano correttamente che l'utilizzo dell'intero campione di 100 immagini per calcolare la media del campione è errato. Questo perché in questo caso si avrebbe una perdita di informazioni. Le informazioni dai tuoi elementi "fuori campione" verrebbero spostate sul tuo set di allenamento. In particolare per la stima di , se usi 100 invece di 90 immagini, permetti al tuo set di allenamento di avere una media più informata di quanto dovrebbe anche avere. Di conseguenza, l'errore di allenamento sarebbe potenzialmente inferiore a quello che dovrebbe essere. uμ^μ^

Il stimato è comune durante la procedura di addestramento / validazione / test. Lo stesso deve essere usato per centrare tutti i tuoi dati. (Lo menzionerò più avanti perché ho la leggera impressione che usi la media di ogni immagine separata per centrare quell'immagine.) uμ^μ^


Grazie per la risposta, ha senso. E sì, sto calcolando la media per ogni immagine, quindi il stimato dovrebbe effettivamente essere calcolato da tutte le 90 immagini di allenamento invece che da ogni singola immagine? Qualche ragione per cui? Non riesco a centrare ciascuna delle singole immagini nel set di 90 training? μ^
Sam,

1
La stima dovrebbe essere un'immagine stessa. Se si centrano ciascuno individualmente, la centratura che si esegue non controlla alcuna tendenza generale nell'intero campione. μ^
usεr11852,

@ usεr11852 Perché un danno più informato significherebbe danneggiare il nostro modello? Ciò non causerebbe l'informazione della "variabile di risposta fuori campione", in qualche modo interferire nella nostra formazione, giusto? Quindi perché l'errore del treno dovrebbe essere basso?
GeneX,

1
Le informazioni valide non "danneggeranno mai un modello"; dopo aver deciso quale modello utilizzare (sulla base di alcuni schemi di ricampionamento / hold-out) formeremo il modello finale su tutti i dati . Tuttavia durante l'addestramento se stimiamo utilizzando l'intero set di dati, queste informazioni aggiuntive riflettono buone intuizioni non realistiche. Questo può portare a errori di test inferiori al previsto esattamente perché sappiamo qualcosa sui nostri dati di test che altrimenti non saremmo in grado di utilizzare durante l'allenamento. ( Esempio : supponiamo di sviluppare un modello di attività fisica. I nostri dati includono adolescenti, adulti e anziani e (cont.)μ^
usεr11852,

... per un colpo di fortuna, tutti gli anziani finiscono nel set di test. Se calcoliamo l'età media solo nel nostro set di allenamento, otterremo ovviamente un'età media inferiore a quella dell'intero campione. L'uso di questa età media ovviamente distorta probabilmente peggiorerà le Aprestazioni del modello se Anon si generalizza bene a età diverse. Se calcoliamo l'età media nell'intero set di dati otterremo un'età media più rappresentativa. Se ora utilizziamo questa età media imparziale nel modello A, probabilmente otterremo prestazioni migliori rispetto a prima nonostante Anon generalizziamo bene a età diverse.)
usεr11852
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.