- This topic has 1 reply, 2 voices, and was last updated 2 years, 7 months ago by .
Viewing 2 posts - 1 through 2 (of 2 total)
Viewing 2 posts - 1 through 2 (of 2 total)
- You must be logged in to reply to this topic.
Home › Forums › Fórum Inteligência Artificial e Machine Learning: O Guia Completo › Redes Neuras e Deep Learning – Ajustes do Backpropagation
Olá,
Estou tentar criar em python o algoritmo de MLP com backpropagation no entanto notei divergências entre explicações na internet e algumas coisas que estão me deixando confuso.
Na vídeo aula fala sobre o gradiente mas nao mostra o calculo dele. No calculo dos novos pesos nao leva em consideração o gradiente e por isso estou bem confuso do qual é correto.
Vamos supor que eu tenho uma camada de entrada com dois inputs, x1 e x2. Uma cada oculta com 2 neurônios e uma camada de saída com um neurônio:
Ao fazer o feedforward e chegar na camada de saída, após calcular o delta da camada de saída com delta saida = loss * derivada da funcao ativacao
eu não deveria calcular o gradiente? se sim o gradiente neste caso seria gradiente = delta camada de saida * (resultado da activation function da camada oculta)
Atualizaria o pesos entre a camada oculta e a camada de saida, que ficaria w = w – (learning rate * gradiente)
dai recalculo o delta da camada oculta, com base no delta da camada de saida como: delta oculta = pesos da camada oculta para saida (calculado anteriormente) * delta camada saida * derivada da funcao ativaçao
calculo o gradiente da camada oculta = delta camada oculta * função ativaçao anteiro (no caso os inputs x1 e x2)
recalculo os pesos da camada de entrada com a camada oculta como w = w – (learning rate * gradiente camada oculta)
Olá, Thiago!
No cálculo que é mostrado no curso é considerado o gradiente e é feito “junto” com a derivada para ficar de forma mais simplificada. Existem várias maneiras para fazer o cálculo e em geral elas dão resultados bem similares. Sugiro fazer os testes/comparativos com as duas abordagens
Jones