Forward propagation, feed forward NN.
Motivation
Reconnaissance de formes, etc.
Analyse
La propagation avant consiste à calculer :
- pour chaque feature (j de 0 à n en incluant la feature de biais n° 0)
- sa valeur d'activation a(i)j=g(z(i)j) où z(i)j est la somme des nœuds (toujours en
commençant par le nœud de biais d'indice 0) de la couche précédente en entrée multipliés par leurs poids
Θ(i)i,j.
Exemples
"Et" logique
On définit des paramètres/poids générant la table de vérité du "et" logique :
Θ(1)=[−30,20,20]
ce qui donne :
hΘ(x)=g(−30+20x1+20x2)
et donc :
- si x1=0 et x2=0 alors g(−30+0+0)=g(−30)≈0
- si x1=0 et x2=1 alors g(−30+0+20)=g(−10)≈0
- si x1=1 et x2=0 alors g(−30+20+0)=g(−10)≈0
- si x1=1 et x2=1 alors g(−30+20+20)=g(10)≈1
(puisque g permet de produire des valeurs
tendant vers 0 ou 1 suivant que x est négatif ou positif)
"Ou" logique
On définit des paramètres/poids générant la table de vérité du "ou" logique :
Θ(1)=[−10,20,20]
ce qui donne :
hΘ(x)=g(−10+20x1+20x2)
et donc :
- si x1=0 et x2=0 alors g(−10+0+0)=g(−10)≈0
- si x1=0 et x2=1 alors g(−10+0+20)=g(10)≈1
- si x1=1 et x2=0 alors g(−10+20+0)=g(10)≈1
- si x1=1 et x2=1 alors g(−10+20+20)=g(30)≈1
"Non" logique
On définit des paramètres/poids générant la table de vérité du "non" logique :
Θ(1)=[10,−20]
ce qui donne :
hΘ(x)=g(10−20x1)
et donc :
- si x1=0 alors g(10−0)=g(10)≈1
- si x1=1 alors g(10−20)=g(−10)≈0
"Nor" logique
On définit des paramètres/poids générant la table de vérité du "ni l'un ni l'autre" (x1=x2=0) logique
:
Θ(1)=[10,−20,−20]
ce qui donne :
hΘ(x)=g(10−20x1−20x2)
et donc :
- si x1=0 et x2=0 alors g(10−0−0)=g(10)≈1
- si x1=0 et x2=1 alors g(10−20−0)=g(−10)≈0
- si x1=1 et x2=0 alors g(10−0−20)=g(−10)≈0
- si x1=1 et x2=1 alors g(10−20−20)=g(−30)≈0
Not(Xor)
On réutilise les paramètres/poids des exemples précédents :
- 1ʳᵉ couche :
- Le "et" : Θ(1)=[−30,20,20]
- Le "nor" : Θ(1)=[10,−20,−20]
donnent : Θ(1)=[−30202010−20−20]
- 2ᵉ couche : Le "ou" : Θ(2)=[−10,20,20]
on calcule alors le résultat des couches :
a(2)=g(Θ(1)⋅x)
a(3)=g(Θ(2)⋅a(2))
ce qui donne :
hΘ(x)=a(3)
Bibliothèques
Des exemples de libraries FNN sont :