Propagation avant

Forward propagation, feed forward NN.

Motivation

Reconnaissance de formes, etc.

Analyse

La propagation avant consiste à calculer :

Conception

Comme nous disposons potentiellement de K sorties, nous devons minimiser le coût de (hΘ(x))i (ième sortie) via une fonction de coût similaire à celle utilisée pour la régression logistique, mais pour K sorties (y). Idem pour la fonction de régularisation.

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 :