Académique Documents
Professionnel Documents
Culture Documents
de
NEURONES
A.M apsim.ma
1) Réseau de neurone naturel
*) Plusieurs neurones
La figure 2, représente les connexions entre plusieurs neurons naturels, le neurone 1 envoie les
informations, par ces dendrites qui représentent les sorties du neurone, aux synapses qui correspondent
aux entrées des autres neurones.
Page 2 sur 15
A.M apsim.ma
2) Neurone artificiel
2-1) Modèle
Un neurone artificiel, nommé : un perceptron, est inspiré du neurone naturel, la figure 3 représente un
modèle de représentation, le 1er perceptron apparait en 1956.
C
A
Exemple : Le modèle représente un neurone, d’entrées X1 et X2, et de sortie Z ; en plus d’un poids
W1 pour l’entrée X1, un poids W2 pour X2 et un poids b du noyau.
X1
W1
Z= X1*W1+X2*W2+b
Z
b
X2
W2
2-2-1) Introduction
Le signal envoyé par le neurone actuel de sortie Z, vers le neurone suivant doit être 1 ou 0, donc la
valeur de Z qui est quelconque, doit être converti en 0 ou 1, ce qui nécessite de rajouter une fonction
appelée : Fonction d’activation qui spécifie un seuil pour obtenir la sortie correspondante.
Page 3 sur 15
A.M apsim.ma
La figure 4, présente un modèle de neurone avec une fonction d’activation (Act.) de type Heaviside, le
résultat attendu est binaire (2 catégories).
Si z ≥0 ==> Y=1
Act.
b
A
Exemple 1 :
Z= X1*W1+X2*W2+b
X1
W1
z Y =1 si z >0
b Act.
X2 . Y=0 si z <0
W2
Exemple 2 : Calculer Y pour les 4 cas de X1 et X2 avec W1= 0,4 , W2= 0,5, b= -0,3
Dans le réseau artificiel quelques sorties nécessitent d’autres valeurs différentes de 0 et 1, par suite on
peut placer d’autres fonctions d’activation.
Page 4 sur 15
A.M apsim.ma
Page 5 sur 15
A.M apsim.ma
2-2-3) Fonction d’activation SIGMOIDE (probabilité)
1
Fonction d’activation Sigmoide est : 𝜎(𝑧) =
1+𝑒 −𝑧
Elle est appliquée au résultat Z du neurone, pour donner toujours un résultat binaire (0 ou 1) avec une
certaine probabilité, plus que la probabilité est grande plus le résultat est proche de la valeur 1.
Z= X1*W1+X2*W2+b
X1
W1
b z 1
Y =1 si 𝜎(𝑧)>0,5 ou P(Y=1) >50%
𝜎(𝑧) =
1 + 𝑒 −𝑧
X2 Y=0 si 𝜎(𝑧) < 0,5 ou P(Y=1) < 50%
W2
NB : Le résultat n’est pas loin de la limite de décision, On aura aussi P(Y=0) = 1- P(Y=1)= 48%
Page 6 sur 15
A.M apsim.ma
2-3) Fonction coût –LogLoss-
X1
W1
b z
1 σ(z)
X2 1 + 𝑒 −𝑧
W2
Z= X1*W1+X2*W2+b
1
𝜎(𝑧) =
1 + 𝑒 −𝑧
L’erreur est : 𝜀 = 𝑦 − 𝜎(z) pour y =1 et 𝜀 = 𝜎(z) pour y=0
y=1
σ(Z) ε
y=0
On a : 𝜎(z) donné par la probabilité par rapport à P(Y=1) donc la probabilité générale est donnée par la
formule de Bernouilli pour y=1 et y=0:
𝑜𝑛 𝑣é𝑟𝑖𝑓𝑖𝑒,
∗) 𝐶′𝑒𝑠𝑡 𝑢𝑛𝑒 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛 𝑛𝑜𝑛 𝑐𝑜𝑛𝑣𝑒𝑥𝑒, donc il existe plusieurs minimums locaux (dû à l’exponentielle
de la fonction d’activation), on conclut qu’on ne peut pas déterminer les paramètres qui minimisent la
fonction coût.
On utilise la descente du gradient pour déterminer les meilleurs paramètres W1, W2 et b qui
minimisent la fonction coût.
𝜕𝐿
𝑊1𝑡+1 = 𝑊1𝑡 − ∝. 𝜕𝑊1 ∝: 𝑡𝑎𝑢𝑥 (𝑣𝑖𝑡𝑒𝑠𝑠𝑒)𝑑 ′ 𝑎𝑝𝑝𝑟𝑒𝑛𝑡𝑖𝑠𝑠𝑎𝑔𝑒 𝑜𝑢 𝑙𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑟𝑎𝑡𝑒
𝜕𝐿
𝑊1 = 𝑊1− ∝.
𝜕𝑊1
𝜕𝐿
𝑊2 = 𝑊2− ∝.
𝜕𝑊2
Page 8 sur 15
A.M apsim.ma
𝜕𝐿
𝑏 = 𝑏− ∝.
𝜕𝑏
𝜕𝐿 𝜕𝐿 𝜕𝐿
Calcul de , ,
𝜕𝑊1 𝜕𝑊2 𝜕𝑏
𝜕𝐿 𝜕𝐿 𝜕𝜎 𝜕𝑍
= . .
𝜕𝑊1 𝜕𝜎 𝜕𝑍 𝜕𝑊1
Avec :
*) 𝑂𝑛 𝑎: 𝐿 = −1⁄𝑚 ∗ ∑𝑚
𝑖=1(𝑦𝑖 ∗ 𝑙𝑜𝑔(𝜎(𝑧𝑖 )) + (1 − 𝑦𝑖 ) ∗ log(1 − 𝜎(𝑧𝑖 )))
𝜕𝐿 𝑦 1−𝑦𝑖
𝐷𝑜𝑛𝑐 = −1⁄𝑚 ∗ ∑ ( 𝑖 − )
𝜕𝜎 𝜎(𝑧𝑖 ) 1−𝜎(𝑧𝑖 )
*) 𝑂𝑛 𝑎: 𝜎(𝑧) =
1
1+𝑒−𝑧
𝜕𝜎 +𝑒 −𝑍 1 + 𝑒 −𝑍 1 1 1
= = − = −
𝜕𝑍 (1 + 𝑒 −𝑍 )2 (1 + 𝑒 −𝑍 )2 (1 + 𝑒 −𝑍 )2 (1 + 𝑒 −𝑍 ) (1 + 𝑒 −𝑍 )2
𝜕𝜎
𝐷𝑜𝑛𝑐 = 𝜎(𝑍) − 𝜎(𝑍)2 = 𝜎(𝑍). (1 − 𝜎(𝑍))
𝜕𝑍
*) On a : 𝑍 = 𝑋1 ∗ 𝑊1 + 𝑋2 ∗ 𝑊2 + 𝑏
𝜕𝑍
𝐷𝑜𝑛𝑐 = 𝑋1
𝜕𝑊1
𝜕𝐿 𝑦𝑖 1 − 𝑦𝑖
𝐷′ 𝑜𝑢 = −1⁄𝑚 ∗ ∑ ( − ) . 𝜎(𝑧𝑖 ). (1 − 𝜎(𝑧𝑖 ). 𝑋1
𝜕𝑊1 𝜎(𝑧𝑖 ) 1 − 𝜎(𝑧𝑖 )
𝜕𝐿
= −1⁄𝑚 ∗ ∑ (𝑦𝑖 . (1 − 𝜎(𝑧𝑖 ))) − (1 − 𝑦𝑖 ). 𝜎(𝑧𝑖 )). 𝑋1
𝜕𝑊1
𝜕𝐿 𝑚 𝑚
𝐹𝑖𝑛𝑎𝑙𝑒𝑚𝑒𝑛𝑡: = −1⁄𝑚 ∗ ∑ (𝑦𝑖 − 𝜎(𝑧𝑖 )). 𝑋1 = 1⁄𝑚 ∗ ∑ (𝜎(𝑧𝑖 ) − 𝑦𝑖 ). 𝑋1
𝜕𝑊1 𝑖=1 𝑖=1
𝜕𝐿 𝑚 𝑚
𝑑𝑒 𝑚ê𝑚𝑒: = −1⁄𝑚 ∗ ∑ (𝑦𝑖 − 𝜎(𝑧𝑖 )). 𝑋2 = 1⁄𝑚 ∗ ∑ (𝜎(𝑧𝑖 ) − 𝑦𝑖 ). 𝑋2
𝜕𝑊2 𝑖=1 𝑖=1
𝜕𝐿 𝑚 𝑚
𝑎𝑢𝑠𝑠𝑖: = −1⁄ ∗ ∑ (𝑦𝑖 − 𝜎(𝑧𝑖 )) = 1⁄𝑚 ∗ ∑ (𝜎(𝑧𝑖 ) − 𝑦𝑖 )
𝜕𝑏 𝑚
𝑖=1 𝑖=1
Dans le programme on choisit aléatoirement les hyper-paramètres W1, W2 et b puis on fait une mise à
jour (des boucles) par la descente du gradient jusqu’à la détermination des meilleurs paramètres qui
minimisent le coût.
𝜕𝐿
𝑊1 = 𝑊1− ∝.
𝜕𝑊1
𝜕𝐿
𝑊2 = 𝑊2− ∝.
𝜕𝑊2
Page 9 sur 15
A.M apsim.ma
𝜕𝐿
𝑏 = 𝑏− ∝.
𝜕𝑏
Le modèle :
𝑍𝑖 = 𝑊1 ∗ 𝑋1𝑖 + 𝑊2 ∗ 𝑋2𝑖 + 𝑏
Fonction coût :
𝑳 = −𝟏⁄𝒎 ∗ ∑𝒎
𝒊=𝟏(𝒚𝒊 ∗ 𝒍𝒐𝒈(𝝈(𝒛𝒊 )) + (𝟏 − 𝒚𝒊 ) ∗ 𝒍𝒐𝒈(𝟏 − 𝝈(𝒛𝒊 )))
Vérification:
𝑦1 𝑙𝑜𝑔(𝜎(𝑧1 )) 1 − 𝑦1 (1 − 𝑙𝑜𝑔(𝜎(𝑧1 ))
𝑦2 𝑙𝑜𝑔(𝜎(𝑧2 )) 1 − 𝑦2 (1 − 𝑙𝑜𝑔(𝜎(𝑧2 ))
𝐿 = −1⁄𝑚 ∗ ∑𝑚
𝑖=1 ⋮ ∗ ⋮ + ⋮ ∗ ⋮
⋮ ⋮ ⋮ ⋮
( [ 𝑦𝑚] [ 𝑙𝑜𝑔(𝜎(𝑧𝑚 ))] [ 1 − 𝑦𝑚] [ (1 − 𝑙𝑜𝑔(𝜎(𝑧𝑚 ))])
Descente du gradient:
𝜕𝐿
On avait : 𝜕𝑊1 = −1⁄𝑚 ∗ ∑𝑚 1 𝑚
𝑖=1(𝑦𝑖 − 𝜎(𝑧𝑖 )). 𝑋1 = ⁄𝑚 ∗ ∑𝑖=1(𝜎(𝑧𝑖 ) − 𝑦𝑖 ). 𝑋1
𝜕𝐿 𝑚 𝑚
𝑒𝑡 = −1⁄𝑚 ∗ ∑ (𝑦𝑖 − 𝜎(𝑧𝑖 )). 𝑋2 = 1⁄𝑚 ∗ ∑ (𝜎(𝑧𝑖 ) − 𝑦𝑖 ). 𝑋2
𝜕𝑊2 𝑖=1 𝑖=1
Page 10 sur 15
A.M apsim.ma
𝜕𝐿 𝑚 𝑚
𝑒𝑡 = −1⁄𝑚 ∗ ∑ (𝑦𝑖 − 𝜎(𝑧𝑖 )) = 1⁄𝑚 ∗ ∑ (𝜎(𝑧𝑖 ) − 𝑦𝑖 )
𝜕𝑏 𝑖=1 𝑖=1
Sous forme matricielle et 𝑝𝑢𝑖𝑠𝑞𝑢𝑒 𝑙𝑒𝑠 ℎ𝑦𝑝𝑒𝑟𝑝𝑎𝑟𝑎𝑚è𝑡𝑟𝑒𝑠 𝑠𝑜𝑛𝑡: 𝑊 = [𝑊1 𝑊2]; 𝑏 = [𝑏]
on aura :
𝜕𝐿 𝜕𝐿
= 1⁄𝑚 ∗ (𝜎(𝑧) − 𝑦). 𝑋 𝑇 ; 𝑀𝑎𝑡𝑟𝑖𝑐𝑒 𝑑𝑒 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑠 [2 ∗ 𝑚]
𝜕𝑊 𝜕𝑊
𝑎𝑣𝑒𝑐 𝑋 𝑇 : 𝑡𝑟𝑎𝑛𝑠𝑝𝑜𝑠é𝑒 𝑑𝑒 𝑙𝑎 𝑚𝑎𝑡𝑟𝑖𝑐𝑒 𝑋
𝜕𝐿 𝜕𝐿
= 1⁄𝑚 ∗ (𝜎(𝑧) − 𝑦) ; 𝑀𝑎𝑡𝑟𝑖𝑐𝑒 𝑑𝑒 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑠 [1 ∗ 𝑚]
𝜕𝑏 𝜕𝑏
Retropropagation (Backpropagation): Propagation vers l’arrière
Dans le programme on choisit aléatoirement les hyper-paramètres W1, W2 et b puis on fait une mise à
jour (des boucles) par la descente du gradient jusqu’à la détermination des meilleurs paramètres qui
minimisent le coût.
𝜕𝐿
𝑊1 = 𝑊1− ∝.
𝜕𝑊1
𝜕𝐿
𝑊2 = 𝑊2− ∝.
𝜕𝑊2
𝜕𝐿
𝑏 = 𝑏− ∝.
𝜕𝑏
W11 Z1 Z1=X1*W11+X2*W12+b1
Z3 = Z1*W31+Z2*W41+b3
X1 b1 W31 =(X1*W11+X2*W21+b1)*W31+(
Z3 X1*W12+X2*W22+b2)*W32+b3
W21 b3
W12
W32 =
X2 b2
W22 Z2=X1*W21+X2*W22+b2
Z2
Page 11 sur 15
A.M apsim.ma
Plus que le nombre de neurones augmente et le nombre des couches intermédiaires (cachées)
augmentent, plus on peut classifier des systèmes complexes.
Page 12 sur 15
A.M apsim.ma
Figure 10: exemple d’application de réseau de neurones.
W11
X1 b1 W’’11 b1 Y1
W’11
W21 b1
…
W12 W’12 b2
X2 b2
W22 bn2
Yns
X3 bn3
bn1
Xno
( Dans les programmes : Initialisation des matrices [W] et [B] par des valeurs aléatoires)
Page 13 sur 15
A.M apsim.ma
𝑏1 𝑏′1 𝑏′′1
𝑏2 𝑏′2 𝑏′′2
𝐵1 = ; 𝐵2 = ; … . . 𝐵𝑐 =
1
Modèle : [𝒁] = [𝑾]. [𝑿] + [𝑩] et 𝜎 (𝑧) =
1+𝑒−𝑧
Pour la matrice Z1 : : [𝒁𝟏] = [𝑾𝟏]. [𝑿] + [𝑩𝟏]
…..
𝟏
En général pour une couche C: [𝒁𝒄] = [𝑾𝒄]. [𝝈(𝒁𝒄 − 𝟏)] + [𝑩𝒄] 𝐞𝐭 𝝈(𝒁𝒄) =
𝟏+𝒆−𝒁𝒄
Descente du gradient:
Couche c:
𝜕𝐿 𝜕𝐿
= 1⁄𝑚 ∗ (𝜎(𝑍𝑐) − 𝑌). 𝜎(𝑍𝑐)𝑇 ; 𝑀𝑎𝑡𝑟𝑖𝑐𝑒 𝑑𝑒 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑠 [𝑛𝑐 ∗ 𝑛𝑐 − 1]
𝜕𝑊𝑐 𝜕𝑊𝑐
𝜕𝐿 𝜕𝐿
= 1⁄𝑚 ∗ ∑(𝜎(𝑍𝑐) − 𝑌) ; 𝑀𝑎𝑡𝑟𝑖𝑐𝑒 𝑑𝑒 𝑑𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑠 [1 ∗ 𝑛𝑐]
𝜕𝐵𝑐 𝜕𝐵𝑐
𝜕𝐿
𝐵𝑐 = 𝐵𝑐− ∝. 𝜕𝐵𝑐
Page 14 sur 15
A.M apsim.ma
Références :
https://moodle.insa-rouen.fr/mod/resource/view.php?id=1916
https://www.di.ens.fr/eloise.berthier/hs.pdf
http://cazencott.info/dotclear/public/lectures/IntroML_Azencott.pdf
https://machinelearnia.com/machine-learning/
2021-05-cours-Azencott – 1
Petr_Dokladal_COVID-19_classification
Python
https://realpython.com/linear-regression-in-python/
https://www.w3schools.com/python/python_ml_multiple_regression.asp
https://www.javatpoint.com/k-nearest-neighbor-algorithm-for-machine-learning
Page 15 sur 15