Розпізнавання мови не є таким складним прикладом, як ви думаєте.
Спочатку уявіть собі створення ланцюга Маркова (MC), який розпізнає текст. Ваша програма читає купу (ідеального, без помилок) тексту та обчислює стани (слова) та зміни стану (наступні слова). Здається, ти це звів. Тепер ви можете генерувати текст або задавати якийсь текст, передбачуючи наступне слово, використовуючи стани та ймовірності переходу вашого МС.
Тепер уявіть, що ви хочете використовувати ваш MC з мовою. Ви просто змусите людей читати текст, схожий на ваш MC, і ви налаштовані, правда? Ну ... За винятком того, що вони збираються вимовляти слова по-іншому: там, де написаний текст говорить "картопля", ви насправді почуєте "по-ТАЙ-тох" і "по-тах-тох" і "пу-тай" -до "і т. д. І навпаки: текст" їв "і" вісім "представляють два різні стани, але (зазвичай) вимовляються однакові.
Ваш алгоритм більше не бачить основних станів (слів), він бачить імовірнісний розподіл вимов для кожного слова. Ваш оригінальний MC прихований за вимовами, і тепер ваша модель повинна бути двошаровою.
Таким чином, ви можете змусити багато людей прочитати вголос текст, який ви використовували для свого початкового тренінгу, ви можете отримати розподіл вимов для кожного слова, а потім поєднати свою оригінальну модель з моделлю вимови, і у вас є прихована модель Маркова ( HMM).
Більшість проблем у реальному світі будуть подібними, оскільки реальний світ, як правило, шумно. Ви насправді не знаєте, в якому стані щось знаходиться. Натомість ви отримаєте різноманітні показники для кожного стану: іноді один і той же показник для різних станів ("їли" і "вісім"), а іноді різні показники для одного стану ("pu-TAY-toe" і "pah-tah-TOE"). Отже, НММ більше підходять для реальних проблем.
[Дві сторони: 1) фактичне розпізнавання мовлення працює на рівні фонеми, а не на рівні слова; 2) Я вважаю, що HMM були королем пагорба для розпізнавання мовлення, але останнім часом були знищені глибокими нейронними мережами.]