Aprendizado profundo: como funciona? Parte 1

Neste artigo, você aprenderá





-Qual é a essência do aprendizado profundo -Quais são



as funções de ativação



-O que é FCNN



-Quais as tarefas que o FCNN pode resolver -Quais



são as desvantagens do FCNN e como lidar com elas




Pequena introdução



Este é o início de uma série de artigos sobre o que são tarefas em EAD, redes, arquiteturas, princípios de trabalho, como certas tarefas são resolvidas e por que uma é melhor que a outra.



Que habilidades preliminares são necessárias para entender tudo? É difícil dizer, mas se você souber pesquisar no Google ou fazer perguntas corretamente, tenho certeza de que minha série de artigos o ajudará a entender muito.



Qual é o objetivo do aprendizado profundo?



O resultado final é construir algum algoritmo que receba X como entrada e preveja Y. Se escrevermos o algoritmo de Euclides para encontrar GCD, apenas escreveremos ciclos, condições, atribuições e isso é tudo - sabemos como construir esse algoritmo. E como construir um algoritmo que pega uma imagem como entrada e diz um cachorro ou um gato? Ou absolutamente nada? E o algoritmo, com o qual apresentamos o texto e queremos saber - de que gênero é? É tão fácil escrever ciclos e condições com canetas - aqui as redes neurais, o aprendizado profundo e todos esses chavões vêm ao resgate.



Mais formalmente e um pouco sobre funções de ativação



Falando formalmente, queremos construir uma função a partir de uma função a partir de uma função ... a partir do parâmetro de entrada X e os pesos de nossa rede W, o que nos daria algum resultado. É importante notar aqui que não podemos simplesmente tomar muitas funções lineares, uma vez que superposição de funções lineares - função linear. Então, qualquer rede profunda é análoga a uma rede com duas camadas (entrada e saída). Por que precisamos da não linearidade? Nossos parâmetros, que queremos aprender a prever, podem depender não linearmente dos dados de entrada. A não linearidade é alcançada usando diferentes funções de ativação em cada camada.



Redes neurais totalmente conectadas (FCNN)



Apenas uma rede neural totalmente conectada. É mais ou menos assim:



imagem



O resultado final é que cada neurônio de uma camada está conectado a cada neurônio da próxima e da anterior (se houver).



A primeira camada é a entrada. Por exemplo, se quisermos alimentar uma imagem 256x256x3 para a entrada de tal rede, então precisamos exatamente 256x256x3 neurônios na camada de entrada (cada neurônio receberá 1 componente (R, G ou B) de um pixel). Se quisermos mostrar a altura de uma pessoa, seu peso e mais 23 características, precisamos de 25 neurônios na camada de entrada. O número de neurônios na saída - o número de recursos que queremos prever. Pode ser 1 recurso ou todos os 100. No caso geral, pela camada de saída da rede, pode-se quase certamente dizer qual problema ela resolve.



Cada conexão entre neurônios é um peso treinado pelo algoritmo de retropropagação, sobre o qual escrevi aqui .



Que tarefas o FCNN pode resolver?



-Problema de regressão . Por exemplo, prever o valor de uma loja com base em alguns critérios de entrada, como país, cidade, rua, trânsito, etc.



-Problema de classificação . Por exemplo, o clássico é a classificação MNIST.



-Não me comprometo a falar sobre a tarefa de segmentação e detecção de objetos usando FCNN. Talvez alguém compartilhe nos comentários :)



Desvantagens do FCNN



  1. Os neurônios de uma camada não possuem informações "comuns" (todos os pesos na rede são únicos).
  2. Um grande número de parâmetros treinados (pesos), se quisermos treinar a rede em fotografias.


O que fazer com essas desvantagens? Redes Neurais Convolucionais (CNN) estão bem. Este será meu próximo artigo.



Conclusão



Não vejo muito sentido em permanecer em redes neurais totalmente conectadas por muito tempo. Se alguém estiver interessado na própria implementação de tais redes, então aqui você pode ver e ler sobre minha implementação.



All Articles