Para criar uma rede neural que aprende não linearidades, comece com a seguinte estrutura de modelo familiar: um modelo linear do formato $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.
Podemos visualizar essa equação como mostrado abaixo, onde $x_1$, $x_2$ e $x_3$ são nossos três nós de entrada (em azul) e $y'$ é nosso nó de saída (em verde).
Exercício 1
No modelo acima, o peso e valores de viés foram aleatoriamente inicializado. Execute as tarefas a seguir para se familiarizar com o e conhecer o modelo linear. Você pode ignore o menu suspenso Função de ativação por enquanto; vamos discutir isso mais adiante no módulo.
Clique no botão Reproduzir (▶️) acima da rede para calcular o valor de o nó de saída para os valores de entrada $x_1 = 1.00$, $x_2 = 2.00$ e US$ x_3 = US$ 3,00.
Clique no segundo nó camada de entrada e aumentar o valor de 2,00 para 2,50. Observe que o valor do nó de saída muda. Selecione a saída nós (em verde) e reveja o painel Cálculos para ver como o resultado foi calculado.
Clique no nó de saída (em verde) para ver o peso ($w_1$, $w_2$, $w_3$) e parâmetros de viés ($b$). Diminuir o valor do peso para $w_3$ (novamente, observe que o valor do nó de saída e os cálculos abaixo foram alterados). Em seguida, aumente o valor do viés. Confira como essas mudanças afetaram a saída do modelo.
Como adicionar camadas à rede
Observe que quando você ajustou os valores de peso e de viés da rede no Exercício 1, que não alterou a lógica matemática geral relação entre entrada e saída. Nosso modelo ainda é linear.
Mas e se adicionarmos outra camada à rede, entre a camada de entrada e à camada final? Na terminologia da rede neural, camadas adicionais entre as camadas de entrada e de saída são chamadas camadas escondidas e os nós nessas camadas são chamadas neurônios.
O valor de cada neurônio na camada escondida é calculado da mesma forma que o saída de um modelo linear: pegue a soma do produto de cada uma das entradas (os neurônios na camada de rede anterior) e um parâmetro de peso exclusivo, além do viés. Da mesma forma, os neurônios da camada seguinte (aqui, a camada final) são calculados usando os valores dos neurônios da camada escondida como entradas.
Essa nova camada escondida permite que o modelo recombine os dados de entrada usando outro conjunto de parâmetros. Isso pode ajudar nosso modelo a aprender relações não lineares?
Exercício 2
Adicionamos ao modelo uma camada escondida contendo quatro neurônios.
Clique no botão Reproduzir (▶️) acima da rede para calcular o valor de os quatro nós da camada escondida e o nó de saída para os valores de entrada $x_1 = 1,00$, $x_2 = 2,00$ e $x_3 = 3,00$.
Depois, analise o modelo e use-o para responder às perguntas a seguir.
Tente modificar os parâmetros do modelo e observe o efeito no valores de nó de camada escondida e o valor de saída (é possível revisar o Confira o painel "Cálculos" abaixo para conferir como esses valores foram calculada).
Esse modelo pode aprender não linearidades?
Se você clicar em cada um dos nós na camada escondida e revisar cálculos abaixo, você verá que todos eles são lineares incluindo operações de multiplicação e adição.
Se você clicar no nó de saída e revisar o cálculo abaixo, verá que esse cálculo também é linear. Linear os cálculos realizados na saída de cálculos lineares são também linear, o que significa que este modelo não pode aprender não linearidades.