Перейти к содержанию

Что такое алгоритм FB

Данная статья подробно описывает назначение, базовые принципы работы и практическое применение алгоритма «вперёд-назад» в вычислительных задачах.

ИнформатикаОбновлено 2 сентября 2026 г.2 мин чтения

Что такое алгоритм FB?

Нейросова

Что такое алгоритм FB — это алгоритм динамического программирования, применяемый для расчета краевых вероятностей состояний в скрытых марковских моделях. Алгоритм FB эффективно вычисляет вероятности скрытых состояний для всех шагов во времени за линейную трудоемкость. Данный метод состоит из двух последовательных этапов: прямого шага для расчета вероятностей наблюдения и обратного шага для учета будущих данных последовательности.

αt(j)=P(o1,,ot,qt=Sjλ)\alpha_t(j) = P(o_1, \dots, o_t, q_t = S_j \mid \lambda)

Разбор по случаям

Что известноФормулаКогда применять
Прямой проход (Forward step)αt(j)=[i=1Nαt1(i)aij]bj(ot)\alpha_t(j) = \left[ \sum_{i=1}^{N} \alpha_{t-1}(i) a_{ij} \right] b_j(o_t)Расчет промежуточных вероятностей от начала последовательности до текущего шага.
Обратный проход (Backward step)βt(i)=j=1Naijbj(ot+1)βt+1(j)\beta_t(i) = \sum_{j=1}^{N} a_{ij} b_j(o_{t+1}) \beta_{t+1}(j)Расчет вероятностей остатка наблюдаемой последовательности от текущего шага до конца.
Объединение шагов (Smoothing)γt(i)=αt(i)βt(i)P(Oλ)\gamma_t(i) = \frac{\alpha_t(i) \beta_t(i)}{P(O \mid \lambda)}Оценка вероятности пребывания в конкретном состоянии в момент времени t.
Оценка параметров (EM-алгоритм)ξt(i,j)=αt(i)aijbj(ot+1)βt+1(j)P(Oλ)\xi_t(i,j) = \frac{\alpha_t(i) a_{ij} b_j(o_{t+1}) \beta_{t+1}(j)}{P(O \mid \lambda)}Оптимизация параметров скрытой марковской модели на основе алгоритма Баума-Велша.

Примеры

Расчет прямой вероятности. Рассмотрим модель с двумя состояниями.

В начальный момент времени прямой показатель равен α1(1)=π1b1(o1)\alpha_1(1) = \pi_1 \cdot b_1(o_1).

На втором шаге мы пересчитываем значение через сумму всех возможных прошлых переходов: α2(1)=(α1(1)a11+α1(2)a21)b1(o2)\alpha_2(1) = (\alpha_1(1)a_{11} + \alpha_1(2)a_{21}) \cdot b_1(o_2).

Это позволяет последовательно и быстро учесть всю цепочку предшествующих наблюдений без полного перебора возможных траекторий системы.

Финишное объединение. Для отыскания вероятности нахождения системы в первом состоянии на шаге tt перемножаются прямая вероятность αt(1)\alpha_t(1) и обратная вероятность βt(1)\beta_t(1). Полученное произведение делят на полную вероятность всей последовательности P(Oλ)P(O|\lambda). В результате вычислений мы получаем точную итоговую апостериорную вероятность γt(1)\gamma_t(1) для выбранного момента времени tt.

Частые ошибки

  • Путаница между прямыми вероятностями alpha и обратными вероятностями beta при подстановке индексов времени.
  • Забывание нормировки промежуточных значений, из-за чего происходит машинный переполняющий подтек при длинных цепочках.
  • Отождествление алгоритма FB с алгоритмом Витерби, который ищет одну наиболее вероятную последовательность, а не апостериорные вероятности.

Коротко

Подводя итоги, повторим, что такое алгоритм FB и для чего он применяется в вычислениях. Алгоритм FB сочетает прямой и обратный проходы динамического программирования для точной оценки состояний марковских моделей.

Учебный бот Нейросовы

Бесплатный помощник по учёбе — не только по теме «Информатика». Решит задачу по действиям, объяснит непонятное место своими словами, ответит на вопросы в конце параграфа.

  • Любой учебный вопрос
  • Понимает фото задания
  • Без регистрации

Ещё по теме

А можно не писать самому