Redes Neurais Artificiais #2 Propagations — Conceito Básico

Original article was published by Francke Peixoto on Deep Learning on Medium


Sigmoid:

∂Sigmoid(x)∂x=Sigmoid(x)×(1−Sigmoid(x))∂Sigmoid(x)∂x=Sigmoid(x)×(1−Sigmoid(x))

Code

Out[3]:

Text(0, 0.5, 'sigmóide')

ReLU:

∂ReLU(x)∂x={1,0,if x>0.otherwise.∂ReLU(x)∂x={1,if x>0.0,otherwise.

Code

Out[4]:

Text(0, 0.5, 'ReLU')

Uma ilustração de como uma rede neural retropropaga seu erro:

Code

Backpropagation da camada de saída para a camada oculta.Derivada da Cross Entropy Loss em relação a nossa saida: [[-1.56722456]]Derivada da Signóide de entrada (antes da função de ativação) da camada de saída: [[0.23093649]]Derivada das entradas da camada oculta (antes da função de ativação) 
em relação aos pesos da camada de saída: [[0.31 0.48 0.47 0.79]]
Chain Rule: [[-0.1121981 ]
[-0.17372609]
[-0.17010679]
[-0.28592418]]

Code

Backpropagation da camada oculta para a camada de saída.Derivada da Cross Entropy Loss em relação a entrada da camada oculta (após a função de ativação):
[[-0.07238587 -0.1085788 -0.21715761 -0.03619293]]
Derivada da ReLU de entrada (antes da função de ativação) da camada oculta:
[[1. 1. 1. 1.]]
Derivada das entradas da camada oculta (antes da função de ativação)
com os pesos da camada oculta: [[0.1 0.4 0.5]]
Chain Rule:
[[-0.00723859 -0.01085788 -0.02171576 -0.00361929]
[-0.02895435 -0.04343152 -0.08686304 -0.01447717]
[-0.03619293 -0.0542894 -0.1085788 -0.01809647]]

Code

Novos pesos obtidos após o processo do Backpropagation.w_ij:
[[0.10723859 0.21085788 0.42171576 0.30361929]
[0.52895435 0.44343152 0.78686304 0.91447717]
[0.23619293 0.6542894 0.4085788 0.81809647]]
w_jk:
[[0.3121981 ]
[0.47372609]
[0.77010679]
[0.38592418]]

Code

Agora é só prever a saída com os novos pesos.i: [[0.1 0.4 0.5]]Novos pesos da camada oculta:
[[0.10723859 0.21085788 0.42171576 0.30361929]
[0.52895435 0.44343152 0.78686304 0.91447717]
[0.23619293 0.6542894 0.4085788 0.81809647]]
Novos pessoas da camada de saída:
[[0.3121981 ]
[0.47372609]
[0.77010679]
[0.38592418]]
Calcular o produto escalar das entradas e dos pesos da camada oculta:
[[0.34040206 0.5256031 0.56120619 0.80520103]]
ReLU: [[0.34040206 0.5256031 0.56120619 0.80520103]]Produto escalar após ativação: [[1.09820002]]Sigmoid: [[0.74992269]]

🏆 E é isso, Acabou! 🤣
Você acabou de fazer os propagations mais famosos da Deep Learning!

https://www.kaggle.com/franckepeixoto/redes-neurais-artificiais-2-propagations

Referências: