Apa perbedaan antara model Markov tersembunyi dan jaringan saraf?

40

Saya hanya basah karena statistik, jadi saya minta maaf jika pertanyaan ini tidak masuk akal. Saya telah menggunakan model Markov untuk memprediksi keadaan tersembunyi (kasino tidak adil, gulungan dadu, dll.) Dan jaringan saraf untuk mempelajari klik pengguna pada mesin pencari. Keduanya memiliki status tersembunyi yang kami coba cari tahu menggunakan pengamatan.

Menurut pemahaman saya, mereka berdua memprediksi kondisi tersembunyi, jadi saya bertanya-tanya kapan kita akan menggunakan model Markov melalui jaringan saraf? Apakah mereka hanya pendekatan yang berbeda untuk masalah yang sama?

(Saya tertarik untuk belajar tetapi saya juga memiliki motivasi lain, saya memiliki masalah yang saya coba pecahkan menggunakan model Markov tersembunyi tetapi itu membuat saya gila jadi saya tertarik melihat apakah saya bisa beralih menggunakan sesuatu yang lain.)

Kehilangan jiwa
sumber
2
Anda mungkin ingin melihat di sini: stats.stackexchange.com/questions/4498/…
Nucular
Apakah Anda ingin memilih jawaban, atau lebih jauh memperjelas apa yang Anda cari?
conjugateprior

Jawaban:

27

Apa yang tersembunyi dan apa yang diamati

Benda yang disembunyikan dalam model Markov tersembunyi sama dengan benda yang disembunyikan dalam model campuran diskrit, jadi untuk kejelasan, lupakan dinamika keadaan tersembunyi dan tempel dengan model campuran hingga sebagai contoh. 'Keadaan' dalam model ini adalah identitas komponen yang menyebabkan setiap pengamatan. Dalam kelas model ini penyebab seperti itu tidak pernah diamati, jadi 'penyebab tersembunyi' diterjemahkan secara statistik ke dalam klaim bahwa data yang diamati memiliki dependensi marginal yang dihapus ketika komponen sumber diketahui. Dan komponen sumber diperkirakan menjadi apa pun yang membuat hubungan statistik ini benar.

Hal yang disembunyikan dalam jaringan saraf multilayer feedforward dengan unit menengah sigmoid adalah keadaan unit-unit itu, bukan output yang menjadi target inferensi. Ketika output dari jaringan adalah klasifikasi, yaitu, distribusi probabilitas atas kategori output yang mungkin, nilai-nilai unit tersembunyi ini menentukan ruang di mana kategori dapat dipisahkan. Trik dalam mempelajari model seperti itu adalah membuat ruang tersembunyi (dengan menyesuaikan pemetaan dari unit input) di mana masalahnya linier. Akibatnya, batas keputusan non-linear dimungkinkan dari sistem secara keseluruhan.

Generatif versus diskriminatif

Model campuran (dan HMM) adalah model dari proses menghasilkan data, kadang-kadang disebut model kemungkinan atau 'forward model'. Ketika digabungkan dengan beberapa asumsi tentang probabilitas sebelumnya dari masing-masing negara, Anda dapat menyimpulkan distribusi atas nilai yang mungkin dari negara tersembunyi menggunakan teorema Bayes (pendekatan generatif). Perhatikan bahwa, ketika disebut 'prior', baik prior dan parameter dalam kemungkinan biasanya dipelajari dari data.

Berbeda dengan model campuran (dan HMM) jaringan saraf mempelajari distribusi posterior atas kategori output secara langsung (pendekatan diskriminatif). Ini dimungkinkan karena nilai output diamati selama estimasi. Dan karena mereka diamati, tidak perlu untuk membangun distribusi posterior dari model sebelumnya dan khusus untuk kemungkinan seperti campuran. Posterior dipelajari langsung dari data, yang lebih efisien dan tidak terlalu bergantung pada model.

Padu dan padu

Untuk membuat segalanya lebih membingungkan, pendekatan ini dapat dicampur bersama, misalnya ketika model campuran (atau HMM) kadang-kadang benar-benar diamati. Ketika itu benar, dan dalam beberapa keadaan lain yang tidak relevan di sini, dimungkinkan untuk melatih secara diskriminatif dalam model generatif yang sebaliknya. Demikian pula dimungkinkan untuk mengganti pemetaan model campuran HMM dengan model maju yang lebih fleksibel, misalnya, jaringan saraf.

Pertanyaan-pertanyaan

Jadi tidak sepenuhnya benar bahwa kedua model memprediksi kondisi tersembunyi. HMM dapat digunakan untuk memprediksi keadaan tersembunyi, meskipun hanya dari jenis yang diharapkan model maju. Jaringan saraf dapat digunakan untuk memprediksi keadaan yang belum teramati , misalnya keadaan di masa depan yang tersedia prediksi. Negara semacam ini pada prinsipnya tidak tersembunyi, hanya saja belum diamati.

Kapan Anda akan menggunakan yang satu daripada yang lain? Ya, jaringan saraf membuat model deret waktu yang agak aneh dalam pengalaman saya. Mereka juga menganggap Anda telah mengamati output. HMM tidak tetapi Anda tidak benar-benar memiliki kontrol apa sebenarnya negara tersembunyi itu. Namun demikian mereka adalah model deret waktu yang tepat.

conjugateprior
sumber
2
+1 Ini sangat bagus. By: Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.maksud Anda mengganti probabilitas emisi p (Diamati | Tersembunyi) dengan umpan maju NN? Saya telah menemukan ini di beberapa tempat tetapi tidak ada yang memberikan penjelasan; mereka hanya menyebutkan bahwa mereka telah mengimplementasikannya. Saya berasumsi mereka menggantikan langkah MLE untuk belajar emisi tetapi tidak bisa mengerti caranya. Apakah Anda tahu kode atau contoh penjelasan? Setiap petunjuk selamat datang, terima kasih.
Zhubarb
Tampaknya kurang digunakan seperti itu (beberapa orang ML dapat memperbaiki saya di sini). Tha mengatakan, memperkirakan parameter NN memetakan vektor keadaan ke keluaran bersyarat pada mengetahui vektor keadaan (atau setidaknya mengetahui nilai yang diharapkan, seperti dalam algoritma EM) adalah tugas yang sama seperti pelatihan dengan input yang diamati dan data keluaran, jadi saya kira ada tidak ada yang istimewa untuk dikatakan tentang bagian itu.
conjugateprior
Jawabannya bagus, kecuali: Jaringan saraf dapat berupa diskriminatif (umpan maju dll) atau generatif (mesin bolzmann terbatas dll). Juga, jaringan saraf berulang seperti model LSTM dan Reservoir Computing dapat memodelkan deret waktu maupun HMM - dan kadang-kadang bahkan lebih baik daripada HMM, terutama dalam kasus deret waktu dengan dinamika nonlinier yang kuat dan korelasi jangka panjang.
GuSuku
10

Hidden Markov Models dapat digunakan untuk menghasilkan bahasa, yaitu, elemen daftar dari keluarga string. Misalnya, jika Anda memiliki HMM yang memodelkan serangkaian sekuens, Anda akan dapat menghasilkan anggota keluarga ini, dengan membuat daftar sekuens yang akan jatuh ke dalam grup sekuens yang kami modelkan.

Neural Networks, mengambil input dari ruang dimensi tinggi dan hanya memetakannya ke ruang dimensi yang lebih rendah (cara Neural Networks memetakan input ini didasarkan pada pelatihan, topologi dan faktor-faktor lain). Misalnya, Anda dapat mengambil gambar 64-bit dari suatu angka dan memetakannya ke nilai benar / salah yang menggambarkan apakah angka ini adalah 1 atau 0.

Sementara kedua metode dapat (atau setidaknya dapat mencoba) membedakan apakah suatu item adalah anggota kelas atau tidak, Neural Networks tidak dapat menghasilkan bahasa seperti yang dijelaskan di atas.

Ada alternatif untuk Hidden Markov Model yang tersedia, misalnya Anda mungkin dapat menggunakan Bayesian Network yang lebih umum, topologi yang berbeda atau Grammar Konteks Bebas Stochastic Konteks (SCFG) jika Anda percaya bahwa masalahnya terletak pada kurangnya kekuatan HMM untuk modelkan masalah Anda - yaitu, jika Anda membutuhkan algoritme yang dapat membedakan antara hipotesis yang lebih kompleks dan / atau menggambarkan perilaku data yang jauh lebih kompleks.

Andrew
sumber
6
+1 Untuk paragraf kedua. Saya ingin menunjukkan bahwa siapa pun yang jelas memahami semua elemen dari jawaban ini mungkin tidak akan mengajukan pertanyaan awal. Mungkin tidak membantu untuk menyebutkan tata bahasa formal kepada seseorang yang jabatannya dimulai dengan "Saya hanya merasa basah dalam statistik ..." Paragraf kedua di sini menangkap esensi dari apa yang diminta OP. Alih-alih paragraf pertama, Anda bisa mengatakan: sebuah HMM memodelkan dependensi bersyarat negara tersembunyi, di mana setiap negara memiliki distribusi probabilitas selama pengamatan.
Phillip Cloud
7
Jawaban ini benar-benar salah. Neural Network di sini diasumsikan sebagai feedforward. Ini hanya satu kelas jaringan saraf. Model berulang tidak hanya memetakan input tunggal ke representasi dimensi yang lebih rendah, dan mereka dapat menghasilkan bahasa. Lihat misalnya arxiv.org/abs/1308.0850
rd11
Membuat urutan (seperti pada kertas yang ditautkan) tidak sama dengan menghasilkan bahasa. Saya kira Anda dapat menerapkannya untuk membedakan antara elemen-elemen set dan sebaliknya jika Anda menginginkannya, bagaimanapun, model berulang dapat dipertimbangkan sebagai mengambil satu input besar yang membentang atas input individual dengan perulangan dan mengembalikan satu output besar. Tidak yakin apakah Neural Network yang berulang dapat memberi Anda output tanpa input apa pun.
Andrew
Hmm. Bisakah Anda memberikan contoh sesuatu yang Anda pikir HMM dapat hasilkan, dan Anda yakin tidak dapat dihasilkan dengan RNN?
rd11
Contoh yang muncul dalam pikiran adalah sebagai berikut: diberi HMM Anda dapat memperoleh urutan elemen yang termasuk bahasa yang HMM wakili. Agar RNN dapat melakukannya, Anda perlu menambahkan sesuatu di atasnya (mis. Coba input yang berbeda dan tandai input sebagai anggota kelas atau yang lain) - walaupun dalam kasus RNN Anda mungkin melihat beberapa input (satu demi satu) mewakili satu "item". HMM lebih cocok secara alami untuk tujuan menghasilkan bahasa.
Andrew
3

Jawaban terbaik untuk pertanyaan ini dari apa yang saya temukan adalah ini: Apakah belajar mendalam tentang rantai Markov menyamar . Ini persis apa yang saya mengerti, tetapi karena sudah ada diskusi di tempat lain di Internet, saya meletakkan tautan di sini.

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2)...

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2,x1)p(x4|x3,x2,x1)...

Kita dapat menggunakan urutan karakter sebagai input daripada karakter tunggal. Dengan cara ini, kita dapat menangkap keadaan dengan lebih baik (tergantung pada konteksnya).

Jayadevan Vijayan
sumber