- This topic has 2 replies, 2 voices, and was last updated 4 years, 9 months ago by .
Viewing 3 posts - 1 through 3 (of 3 total)
Viewing 3 posts - 1 through 3 (of 3 total)
- You must be logged in to reply to this topic.
Home › Forums › Fórum Redes Neurais Artificiais em Python › Implementação rede multicamada VIII
Boa noite, estou tendo um erro durante a aula que está no título, no final, na parte de mudar os valores do pesos1 o algoritmo está criando outros valores. Testei a formula utilizando uma outra variável e ela dá os valores certos que foram calculados na aula teórica.
camadaOcultaTransposta = camadaOculta.T
pesosNovo1 = camadaOcultaTransposta.dot(deltaSaida)
teste1 = (pesos1 * momento) + (pesosNovo1 * taxaAprendizagem) # assim teste1 fica com os valores corretos
pesos1 = (pesos1 * momento) + (pesosNovo1 * taxaAprendizagem) # assim os valores ficam muito diferentes
pesos1 = teste1 # também ocorre o mesmo erro. Nesse caso ambas as variáveis ficam com o mesmo valor.
esses são os valores que resultam se eu tento mudar os valores do pesos1.
0.288279
-0.742863
0.281382
o que deveria ser é
-0.00711903
-0.886424
0.154326
Mudei o valor das epocas que estava 100 (igual ao do professor) para 1 e funcionou… Mas não sei se não vai afetar quando for completando o algoritmo… Aguardo alguma ajuda.
Olá Veirich, segue a resposta do instrutor Denny:
O que eu acredito que aconteceu é que, como a variável pesos1 está sendo atualizada dentro do loop, então no final da execução o resultado representa essas 100 atualizações. Já usando a variável teste1, não há esta atualização, a cada iteração você está simplesmente recalculando o mesmo valor. Se você muda o número de épocas para 1, faz a atualização apenas uma vez, e é por isso que o valor fica igual ao que você está comparando com a aula, e igual ao de teste1. Mas pode ficar tranquilo que o algoritmo está funcionando adequadamente, estas atualizações consecutivas são esperadas e até necessárias para que a rede neural seja treinada.
Fabio