19
HMM Hidden Markov Models Скрытые Марковские Модели

Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Embed Size (px)

Citation preview

Page 1: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

HMMHidden Markov Models

Скрытые Марковские Модели

Page 2: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

,

Page 3: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Задача о кривой монете

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

Вероятность выпадения орла на неправильной монете – 0.9.

Крупье начинает подкидывать монету и выпадают только орлы.

После какого выпадения подряд подряд можно с уверенностью 95% говорить, что была выбрана неправильная монета?

B

0,5 0,5

+0 – 0,5

Р – 0,5

0 – 0,9

Р – 0,1-

E

Page 4: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Марковский процессМарковский процесс – случайный процесс, эволюция которого после любого заданного значения временного параметра t не зависит от эволюции, предшествовавшей t.

Матрица переходных вероятностей и начальное распределение (Марковская модель)

𝑃 𝑆𝑡+1 𝑆1, … , 𝑆𝑡 = 𝑃 𝑆𝑡+1 𝑆𝑡

𝑃𝑖𝑗 𝑡 = 𝑎𝑖𝑗 = 𝑃 𝑆𝑡+1 = 𝑗 𝑆𝑡 = 𝑖)

𝜋𝑖 = 𝑃(𝑆1 = 𝑖)

Page 5: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Пример (и задача)

Примером матрицы переходов является матрица PAM.

PAM = ?n

1-3a, a, a, a,

a, 1-3a, a, a,

a, a, 1-3a, a,

a, a, a, 1-3a,

PAM = 1

Page 6: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Скрытая марковская модельHidden Markov Model (HMM)

Скрытые состояния

Открытые состояния

К состояниям Марковской модели 𝑆, добавляем генеративные (открытые, наблюдаемые) состояния 𝑂.

+ -

HeadsTails

0.50.5

0.80.8 0.2

0.2

0.5

0.50.1

0.9

Page 7: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Алгоритм Витерби

Задача: по последовательности наблюдаемых состояний восстановить наиболее вероятную последовательность скрытых состояний.

При этом мы имеем полную информацию о модели:

Π = {𝜋𝑖} 𝐴 = {𝑎𝑖𝑗} 𝐵 = {𝑏𝑖(𝑂)}

𝑂1, 𝑂2, … , 𝑂𝑇 → 𝑆1, 𝑆2… , 𝑆𝑇

Page 8: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Алгоритм ВитербиПусть 𝛿𝑗 𝑡 - вероятность наиболее вероятной

последовательности скрытых состояний и, при этом, модель на шаге 𝑡 находится в состоянии 𝑗.

𝛿𝑗 𝑡 = max 𝑃(𝑆1, … , 𝑆𝑡|𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗)

Тогда:

𝛿𝑗 𝑡 + 1 = max𝑖

𝛿𝑖(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)

𝛿𝑗 1 = 𝜋𝑗𝑏𝑗(𝑂1)

Не забываем запоминать шаги:

Ψj 𝑡 + 1 = argmax𝑖

𝛿𝑖(𝑡)𝑎𝑖𝑗𝑏𝑖(𝑂𝑡+1)

Конец и обратный проход:

መ𝑆𝑇 = argmax𝑖

𝛿𝑖(𝑇) , መ𝑆𝑡 = Ψ መ𝑆𝑡+1(𝑡 + 1)

1

𝑂𝑡 𝑂𝑡+1

2

3

𝑗

𝑏𝑗(𝑂𝑡+1)

Page 9: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Проход вперед (Forward probabilities)Пусть 𝛼𝑗 𝑡 - суммарная вероятность генерации

последовательности открытых состояний 𝑂1, … , 𝑂𝑡 и, при этом, в точке 𝑡 модель будет находится в состоянии 𝑗.

𝛼𝑗 𝑡 = 𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗 | Π, 𝐴, 𝐵

Тогда:

𝛼𝑗 𝑡 + 1 =

𝑖

𝛼𝑖(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)

𝛼𝑗 1 = 𝜋𝑗𝑏𝑗(𝑂1)

Вероятность генерации последовательности:

