Я нашел скрытую марковскую модель очень интересной и логичной. Итак, здесь я должен объяснить и дать интуицию об этой удивительной вероятностной теории, которую можно широко использовать в машинном обучении, НЛП и глубоком обучении. Этот блог не будет так сильно ориентирован на математику, поэтому я постараюсь сделать его максимально интересным.

Скрытая марковская модель (HMM): HMM – это вероятностные графические модели, предназначенные для поиска наилучшей последовательности или пути скрытых состояний с заданным набором наблюдаемых переменных. «Скрытые состояния» представляют собой основные процессы или переменные, которые нельзя наблюдать напрямую, а «лучший путь» относится к последовательности скрытых состояний, которая максимизирует общую вероятность наблюдаемых данных. Немного запутанно! позвольте мне объяснить это на примере, и мы продолжим этот пример до конца.

Предположим, есть два погодных условия (солнечное и дождливое) и исходя из этих условий Роберт может чувствовать себя счастливым или грустным, и здесь также даны вероятности

Теперь, если настроение Роберта в течение 5 дней - Счастливое, грустное, счастливое, грустное, счастливое
Означает ли это, что погода в эти дни будет солнечной, дождливой, солнечной, дождливой и солнечной соответственно?
Нет. потому что погода обычно работает не так.
Теперь давайте рассмотрим модель HMM.

Теперь позвольте мне объяснить все основные термины здесь -

· Вероятность перехода – вероятность перехода солнечного дня в дождливый. Говоря более технически, это представляет собой вероятность перехода из одного состояния в другое.

P(солнце->дождь)=0,2 и P(дождь->солнце)=0,4

P(солнце-›солнце)=0,8 и P(дождь->дождь)=0,6

·Вероятность выброса — вероятность наблюдения определенного результата из заданного скрытого состояния в модели. В основном вероятности наблюдений.

· Скрытое состояние — ненаблюдаемые переменные, которые генерируют наблюдаемые символы или результаты. Например, облака или погода — это скрытое состояние, а дождь — наблюдаемый результат.

Как теперь рассчитать вероятность перехода или вероятность эмиссии?

Ответ заключается в том, что мы рассчитываем их на основе исторических наблюдений. давайте пример-

Вероятность перехода

  • Общее количество событий(солнце->солнце или дождь ) =10
    Солнце->солнце = 8 Вероятность (солнце->солнце)=0,8
    солнце->дождь= 2 вероятность (солнце->дождь)=0,2

Сходным образом,

  • Общее количество случаев(дождь->дождь или солнце ) =5
    Дождь->дождь =3 вероятность(дождь->дождь)=0,6
    Дождь->солнце= 2 вероятность (дождь->солнце)=0,4

Вероятность выброса

  • Общее количество солнечных дней со счастливым/грустным настроением = 10 (конечный узел не будет учитываться, потому что мы не знаем настроения в этот день)
    Солнце и счастье = 8 Вероятность (солнце и счастье) = 0,8< br /> Солнце и грусть = 2 вероятность (солнце и грусть) = 0,2

Сходным образом,

  • Общее количество событий(дождь И радость/грусть) =5
    Дождь и грусть =3 вероятность(дождь и грусть)=0,6
    Дождь, грусть, радость = 2 вероятность (дождь и радость)=0,4

Que- Теперь, какова вероятность того, что случайный день будет солнечным или дождливым??

Всего случаев = 15
Солнечный день = 10 , Вероятность (солнце) = 2/3
Дождливый день = 5 , Вероятность (дождливый день) = 1/3

Теперь у нас есть все вероятности, мы можем ответить на любой вопрос, используя эти вероятности.

Например, какова вероятность солнечного дня, если вчера был дождливый день?
Это переходная вероятность, поэтому ответ будет 0,4.

А теперь попробуем ответить на вопрос — если Роберт счастлив сегодня, какова вероятность того, что сегодня солнечный или дождливый день?

Для таких задач мы используем теорему Байеса

Но угадайте, что мы не будем использовать эту формулу, а пойдем более логичным путем

Итак, вот эта диаграмма, с помощью которой мы можем легко понять все эти вероятности.

На этой картинке хорошо видны вероятности

вероятность того, что день будет солнечным, учитывая, что он был грустным = P (солнечно / грустно) = 2/5

вероятность того, что день будет дождливым, учитывая, что он был грустным = P (дождливый / грустный) = 3/5

