Aprendizado profundo: como funciona? Parte 2

A parte 1 está aqui .



Neste artigo, você aprenderá



  • O que é CNN e como funciona
  • O que é um mapa de recursos
  • O que é pooling máximo
  • Funções de perda para várias tarefas de aprendizagem profunda


Pequena introdução



Esta série de artigos tem como objetivo fornecer uma compreensão intuitiva de como funciona o aprendizado profundo, quais são as tarefas, arquiteturas de rede, por que uma é melhor que a outra. Haverá poucas coisas específicas no espírito de "como implementá-lo". Entrar em cada detalhe torna o material muito complexo para a maioria do público. Já foi escrito sobre como funciona o gráfico de computação ou como funciona a retropropagação através de camadas convolucionais. E, o mais importante, está escrito muito melhor do que eu explicaria.



No artigo anterior, discutimos FCNN - o que é e quais são os problemas. A solução para esses problemas está na arquitetura de redes neurais convolucionais.



Redes Neurais Convolucionais (CNN)



Rede neural convolucional. É parecido com isto (arquitetura vgg-16):



imagem



Quais são as diferenças de uma rede totalmente em malha? As camadas ocultas agora têm uma operação de convolução.



É assim que a convolução se parece:



imagem



Nós apenas pegamos uma imagem (por enquanto - canal único), pegamos um kernel de convolução (matriz), consistindo em nossos parâmetros de treinamento, "sobrepomos" o kernel (geralmente 3x3) na imagem, realizamos a multiplicação por elemento de todos os valores de pixel da imagem que atingiu o kernel. Então, tudo isso é resumido (você também precisa adicionar o parâmetro de polarização - deslocamento) e obteremos alguns números. Este número é o elemento da camada de saída. Movemos esse núcleo ao longo de nossa imagem com algum passo (passo largo) e obtemos os próximos elementos. Uma nova matriz é construída a partir de tais elementos, e o próximo kernel de convolução é aplicado a ela (após aplicar a função de ativação a ela). No caso em que a imagem de entrada é de três canais, o kernel de convolução também é de três canais - um filtro.



Mas nem tudo é tão simples aqui. Essas matrizes que obtemos após a convolução são chamadas de mapas de características, porque armazenam algumas características das matrizes anteriores, mas em alguma outra forma. Na prática, vários filtros de convolução são usados ​​ao mesmo tempo. Isso é feito para "trazer" o máximo de recursos possível para a próxima camada de convolução. A cada camada da convolução, nossos recursos, que estavam na imagem de entrada, são apresentados cada vez mais em formas abstratas.



Mais algumas notas:



  • Após dobrar, nosso mapa de recursos fica menor (em largura e altura). Às vezes, para reduzir a largura e a altura mais fracas, ou para não reduzi-la de todo (mesma convolução), use o método de preenchimento de zero - preenchendo com zeros "ao longo do contorno" do mapa de recursos de entrada.
  • Após a camada convolucional mais recente, as tarefas de classificação e regressão usam várias camadas totalmente conectadas.


Por que é melhor do que FCNN



  • Agora podemos ter menos parâmetros treináveis ​​entre as camadas
  • Agora, quando extraímos características da imagem, levamos em consideração não apenas um único pixel, mas também pixels próximos a ele (identificando certos padrões na imagem)


Pooling máximo



Ele se parece com isto:



imagem



Nós "deslizamos" sobre nosso mapa de recursos com um filtro e selecionamos apenas os recursos mais importantes (em termos do sinal de entrada, como algum valor), diminuindo a dimensão do mapa de recursos. Também existe o agrupamento médio (ponderado), quando calculamos a média dos valores que caem no filtro, mas na prática é o agrupamento máximo que é mais aplicável.



  • Esta camada não tem parâmetros treináveis


Funções de perda



Alimentamos a rede X para a entrada, alcançamos a saída, calculamos o valor da função de perda, executamos o algoritmo de retropropagação - é assim que as redes neurais modernas aprendem (por enquanto, estamos falando apenas de aprendizagem supervisionada).



Diferentes funções de perda são usadas dependendo das tarefas que as redes neurais resolvem:



  • Problema de regressão . Geralmente, eles usam a função do erro quadrático médio (MSE).
  • Problema de classificação . Eles usam principalmente a perda de entropia cruzada.


Não consideramos outras tarefas ainda - isso será discutido nos próximos artigos. Por que exatamente tais funções para tais tarefas? Aqui você precisa inserir a estimativa de máxima verossimilhança e matemática. Quem se importa - eu escrevi sobre isso aqui .



Conclusão



Também quero chamar sua atenção para duas coisas usadas em arquiteturas de rede neural, incluindo as convolucionais - dropout (você pode ler aqui ) e normalização em lote . Eu recomendo fortemente a leitura.



No próximo artigo analisaremos as arquiteturas CNN, entenderemos porque uma é melhor que a outra.



All Articles