𝑃 𝑂1, … , 𝑂𝑇 Π,𝐴, 𝐵) =

𝑖

𝛼𝑖(𝑇)

1

𝑂𝑡 𝑂𝑡+1

2

3

𝑗

𝑏𝑗(𝑂𝑡+1)

Page 10: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Проход назад (Backward probabilities)

1

𝑂𝑡−1 𝑂𝑡

𝑖 𝑏2(𝑂𝑡)

N N

2

1

𝑏𝑁(𝑂𝑡)

𝑏1(𝑂𝑡)

Пусть 𝛽𝑖 𝑡 - суммарная вероятность генерации последовательности открытых состояний 𝑂𝑡+1, … , 𝑂𝑇 и, при этом, в точке 𝑡 модель будет находится в состоянии 𝑖.

𝛽𝑖 𝑡 = 𝑂𝑡+1, … , 𝑂𝑇, 𝑆𝑡 = 𝑖 | Π, 𝐴, 𝐵

Тогда:

𝛽𝑖 𝑡 − 1 =

𝑗

𝛽𝑗(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡)

𝛽𝑗 𝑇 = 1

Вероятность генерации последовательности:

𝑃 𝑂1, … , 𝑂𝑇 Π,𝐴, 𝐵) =

𝑗

𝜋𝑗𝛽𝑗 1 𝑏𝑗 𝑂1

Page 11: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Вероятность состоянияАлгоритм Forward-Backward

Теперь мы можем посчитать вероятность того, что на шаге 𝑡 мы находимся в состоянии 𝑗:

𝑃 𝑆𝑡 = 𝑗 𝑂1, … , 𝑂𝑇) =𝑃 𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗 𝑃 𝑂𝑡+1, … , 𝑂𝑇 , 𝑆𝑡 = 𝑗

𝑃 𝑂1, … , 𝑂𝑇

=𝛼𝑗 𝑡 𝛽𝑗(𝑡)

σ𝑖 𝛼𝑖(𝑇)

Page 12: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Задача о кривой монете

B

0,5

0,8

0,5

0,7

+0 – 0,5

P – 0,5

0,2

0,3

0 – 0,9

P – 0,1-

E

Реализуйте алгоритмы Витерби и Forward-Backward для задачи о кривой монете.

О Р О Р О Р O O O O O O

+ + + + + + - - - - - - .61 .72 .83 .84 .71 .60 .42 .33 .24 .26 .33

.39 .28 .17 .16 .29 .40 .58 .67 .76 .74 .67

+-

FBV

Результаты могут отличаться!

Page 13: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Обучение HMMАлгоритм Баума-Велча

Задача – максимизировать вероятность генерации последовательности, подбирая параметры марковской модели.

Действуем итеративно:

Пока коэффициенты не перестанут (заметно) изменяться.

𝑝𝑖𝑗 𝑡 =𝛼𝑖 𝑡 𝑎𝑖𝑗𝑏𝑗 𝑂𝑡+1 𝛽𝑗 𝑡 + 1

σ𝑚𝛼 𝑇

𝛾𝑖 𝑡 =

𝑗

𝑝𝑖𝑗 𝑡

ො𝜋𝑖 = 𝛾𝑖(1)

ො𝑎𝑖𝑗 =σ𝑡 𝑝𝑖𝑗(𝑡)

σ𝑡 𝛾𝑖(𝑡)

𝑏𝑖(𝑂) =σ𝑡,𝑂𝑡=𝑂

𝛾𝑖(𝑡)

σ𝑡 𝛾𝑖(𝑡)

Page 14: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Пример применения обучения HMMЗадачи распознавания и генерации речи

Page 15: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

HMM парное выравнивание

G→

G↓

M↘

Page 16: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

Задача – выравнивание с помощью HMM

Page 17: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

HMM профиль

Insertions (гэпы в последовательности):

Deletions (гэпы в профиле):

Page 18: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

HMM профиль

Page 19: Алгоритмы в биоинформатике, осень 2016: Скрытые Марковские Модели

HMM поиск генов