Saya akan menjawab pertanyaan Anda tentang , tetapi ingat bahwa pertanyaan Anda adalah sub pertanyaan dari pertanyaan yang lebih besar, itulah sebabnya:δ( l )saya
∇( l )saya j=∑kθ( l + 1 )k iδ( l + 1 )k∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) ) ∗Sebuah( l - 1 )j
Pengingat tentang langkah-langkah di jaringan saraf:
Langkah 1: meneruskan propagasi (perhitungan )Sebuah( l )saya
Langkah 2a: propagasi mundur: perhitungan kesalahan δ( l )saya
Langkah 2b: propagasi mundur: perhitungan gradien ∇( l )saya j dari J (Θ) menggunakan kesalahan δ( l + 1 )saya dan Sebuah( l )saya,
Langkah 3: gradient descent: hitung yang baru θ( l )saya j menggunakan gradien ∇( l )saya j
Pertama, untuk memahami apa ituδ( l )sayaadalah , apa yang mereka wakili dan mengapa Andrew NG membicarakannya , Anda perlu memahami apa yang sebenarnya dilakukan Andrew pada saat itu dan mengapa kami melakukan semua perhitungan ini: Dia menghitung gradien∇( l )saya j dari θ( l )saya j untuk digunakan dalam algoritma keturunan Gradient.
Gradien didefinisikan sebagai:
∇( l )saya j=∂C∂θ( l )saya j
Karena kita tidak dapat benar-benar menyelesaikan rumus ini secara langsung, kita akan memodifikasinya menggunakan DUA TRIK MAGIK untuk sampai pada formula yang sebenarnya dapat kita hitung. Formula akhir yang dapat digunakan ini adalah:
∇( l )saya j=θ( l + 1)Tδ( l + 1 ). ∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) ) ∗Sebuah( l - 1 )j
Untuk sampai pada hasil ini, TRIK MAGIC PERTAMA adalah kita dapat menulis gradien∇( l )saya j dari θ( l )saya j menggunakan δ( l )saya:
∇( l )saya j=δ( l )saya∗Sebuah( l - 1 )j
Dengan
δ( L )saya didefinisikan (hanya untuk indeks L) sebagai:
δ( L )saya=∂C∂z( l )saya
Dan kemudian TRIC MAGIC KEDUA menggunakan hubungan antaraδ( l )saya dan δ( l + 1 )saya, untuk menentukan indeks lainnya,
δ( l )saya=θ( l + 1)Tδ( l + 1 ). ∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) )
Dan seperti yang saya katakan, akhirnya kita bisa menulis formula yang kita tahu semua istilah:
∇( l )saya j=θ( l + 1)Tδ( l + 1 ). ∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) ) ∗Sebuah( l - 1 )j
DEMONSTRASI TRIK AJAIB PERTAMA: ∇(l)ij=δ(l)i∗a(l−1)j
Kami mendefinisikan:
∇(l)ij=∂C∂θ(l)ij
The Rantai aturan untuk dimensi yang lebih tinggi (Anda harus benar-benar membaca properti ini dari Rantai aturan) memungkinkan kita untuk menulis:
∇(l)ij=∑k∂C∂z(l)k∗∂z(l)k∂θ(l)ij
Namun, seperti:
z( l )k=∑mθ( l )k m∗Sebuah( l - 1 )m
Kami kemudian dapat menulis:
∂z( l )k∂θ( l )saya j=∂∂θ( l )saya j∑mθ( l )k m∗Sebuah( l - 1 )m
Karena linearitas diferensiasi [(u + v) '= u' + v '], kita dapat menulis:
∂z( l )k∂θ( l )saya j=∑m∂θ( l )k m∂θ( l )saya j∗Sebuah( l - 1 )m
dengan:
saya fk , m ≠ i , j , ∂θ( l )k m∂θ( l )saya j∗Sebuah( l - 1 )m= 0
saya fk , m = i , j , ∂θ( l )k m∂θ( l )saya j∗Sebuah( l - 1 )m=∂θ( l )saya j∂θ( l )saya j∗Sebuah( l - 1 )j=Sebuah( l - 1 )j
Kemudian untuk k = i (jika tidak sama dengan nol):
∂z( l )saya∂θ( l )saya j=∂θ( l )saya j∂θ( l )saya j∗Sebuah( l - 1 )j+∑m ≠ j∂θ( l )saya m∂θ( l )saya j∗Sebuah( l - 1 )j=Sebuah( l - 1 )j+ 0
Akhirnya, untuk k = i:
∂z( l )saya∂θ( l )saya j=Sebuah( l - 1 )j
Sebagai hasilnya, kita dapat menulis ekspresi gradien pertama kita ∇( l )saya j:
∇( l )saya j=∂C∂z( l )saya∗∂z( l )saya∂θ( l )saya j
Yang setara dengan:
∇( l )saya j=∂C∂z( l )saya∗Sebuah( l - 1 )j
Atau:
∇( l )saya j=δ( l )saya∗Sebuah( l - 1 )j
DEMONSTRASI TRIK SIHIR KEDUA :δ( l )saya=θ( l + 1)Tδ( l + 1 ). ∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) ) atau:
δ( l )=θ( l + 1)Tδ( l + 1 ). ∗ (Sebuah( l )( 1 -Sebuah( l )) )
Ingatlah bahwa kami berpose:
δ( l )=∂C∂z( l ) a n d δ( l )saya=∂C∂z( l )saya
Sekali lagi, aturan Rantai untuk dimensi yang lebih tinggi memungkinkan kita untuk menulis:
δ( l )saya=∑k∂C∂z( l + 1 )k∂z( l + 1 )k∂z( l )saya
Mengganti ∂C∂z( l + 1 )k oleh δ( l + 1 )k, kita punya:
δ( l )saya=∑kδ( l + 1 )k∂z( l + 1 )k∂z( l )saya
Sekarang, mari fokus ∂z( l + 1 )k∂z( l )saya. Kita punya:
z( l + 1 )k=∑jθ( l + 1 )k j∗Sebuah( l )j=∑jθ( l + 1 )k j∗ g(z( l )j)
Kemudian kami menurunkan ungkapan ini tentang z( i )k:
∂z( l + 1 )k∂z( l )saya=∂∑jθ( l )k j∗ g(z( l )j)∂z( l )saya
Karena linearitas derivasi, kita dapat menulis:
∂z( l + 1 )k∂z( l )saya=∑jθ( l )k j∗∂g(z( l )j)∂z( l )saya
Jika j ≠ Lalu saya ∂θ( l )k j∗ g(z( l )j)∂z( l )saya= 0
Sebagai konsekuensi:
∂z( l + 1 )k∂z( l )saya=θ( l )k i∗ ∂g(z( l )saya)∂z( l )saya
Lalu:
δ( l )saya=∑kδ( l + 1 )kθ( l )k i∗∂g(z( l )saya)∂z( l )saya
Sebagai g '(z) = g (z) (1-g (z)), kita memiliki:
δ( l )saya=∑kδ( l + 1 )kθ( l )k i∗ g(z( l )saya) ( 1 - g(z( l )saya)
Dan sebagai g(z( l )saya=Sebuah( l )saya, kita punya:
δ( l )saya=∑kδ( l + 1 )kθ( l + 1 )k i∗Sebuah( l )saya( 1 -Sebuah( l )saya)
Dan akhirnya, menggunakan notasi vektor:
∇( l )saya j= [θ(l + 1)Tδ( l + 1 )∗ (Sebuah( l )saya( 1 -Sebuah( l )saya) ) ] ∗ [Sebuah( l - 1 )j]