вероятность того, что день будет солнечным, при условии, что он был счастлив = P (солнечно/счастливо) = 8/10

вероятность того, что день будет дождливым, учитывая, что он был счастлив = P (дождливый/счастливый) = 2/10

На данный момент у нас есть все эти вероятности, довольно простые, верно!!

Теперь немного усложним ситуацию.

Вопрос — Если 3 дня Роберт был счастлив, грустен, счастлив, то какая была погода??

Давайте сначала сделаем это в течение двух дней. Итак, Роберт был счастлив и печален, тогда у нас есть четыре варианта погоды (солнце, солнце), (солнце, дождь), (дождь, солнце) и (дождь, дождь)

Допустим (солнце, дождь) и настроение у Роберта было радостное и грустное

Точно так же мы вычисляем вероятности всех четырех комбинаций, и комбинация с наибольшей вероятностью будет нашим окончательным ответом.

Так что с максимальной вероятностью наш окончательный ответ будет солнечным и солнечным.

За 3 дня у нас будет 8 комбинаций погоды. Итак, теперь вы можете догадаться, что, если у нас есть n дней, это будет 2 ^ n. Так что это может быть очень беспокойно, если мы будем следовать этому методу грубой силы. но валлах! у нас есть решение для этого.

Алгоритм Витерби. Алгоритм Витерби эффективно вычисляет наиболее вероятную последовательность скрытых состояний (погода) в HMM, учитывая наблюдаемую последовательность (настроение Роберта) символов. Это достигается за счет поддержки таблицы динамического программирования и рекурсивного заполнения ее слева направо. Каждая ячейка в таблице представляет вероятность наиболее вероятной последовательности состояний до этой точки и соответствующего скрытого состояния в этой точке.

Предположим, в предыдущем примере у нас есть 6 наблюдений и нам нужно предсказать погоду на 6 дней.

Что мы будем делать, так это выбирать лучший путь вплоть до последнего наблюдения.

как рассчитать вероятности всех путей

С левой стороны мы начали наши расчеты. Итак, чтобы Роберт был счастлив, рассчитаем условную вероятность погоды. Так что в данном случае мы видим, что, скорее всего, солнечно.

Теперь выберем солнечное для первого дня.

А теперь, если день солнечный, то начинаем считать на второй день.

Солнечный день -> Солнечный день
или
Солнечный день-›дождливый день

Мы снова рассчитали условные вероятности, как вы можете видеть выше, и следуем максимальной вероятности.

Мы следуем этому процессу до конца, в конце концов мы выберем лучший путь.

Итак, это наш окончательный прогноз погоды.

солнечно-›солнечно-›солнечно-›дождливо-›дождливо-›солнечно

Приложения –

  • Пометка части речи: HMM обычно используются для пометки части речи, где они помогают определить соответствующую грамматическую категорию (существительное, глагол, прилагательное и т. д.) для каждого слова в предложении.
  • Локализация роботов: HMM играют решающую роль в задачах локализации и навигации роботов. Используя данные датчиков и переходы состояний, HMM помогают роботам оценивать свое положение в среде и принимать обоснованные решения на основе вероятностной информации.
  • Генетика: HMM находят применение при анализе генетических последовательностей. Их можно использовать для выявления паттернов, мотивов или регуляторных элементов в последовательностях ДНК, обеспечивая понимание функций генов и генетических нарушений.
  • Распознавание речи: HMM широко используются в системах распознавания речи. Моделируя вероятностные отношения между звуками речи и словами, HMM обеспечивают точное распознавание и транскрипцию разговорной речи.

В заключение, скрытые марковские модели (HMM) играют решающую роль в задачах обработки естественного языка (NLP), фиксируя вероятностные отношения между наблюдаемыми символами и лежащими в их основе скрытыми состояниями. HMM широко используются в задачах маркировки последовательностей, таких как маркировка частей речи и распознавание именованных объектов. Алгоритм Витерби, алгоритм динамического программирования, эффективно вычисляет наиболее вероятную последовательность скрытых состояний в HMM с учетом наблюдаемой последовательности символов. Используя свойство Маркова и методы динамического программирования, алгоритм Витерби предоставляет мощный инструмент для декодирования и поиска оптимальной последовательности состояний. HMM и алгоритм Витерби образуют фундаментальную основу в НЛП для моделирования последовательных данных и решения различных задач извлечения и генерации информации.

Вы также можете посмотреть это потрясающее видео (кредит) — https://youtu.be/kqSzLo9fenk