Qual è l'invarianza della traduzione nella visione artificiale e nella rete neurale convoluzionale?


38

Non ho un background di visione artificiale, eppure quando leggo alcuni articoli e documenti relativi all'elaborazione delle immagini e alle reti neurali convoluzionali, devo costantemente affrontare il termine translation invariance, o translation invariant.
O ho letto molto che l'operazione di convoluzione prevede translation invariance? !! Cosa significa questo?
Io stesso l'ho sempre tradotto per me come se significasse che cambiamo un'immagine in qualsiasi forma, il concetto reale dell'immagine non cambia.
Ad esempio, se ruoto un'immagine di un albero, diciamo che è di nuovo un albero, non importa cosa faccio a quella foto.
E io stesso considero tutte le operazioni che possono accadere a un'immagine e la trasformano in un modo (ritagliarlo, ridimensionarlo, ridimensionarlo in grigio, colorarlo ecc ...) in questo modo. Non ho idea se questo sia vero, quindi sarei grato se qualcuno potesse spiegarmelo.

Risposte:


61

Sei sulla strada giusta.

Invarianza significa che puoi riconoscere un oggetto come oggetto, anche quando il suo aspetto varia in qualche modo. Questa è generalmente una buona cosa, perché preserva l'identità, la categoria (ecc.) Dell'oggetto attraverso i cambiamenti nelle specifiche dell'input visivo, come le posizioni relative dello spettatore / telecamera e l'oggetto.

L'immagine in basso contiene molte viste della stessa statua. Tu (e reti neurali ben addestrate) puoi riconoscere che lo stesso oggetto appare in ogni immagine, anche se i valori dei pixel effettivi sono piuttosto diversi.

Vari tipi di invarianza, dimostrati

Si noti che la traduzione qui ha un significato specifico nella visione, mutuato dalla geometria. Non si riferisce a nessun tipo di conversione, a differenza di una traduzione dal francese all'inglese o tra formati di file. Invece, significa che ogni punto / pixel nell'immagine è stato spostato della stessa quantità nella stessa direzione. In alternativa, puoi pensare all'origine come se fosse stata spostata di una quantità uguale nella direzione opposta. Ad esempio, possiamo generare la seconda e la terza immagine nella prima riga dalla prima spostando ciascun pixel di 50 o 100 pixel a destra.


Si può dimostrare che l'operatore di convoluzione si sposta rispetto alla traduzione. Se contrai f con g , non importa se traduci l'output contorto f*g , o se traduci prima f o g , quindi contrai. Wikipedia ha un po 'di più .

Un approccio al riconoscimento dell'oggetto invariante alla traduzione è quello di prendere un "modello" dell'oggetto e di contorcerlo con ogni possibile posizione dell'oggetto nell'immagine. Se si ottiene una risposta di grandi dimensioni in una posizione, viene suggerito che un oggetto simile al modello si trova in quella posizione. Questo approccio viene spesso chiamato corrispondenza dei modelli .


Invarianza vs. Equivarianza

La risposta di Santanu_Pattanayak ( qui ) sottolinea che esiste una differenza tra l' invarianza della traduzione e l' equivalenza della traduzione . L'invarianza della traduzione significa che il sistema produce esattamente la stessa risposta, indipendentemente da come viene spostato il suo input. Ad esempio, un rilevatore di volti potrebbe riportare "FACE FOUND" per tutte e tre le immagini nella riga superiore. Equivarianza significa che il sistema funziona ugualmente bene in tutte le posizioni, ma la sua risposta cambia con la posizione del bersaglio. Ad esempio, una mappa di calore di "face-iness" avrebbe dossi simili a sinistra, al centro e a destra quando elabora la prima fila di immagini.

Questa è talvolta una distinzione importante, ma molte persone chiamano entrambi i fenomeni "invarianza", soprattutto perché è solitamente banale convertire una risposta equivariante in una invariante - ignorare tutte le informazioni sulla posizione).


2
Sono contento di poterti aiutare. Questo è uno dei miei maggiori interessi di ricerca, quindi se c'è qualcos'altro che sarebbe utile, vedrò cosa posso fare.
Matt Krause,

Potresti chiarire come si ottiene l'invarianza della traduzione con la CNN? Le attivazioni di uno strato convoluzionale in una CNN non sono invarianti sotto le traduzioni: si muovono mentre l'immagine si sposta (cioè sono equivarianti, piuttosto che invarianti, alle traduzioni). Queste attivazioni sono generalmente inserite in un livello di pooling, che non è invariante alle traduzioni. E il livello di pooling può essere inserito in un livello completamente connesso. I pesi in uno strato completamente connesso in qualche modo cambiano l'equivalente della transizione rispetto al comportamento invariante della traduzione?
max

