بالاترین سوالات
زمانبندی
چت
دیدگاه
الگوریتم باوم-ولچ
از ویکیپدیا، دانشنامه آزاد
Remove ads
در مهندسی برق، علوم کامپیوتر، محاسبات آماری و بیوانفورماتیک، الگوریتم باوم-ولچ برای محاسبه پارامترهای مجهول مدل پنهان مارکوف بکار میرود.
مقدمه
این الگوریتم میتواند درستنمایی بیشینه (Maximum likelihood) را برای پارامترهای انتقال و انتشار یک مدل پنهان مارکوف محاسبه کند. این الگوریتم جزو الگوریتمهای یادگیری ماشین دستهبندی میشود. یعنی یک مجموعه داده از مشاهدات به عنوان داده های آموزشی در دسترس است و الگوریتم از روی این دادهها، پارامترهای مدل را تخمین میزند.
این الگوریتم به دادههایی که توسط الگوریتمهای Forward و Backward تولید میشوند نیاز دارد. پارامترهای مدل را به صورت زیر در نظر میگیریم:
: احتمال انتقال از حالت k به حالت l
: احتمال مشاهده الفبای در حالت l
Remove ads
الگوریتم forward
خلاصه
دیدگاه
ایده الگوریتم اینگونه است که:
یعنی احتمال دیده شدن توالی X در مدل M برابر است با جمع احتمال دیده شدن توالی به شرط تمامی مسیرها که آن هم برابر است با
بنابر این میتوانیم روابط بازگشتی زیر را حساب کنیم:
ورودی این الگوریتم: مدل M با الفبای احتمالهای انتفال p و احتمال تولید الفبای e همچنین توالیای از نشانهها X
خروجی: احتمال تولید این توالی توسط مدل
این الگوریتم به صورت پویا متغیر را میسازد، که به معنی احتمال زیرتوالی تا در حالت l است.
Input: HMM M = (، Q, P, e) and sequence of symbols X
Output: probability P(X|M)
Initialization: (i=0): for k>0.
For all
Termination:P(X|M)=
Remove ads
الگوریتم backward
خلاصه
دیدگاه
در الگوریتم backward رابطه بازگشتی برای محاسبه احتمال به صورت زیر است:
متغیر احتمال مشاهدی زیرتوالی تا است در صورتی که در حالت k قرار داشته باشیم.
Input: HMM M = (، Q, P, e) and sequence of symbols X
Output: probability P(X|M)
Initialization: (i=L): for all k.
For all i=:
Termination:P(X|M)=
Remove ads
شبهشماره
وقتی با دادههای آموزش سر و کار داریم، گاهی اوقات داده ها همه حالات را پوشش نمیدهند مثلاً در مورد مسایل مدل پنهان مارکوف، احتمال دارد در مجموعه دادههای آموزشی ما به دلایل مختلف انتقال از حالت i به حالت j مشاهده نشود در صورتی که این یک انتقال ممکن باشد، بنابراین احتمال این انتقال صفر محاسبه میشود که میتواند الگوریتم را به سمت جواب غلط پیش ببرد.
برای رفع این مشکل از شبهشمارهها( Pseudocount s) استفاده میکنیم. به این صورت که یک عدد کوچک را جای احتمال صفر، جایگزین میکنیم.
Remove ads
الگوریتم baum-welch
الگوریتم باوم-ولچ یک الگوریتم تکرار شونده است. ابتدا پارامترهای مدل به صورت تصادفی انتخاب میشوند و سپس در هر تکرار سعی میشود این پارامترها طوری اصلاح شوند که مدل به دادههای آموزشی نزدیک شود. میتوان آنقدر الگوریتم را تکرار کرد که تغییر قابل ملاحظهای در پارامترهای بدست آمده رخ ندهد.
ورودی: مدل و دادههای آموزشی
خروجی: مدل با پارامترهای انطباق یافته
شروع: ماتریسهای P و E را به صورت دلخواه مقداردهی میکنیم.
Remove ads
بازگشت
خلاصه
دیدگاه
قرار میدهیم: یا اینکه با شبهشماره جایگزین میکنیم
برای تمامی توالیهای :
- را محاسبه میکنیم
- را به صورت روبرو بهبود میبخشیم
- را نیز اینگونه بهبود میدهیم:
شبهشمارهها را در صورت لزوم اعمال میکنیم.
قرار میدهیم:
پایان: درجه درستنمایی بیشینه را محاسبه میکنیم، اگر تغییر چندانی نکرد یا اینکه به تعداد مشخصی از تکرار رسیدیم، به الگوریتم خاتمه میدهیم.
Remove ads
پیوند به بیرون
- An Interactive Spreadsheet for Teaching the Forward-Backward Algorithm (spreadsheet and article with step-by-step walkthrough)
- Formal derivation of the Baum-Welch algorithm بایگانیشده در ۲۸ فوریه ۲۰۱۲ توسط Wayback Machine
- Implementation of the Baum-Welch algorithm
منابع
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads