Relação entre convolução em matemática e CNN


10

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 gque aplica peso?



É exatamente isso que estou lendo e vejo a partir daí que a convolução na CNN é uma operação de matriz. E convolução "funcional" nunca é usada lá? Portanto, são apenas duas operações diferentes com o mesmo nome?
Vladimir

2
Possivelmente, a diferença que você está vendo está entre visões discretas e contínuas de convolução - é essencialmente a mesma operação, mas deve ser realizada de maneira diferente nesses dois espaços diferentes. CNNs usam convoluções discretas. E eles fazem isso apenas porque é uma maneira conveniente de expressar a matemática das conexões (isso se aplica em ambas as direções - é uma conveniência matemática dada o design e é provável que um dos motivos pelo qual esse design seja popular porque ele mapeia perfeitamente para um poço função -entendida já utilizado em processamento de sinal)
Neil Slater

Respostas:


2

Usando a notação da página da Wikipedia, a convolução em uma CNN será o kernel g dos quais aprenderemos alguns pesos para extrair as informações necessárias e, talvez, aplicar uma função de ativação.

Convoluções discretas

Na página da Wikipedia, a convolução é descrita como

(fg)[n]=m=-infinff[m]g[n-m]

Por exemplo, assumindo que é a função e é a função de convolução ,umafbg

insira a descrição da imagem aqui

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 ,b-mnnn=0 0

c[0 0]=muma[m]b[-m]=0 00,25+0 00,5+11+0,50 0+10 0+10 0=1

c[1]=muma[m]b[-m]=0 00,25+10,5+0,51+10 0+10 0=1

c[2]=muma[m]b[-m]=10,25+0,50,5+11+10 0+10 0=1.5

c[3]=muma[m]b[-m]=10 0+0,50,25+10,5+11=1.625

c[4]=muma[m]b[-m]=10 0+0,50 0+10,25+10,5+0 01=0,75

c[5]=muma[m]b[-m]=10 0+0,50 0+10 0+10,25+0 00,50 01=0,25

Como você pode ver, é exatamente isso que obtemos no gráfico . Então trocamos a função pela função .c[n]b[n]uma[n]

Convolução discreta 2D

Por exemplo, se tivermos a matriz em verde

insira a descrição da imagem aqui

com o filtro de convolução

insira a descrição da imagem aqui

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) .gf

insira a descrição da imagem aqui

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.g


1

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.


1

Embora CNNsignifique 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 ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.