Um Pouco Sobre Épocas e Treinamento de uma Rede Neural

Agora que fizemos uma breve introdução ao modelo Perceptron, temos um pouco mais de conhecimento sobre o neurônio artificial. Vamos começar a explorar o funcionamento de uma rede neural artificial.

Dentro de machine learning (aprendizado de máquina), existe um subconjunto chamado deep learning. As redes neurais são parte dessa área de estudo na matéria IA.

Vamos começar imaginando que uma rede neural é composta por neurônios artificiais. Começamos, então, a perceber que estes neurônios artificiais são interconectados, “alimentados” pelos dados de entrada e movendo-se para uma única direção.

Então, podemos pegar um conjunto de neurônios artificiais, organizá-los em camadas, e mostrar os dados a essa rede neural. A partir daí, a rede poderá começar a aprender sobre esses dados, através da extração de suas características.

A partir deste conceito, abordaremos no presente artigo o treinamento da rede. Coisas como gradiente estocástico, funções de ativação, backprogation… que estão relacionados com a rede neural artificial, discutiremos nos próximos conteúdos.

Épocas

Existem algumas técnicas com base matemática, que veremos em detalhes em outros artigos, que quando usadas em conjunto produzem o resultado que chamamos de aprendizado da rede. Podemos recordar que a entrada da rede possui pesos e estes números são inicializados aleatoriamente. No processo de aprendizagem, esses números são atualizados; neste processo, os pesos são ajustados para o valor ideal.

Vamos imaginar que separamos nossos dados e definimos uma rede neural com duas camadas, cada camada com dois neurônios artificiais. Ao estimular a rede neural com uma entrada, os valores dos pesos são aleatórios, ou seja, não correspondem muito com as características da classe que queremos.

Assim, fazemos esse processo em épocas. Os pesos são atualizados a cada vez que a rede neural é estimulada. Não se conhece uma definição de um número padrão de épocas para uma rede neural – cada caso deve ser estudado para estimar o número de épocas mais apropriado.

Em analogia, quando fazemos um loop em java ou em qualquer outra linguagem, vamos percorrer a lista de dados. Se uma lista tiver dez elementos, daremos dez voltas pelo loop.

Digamos que, para um determinado problema, identificamos que precisaremos de dez épocas. Os dados de entrada passarão pela rede neural dez vezes e a cada vez, os pesos serão atualizados na direção do ideal, o mais próximo das características que queremos que a nossa rede neural aprenda.

Podemos dizer, usando a analogia acima, que as épocas são o número de vezes que vamos exibir os dados para rede neural, esperando que o resultado nos apresente um conjunto de pesos bem ajustados com as características que queremos.

 

Treinamento

O processo de treinamento ocorre a cada volta ou a cada época. Durante a época, o processo de atualização dos pesos na direção do ideal, a minimização de erros, etc. é repetido a cada vez.

Depois de rodar todas as épocas, teremos um modelo treinado, que aprendeu características sobre os dados apresentados. Portanto, ao exibir uma nova informação para essa rede, que esteja dentro da classe em que o modelo foi treinado, espera-se que esse modelo tenha capacidade de nos dizer se a informação apresentada faz ou não parte da classe esperada.

Temos agora um entendimento conceitual sobre épocas e treinamento – nada técnico, por enquanto. Uma vez posto que o treinamento da rede neural e o aprendizado da rede neural se dá através de épocas, nos próximos artigos examinaremos com mais detalhes, em um caráter mais técnico, o que ocorre durante as épocas e o processo de treinamento.

 

Referências

https://news.mit.edu/2017/explained-neural-networks-deep-learning-0414