Estou estudando redes neurais convolucionais (CNNs) devido a suas aplicações em visão computacional. Já conheço as redes neurais padrão de feed-forward, por isso espero que algumas pessoas aqui possam me ajudar a dar um passo extra na compreensão das CNNs. Aqui está o que penso sobre as CNNs:
- Nas NNs tradicionais de feed-forward, temos dados de treinamento em que cada elemento consiste em um vetor de característica que inserimos no NN na "camada de entrada", portanto, com o reconhecimento de imagem, poderíamos ter cada pixel como uma entrada. Esses são nossos vetores de recursos. Como alternativa, poderíamos criar manualmente outros vetores de recursos, provavelmente menores.
- A vantagem da CNN é que ela pode gerar vetores de características mais fortes e mais invariantes à distorção e posição da imagem. Como mostra a imagem a seguir ( deste tutorial ), as CNNs geram mapas de recursos que são alimentados em uma rede neural padrão (na verdade, é uma etapa gigante de pré-processamento).
- A maneira como obtemos esses recursos "melhores" é alternando convolução e subamostragem. Entendo como funciona a subamostragem. Para cada mapa de recursos, basta pegar um subconjunto de pixels, ou podemos calcular a média dos valores dos pixels.
Mas o que mais me deixa confuso é como a etapa de convolução funciona. Conheço as convoluções da teoria das probabilidades (densidade para a soma de duas variáveis aleatórias), mas como elas funcionam nas CNNs e por que são eficazes?
Minha pergunta é semelhante a esta, mas em particular, não sei por que o primeiro passo da convolução funciona.
fonte
Não faço ideia do que você quer dizer com "por que o primeiro passo da convolução funciona". Para que uma CNN seja bem-sucedida, ela precisa ter muitas camadas. Uma das idéias fundamentais por trás da CNN e muitas outras abordagens de aprendizado profundo é que sinais maiores podem ser identificados pela correlação espacial de suas partes menores, que podem ser escassamente representadas. Em outras palavras, as imagens podem parecer complexas, mas são criadas a partir de uma combinação de apenas algumas partes básicas. Para a visão computacional, a estrutura da linha de base nas imagens geralmente é composta de bordas e cantos. A CNN tenta explorar a escassez da estrutura em uma imagem procurando estruturas localizadas comuns. É isso que a primeira camada da CNN está tentando determinar. Pense em uma convolução como um filtro de correspondência que procura sinais que correspondam a um modelo específico. O quão bem ele funciona depende dos dados disponíveis. Felizmente, o mundo está cheio de repetições em pequena escala, de modo que a CNN funciona bem para tarefas de visão computacional.
fonte
Este vídeo explica bem o básico da convolução.
fonte