Li a explicação da convolução e a compreendi até certo ponto. Alguém pode me ajudar a entender como essa operação se relaciona à convolução nas redes neurais convolucionais? O filtro é uma função g
que aplica peso?
Li a explicação da convolução e a compreendi até certo ponto. Alguém pode me ajudar a entender como essa operação se relaciona à convolução nas redes neurais convolucionais? O filtro é uma função g
que aplica peso?
Respostas:
Usando a notação da página da Wikipedia, a convolução em uma CNN será o kernel dos quais aprenderemos alguns pesos para extrair as informações necessárias e, talvez, aplicar uma função de ativação.
Na página da Wikipedia, a convolução é descrita como
Por exemplo, assumindo que é a função e é a função de convolução ,
Para resolver isso, podemos usar a equação primeiro, invertemos a função verticalmente, devido ao que aparece na equação. Em seguida, calcularemos o somatório para cada valor de . Ao alterar , a função original não se move, no entanto, a função de convolução é alterada de acordo. Começando em ,
Como você pode ver, é exatamente isso que obtemos no gráfico . Então trocamos a função pela função .
Por exemplo, se tivermos a matriz em verde
com o filtro de convolução
A operação resultante é uma multiplicação por elementos e adição dos termos, como mostrado abaixo. Muito parecido com a página da wikipedia, esse kernel (matriz laranja) é deslocado por toda a função (matriz verde) .
retirado do link que @Hobbes faz referência. Você notará que não há inversão do kernel como fizemos no cálculo explícito da convolução acima. É uma questão de notação, como a @Media aponta. Isso deve ser chamado de correlação cruzada. No entanto, computacionalmente essa diferença não afeta o desempenho do algoritmo porque o kernel está sendo treinado de forma que seus pesos sejam mais adequados para a operação, portanto, a adição da operação flip simplesmente faria o algoritmo aprender os pesos em diferentes células do kernel para acomodar o flip. Para que possamos omitir o flip.
Sim, eles estão relacionados. Como exemplo, considere a suavização gaussiana (en.wikipedia.org/wiki/Gaussian_blur), que é uma convolução com um núcleo de valores gaussianos. Uma CNN aprende os pesos dos filtros (por exemplo, kernels) e, portanto, pode aprender a executar a suavização, se necessário.
Embora CNN
signifique redes neurais convolucionais, o que eles fazem é denominado correlação cruzada em matemática e não convolução. Dê uma olhada aqui .
Agora, antes de prosseguir, há um comentário técnico que quero fazer sobre correlação cruzada versus convoluções e apenas pelos fatos o que você deve fazer para implementar redes neurais convolucionais. Se você estiver lendo um livro de matemática diferente ou um livro de processamento de sinais, há uma outra inconsistência possível na notação: se você olhar para o livro de matemática típico, a maneira como a convolução é definida antes de executar o produto e a soma do elemento Y, há na verdade, mais um passo ...