[Questa domanda è stata posta anche in caso di overflow dello stack]
La domanda in breve
Sto studiando reti neurali convoluzionali e credo che queste reti non trattino tutti i neuroni di input (pixel / parametri) in modo equivalente. Immagina di avere una rete profonda (molti livelli) che applica la convoluzione su alcune immagini di input. I neuroni nel "mezzo" dell'immagine hanno molti percorsi unici verso molti neuroni di livello più profondo, il che significa che una piccola variazione nei neuroni medi ha un forte effetto sull'output. Tuttavia, i neuroni ai margini dell'immagine hanno solo via (o, a seconda dell'esatta implementazione, dell'ordine di 1 ) percorsi in cui le loro informazioni fluiscono attraverso il grafico. Sembra che questi siano "sottorappresentati".
Sono preoccupato per questo, poiché questa discriminazione dei neuroni limite si espande in modo esponenziale con la profondità (numero di strati) della rete. Anche l'aggiunta di un livello di pool massimo non bloccherà l'aumento esponenziale, solo una connessione completa porta tutti i neuroni su un piano di parità. Non sono convinto che il mio ragionamento sia corretto, quindi le mie domande sono:
- Ho ragione che questo effetto si manifesta in reti convoluzionali profonde?
- C'è qualche teoria al riguardo, è mai stata menzionata in letteratura?
- Ci sono modi per superare questo effetto?
Poiché non sono sicuro che ciò fornisca informazioni sufficienti, approfondirò un po 'di più sull'affermazione del problema e sul perché ritengo che questa sia una preoccupazione.
Spiegazione più dettagliata
Immagina di avere una rete neurale profonda che prende un'immagine come input. Supponiamo di applicare un filtro convoluzionale di pixel sull'immagine, in cui spostiamo la finestra di convoluzione di 4 pixel ogni volta. Ciò significa che ogni neurone nell'input invia la sua attivazione a 16 × 16 = 265 neuroni nello strato 2 . Ognuno di questi neuroni potrebbe inviare la propria attivazione ad altri 265 , in modo tale che il nostro neurone più in alto sia rappresentato in 265 2 neuroni in uscita, e così via.
https://www.dropbox.com/s/7rbwv7z14j4h0jr/deep_conv_problem_stackxchange.png?dl=0
Perché questo è un problema?
Questo effetto non sembra essere un problema a prima vista: in linea di principio, i pesi dovrebbero adattarsi automaticamente in modo tale che la rete funzioni. Inoltre, i bordi di un'immagine non sono così importanti nel riconoscimento delle immagini. Questo effetto potrebbe non essere evidente nei test di riconoscimento delle immagini di tutti i giorni, ma mi preoccupa ancora per due motivi: 1. generalizzazione ad altre applicazioni e 2. problemi che sorgono nel caso di reti molto profonde.
1. Potrebbero esserci altre applicazioni, come il parlato o il riconoscimento del suono, in cui non è vero che i neuroni della metà media siano i più importanti. L'applicazione della convoluzione viene spesso eseguita in questo campo, ma non sono stato in grado di trovare documenti che menzionino l'effetto di cui mi occupo.
Ora immagina di turbare tutti i neuroni di una piccola quantità. I neuroni centrali causeranno un cambiamento più forte dell'output di diversi ordini di grandezza, rispetto ai neuroni limite. Credo che per le applicazioni generali e per le reti molto profonde si debbano trovare modi per aggirare il mio problema?