Je vais répondre à votre question sur le δ(l)i, mais rappelez-vous que votre question est une sous-question d'une question plus vaste, c'est pourquoi:
∇(l)ij=∑kθ(l+1)kiδ(l+1)k∗(a(l)i(1−a(l)i))∗a(l−1)j
Rappel sur les étapes des réseaux de neurones:
Étape 1: propagation directe (calcul de la a(l)i)
Étape 2a: propagation vers l'arrière: calcul des erreurs δ(l)i
Étape 2b: propagation vers l'arrière: calcul du gradient ∇(l)ij de J (Θ) en utilisant les erreurs δ(l+1)i et le a(l)i,
Étape 3: descente de gradient: calculez le nouveau θ(l)ij en utilisant les dégradés ∇(l)ij
Tout d'abord, pour comprendre ce queδ(l)isont , ce qu'ils représentent et pourquoi Andrew NG parle d'eux , vous devez comprendre ce qu'Andrew fait en ce moment et pourquoi nous faisons tous ces calculs: Il calcule le gradient∇(l)ij de θ(l)ij à utiliser dans l'algorithme de descente de gradient.
Le gradient est défini comme:
∇(l)ij=∂C∂θ(l)ij
Comme nous ne pouvons pas vraiment résoudre cette formule directement, nous allons la modifier en utilisant DEUX MAGIC TRICKS pour arriver à une formule que nous pouvons réellement calculer. Cette dernière formule utilisable est:
∇(l)ij=θ(l+1)Tδ(l+1).∗(a(l)i(1−a(l)i))∗a(l−1)j
Pour arriver à ce résultat, le PREMIER TRUC MAGIQUE est que l'on peut écrire le gradient∇(l)ij de θ(l)ij en utilisant δ(l)i:
∇(l)ij=δ(l)i∗a(l−1)j
Avec
δ( L)je défini (pour l'indice L uniquement) comme:
δ(L)i=∂C∂z(l)i
Et puis le SECOND MAGIC TRICK utilisant la relation entreδ(l)i et δ(l+1)i, pour définir les autres index,
δ(l)i=θ(l+1)Tδ(l+1).∗(a(l)i(1−a(l)i))
Et comme je l'ai dit, nous pouvons enfin écrire une formule dont nous connaissons tous les termes:
∇( l )je j=θ( l + 1)Tδ( l + 1 ). ∗ (une( l )je( 1 -une( l )je) ) ∗une( l - 1 )j
DÉMONSTRATION DU PREMIER TRUC MAGIQUE: ∇( l )je j=δ( l )je∗une( l - 1 )j
Nous avons défini:
∇( l )je j=∂C∂θ( l )je j
La règle de chaîne pour les dimensions supérieures (vous devez VRAIMENT lire cette propriété de la règle de chaîne) nous permet d'écrire:
∇( l )je j=∑k∂C∂z( l )k∗∂z( l )k∂θ( l )je j
Cependant, comme:
z( l )k=∑mθ( l )k m∗une( l - 1 )m
On peut alors écrire:
∂z( l )k∂θ( l )je j=∂∂θ( l )je j∑mθ( l )k m∗une(l - 1 )m
Du fait de la linéarité de la différenciation [(u + v) '= u' + v '], on peut écrire:
∂z( l )k∂θ( l )je j=∑m∂θ( l )k m∂θ( l )je j∗une( l - 1 )m
avec:
je fk , m ≠ i , j , ∂θ( l )k m∂θ( l )je j∗une( l - 1 )m= 0
je fk , m = i , j , ∂θ( l )k m∂θ( l )je j∗une( l - 1 )m=∂θ( l )je j∂θ( l )je j∗une( l - 1 )j=une( l - 1 )j
Alors pour k = i (sinon c'est clairement égal à zéro):
∂z( l )je∂θ( l )je j=∂θ( l )je j∂θ( l )je j∗une( l - 1 )j+∑m ≠ j∂θ( l )je suis∂θ( l )je j∗une( l - 1 )j=une( l - 1 )j+ 0
Enfin, pour k = i:
∂z( l )je∂θ( l )je j=une( l - 1 )j
En conséquence, nous pouvons écrire notre première expression du gradient ∇( l )je j:
∇( l )je j=∂C∂z( l )je∗∂z( l )je∂θ( l )je j
Ce qui équivaut à:
∇( l )je j=∂C∂z( l )je∗une( l - 1 )j
Ou:
∇( l )je j=δ( l )je∗une( l - 1 )j
DÉMONSTRATION DU SECOND MAGIC TRICK :δ( l )je=θ( l + 1)Tδ( l + 1 ). ∗ (une( l )je( 1 -une( l )je) ) ou:
δ( l )=θ( l + 1)Tδ( l + 1 ). ∗ (une( l )( 1 -une( l )) )
N'oubliez pas que nous avons posé:
δ( l )=∂C∂z( l ) une n d δ( l )je=∂C∂z( l )je
Encore une fois, la règle de chaîne pour les dimensions supérieures nous permet d'écrire:
δ( l )je=∑k∂C∂z( l + 1 )k∂z( l + 1 )k∂z( l )je
Remplacement ∂C∂z( l + 1 )k par δ( l + 1 )k, on a:
δ( l )je=∑kδ( l + 1 )k∂z( l + 1 )k∂z( l )je
Maintenant, concentrons-nous sur ∂z( l + 1 )k∂z( l )je. On a:
z( l + 1 )k=∑jθ( l + 1 )k j∗une( l )j=∑jθ( l + 1 )k j∗ g(z( l )j)
Ensuite, nous dérivons cette expression concernant z( i )k:
∂z( l + 1 )k∂z( l )je=∂∑jθ( l )k j∗ g(z( l )j)∂z( l )je
Du fait de la linéarité de la dérivation, on peut écrire:
∂z( l + 1 )k∂z( l )je=∑jθ( l )k j∗∂g(z( l )j)∂z( l )je
Si j ≠ i, alors ∂θ( l )k j∗ g(z( l )j)∂z( l )je= 0
En conséquence:
∂z( l + 1 )k∂z( l )je=θ( l )k i∗ ∂g(z( l )je)∂z( l )je
Et alors:
δ( l )je=∑kδ( l + 1 )kθ( l )k i∗∂g(z( l )je)∂z( l )je
Comme g '(z) = g (z) (1-g (z)), nous avons:
δ( l )je=∑kδ( l + 1 )kθ( l )k i∗ g(z( l )je) ( 1 - g(z( l )je)
Et comme g(z( l )je=une( l )je, on a:
δ( l )je=∑kδ( l + 1 )kθ( l + 1 )k i∗une( l )je( 1 -une( l )je)
Et enfin, en utilisant la notation vectorisée:
∇( l )je j= [θ( l + 1)Tδ( l + 1 )∗ (une( l )je( 1 -une( l )je) ) ] ∗ [une( l - 1 )j]