Nas redes neurais convolucionais (CNN), a matriz de pesos em cada etapa obtém suas linhas e colunas invertidas para obter a matriz do núcleo, antes de prosseguir com a convolução. Isso é explicado em uma série de vídeos de Hugo Larochelle aqui :
A computação dos mapas ocultos corresponderia a uma convolução discreta com um canal da camada anterior, usando uma matriz do [...] kernel, e esse kernel é calculado a partir da matriz de pesos ocultos , onde invertemos as linhas e as colunas.
Se comparássemos as etapas reduzidas de uma convolução à multiplicação regular da matriz como em outros tipos de NN, a conveniência seria uma explicação clara . No entanto, essa pode não ser a comparação mais pertinente ...
No processamento de imagens digitais, a aplicação da convolução de um filtro a uma imagem ( este é um ótimo vídeo do youtube para uma intuição prática ) parece relacionada a:
- O fato de que a convolução é associativa, enquanto a correlação (cruzada) não é.
- A possibilidade de aplicar filtros no domínio da frequência da imagem como multiplicações, uma vez que a convolução no domínio do tempo é equivalente à multiplicação no domínio da frequência ( teorema da convolução ).
Nesse ambiente técnico específico de correlação DSP é definido como:
que é essencialmente a soma de todas as células em um produto Hadamard:
onde é uma função de filtro (expressa como uma matriz) e é o valor de pixel de uma imagem no local :I ( x , y ) ( x , y )
O objetivo da correlação cruzada é avaliar a semelhança entre uma imagem de sonda e uma imagem de teste. O cálculo de um mapa de correlação cruzada se baseia no teorema da convolução.
Por outro lado, convolução é definida como:
que, desde que o filtro seja simétrico, é o mesmo que uma operação de correlação com as linhas e colunas do filtro invertidas:
A convolução no DSP destina-se a aplicar filtros à imagem (por exemplo, suavização, nitidez). Por exemplo, depois de convolver o rosto de Joseph Fourier com um filtro de convolução gaussiano : na borda:
Computacionalmente, ambas as operações são um produto interno da Frobenius, que calcula o traço de uma multiplicação de matrizes .
Perguntas (reformulando após comentários e primeira resposta):
- O uso de convoluções na CNN está vinculado à FFT?
Pelo que entendi até agora, a resposta é não. As FFTs foram usadas para acelerar as implementações de convulsões da GPU . No entanto, as FFT geralmente não fazem parte da estrutura ou das funções de ativação nas CNNs, apesar do uso de convoluções nas etapas de pré-ativação.
- Convolução e correlação cruzada na CNN são equivalentes?
Sim, eles são equivalentes.
- Se é simples como "não há diferença", qual é o sentido de lançar os pesos na matriz do kernel?
Nem a associatividade da convolução (útil em provas matemáticas), nem quaisquer considerações sobre FTs e o teorema da convolução são aplicáveis. De fato, parece que a inversão nem ocorre (a correlação cruzada é simplesmente rotulada como convolução) (?).