Jaringan saraf berulang berbeda dari yang "biasa" dengan fakta bahwa mereka memiliki lapisan "memori". Karena lapisan ini, NN berulang seharusnya berguna dalam pemodelan deret waktu. Namun, saya tidak yakin saya mengerti benar cara menggunakannya.
Katakanlah saya memiliki deret waktu berikut (dari kiri ke kanan) :, [0, 1, 2, 3, 4, 5, 6, 7]
tujuan saya adalah untuk memprediksi i
titik-ke-10 menggunakan poin i-1
dan i-2
sebagai input (untuk masing-masing i>2
). Dalam JST "reguler", non-berulang, saya akan memproses data sebagai berikut:
target| input 2| 1 0 3| 2 1 4| 3 2 5| 4 3 6| 5 4 7| 6 5
Saya kemudian akan membuat jaring dengan dua input dan satu node output dan melatihnya dengan data di atas.
Bagaimana seseorang perlu mengubah proses ini (jika sama sekali) dalam kasus jaringan berulang?
time-series
machine-learning
neural-networks
Boris Gorelik
sumber
sumber
Jawaban:
Apa yang Anda jelaskan sebenarnya adalah pendekatan "sliding time window" dan berbeda dengan jaringan berulang. Anda dapat menggunakan teknik ini dengan algoritma regresi apa pun. Ada batasan yang sangat besar untuk pendekatan ini: peristiwa dalam input hanya dapat dikorelasikan dengan input / output lain yang terletak paling t terpisah, di mana t adalah ukuran jendela.
Misalnya, Anda dapat memikirkan rantai pesanan Markov t. RNN tidak menderita dari ini secara teori, namun dalam praktiknya belajar itu sulit.
Cara terbaik untuk menggambarkan RNN berbeda dengan jaringan feedfoward. Pertimbangkan jaringan feedforward (sangat) sederhana mana adalah output, adalah matriks bobot, dan adalah input.y=Wx y W x
Sekarang, kami menggunakan jaringan berulang. Sekarang kita memiliki urutan input, jadi kita akan menunjukkan input dengan untuk input ke-i. Output ith yang sesuai kemudian dihitung melalui .xi yi=Wxi+Wryi−1
Jadi, kita memiliki matriks bobot yang menggabungkan output pada langkah sebelumnya secara linear ke dalam output saat ini.Wr
Ini tentu saja arsitektur yang sederhana. Paling umum adalah arsitektur di mana Anda memiliki lapisan tersembunyi yang terhubung berulang ke dirinya sendiri. Mari menunjukkan lapisan tersembunyi di timestep i. Rumusnya adalah:hi
Di mana adalah fungsi non-linearitas / transfer yang cocok seperti sigmoid. dan adalah bobot penghubung antara input dan hidden dan hidden serta output layer. mewakili bobot berulang.W 1 W 2 W rσ W1 W2 Wr
Berikut adalah diagram struktur:
sumber
Anda juga dapat mempertimbangkan hanya menggunakan sejumlah transformasi deret waktu untuk input data. Sebagai contoh, inputnya bisa:
Jadi, jika input Anda ke jaringan saraf konvensional adalah enam bagian dari data yang diubah ini, itu tidak akan menjadi tugas yang sulit bagi algoritma backpropagation biasa untuk mempelajari pola. Anda harus mengkode transformasi yang mengambil data mentah dan mengubahnya menjadi 6 input di atas untuk jaringan saraf Anda.
sumber
Kemungkinan lain adalah Historis Neural Networks (HCNN) . Arsitektur ini mungkin lebih sesuai untuk pengaturan yang disebutkan di atas karena mereka menghilangkan perbedaan yang sering sewenang-wenang antara variabel input dan output dan bukannya mencoba untuk mereplikasi dinamika yang mendasari seluruh sistem melalui pelatihan dengan semua yang bisa diamati.
Ketika saya bekerja untuk Siemens, saya menerbitkan sebuah makalah tentang arsitektur ini dalam sebuah buku karya Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Pemodelan Pasar, Peramalan dan Analisis Risiko dengan Historis Neural Networks yang Konsisten
Hanya untuk memberikan gambaran tentang paradigma di sini adalah kutipan singkat:
[...]
... dan dari kesimpulan:
Bagian dari makalah dapat dilihat secara publik: Di sini
sumber