Jadi saya mengerti bahwa ketika Anda melatih HMM untuk klasifikasi, pendekatan standarnya adalah:
- Pisahkan set data Anda ke dalam set data untuk setiap kelas
- Latih satu HMM per kelas
- Pada set tes, bandingkan kemungkinan masing-masing model untuk mengklasifikasikan setiap jendela
Tapi bagaimana cara melatih HMM di setiap kelas? Apakah saya hanya menggabungkan data yang berkaitan dengan satu kelas bersama? Tetapi bukankah data deret waktu dimaksudkan untuk berurutan - dan jika saya melakukan itu maka saya mengatakan bahwa beberapa titik data berturut-turut padahal tidak?
Agar lebih konkret saya memiliki beberapa data EEG yang merupakan matriks 96xT di mana saya memiliki 96 vektor fitur yang merupakan kepadatan spektral daya dari frekuensi yang berbeda dari saluran yang berbeda dan T adalah lamanya waktu sinyal (pada tingkat sampling tertentu)
Ini dapat dibagi menjadi windows yang saya tahu dari protokol eksperimental (data diberi label) dan jadi saya dapat mengumpulkan set matriks 96 * t untuk setiap kelas. Di mana t kurang dari T dan menunjukkan ukuran masing-masing jendela.
Bagaimana cara melatih HMM pada data ini? Jika itu membantu saya mencoba menggunakan toolkit pmtk3, tapi saya benar-benar terbuka untuk menggunakan apa pun - itu hanya harus mampu menangani pengamatan bernilai nyata karena kepadatan spektral daya terus menerus tidak terpisah (kotak alat MATLAB default hanya dapat menangani dengan pengamatan diskrit).
Tujuannya adalah untuk dapat mengklasifikasikan jendela data EEG ke kondisi mental yang diberikan setelah dilatih pada data yang diberi label. Ini adalah masalah antarmuka otak-komputer menggunakan data Persaingan BCI Berlin .
sumber
Jawaban:
Pendekatan yang Anda gambarkan untuk menggunakan HMM untuk klasifikasi benar-benar hanya berlaku untuk pengaturan di mana Anda memiliki urutan independen yang ingin Anda klasifikasikan. Misalnya, jika saya mengklasifikasikan sentimen kalimat sebagai positif atau negatif, saya bisa membuat HMM untuk masing-masing seperti yang telah Anda jelaskan. Lihat jawaban terkait yang saya berikan di sini . Perhatikan bagaimana ini bertumpu pada asumsi saya dapat memecah urutan menjadi potongan-potongan yang bermakna untuk diklasifikasikan sebelum saya membandingkan posisi. Ini tampaknya tidak menjadi masalah bagi Anda karena Anda secara efektif memiliki satu seri waktu panjang yang besar . Inilah yang akan saya coba.T
Anda sebutkan di reddit bahwa Anda ragu untuk menetapkan satu negara untuk setiap kelas. Sudahkah Anda mencoba ini? Ini mungkin tidak bekerja seburuk yang Anda pikirkan. Masalah estimasi juga jauh lebih mudah dalam hal ini. Memperkirakan probabilitas transisi mudah, Anda hanya menghitung dasarnya. Selain itu, Anda bisa menyesuaikan probabilitas emisi untuk setiap negara berdasarkan data yang Anda amati dan kelas terkait, mengabaikan aspek temporal.
Jika Anda yakin ini adalah ide yang buruk, atau berkinerja buruk tetapi masih ingin tetap menggunakan model generatif, Anda dapat menggunakan sesuatu seperti HMM Hierarchical. Misalnya, Anda bisa membiarkan negara bagian tingkat atas mewakili kelas dan kemudian membiarkan HMM tingkat lebih rendah untuk memodelkan variasi temporal di dalam kelas. Anda juga bisa menggunakan satu HMM besar untuk mencapai hal serupa. Jika Anda memiliki kelas, mengalokasikan negara untuk masing-masing kelas (jadi menyatakan sama sekali) dari bentuk , , . Selama pelatihan Anda akan perlu untuk memaksa HMM untuk probabilitas positif hanya menetapkan untuk transisi ke keadaan pada waktu manaK N N×K ski k=1,…,K i=1,…N t k cocok dengan label pada waktu . Saya mungkin telah mengatakan ini sedikit canggung jadi saya harap jelas apa yang saya maksud. Jelas Anda dapat menggeneralisasi ini untuk memiliki jumlah negara yang berbeda per kelas. Mungkin ada jenis lain dari Dynamic Bayesian Networks yang dapat Anda gunakan juga. Tesis Kevin Murphy adalah referensi yang bagus. Dia juga membahas mengubah HHMM menjadi HMM.t
Terakhir, Anda bisa beralih ke model diskriminatif seperti Bidang Acak Bersyarat. Model diskriminatif akan memungkinkan Anda untuk dengan mudah menggabungkan fitur yang lebih kompleks dan lebih langsung mengatasi masalah yang ada (memperkirakan kepadatan bersyarat). Mungkin ini yang saya coba dulu.
sumber