Fazendo uma rede neural simples

Keno Leon Blocked Unblock Seguir Seguindo 9 de abril de 2017

O que estamos fazendo? Vamos tentar fazer uma Rede Neural simples e mínima que iremos explicar e treinar para identificar alguma coisa , haverá pouca ou nenhuma história ou matemática (toneladas dessas coisas por aí), ao invés disso eu tentarei ( e possivelmente falhar ) para explicar para você e eu principalmente com rabiscos e código, vamos começar.

Muitos termos da Rede Neural se originam e fazem mais sentido a partir de uma perspectiva biológica, então vamos começar do topo:

O cérebro é complexo, mas em geral pode ser dividido em algumas partes e operações básicas :

Estímulos também podem ser internos (como um percepto ou ideia) :

Vamos ver algumas partes básicas e simplificadas do cérebro :

O cérebro é surpreendentemente principalmente cabeamento.

O Neurônio é a unidade básica de computação no cérebro, ele recebe e integra sinais químicos de outros neurônios e, dependendo de vários fatores, não faz nada ou gera um sinal elétrico ou Potencial de Ação que, por sua vez, sinaliza outros neurônios conectados via sinapses:

Sonhos, memórias, idéias, movimentos auto-regulados, reflexos e tudo o que você pensa ou faz é gerado através desse processo: milhões, talvez bilhões de neurônios disparando a taxas diferentes e fazendo conexões que, por sua vez, criam diferentes subsistemas correndo paralelamente e criando uma rede neural biológica .

Isto é, naturalmente, tanto uma generalização quanto uma simplificação, mas agora podemos descrever uma rede neural biológica mínima:

E descreva de uma maneira formal com um gráfico:

Uma pequena explicação extra está em ordem, os círculos representam os neurônios e as conexões de linhas entre eles, para manter as coisas simples neste estágio, as conexões representam um movimento de informação para a frente da esquerda para a direita. O primeiro neurônio está disparando e está sombreado para indicar isso. Também é dado um número ( 1 quando está disparando e 0 quando não está). Os números entre os neurônios indicam o peso da conexão.

O gráfico acima representa um momento no tempo da rede, uma representação mais precisa seria dividida em segmentos de tempo:

Antes de fazer nossa rede neural, precisamos entender como os pesos afetam os neurônios e como os neurônios aprendem, vamos começar com um coelho (um coelhinho de teste) e um experimento de condicionamento clássico.

Quando submetidos a um sopro de ar inofensivo, coelhos como seres humanos geralmente piscam:

Podemos modelar esse comportamento com um gráfico simples:

Como no nosso gráfico anterior, este mostra apenas o momento em que o coelhinho está sentindo o sopro de ar, então estamos codificando o sopro em um valor booleano. Além disso, estamos agora calculando se o segundo neurônio dispara ou não com base no valor do peso, se o peso é 1 e o neurônio sensitivo está disparando, piscamos, nada abaixo de 1 não o fazemos ou, em outras palavras, nosso segundo neurônio tem um limiar de 1.

Vamos introduzir outro elemento, um tom auditivo inofensivo:

Podemos modelar a falta de interesse dos coelhos da seguinte maneira:

A única diferença é que o peso agora é Zero , então não haverá um coelho piscando, pelo menos não ainda, vamos treinar nosso coelhinho a piscar no comando misturando estímulos (o tom e o sopro de ar):

É importante que cada um desses eventos aconteça em uma época de tempo diferente , ou momentos no tempo, o gráfico ficaria assim:

O tom não faz nada, mas o sopro de ar ainda provoca uma resposta intermitente, o importante a ser observado aqui é que estamos indicando isso através dos pesos multiplicados pelos estímulos (em vermelho).

Aprender enquanto um comportamento complexo, pode ser simplificado por enquanto como a mudança incremental no peso entre os neurônios conectados em uma rede neural através do tempo.

Para treinar nosso coelho, teríamos que repetir o processo:

Os testes de coelho?

O gráfico para as primeiras 3 tentativas e o estado inicial ficaria assim:

Observe que os pesos para o tom aumentam após cada tentativa ( em re d), esse valor é arbitrário neste momento – escolhi 0,30, mas poderia ser qualquer coisa, até mesmo um número negativo. Até depois do 3º julgamento, temos o mesmo comportamento do coelho, mas depois do 4º julgamento, algo novo e surpreendente acontece … novo comportamento.

Nós removemos o sopro de ar, mas o coelho ainda pisca depois de ouvir o tom! A explicação para esse novo comportamento pode ser encontrada em nosso gráfico final:

Nós agora treinamos nosso coelho para reconhecer um tom e piscar.

Experimentos reais desse tipo podem levar cerca de 60 tentativas ao longo de algumas semanas ou mais para obter uma resposta.

Agora deixamos o mundo biológico de cérebros e coelhos e vamos adaptar um pouco do que aprendemos para fazer uma Rede Neural Artificial . A primeira coisa que faremos é tentar definir um problema simples.

Texto original em inglês.