Hidden Markov Model vs Recurrent Neural Network

13

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.

memperbaiki
sumber
+1 tetapi pertanyaannya mungkin terlalu luas ... Juga, setahu saya mereka sangat berbeda ..
Haitao Du
saya menambahkan lebih banyak klarifikasi
ganti rugi
Sebagai catatan Anda dapat menempatkan CRF di atas RNN misalnya github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

Jawaban:

8

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.

kbrose
sumber
1

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:

Masalah 1 (Kemungkinan): Diberikan HMM λ = (A, B) dan urutan pengamatan O, tentukan kemungkinan P (O | λ).
Masalah 2 (Decoding): Diberikan urutan pengamatan O dan HMM λ = (A, B), temukan urutan keadaan tersembunyi terbaik Q.
Masalah 3 (Belajar): Diberikan urutan pengamatan O dan himpunan negara dalam HMM, pelajari parameter HMM A dan B.

Kita dapat membandingkan HMM dengan RNN dari tiga perspektif itu.

Kemungkinan

jumlah semua urutan tersembunyi Kemungkinan dalam HMM (Gambar A.5) Model bahasa di RNN
dapatkan saja probabilitas dari fungsi softmax

P(O)=QP(O,Q)=QP(O|Q)P(Q)Q1p(X)=t=1T1p(xt|x(t1),...,x(1))T

Decoding

vt(j)=mSebuahxsaya=1Nvt-1(saya)Sebuahsayajb(Hait)P(y1,...,yHAI|x1,...,xT)=Hai=1HAIP(yHai|y1,...,yHai-1,cHai)YX

jalan yang berani
Decoding dalam HMM (Gambar A.10)

bagian decoder
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:

Masalah input berurutan mana yang paling cocok untuk masing-masing?

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.

Apakah dimensi input menentukan mana yang lebih cocok?

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.

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?

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

  1. Pemrosesan Bahasa Alami dengan Pembelajaran Jauh CS224N / Ling284
  2. Model Markov Tersembunyi
Lerner Zhang
sumber
Tetapi dalam makalah yang direferensikan itu mengatakan bahwa HMM memang memiliki keadaan tersembunyi, meskipun yang terpisah?
Oleg Afanasyev
@OlegAfanasyev Ya. Saya pikir saya salah, tetapi saya akan kembali ke jawaban ini nanti.
Lerner Zhang
Apakah ini sudah diperbaiki?
GENIVI-LEARNER
1
@ GENIVI-LEARNER Saya telah menulis ulang jawaban dan berharap itu akan membantu Anda dan juga berharap bahwa Anda akan memberi saya beberapa saran tentang cara menjadikannya lebih baik.
Lerner Zhang
0

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.

boomkin
sumber