In una sorta di termini meccanicistici / pittorici / basati sull'immagine:
Dilatazione: ### VEDI COMMENTI, LAVORANDO SULLA CORREZIONE DI QUESTA SEZIONE
La dilatazione è in gran parte la stessa della convoluzione run-of-the-mill (francamente lo è anche la deconvoluzione), tranne per il fatto che introduce lacune nei suoi kernel, vale a dire che un kernel standard scivolerebbe in genere su sezioni contigue dell'input, la sua controparte dilatata può, ad esempio, "circonda" una sezione più ampia dell'immagine, mentre ha ancora tanti pesi / input quanti sono i moduli standard.
(Nota bene, mentre la dilatazione inietta zeri nel suo kernel per ridurre più rapidamente le dimensioni / risoluzione del viso del suo output, trasporre la convoluzione inietta zeri nel suo input per aumentare la risoluzione del suo output.)
Per rendere questo più concreto, facciamo un esempio molto semplice: supponiamo di
avere un'immagine 9x9, x senza imbottitura. Se prendi un kernel 3x3 standard, con il passo 2, il primo sottoinsieme di problemi dall'input sarà x [0: 2, 0: 2], e tutti i nove punti all'interno di questi limiti saranno considerati dal kernel. Dovresti quindi passare su x [0: 2, 2: 4] e così via.
Chiaramente, l'output avrà dimensioni facciali più piccole, in particolare 4x4. Pertanto, i neuroni del livello successivo hanno campi ricettivi nella dimensione esatta di questi passaggi di kernel. Ma se hai bisogno o desideri neuroni con una maggiore conoscenza dello spazio globale (ad es. Se una caratteristica importante è definibile solo in regioni più grandi di questa) allora dovrai contorcere questo strato una seconda volta per creare un terzo livello in cui il campo ricettivo effettivo è qualche unione degli strati precedenti rf.
Ma se non vuoi aggiungere più livelli e / o ritieni che le informazioni trasmesse siano eccessivamente ridondanti (i tuoi campi ricettivi 3x3 nel secondo strato trasportano solo "2x2" informazioni distinte), puoi usare un filtro dilatato. Siamo estremi su questo per chiarezza e diciamo che useremo un filtro a 3 quadranti 9x9. Ora, il nostro filtro "cercherà" l'intero input, quindi non dovremo farlo scorrere affatto. Tuttavia, prenderemo solo 3x3 = 9 punti dati dall'input, x , in genere:
x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8,4] U x [8,8]
Ora, il neurone nel nostro prossimo livello (ne avremo solo uno) avrà dati "che rappresentano" una porzione molto più grande della nostra immagine, e di nuovo, se i dati dell'immagine sono altamente ridondanti per i dati adiacenti, potremmo aver preservato il stesse informazioni e appreso una trasformazione equivalente, ma con meno livelli e meno parametri. Penso che entro i limiti di questa descrizione sia chiaro che, sebbene definibile come ricampionamento, qui stiamo effettuando il downsampling per ciascun kernel.
Frazionalmente o trasporre o "deconvoluzione":
Questo tipo è ancora convoluzione a cuore. La differenza è, ancora una volta, che ci sposteremo da un volume di input più piccolo a un volume di output più grande. OP non ha posto domande su cosa sia l'upsampling, quindi risparmierò un po 'di ampiezza, questa volta e andrò direttamente all'esempio pertinente.
Nel nostro caso 9x9 di prima, supponiamo di voler ora passare a 11x11. In questo caso, abbiamo due opzioni comuni: possiamo prendere un kernel 3x3 e con il passo 1 e spostarlo sul nostro input 3x3 con 2-padding in modo che il nostro primo passaggio sarà sulla regione [left-pad-2: 1, above-pad-2: 1] quindi [left-pad-1: 2, above-pad-2: 1] e così via e così via.
In alternativa, possiamo anche inserire un riempimento tra i dati di input e passare il kernel su di esso senza tanto riempimento. Chiaramente a volte ci occuperemo degli stessi stessi punti di input più di una volta per un singolo kernel; è qui che il termine "frazionato" sembra più ragionato. Penso che la seguente animazione (presa in prestito da qui e basata (credo) su questo lavoro aiuterà a chiarire le cose nonostante abbia dimensioni diverse. L'input è blu, gli zeri e il riempimento bianchi iniettati e l'output verde:
Naturalmente, ci stiamo occupando di tutti i dati di input in contrapposizione alla dilatazione che può o meno ignorare del tutto alcune regioni. E dal momento che stiamo chiaramente finendo con più dati di quelli che abbiamo iniziato, "upsampling".
Vi incoraggio a leggere l'ottimo documento a cui mi sono collegato per una definizione e una spiegazione astratte e più solide della convoluzione del recepimento, nonché per sapere perché gli esempi condivisi sono forme illustrative ma in gran parte inadeguate per calcolare effettivamente la trasformazione rappresentata.