@max, il pooling aumenta l'invarianza della traduzione, in particolare il max pooling (!), che ignora completamente le informazioni spaziali all'interno del quartiere del pooling. Vedi il capitolo 9 di Deep Learning deeplearningbook.org/contents/convnets.html (a partire da p. 335). Questa idea è popolare anche nelle neuroscienze: il modello HMAX (ad es. Qui: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) utilizza una combinazione di media e max pooling per generare traduzione (e altri tipi di ) invarianza.
Matt Krause,

1
Oh giusto, il pooling fornisce invarianza rispetto alle piccole traduzioni (stavo pensando a turni più grandi, ma forse ogni livello successivo di pooling può gestire turni progressivamente più grandi). Ma per quanto riguarda le reti completamente convoluzionali ? Senza raggruppamento, cosa fornisce invarianza (almeno approssimativa)?
max

1
@Fredom, potrebbe essere meglio come una nuova domanda, ma in breve: il segnale audio suona lo stesso anche quando lo si sposta in avanti nel tempo (ad esempio, aggiungendo un mucchio di silenzio all'inizio). Tuttavia, se lo si sposta nel dominio della frequenza, suona diverso: non solo lo spettro viene spostato, ma anche le relazioni tra le frequenze (ad esempio, le armoniche) vengono distorte.
Matt Krause,

4

Penso che ci sia un po 'di confusione su cosa si intende per invarianza traslazionale. La convoluzione fornisce l'equivalenza della traduzione che significa se un oggetto in un'immagine si trova nell'area A e attraverso la convoluzione viene rilevata una funzione all'uscita nell'area B, quindi la stessa funzione verrebbe rilevata quando l'oggetto nell'immagine viene tradotto in A '. La posizione della funzione di output verrebbe anche tradotta in una nuova area B 'basata sulla dimensione del kernel del filtro. Questo si chiama equivalenza traslazionale e non invarianza traslazionale.


2

La risposta è in realtà più complicata di quanto sembri inizialmente. In generale, l'invarianza traslazionale significa che riconosceresti l'oggetto senza reger da dove appare sul frame.

Nella prossima immagine nei frame A e B riconosceresti la parola "stressata" se la tua visione supporta l'invarianza della traduzione delle parole . inserisci qui la descrizione dell'immagine

Ho evidenziato il termine parole perché se la tua invarianza è supportata solo sulle lettere, anche il fotogramma C sarà uguale ai fotogrammi A e B: ha esattamente le stesse lettere.

In termini pratici, se hai addestrato la tua CNN sulle lettere, allora cose come MAX POOL aiuteranno a raggiungere l'invarianza della traduzione sulle lettere, ma potrebbero non necessariamente portare all'invarianza della traduzione sulle parole. Il pool estrae la funzione (che viene estratta da un livello corrispondente) senza relazione con la posizione di altre funzionalità, quindi perderà la conoscenza della posizione relativa delle lettere D e T e le parole STRESSED e DESSERTS avranno lo stesso aspetto.

Il termine stesso deriva probabilmente dalla fisica, dove la simmetria traslazionale significa che le equazioni rimangono le stesse indipendentemente dalla traduzione nello spazio.


1

@Santanu

Mentre la tua risposta è in parte corretta e porta alla confusione. È vero che i livelli convoluzionali stessi o le mappe delle caratteristiche di output sono equivalenti alla traduzione. Ciò che fanno i livelli di max pooling è fornire una certa invarianza della traduzione come sottolinea @Matt.

Vale a dire, l'equivalenza nelle mappe caratteristiche combinata con la funzione di livello max pooling porta all'invarianza della traduzione nel livello di output (softmax) della rete. La prima serie di immagini qui sopra produrrebbe comunque una previsione chiamata "statua" anche se è stata tradotta a sinistra o a destra. Il fatto che la previsione rimanga "statua" (cioè la stessa) nonostante la traduzione dell'input significa che la rete ha raggiunto una certa invarianza nella traduzione.


Non sono così sicuro che il pooling porti a invarianza della traduzione.
Aksakal,

Lo fa moderatamente. Ricorda che l'operatore di pooling massimo accetta il valore massimo di pixel come output in una determinata finestra. Ciò richiede matematicamente una certa invarianza poiché la posizione spaziale dei valori massimi dei pixel è irrilevante (entro alcuni limiti).
sig.
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.