Наразі я використовую навчання Вітербі для проблеми сегментації зображень. Мені хотілося знати, які переваги / недоліки полягає у використанні алгоритму Баума-Велча замість навчання Вітербі.
Наразі я використовую навчання Вітербі для проблеми сегментації зображень. Мені хотілося знати, які переваги / недоліки полягає у використанні алгоритму Баума-Велча замість навчання Вітербі.
Відповіді:
Алгоритм Баума-Велча та алгоритм Вітербі обчислюють різні речі.
Якщо ви знаєте ймовірності переходу для прихованої частини вашої моделі та ймовірності випромінювання для видимих виходів вашої моделі, то алгоритм Вітербі дає вам найбільш ймовірну повну послідовність прихованих станів, що обумовлюються як вашими виходами, так і специфікацією вашої моделі.
Алгоритм Баума-Велча дає вам як найбільш вірогідні приховані ймовірності переходу, так і найбільш ймовірний набір ймовірностей випромінювання з урахуванням лише спостережуваних станів моделі (і, як правило, верхня межа кількості прихованих станів). Ви також отримуєте "точкові" найвищі точки ймовірності в прихованих станах, які часто трохи відрізняються від єдиної прихованої послідовності, яка в цілому є найбільш ймовірною.
Якщо ви знаєте свою модель і просто хочете прихованих станів, тоді немає ніяких підстав використовувати алгоритм Баума-Велча. Якщо ви не знаєте своєї моделі, ви не можете використовувати алгоритм Вітербі.
Відредаговано, щоб додати: Див. Коментар Пітера Сміта; в номенклатурі є певне перекриття / розпливчастість. Деякі роздуми привели мене до глави Луїса Хав'є Родрігеса та Інес Торрес у "Розпізнаванні візерунків та аналізу зображень" (ISBN 978-3-540-40217-6, с. 845-857), де обговорюється швидкість та точність компромісів два алгоритми.
Якщо коротко, алгоритм Баума-Велча є по суті алгоритмом очікування-максимізації (ЕМ), застосованим до HMM; як суворий алгоритм типу ЕМ, ви гарантовано збігаєтесь принаймні до локального максимуму, і тому для унімодальних проблем знайдіть MLE. Однак, для кожного кроку потрібно два проходи над вашими даними, а складність стає дуже великою у довжині даних та кількості навчальних зразків. Однак у вас виходить повна умовна ймовірність прихованих параметрів.
Алгоритм тренувань Вітербі (на відміну від "алгоритму Вітербі") наближає MLE до досягнення рівня швидкості за рахунок точності. Він сегментує дані, а потім застосовує алгоритм Вітербі (як я це зрозумів) для отримання найбільш ймовірної послідовності стану в сегменті, а потім використовує цю найбільш ймовірну послідовність стану для повторної оцінки прихованих параметрів. Це, на відміну від алгоритму Баума-Велха, не дає повної умовної вірогідності прихованих параметрів, і, таким чином, знижує точність, зберігаючи значні (розділ повідомляє від 1 до 2 порядків) обчислювальний час.
Вперед-назад використовується, коли ви хочете порахувати "невидимі речі". Наприклад, при використанні ЕМ для вдосконалення моделі за допомогою даних без нагляду. Я думаю, що папір Петрова є прикладом. У техніці, про яку я думаю, спершу ви тренуєте модель з анотованими даними з досить грубими анотаціями (наприклад, тег для 'Verb'). Потім ви довільно розділите масу ймовірності для цього стану на дві злегка неоднакові величини та перекваліфікуєтесь, бігаючи вперед-назад, щоб збільшити ймовірність, перерозподіляючи масу між двома станами.