[KEMBALI KE MENU SEBELUMNYA]
.
HIDDEN MARKOV MODEL
1. Tujuan
a. Mampu Memahami mengenai Hidden Markov Model
b. Dapar mengaplikasikan Hidden Markov Model dalam
sebuah permasalahan
2. Alat & Bahan
a. Aplikasi Google Colab
3. Materi
Hidden Markov Model (HMM)
adalah sebuah model statistik dari sebuah sistem yang diasumsikan
sebuah Proses Markov dengan parameter yang tak diketahui, dan tantangannya
adalah menentukan parameter-parameter tersembunyi (state) dari
parameter-parameter yang dapat diamati (observer).
Algoritma HMM yang digunakan sebagai teknik dasar untuk
automatic speech recognition (ASR) dan part-of-speech (POS)
tagging. HMM adalah salah satu metode
Bayesian Inference pada pattern recognition dan
machine learning.
A. Probabilistic Reasoning
Probabilistic Reasoning adalah suatu yang memiliki kemampuan mengambil
keputusan yang rasional walaupun informasi yang akan diolah kurang
lengkap atau bersifat nonlinier.
B. Generative Model
Pada Generative model memodelkan p(x,y). Persamaan ini dapat
difaktorkan sebagai p(x,y) = p(y | x)p(x). Pada umumnya kita lebih
tertarik dengan nilai y yang menyebabkan p(x,y) bernilai maksimum,
berhubung x akan selalu tetap karena x adalah fixed input, y terbaiklah
yang ingin kita temukan. Berbeda dengan supervised learning, generative
model dapat difaktorkan menjadi p(y | x) dan p(x). Karena berbentuk joint
probability, generative model memodelkan peluang kemunculan
bersamaan.
Salah satu generative model adalah
Hidden Markov Model (HMM). HMM memodelkan observasi menggunakan proses
Markovian dengan state yang tidak diketahui secara jelas (hidden).
C. Part-of-speech Tagging
Pada bidang pemrosesan bahasa alami (natural language
processing), peneliti tertarik untuk mengetahui kelas kata untuk
masing - masing kata di tiap kalimat. Misalkan kamu diberikan sebuah
kalimat " Budi menendang bola:. Setelah proses POS tagging, kamu
mendapat "Budi/Noun menendang/Verb bola/Noun".
Hal ini sangat berguna pada bidang pemrosesan bahasa
alami, misalkan untuk memilih noun pada kalimat. Kelas kata
disebut sebagai syntactic categories. Pada bahasa inggris
dikenal dengan Penn Treebank Pos Tags.
POS tagging adalah salah satu bentuk pekerjaan
sequential classification. Diberikan sebuah sekuens kata
(membentuk satu kalimat), kita ingin menentukan kelas setiap
kata/token pada kalimat tersebut. Kita ingin memilih sekuens
kelas kata syntactic categories yang paling cocok untuk
kata-kata/tokes pada kalimat yang diberikan. Secara formal,
diberikan sekuens kata - kata w1, w2, ... ,wr, kita ingin
mencari sekuens kelas kata c1, c2, ... ,cr, sedemikian
sehingga kita memaksimalkan nilai probabilitas.
Dimaca c adalah daftar kelas kata. Akan
tetapi, menhitung persamaan sangatlah sulit karena
dibutuhkan data yang sangat banyak.
D. Hidden Markov Model Tagger
Markov chain adalah kasus spesial
weighted automaton yang mana sekuens input menentukan
states yang akan dilewati oleh automaton. Sederhananya,
automaton mencapai goal states setelah mengunjungi
berbagai states. Total bobot outgoing edges untuk masing
- masing state pada automaton haruslah bernilai satu
apabila dijumlahkan kasus spesial yang yang dimaksud
adalah emission.
Sebagai Contoh pada gambar. ART adalah
article, N adalah noun, V adalah verb dan P adalah
preposition. Mereka adalah contoh kelas kata yang
disederhanakan demi membuat contoh yang mudah. Tabel
dibawah mempresentasikan probabilitas kelas kata,
ketika dikonversi menjadi weighted automaton.
Seumpama kita mempunyai lexical emission probabilities seperti pada tabel. Setiap state pada automaton, dapat menghasilkan/meng-outputkan suatu kata (word) dengan probabilitas pada tabel kita bisa mengembangkan gambar weighted aytomaton tadi menjadi
Automaton ini disebut hidden markov model
(HMM). Kata hidden berarti, untuk setiap kata pada
sekuens, kita tidak mengetahui kata tersebut dihasilkan
oleh state mana secara model. Misalkan kata flies dapat
dihasilkan oleh state N(noun) atau V(verb).
E. Algoritma Viterbi
Algoritma Viterbi adalah salah satu
algoritma dynamic programing yang prinsip kerjanya mirip
dengan minimum edit distance. Ide utama algoritma
viterbi adalah mengingat sekuens untuk setiap posisi
tertentu( setiap iterasi, setiap panjang kalimat).
apabila kita telah smpai pada kata terakhir, kita
lakukan backtrace untuk mendapatkan sekuens
terbaik.
Pada gambar diatas menunjukkan pseudo-code
untuk algoritma Viterbi. Variabel c berarti kelas kata, a
adalah transition probability, dan b adalah
lexical-generation probability. Pertama-tama algoritma
tersebut membuat suatu matrik berukuran SxT dengan S adalah
banyaknya states ( tidak termasuk start state ) dan T (time)
adalah panjang sekuens. Pada setiap iterasi, kita pindah ke
observasi kata lainnya.
Gambat diatas adalah ilustrasi algoritma Viterbi untuk
kalimat input (observed sequence ) "flies like a flowe"
dengan lexical generation probability pada Lexical
emisson probabilities dan transition probabilities pada
probabilitas bigram.
Panah bewarna merah melambangkan
backpointer yaitu state mana yang memberikan nilai
tertinggi untuk melambangkan backpointer yaitu state
mana yang memberikan nilai tertinggi untuk ekspansi ke
state berikutnya. Setelah iteration step selesai, kita
lakukan backtrace terhadap state terakhir yang
memiliki nilai probabilitas tertinggi dan mendapat
hasil seperti pada gambar dibawah.
F.Proses training Hidden Markov ModelHidden Markov Model (HMM) adalah salah satu varian supervised learning, diberikan sekuens input dan output yang bersesuaian sebagai training data. Pada kasus POS tagging, yaitu inputnya adalah sekuens kata dan outputnya adalah sekuens kelas kata ( masing - masing kata/token berkorepondensi dengan kelas kata). Saat melatih HMM, kita ingin mengestimasi parameter A dan B yaitu transition probabilities dan emission probabilities/lexical-generation probabilitie. Kita melatih dengan menggunakan algoritma Forward-Backward (Baum-Welch Algorithm).
Algoritma forward |
Algortima backward |
Algoritma forward-backward (EM) |
Keseluruhan proses ini adalah cara melatih HMM dengan menggunakan kerangka berpikir Expectation Maximization : terdiri dari E-step dan M-step. Walaupun HMM menggunakan independence assumption, tetapi kita dapat mengikutsertakan pengaruh probabilitas keseluruhan sekuens untuk perhitungan probabilitas keberadaan kita pada suatu state i pada saat (time t) tertentu.
4. Percobaan
HMM using the Viterbi Algorithm.
Code Implementation: Parts Of Speech Tagging
Setelah mendapatkan Treebank Pos Tag sekarang bisa kita mencobakan beberapa example :
Terakhir kita juga bisa melihat gambaran jumlah kata corpus dengan part of speech-nya.