Saya telah mengimplementasikan HMM diskrit menurut tutorial ini http://cs229.stanford.edu/section/cs229-hmm.pdf
Tutorial ini dan yang lainnya selalu berbicara tentang pelatihan HMM yang diberikan urutan pengamatan.
Apa yang terjadi ketika saya memiliki beberapa rangkaian latihan? Haruskah saya menjalankannya secara berurutan, melatih model setelah yang lain?
Pilihan lain adalah menggabungkan urutan ke satu dan melatihnya, tetapi kemudian saya akan memiliki transisi dari akhir satu urutan ke awal yang berikutnya yang tidak nyata.
hmmlearn
pelaksanaan HMM memiliki sudah support HMM pelatihan dengan beberapa urutan. Lihat saja pelatihan HMM dengan beberapa urutanJawaban:
Baik menggabungkan atau menjalankan setiap iterasi pelatihan dengan urutan yang berbeda adalah hal yang benar untuk dilakukan. Pendekatan yang benar membutuhkan beberapa penjelasan:
Seseorang biasanya melatih HMM menggunakan algoritma EM. Ini terdiri dari beberapa iterasi. Setiap iterasi memiliki satu langkah "perkiraan" dan satu "maksimalkan". Pada langkah "maksimalkan", Anda menyelaraskan setiap vektor observasi x dengan keadaan s dalam model Anda sehingga beberapa kemungkinan pengukuran dimaksimalkan. Pada langkah "perkiraan", untuk setiap negara bagian, Anda memperkirakan (a) parameter model statistik untuk vektor x yang selaras dengan s dan (b) probabilitas transisi keadaan. Dalam iterasi berikut, langkah memaksimalkan berjalan kembali dengan model statistik yang diperbarui, dll. Proses ini diulang beberapa kali atau ketika ukuran kemungkinan berhenti naik secara signifikan (yaitu, model konvergen ke solusi stabil). Akhirnya, (setidaknya dalam pengenalan ucapan) sebuah HMM biasanya akan memiliki "awal" yang ditunjuk
Jadi, jika Anda memiliki beberapa urutan pelatihan, pada langkah perkiraan Anda harus menjalankan setiap urutan sehingga vektor observasi awal sejajar dengan keadaan awal. Dengan cara itu, statistik pada keadaan awal dikumpulkan dari pengamatan pertama atas semua urutan pengamatan Anda, dan secara umum vektor pengamatan disejajarkan dengan keadaan yang paling mungkin di setiap urutan. Anda hanya akan melakukan langkah memaksimalkan (dan iterasi di masa depan) setelah semua urutan diberikan untuk pelatihan. Pada iterasi berikutnya, Anda akan melakukan hal yang persis sama.
Dengan menyelaraskan awal dari setiap urutan pengamatan dengan keadaan awal, Anda menghindari masalah urutan gabungan di mana Anda akan salah memodelkan transisi antara akhir satu urutan dan awal berikutnya. Dan dengan menggunakan semua urutan pada setiap iterasi Anda menghindari memberikan urutan yang berbeda setiap iterasi, yang sebagai responden dicatat, tidak akan menjamin konvergensi.
sumber
Lawrence Rabiner menjelaskan pendekatan matematis yang beralasan dalam tutorial ini dari IEEE 77 . Tutorial ini juga merupakan bab keenam dari buku Fundamentals of Speech Recognition oleh Rabiner dan Juang.
RIA Davis et. Al. memberikan beberapa saran tambahan dalam makalah ini .
Saya belum mempelajari matematika secara menyeluruh, tetapi bagi saya pendekatan Rabiner terdengar paling menjanjikan, sedangkan pendekatan Davis tampaknya tidak memiliki dasar matematika.
sumber
Jika Anda mengikuti matematika, menambahkan contoh pelatihan tambahan menyiratkan untuk menghitung ulang cara Anda menghitung kemungkinan. Alih-alih menjumlahkan dimensi, Anda juga menjumlahkan contoh pelatihan.
Jika Anda melatih satu model setelah yang lain, tidak ada jaminan bahwa EM akan melakukan liputan untuk setiap contoh pelatihan, dan Anda akan berakhir dengan perkiraan yang buruk.
Berikut ini adalah makalah yang melakukan itu untuk Filter Kalman (yang merupakan HMM dengan Probabilitas Gaussian), ini dapat memberi Anda rasa bagaimana memodifikasi kode Anda sehingga Anda dapat mendukung lebih banyak contoh.
http://ntp-0.cs.ucl.ac.uk/staff/S.Prince/4C75/WellingKalmanFilter.pdf
Dia juga memiliki kuliah tentang HMM, tetapi logikanya cukup mudah.
sumber
Ini lebih dari komentar di atas kertas oleh RIA Davis yang dirujuk oleh Bittenus (di atas) . Saya harus setuju dengan Bittenus, tidak ada banyak dukungan matematika di balik teknik yang diusulkan dalam makalah ini - ini lebih merupakan perbandingan empiris.
Makalah ini hanya mempertimbangkan kasus di mana HMM adalah topologi terbatas (umpan maju). (dalam kasus saya, saya memiliki topologi standar, dan saya menemukan hasil yang paling konsisten dengan menerapkan rata-rata non-tertimbang dari semua model yang dilatih dengan Baum-Welch. Pendekatan ini disebutkan dalam makalah tetapi hanya dikutip dengan hasil marjinal).
Jenis lain dari pelatihan model-rata-rata dirinci oleh RIA Davis dalam artikel jurnal dan menggunakan Pelatihan Vitterbi bukannya Baum-Welch Membandingkan dan Mengevaluasi Algoritma Pelatihan Ensemble HMM Menggunakan Algoritma Pelatihan dan Menggunakan Kriteria Kriteria Nomor Kondisi dan Kondisi . Namun makalah ini hanya mengeksplorasi HMM dengan topologi maju umpan terbatas yang sama. (Saya berencana untuk menjelajahi metode ini dan akan memperbarui posting ini dengan temuan saya.)
sumber