Uma rede com camadas escondidas resolve o XOU. Falta treinar. E aqui mora o problema que travou a área por quase duas décadas: quando a saída erra, de quem é a culpa?
A saída depende dos neurônios escondidos, que dependem dos pesos da primeira camada. Mexer num peso lá no começo muda tudo que vem depois. Testar peso por peso seria lento demais numa rede de verdade.
O backpropagation (retropropagação) resolve isso com uma ideia do cálculo, a regra da cadeia. O erro sai da ponta e volta pela rede, camada por camada. Em cada peso que passa, calcula o quanto aquele peso contribuiu para o erro. Com essa conta na mão, todo peso dá um passo de descida do gradiente ao mesmo tempo.
Fase 1 de 4
Para frente
A entrada passa pela rede. Cada neurônio soma o que chega, multiplicado pelos pesos, e espreme o resultado entre 0 e 1.
Erro nos 4 exemplos
0,511
- 00→0,56
- 01→0,53
- 10→0,49
- 11→0,46
DesafioTreine a rede até ela acertar os 4 casos do XOU.
As quatro fases, de novo, em palavras
Para frente. Os números de entrada passam pela rede. Cada neurônio escondido soma o que chega e espreme o resultado entre 0 e 1. A bolinha roxa de cada círculo mostra esse valor.
O erro. A saída é comparada com a resposta certa. No começo, a rede chuta perto de 0,5 para tudo.
Para trás. As linhas ficam vermelhas e mudam de espessura: agora a grossura é a culpa de cada peso. A culpa de um peso escondido depende de três coisas: o erro lá na saída, o peso que liga aquele neurônio à saída, e o quanto aquele neurônio estava "sensível" naquele momento.
Ajuste. Cada peso anda um passo contra a própria culpa. Depois vem o próximo exemplo.
Quando você aperta "Treinar sozinho", a rede repete essas fases nos quatro exemplos, centenas de vezes. O erro cai devagar, trava num platô, e de repente despenca. Esse platô é comum: a rede demora a "descobrir" que precisa usar os neurônios escondidos de jeitos diferentes.
Dica do ProdBot
Aperte "Do zero" e treine de novo. Ela sempre chega ao mesmo resultado porque começa dos mesmos pesos. Em modelos reais, cada treino começa de pesos sorteados, e dois treinos iguais podem dar modelos um pouco diferentes.
Glossário da aula
- Backpropagation
- O jeito de calcular, de uma vez, a culpa de cada peso no erro, voltando da saída para a entrada.
- Época
- Uma volta por todos os exemplos de treino.
- Camada escondida
- Neurônios entre a entrada e a saída. Você não vê o que eles calculam, mas é ali que a rede monta as próprias regras.
Confere rapidinho
Na fase “para trás”, por que a linha de um peso fica mais grossa que a de outro?
