Saya mencoba memahami aplikasi tingkat tinggi RNNs untuk pelabelan urutan melalui (antara lain) makalah Graves 2005 tentang klasifikasi fonem.
Untuk meringkas masalah: Kami memiliki satu set pelatihan besar yang terdiri dari (input) file audio dari kalimat tunggal dan (output) waktu mulai berlabel ahli, waktu berhenti dan label untuk fonem individu (termasuk beberapa fonem "istimewa" seperti diam, sedemikian sehingga setiap sampel dalam setiap file audio diberi label dengan beberapa simbol fonem.)
Tujuan makalah ini adalah untuk menerapkan RNN dengan sel memori LSTM di lapisan tersembunyi untuk masalah ini. (Dia menerapkan beberapa varian dan beberapa teknik lainnya sebagai pembanding. Saya untuk saat ini HANYA tertarik pada LSTM searah, untuk menjaga hal-hal sederhana.)
Saya percaya saya memahami arsitektur jaringan: Lapisan input yang sesuai dengan 10 ms windows dari file audio, diproses dengan cara standar untuk pekerjaan audio; lapisan tersembunyi sel LSTM, dan lapisan keluaran dengan pengkodean satu-panas dari semua kemungkinan 61 simbol telepon.
Saya percaya saya memahami persamaan (rumit tapi langsung) dari forward pass dan backward pass melalui unit LSTM. Mereka hanyalah kalkulus dan aturan rantai.
Yang tidak saya mengerti, setelah membaca makalah ini dan beberapa yang serupa beberapa kali, adalah kapan tepatnya menerapkan algoritma backpropagation dan kapan tepatnya memperbarui berbagai bobot dalam neuron.
Ada dua metode yang masuk akal:
1) Backprop frame-bijaksana dan pembaruan
Load a sentence.
Divide into frames/timesteps.
For each frame:
- Apply forward step
- Determine error function
- Apply backpropagation to this frame's error
- Update weights accordingly
At end of sentence, reset memory
load another sentence and continue.
atau,
2) Backprop bijaksana dan memperbarui:
Load a sentence.
Divide into frames/timesteps.
For each frame:
- Apply forward step
- Determine error function
At end of sentence:
- Apply backprop to average of sentence error function
- Update weights accordingly
- Reset memory
Load another sentence and continue.
Perhatikan bahwa ini adalah pertanyaan umum tentang pelatihan RNN menggunakan kertas Graves sebagai contoh yang runcing (dan relevan secara pribadi): Ketika melatih RNN tentang urutan, apakah backprop diterapkan di setiap langkah waktu? Apakah bobot disesuaikan setiap waktu? Atau, dalam analogi longgar dengan pelatihan batch tentang arsitektur umpan-maju secara ketat, apakah kesalahan diakumulasi dan dirata-ratakan dalam urutan tertentu sebelum backprop dan pembaruan berat diterapkan?
Atau apakah saya lebih bingung daripada yang saya kira?