Em termos de termos mecanísticos / pictóricos / baseados em imagens:
Dilatação: ### VER COMENTÁRIOS, TRABALHANDO PARA CORRIGIR ESTA SEÇÃO
A dilatação é basicamente a mesma que a convolução comum (francamente também é a deconvolução), exceto que introduz brechas em seus kernels, ou seja, enquanto um kernel padrão normalmente desliza sobre seções contíguas da entrada, sua contraparte dilatada pode, por exemplo, "envolva" uma seção maior da imagem - embora ainda tenha apenas tantos pesos / entradas quanto o formulário padrão.
(Observe bem, enquanto a dilatação injeta zeros em seu núcleo para diminuir mais rapidamente as dimensões / resolução faciais de sua saída, a convolução de transposição injeta zeros em sua entrada para aumentar a resolução de sua saída.)
Para tornar isso mais concreto, vamos dar um exemplo muito simples: digamos que
você tenha uma imagem 9x9, x sem preenchimento. Se você usar um kernel 3x3 padrão, com o passo 2, o primeiro subconjunto de preocupações da entrada será x [0: 2, 0: 2], e todos os nove pontos dentro desses limites serão considerados pelo kernel. Você então varria x [0: 2, 2: 4] e assim por diante.
Claramente, a saída terá dimensões faciais menores, especificamente 4x4. Assim, os neurônios da próxima camada têm campos receptivos no tamanho exato desses passes de núcleos. Mas se você precisar ou desejar neurônios com mais conhecimento espacial global (por exemplo, se um recurso importante for apenas definível em regiões maiores que isso), será necessário convolver essa camada uma segunda vez para criar uma terceira camada na qual o campo receptivo efetivo é alguma união das camadas anteriores rf.
Mas se você não quiser adicionar mais camadas e / ou achar que as informações transmitidas são excessivamente redundantes (ou seja, seus campos receptivos 3x3 na segunda camada carregam apenas uma quantidade "2x2" de informações distintas), você pode usar um filtro dilatado. Sejamos extremos quanto a isso, para maior clareza e digamos que usaremos um filtro de 9x9 com 3 discagens. Agora, nosso filtro "circundará" toda a entrada, portanto não precisaremos deslizá-la. No entanto, continuaremos usando apenas 3x3 = 9 pontos de dados da entrada, x , normalmente:
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]
Agora, o neurônio em nossa próxima camada (teremos apenas um) terá dados "representando" uma porção muito maior de nossa imagem e, novamente, se os dados da imagem forem altamente redundantes para dados adjacentes, é possível que tenhamos preservado o mesma informação e aprendeu uma transformação equivalente, mas com menos camadas e menos parâmetros. Eu acho que, dentro dos limites desta descrição, fica claro que, embora definível como reamostragem, estamos aqui fazendo downsampling para cada kernel.
Fracionado-strided ou transposição ou "deconvolução":
Esse tipo ainda é de convolução no coração. A diferença é, novamente, que passaremos de um volume de entrada menor para um volume de saída maior. O OP não fez perguntas sobre o que é upsampling, por isso vou economizar um pouco de amplitude, desta vez e seguir direto para o exemplo relevante.
No nosso caso 9x9 de antes, digamos que queremos agora aumentar a amostra para 11x11. Nesse caso, temos duas opções comuns: podemos pegar um kernel 3x3 e com passo 1 e varrê-lo sobre nossa entrada 3x3 com 2 padding, para que nosso primeiro passe seja sobre a região [pad esquerdo 2: 1, above-pad-2: 1] then [pad-left-1: 2, above-pad-2: 1] e assim por diante.
Como alternativa, podemos inserir adicionalmente o preenchimento entre os dados de entrada e varrer o kernel sobre ele sem o mesmo preenchimento. Claramente, às vezes nos preocuparemos com exatamente os mesmos pontos de entrada mais de uma vez para um único kernel; é aqui que o termo "fracionado" parece mais bem fundamentado. Eu acho que a seguinte animação (emprestada daqui e baseada (acredito)) deste trabalho ajudará a esclarecer as coisas, apesar de serem de diferentes dimensões: a entrada é azul, os zeros e o preenchimento brancos injetados e a saída verde:
Obviamente, estamos preocupados com todos os dados de entrada em oposição à dilatação, que pode ou não ignorar completamente algumas regiões. E como estamos claramente terminando com mais dados do que começamos, "upsampling".
Convido você a ler o excelente documento ao qual vinculei para obter uma definição e explicação mais sólida e abstrata da convolução de transposição, bem como para aprender por que os exemplos compartilhados são formas ilustrativas, mas amplamente inapropriadas, para calcular a transformação representada.