RNN adalah Deep Neural Network (DNN) di mana setiap layer dapat mengambil input baru tetapi memiliki parameter yang sama. BPT adalah kata yang bagus untuk Back Propagation pada jaringan yang seperti itu sendiri adalah kata yang bagus untuk Gradient Descent.
Mengatakan bahwa RNN output y t dalam setiap langkah dan
e r r o r t = ( y t - y t ) 2y^t
errort=(yt−y^t)2
Untuk mempelajari bobot, kita memerlukan gradien untuk fungsi untuk menjawab pertanyaan "berapa perubahan parameter yang mempengaruhi fungsi kerugian?" dan pindahkan parameter ke arah yang diberikan oleh:
∇errort=−2(yt−y^t)∇y^t
Yaitu kami memiliki DNN di mana kami mendapatkan umpan balik tentang seberapa bagus prediksi di setiap lapisan. Karena perubahan parameter akan mengubah setiap lapisan dalam DNN (timestep) dan setiap lapisan berkontribusi pada output yang akan datang, ini perlu diperhitungkan.
Ambil satu jaringan neuron-satu lapisan sederhana untuk melihatnya secara semi-eksplisit:
y^t+1=∂∂ay^t+1=∂∂by^t+1=∂∂cy^t+1=⟺∇y^t+1=f(a+bxt+cy^t)f′(a+bxt+cy^t)⋅c⋅∂∂ay^tf′(a+bxt+cy^t)⋅(xt+c⋅∂∂by^t)f′(a+bxt+cy^t)⋅(y^t+c⋅∂∂cy^t)f′(a+bxt+cy^t)⋅⎛⎝⎜⎡⎣⎢0xty^t⎤⎦⎥+c∇y^t⎞⎠⎟
δ
⎡⎣⎢a~b~c~⎤⎦⎥←⎡⎣⎢abc⎤⎦⎥+δ(yt−y^t)∇y^t
∇y^t+1∇y^tt
error=∑t(yt−y^t)2
Mungkin setiap langkah kemudian akan memberikan kontribusi arah kasar yang cukup dalam agregasi? Ini bisa menjelaskan hasil Anda tetapi saya benar-benar tertarik mendengar lebih banyak tentang fungsi metode / kerugian Anda! Juga akan tertarik pada perbandingan dengan JST berjendela dua timestep.
sunting4: Setelah membaca komentar sepertinya arsitektur Anda bukan RNN.
ht
Model Anda: Stateless - status tersembunyi dibangun kembali di setiap langkah
edit2: menambahkan lebih banyak referensi ke DNNs edit3: memperbaiki gradstep dan beberapa notasi edit5: Memperbaiki interpretasi model Anda setelah jawaban / klarifikasi Anda.