Introdução aos algoritmos de aprendizagem profunda
O aprendizado profundo é um passo para se aproximar da Inteligência Artificial, que pode tomar decisões como o cérebro humano, ou seja, ter a capacidade de aprender por tentativa e erro, assim como os humanos. O cérebro humano possui bilhões de neurônios (cerca de 86 bilhões; fonte: Wikipedia). Com os neurônios artificiais, o aprendizado profundo também está ajudando a imitar a mente humana. Para processar as informações e tomar a decisão através de redes neurais artificiais, existem alguns algoritmos, chamados algoritmos de aprendizado profundo. Algoritmos aprendem em cada camada progressivamente, ie; mais valor é adicionado a partir dos recursos na próxima camada. Um modelo de aprendizado profundo pode se ajustar demais se os dados forem pequenos, incompletos ou simples demais. Os algoritmos de aprendizado profundo são eficazes quando os dados são vastos.
Algoritmos de Aprendizagem Profunda
Para criar um modelo de aprendizado profundo, é preciso escrever vários algoritmos, combiná-los e criar uma rede de neurônios. O aprendizado profundo tem um alto custo computacional. Para auxiliar modelos de aprendizado profundo, existem plataformas de aprendizado profundo como fluxo tensor, Py-Torch, Chainer, Keras, etc. No aprendizado profundo, tentamos replicar a rede neural humana por uma rede neural artificial, o neurônio humano é chamado de perceptron no modelo de aprendizagem profunda. Conectamos essas unidades de perceptron para criar uma rede neural, que possui 3 seções:
- Camada de entrada
- Camadas ocultas
- Camada de saída
Um perceptron possui nós de entrada (dendritos no cérebro humano), uma função de atuação para tomar pequenos nós de decisão e saída (axônio no cérebro humano). Veremos como um perceptron funciona, conectá-los criará um modelo de aprendizado profundo. As informações de entrada (número de variáveis / recursos de entrada) são atribuídas com algum peso e alimentadas à função de atuação. A função de atuação toma uma decisão e envia a saída. A saída desse perceptron será inserida em outros neurônios. Depois que o lote é processado, o erro de retropropagação é calculado em cada neurônio, com a ajuda de uma função de custo / entropia cruzada. Dessa maneira, os pesos de entrada são reatribuídos e todo o processo continua até que a entropia cruzada satisfaça a condição.
Temos diferentes funções de atuação, como funções sigmóides, função tangente hiperbólica, Unidade Linear Retificada (ReLU), para tomar uma pequena decisão. Um modelo de aprendizado profundo precisa de uma grande quantidade de dados para criar um bom modelo. Geralmente, um modelo com mais de 3 camadas ocultas é tratado como uma rede neural profunda. Basicamente, o aprendizado profundo é um conjunto de neurônios com vários parâmetros definidos para cada camada. Para criar o modelo Deep Learning, as arquiteturas populares são RNN, CNN, etc.
Métodos arquitetônicos para algoritmos de aprendizado profundo
Para construir essa arquitetura, os seguintes algoritmos são usados:
1. Propagação das costas
Neste algoritmo, calculamos derivadas parciais. Em geral, o método de descida de gradiente para otimização, derivadas (gradientes) são calculados a cada iteração. No aprendizado profundo, as funções não são simples, são a composição de diferentes funções. Nesse caso, é difícil calcular gradientes, portanto, usamos diferenciação aproximada para calcular derivadas. Quanto mais o número de parâmetros, mais cara será a diferenciação aproximada.
2. Descida de gradiente estocástico
Na descida do gradiente, o objetivo é encontrar mínimos globais ou a solução ideal. Mas para conseguir isso, temos que considerar soluções mínimas locais (não desejáveis) também. Se a função objetivo é uma função convexa, é fácil encontrar os mínimos globais. O valor inicial da função e a taxa de aprendizado são parâmetros decisivos para encontrar mínimos globais. Isso pode ser facilmente entendido considerando-se um rio que sai do topo da montanha e está procurando um sopé (mínimos globais). Mas, no caminho, haverá alguns altos e baixos (mínimos locais) que devem ser evitados. O ponto e a velocidade de origem do rio (valor inicial e taxa de aprendizado no nosso caso) são fatores decisivos para encontrar mínimos globais.
3. Taxa de Aprendizagem
A taxa de aprendizado é semelhante à velocidade do rio, pode reduzir o tempo de treinamento e aumentar o desempenho. Em geral, para aprender qualquer técnica / esporte, no início, a taxa de aprendizado é relativamente alta do que no final, quando se deve dominá-lo. Após o estágio intermediário, o aprendizado será lento, o foco estará no ajuste fino. O mesmo se aplica à aprendizagem profunda. Alterações muito grandes são abordadas por uma taxa de aprendizagem mais alta e pela diminuição lenta da taxa de aprendizagem posteriormente para o ajuste fino.
4. Normalização de lote
Na aprendizagem profunda, o valor inicial do peso (escolhido aleatoriamente) e a aprendizagem, a taxa é definida para um mini-lote. No começo, haveria muitos outliers e, durante a retropropagação, esses outliers devem ser compensados para calcular os pesos para obter a saída. Essa compensação resulta em épocas extras. Portanto, para evitá-lo, usamos a normalização em lote.
5. Abandono
No aprendizado profundo, geralmente encontramos o problema de sobreajuste. O super ajuste em redes grandes com vários parâmetros dificulta a previsão dos dados de teste. Portanto, para evitar o uso do método de desistência, que descarta unidades aleatórias durante o treinamento, criando diferentes 'redes reduzidas'. Ao testar as previsões dessas redes reduzidas, é calculada a média, o que ajuda a evitar o ajuste excessivo.
6. Saco de Palavras
Usamos um pacote contínuo de palavras para prever a próxima palavra. Por exemplo, vemos por e-mail escrevendo que a sugestão automática para completar a frase faz parte da PNL. Isso é feito considerando-se muitas frases e para uma palavra específica em torno das palavras capturadas. Essas palavras específicas e as palavras ao redor são alimentadas à rede neural. Após o modelo de treinamento, ele pode prever a palavra específica com base nas palavras ao redor.
7. Memória de longo prazo
O LSTM é muito útil em problemas de previsão de sequência, como tradução de idiomas, previsão de vendas e localização do preço das ações. O LSTM tem vantagem sobre outras técnicas porque é capaz de considerar dados anteriores. O LSTM faz modificações pelo mecanismo de estados da célula. Lembra de esquecer as coisas. Os três aspectos principais do LSTM destacam-se de outras técnicas de aprendizado profundo. Primeiro é quando o neurônio deve ter entrada, segundo quando lembrar os dados anteriores e o que esquecer e terceiro é quando passar a saída.
Conclusão
Um modelo de aprendizado profundo é um passo em direção à replicação da mente humana. Em vez de neurônios biológicos, o aprendizado profundo usa uma rede neural artificial. O aprendizado profundo tem alto custo computacional, que pode ser diminuído pelo uso de estruturas de aprendizado profundo, como fluxo tensor e Py-Torch etc. RNN, CNN são métodos arquitetônicos para modelos de aprendizado profundo. Diferentes algoritmos de aprendizado profundo usados nessas arquiteturas são discutidos neste artigo.
Artigos recomendados
Este é um guia para Algoritmos de Aprendizagem Profunda. Aqui discutimos os métodos de arquitetura para algoritmos de aprendizado profundo, além de camadas. Você também pode consultar nossos outros artigos sugeridos para saber mais -
- Introdução aos algoritmos de aprendizado de máquina
- As 14 principais aplicações do Machine Learning
- Inteligência Artificial vs Aprendizado de Máquina vs Aprendizado Profundo
- As 13 principais perguntas e respostas úteis da entrevista de aprendizado profundo