الگوریتم ویتربی
الگوریتم ویتربی (به انگلیسی: Viterbi algorithm) الگوریتمی پویا برای پیدا کردن محتملترین مسیر از حالتهای پنهان، با داشتن یک توالی از مشاهدات است.
این الگوریتم اغلب در مواردی بکار میرود که با داشتن یک مدل پنهان مارکف و توالیای از مشاهدات، میخواهیم بدانیم چه توالیای از حالتها (مسیر) این مشاهدات را تولید کردهاند. به عبارت دیگر ما دنبال محتملترین مسیر بهوجودآورندهٔ مشاهدات در یک مدل پنهان مارکف هستیم.
الگوریتم ویتربی از نام اندرو ویتربی گرفته شده است که در سال ۱۹۶۷ آن را به عنوان الگوریتمی رمزگشا برای کدهای کانولوشنال از طریق پیوندهای ارتباطی دیجیتالی نویزی ارائه کرد.
پیدایش و کاربردها
در بسیاری از کاربردهای مدلهای پنهان مارکف، متغیرهای پنهان تفسیر معناداری دارند و در نتیجه یکی از مهمترین مسائل در این حیطه، پیدا کردن محتملترین توالی از متغیرهای پنهان با داشتن یک توالی از مشاهدات است. بهعنوان مثال، در حوزهٔ بازشناسی گفتار، میخواهیم یک توالی از واجها با استفاده از توالیای از آواها داشته باشیم.
این مسئله نباید با مسئلهٔ پیدا کردن محتملترین مجموعه از حالتهای پنهان اشتباه گرفته شود. مسئلهٔ دوم میتواند با استفاده از الگوریتم پسرو-پیشرو حل شود. بدین صورت که ابتدا توزیع حاشیهای برای هر متغیر نهان را بهدست آورده و سپس جداگانه آنها را بیشینه میکنیم. اما در حالت کلی، مسئلهٔ پیدا کردن محتملترین توالی پراهمیتتر بوده و الگوریتم بهینهٔ ارائهشده برای آن، الگوریتم جمع-بیشینه که در حیطهٔ مدلهای پنهان مارکف، به آن الگوریتم ویتربی گفته میشود استفاده کرد.
در مسائل طبیعی مانند در، همیشه واقعیت منطبق بر محتملترین مسیر نیست. اما بسیاری اوقات محتملترین مسیر نیز اطلاعات خوبی در اختیار میگذارد.
مدلهای پنهان مارکف برای جزایز سیپیجی
در این بخش، به بررسی یکی از کاربردهای این مسئله در بیوانفورماتیک میپردازیم. مسئله جزایر سیپیجی (CpG islands) -پیدا کردن ناحیهای از ژنوم که فرکانس بالایی از مکانهای CG در آن وجود دارد- است. این مسئله را میتوان با استفاده از دو مدل مخفی مارکف مدل کرد. کافی است حالتهای مخفی را دو حالتِ
جستجوی کامل فضای مسئله
میتوانیم تمامی مسیرهای ممکن را که مشاهده ما را تولید میکنند را پیدا کنیم، سپس با محاسبه احتمال آنها، محتملترین مسیر را بدست آوریم. به عنوان نمونه در مسئله آب و هوا (میتوانید در مثالهایی برای مدل پنهان مارکف ببینید) مشاهدی ما به صورت خشک، نمدار، مرطوب است. برای بهدست آوردن محتملترین مسیر باید احتمال زیر بیشینه شود:
برای جستجوی تمامی فضای جواب باید این احتمال را برای تمامی مسیرها بدست بیاوریم:
پیچیدگی زمانی این راهحل از اندازهٔ نمایی (
الگوریتم ویتربی
همانطور که در بخش قبل توضیح دادهشد، تعداد حالتهای ممکن برای متغیرهای پنهان یا معادلاً تعداد مسیرها نسبت به طول توالی از اندازهٔ نمایی است. شکل زیر، حالتهای متغیرهای نهان یک مدل پنهان مارکف را بهصورت یک شبکه نشان دادهاست که در آن، حالتهای مختلف برای هر متغیر نهان با رنگهای متفاوت مشخص شدهاند و متغیرهای نهان بهصورت افقی از چپ به راست نمایش داده شدهاند. با استفاده از الگوریتم ویتربی، میخواهیم محتملترین مسیر را در این شبکه بیابیم بهطوری که هزینهٔ محاسباتی بهصورت خطی با طول توالی افزایش یابد.
تعریف مسئله
با توجه به توضیحات دادهشده، میدانیم میتوان مسئله را بهصورت زیر بازنویسی کرد:
میخواهیم مسیر بهینهای مانند
میدانیم برای محاسبهٔ احتمال بالا داریم:
ایدهٔ الگوریتم
اگر گرههای گراف روبرو را با استفاده از دوتاییهایی که بهترتیب از شمارهٔ متغیر نهان و شمارهٔ حالتهای ممکن برای آنها تشکیلشده باشند، نمایش دهیم، میتوان وزن بین دو گرهٔ
حال کافی است متغیر
شبهکد الگوریتم
ورودی:
مدل
- : الفبای مشاهدات
- Q: مجموعه حالات
- P: ماتریس احتمال انتقال بین حالات
- e: ماتریس احتمال تولید الفبا در هر حالت
و توالی
خروجی: محتملترین مسیر
محاسبات آغازین: (i=۰) قرار بده
- برای i از ۱ تا L و تمامی lها عضو Q
- قرار بده
- قرار بده
- قرار بده
خاتمه:
و محتملترین مسیر
بازگشت:
- برای i از L تا ۱:
- قرار بده
- قرار بده
منابع
- ↑ Xavier Anguera et al., "Speaker Diarization: A Review of Recent Research" بایگانیشده در ۱۲ مه ۲۰۱۶ توسط Wayback Machine, retrieved 19. August 2010, IEEE TASLP
- ↑ Daniel Jurafsky; James H. Martin. Speech and Language Processing. Pearson Education International. p. 246.
- ↑ 29 Apr 2005, G. David Forney Jr: The Viterbi Algorithm: A Personal History
- ↑ Qi Wang; Lei Wei; Rodney A. Kennedy (2002). "Iterative Viterbi Decoding, Trellis Shaping, and Multilevel Structure for High-Rate Parity-Concatenated TCM". IEEE Transactions on Communications. 50: 48–55. doi:10.1109/26.975743.
- ↑ 29 Apr 2005, G. David Forney Jr: The Viterbi Algorithm: A Personal History
- ↑ Pattern Classification, Duda et al. , 2001.
- ↑ Forney, G.D. (1973). "The viterbi algorithm". Proceedings of the IEEE. 61 (3): 268–278. doi:10.1109/proc.1973.9030. ISSN 0018-9219.
- ↑ Durbin, Richard, Sean R. Eddy, Anders Krogh, and Graeme Mitchison. Biological sequence analysis: probabilistic models of proteins and nucleic acids. Cambridge university press, 1998.
- ↑ Bishop, Christopher M. Pattern recognition and machine learning. springer, 2006.
- ↑ Algorithms in Bioinformatics I, WS’06, ZBIT, C. Dieterich, February 6, 2007