Masalah input berurutan mana yang paling cocok untuk masing-masing? Apakah dimensi input menentukan mana yang lebih cocok? Apakah masalah yang membutuhkan "memori lebih lama" lebih cocok untuk LSTM RNN, sementara masalah dengan pola input siklus (pasar saham, cuaca) lebih mudah diselesaikan oleh HMM?
Sepertinya ada banyak tumpang tindih; Saya ingin tahu apa perbedaan halus yang ada di antara keduanya.
time-series
neural-networks
hidden-markov-model
rnn
memperbaiki
sumber
sumber
Jawaban:
Ringkasan
Hidden Markov Model (HMMs) jauh lebih sederhana daripada Recurrent Neural Networks (RNNs), dan mengandalkan asumsi kuat yang mungkin tidak selalu benar. Jika asumsi tersebut benar maka Anda mungkin melihat kinerja yang lebih baik dari HMM karena kurang rewel untuk bekerja.
Suatu RNN dapat berkinerja lebih baik jika Anda memiliki dataset yang sangat besar, karena kompleksitas ekstra dapat mengambil keuntungan lebih baik dari informasi dalam data Anda. Ini bisa benar bahkan jika asumsi HMM benar dalam kasus Anda.
Akhirnya, jangan dibatasi hanya pada dua model ini untuk tugas urutan Anda, kadang-kadang regresi yang lebih sederhana (misalnya ARIMA) dapat menang, dan kadang-kadang pendekatan rumit lainnya seperti Convolutional Neural Networks mungkin yang terbaik. (Ya, CNN dapat diterapkan ke beberapa jenis data urutan seperti halnya RNN.)
Seperti biasa, cara terbaik untuk mengetahui model mana yang terbaik adalah dengan membuat model dan mengukur kinerja pada set tes yang diadakan.
Asumsi kuat HMM
Transisi negara hanya bergantung pada kondisi saat ini, bukan pada apa pun di masa lalu.
Asumsi ini tidak berlaku di banyak bidang yang saya kenal. Misalnya, berpura-puralah Anda mencoba untuk memprediksi setiap menit dalam sehari apakah seseorang bangun atau tertidur dari data pergerakan. Peluang seseorang untuk beralih dari tidur ke tidur semakin lama semakin lama orang tersebut dalam kondisi tidur . RNN secara teoritis dapat mempelajari hubungan ini dan mengeksploitasinya untuk akurasi prediksi yang lebih tinggi.
Anda dapat mencoba menyiasatinya, misalnya dengan memasukkan status sebelumnya sebagai fitur, atau mendefinisikan status komposit, tetapi kompleksitas yang ditambahkan tidak selalu meningkatkan akurasi prediksi HMM, dan pasti tidak membantu waktu perhitungan.
Anda harus menentukan sebelumnya jumlah total negara.
Kembali ke contoh tidur, mungkin tampak seolah-olah hanya ada dua keadaan yang kita pedulikan. Namun, bahkan jika kita hanya peduli untuk memprediksi bangun vs tidur , model kita dapat mengambil manfaat dari mencari tahu keadaan tambahan seperti mengemudi, mandi, dll. (Misalnya mandi biasanya datang tepat sebelum tidur). Sekali lagi, RNN secara teoritis dapat mempelajari hubungan seperti itu jika menunjukkan cukup banyak contoh.
Kesulitan dengan RNNs
Tampaknya dari atas bahwa RNNs selalu unggul. Saya harus mencatat, bahwa RNNs bisa sulit untuk bekerja, terutama ketika dataset Anda kecil atau urutan Anda sangat panjang. Saya pribadi memiliki masalah dalam mendapatkan RNN untuk melatih beberapa data saya, dan saya curiga sebagian besar metode / pedoman RNN yang dipublikasikan disetel ke data teks . Ketika mencoba menggunakan RNN pada data non-teks, saya harus melakukan pencarian hyperparameter yang lebih luas daripada yang saya pedulikan untuk mendapatkan hasil yang baik pada dataset khusus saya.
Dalam beberapa kasus, saya telah menemukan model terbaik untuk data sekuensial sebenarnya adalah gaya UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Model Neural Network convolutional karena lebih mudah dan lebih cepat untuk melatih, dan mampu untuk mempertimbangkan konteks penuh dari sinyal.
sumber
Mari kita lihat perbedaan antara HMM dan RNN.
Dari makalah ini: Sebuah tutorial tentang model Markov tersembunyi dan aplikasi yang dipilih dalam pengenalan ucapan kita dapat belajar bahwa HMM harus ditandai oleh tiga masalah mendasar berikut:
Kita dapat membandingkan HMM dengan RNN dari tiga perspektif itu.
Kemungkinan
Kemungkinan dalam HMM (Gambar A.5) Model bahasa di RNN
Decoding
Decoding dalam HMM (Gambar A.10)
Decoding dalam RNN
Belajar
Pembelajaran di HMM jauh lebih rumit daripada yang di RNN. Dalam HMM biasanya menggunakan algoritma Baum-Welch (kasus khusus dari algoritma Expectation-Maximization) sementara di RNN biasanya merupakan gradient descent.
Untuk pertanyaan Anda:
Ketika Anda tidak memiliki cukup data gunakan HMM, dan ketika Anda perlu menghitung probabilitas tepat HMM juga akan menjadi yang lebih baik (tugas generatif memodelkan bagaimana data dihasilkan). Kalau tidak, Anda bisa menggunakan RNN.
Saya tidak berpikir begitu, tetapi mungkin perlu HMM lebih banyak waktu untuk mengetahui jika keadaan tersembunyi terlalu besar karena kompleksitas algoritma (maju mundur dan Viterbi) pada dasarnya adalah kuadrat dari jumlah negara diskrit.
Dalam HMM, kondisi saat ini juga dipengaruhi oleh status dan pengamatan sebelumnya (oleh status induk), dan Anda dapat mencoba Model Markov Tersembunyi Orde Kedua untuk "memori lebih lama".
Saya pikir Anda dapat menggunakan RNN untuk melakukan hampir
referensi
sumber
Saya menemukan pertanyaan ini, karena saya bertanya-tanya tentang persamaan dan perbedaan mereka juga. Saya pikir sangat penting untuk menyatakan bahwa Hidden Markov Models (HMMs) tidak memiliki input dan output dalam arti yang paling ketat.
HMM adalah apa yang disebut model generatif , jika Anda memiliki HMM, Anda dapat menghasilkan beberapa pengamatan dari apa adanya. Ini pada dasarnya berbeda dari RNN, karena bahkan jika Anda memiliki RNN yang terlatih, Anda perlu masukan untuk itu.
Contoh praktis di mana ini penting adalah sintesis ucapan. Status Hidden Markov yang mendasarinya adalah ponsel dan peristiwa probabilitas yang dipancarkan adalah akustiknya. Jika Anda memiliki model kata yang terlatih, Anda dapat menghasilkan sebanyak mungkin berbagai realisasi yang Anda inginkan.
Tetapi dengan RNNs, Anda perlu menyediakan setidaknya beberapa seed input untuk keluar output Anda. Anda bisa berargumen bahwa dalam HMM Anda juga perlu memberikan distribusi awal, jadi itu mirip. Tetapi jika kita tetap menggunakan contoh sintesis pidato ,, itu bukan karena distribusi awal akan diperbaiki (mulai selalu dari telepon pertama kata).
Dengan RNNs Anda mendapatkan urutan output deterministik untuk model yang terlatih, jika Anda menggunakan seed input yang sama sepanjang waktu. Dengan HMM, Anda tidak melakukannya karena transisi dan emisi selalu disampel dari distribusi probabilitas.
sumber