Noções básicas sobre os conceitos de aprendizado profundo
No cérebro, você tem células nervosas chamadas neurônios, que estão conectadas entre si por extensões nervosas que passam sinais eletroquímicos pela rede.
Quando o primeiro neurônio da rede é estimulado, o sinal de entrada é processado. Se ele excede determinado limite, o neurônio é ativado e passa o sinal para os outros neurônios aos quais está conectado. Esses neurônios, por sua vez, podem ser ativados e passar o sinal para o restante da rede. Ao longo do tempo, as conexões entre os neurônios são reforçadas pelo uso frequente à medida que você aprende a responder com eficiência. Por exemplo, se for apresentado a imagem de um pinguim a você, suas conexões de neurônios permitem processar as informações da imagem e seu conhecimento das características de um pinguim para identificá-lo como tal. Ao longo do tempo, se for apresentado várias imagens de diversos animais a você, a rede de neurônios envolvida na identificação dos animais com base nas características deles ficará mais forte. Em outras palavras, você melhora ao identificar com precisão diferentes animais.
O aprendizado profundo emula esse processo biológico usando redes neurais artificiais que processam entradas numéricas em vez de estímulos eletroquímicos.
As conexões nervosas que ocorrem são substituídas por entradas numéricas normalmente identificadas como x. Quando há mais de um valor de entrada, x é considerado um vetor com elementos chamados x1, x2 e assim por diante.
Associado a cada valor x está um weight (w), que é usado para fortalecer ou enfraquecer o efeito do valor x para simular o aprendizado. Além disso, uma entrada bias (b) é adicionada para permitir um controle refinado sobre a rede. Durante o processo de treinamento, os valores w e b são ajustados para que a rede possa "aprender" a produzir resultados corretos.
O próprio neurônio encapsula uma função que calcula uma soma ponderada de x, w e b. Por sua vez, essa função é colocada em uma função activation que restringe o resultado (geralmente para um valor entre 0 e 1) a fim de determinar se o neurônio passa ou não uma saída para a próxima camada de neurônios na rede.
Como treinar um modelo de aprendizado profundo
Os modelos de aprendizado profundo são redes neurais que consistem em várias camadas de neurônios artificiais. Cada camada representa um conjunto de funções que são executadas nos valores x com pesos w associados e desvios b, e a camada final resulta em uma saída do rótulo y que o modelo prevê. No caso de um modelo de classificação (que prevê a categoria ou a classe mais provável para os dados de entrada), a saída é um vetor que contém a probabilidade para cada classe possível.
O diagrama a seguir representa um modelo de aprendizado profundo que prevê a classe de uma entidade de dados com base em quatro recursos (os valores x). A saída do modelo (os valores y) é a probabilidade de cada um dos três rótulos de classe possíveis.
Para treinar o modelo, uma estrutura de aprendizado profundo alimenta vários lotes de dados de entrada (para os quais os valores de rótulo reais são conhecidos), aplica as funções em todas as camadas de rede e mede a diferença entre as probabilidades de saída e os rótulos de classe conhecidos reais dos dados de treinamento. A diferença agregada entre as saídas de previsão e os rótulos reais é conhecida como perda.
Após o cálculo da perda agregada para todos os lotes de dados, a estrutura de aprendizado profundo usa um otimizador para determinar como os pesos e desvios no modelo devem ser ajustados para reduzir a perda geral. Depois, esses ajustes são propagados de volta para as camadas no modelo de rede neural e, em seguida, os dados são transmitidos pela rede novamente e a perda é recalculada. Esse processo se repete várias vezes (cada iteração é conhecida como uma época) até que a perda seja minimizada e o modelo tenha "aprendido" os pesos e os desvios certos para conseguir fazer uma previsão precisa.
Durante cada época, os pesos e os desvios são ajustados para minimizar a perda. O valor pelo qual eles são ajustados é controlado pela taxa de aprendizagem especificada para o otimizador. Se a taxa de aprendizagem for muito baixa, o processo de treinamento poderá levar muito tempo para determinar os valores ideais. Porém, se for muito alta, o otimizador poderá nunca encontrar os valores ideais.