Алгоритмы в биоинформатике, осень 2016: Скрытые...
Post on 14-Apr-2017
55 Views
Preview:
TRANSCRIPT
HMMHidden Markov Models
Скрытые Марковские Модели
,
Задача о кривой монете
Пусть крупье выбирает монету в самом начале с равной вероятностью.
Вероятность выпадения орла на неправильной монете – 0.9.
Крупье начинает подкидывать монету и выпадают только орлы.
После какого выпадения подряд подряд можно с уверенностью 95% говорить, что была выбрана неправильная монета?
B
0,5 0,5
+0 – 0,5
Р – 0,5
0 – 0,9
Р – 0,1-
E
Марковский процессМарковский процесс – случайный процесс, эволюция которого после любого заданного значения временного параметра t не зависит от эволюции, предшествовавшей t.
Матрица переходных вероятностей и начальное распределение (Марковская модель)
𝑃 𝑆𝑡+1 𝑆1, … , 𝑆𝑡 = 𝑃 𝑆𝑡+1 𝑆𝑡
𝑃𝑖𝑗 𝑡 = 𝑎𝑖𝑗 = 𝑃 𝑆𝑡+1 = 𝑗 𝑆𝑡 = 𝑖)
𝜋𝑖 = 𝑃(𝑆1 = 𝑖)
Пример (и задача)
Примером матрицы переходов является матрица 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
Скрытая марковская модельHidden Markov Model (HMM)
Скрытые состояния
Открытые состояния
К состояниям Марковской модели 𝑆, добавляем генеративные (открытые, наблюдаемые) состояния 𝑂.
+ -
HeadsTails
0.50.5
0.80.8 0.2
0.2
0.5
0.50.1
0.9
Алгоритм Витерби
Задача: по последовательности наблюдаемых состояний восстановить наиболее вероятную последовательность скрытых состояний.
При этом мы имеем полную информацию о модели:
Π = {𝜋𝑖} 𝐴 = {𝑎𝑖𝑗} 𝐵 = {𝑏𝑖(𝑂)}
𝑂1, 𝑂2, … , 𝑂𝑇 → 𝑆1, 𝑆2… , 𝑆𝑇
Алгоритм ВитербиПусть 𝛿𝑗 𝑡 - вероятность наиболее вероятной
последовательности скрытых состояний и, при этом, модель на шаге 𝑡 находится в состоянии 𝑗.
𝛿𝑗 𝑡 = max 𝑃(𝑆1, … , 𝑆𝑡|𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗)
Тогда:
𝛿𝑗 𝑡 + 1 = max𝑖
𝛿𝑖(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)
𝛿𝑗 1 = 𝜋𝑗𝑏𝑗(𝑂1)
Не забываем запоминать шаги:
Ψj 𝑡 + 1 = argmax𝑖
𝛿𝑖(𝑡)𝑎𝑖𝑗𝑏𝑖(𝑂𝑡+1)
Конец и обратный проход:
መ𝑆𝑇 = argmax𝑖
𝛿𝑖(𝑇) , መ𝑆𝑡 = Ψ መ𝑆𝑡+1(𝑡 + 1)
1
𝑂𝑡 𝑂𝑡+1
2
3
𝑗
𝑏𝑗(𝑂𝑡+1)
Проход вперед (Forward probabilities)Пусть 𝛼𝑗 𝑡 - суммарная вероятность генерации
последовательности открытых состояний 𝑂1, … , 𝑂𝑡 и, при этом, в точке 𝑡 модель будет находится в состоянии 𝑗.
𝛼𝑗 𝑡 = 𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗 | Π, 𝐴, 𝐵
Тогда:
𝛼𝑗 𝑡 + 1 =
𝑖
𝛼𝑖(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)
𝛼𝑗 1 = 𝜋𝑗𝑏𝑗(𝑂1)
Вероятность генерации последовательности:
𝑃 𝑂1, … , 𝑂𝑇 Π,𝐴, 𝐵) =
𝑖
𝛼𝑖(𝑇)
1
𝑂𝑡 𝑂𝑡+1
2
3
𝑗
𝑏𝑗(𝑂𝑡+1)
Проход назад (Backward probabilities)
1
𝑂𝑡−1 𝑂𝑡
𝑖 𝑏2(𝑂𝑡)
N N
2
1
𝑏𝑁(𝑂𝑡)
𝑏1(𝑂𝑡)
Пусть 𝛽𝑖 𝑡 - суммарная вероятность генерации последовательности открытых состояний 𝑂𝑡+1, … , 𝑂𝑇 и, при этом, в точке 𝑡 модель будет находится в состоянии 𝑖.
𝛽𝑖 𝑡 = 𝑂𝑡+1, … , 𝑂𝑇, 𝑆𝑡 = 𝑖 | Π, 𝐴, 𝐵
Тогда:
𝛽𝑖 𝑡 − 1 =
𝑗
𝛽𝑗(𝑡)𝑎𝑖𝑗𝑏𝑗(𝑂𝑡+1)
𝛽 𝑇 + 1 = 1
Вероятность генерации последовательности:
𝑃 𝑂1, … , 𝑂𝑇 Π,𝐴, 𝐵) =
𝑖
𝜋𝑗𝛽𝑗(1)
Вероятность состоянияАлгоритм Forward-Backward
Теперь мы можем посчитать вероятность того, что на шаге 𝑡 мы находимся в состоянии 𝑗:
𝑃 𝑆𝑡 = 𝑗 𝑂1, … , 𝑂𝑇) =𝑃 𝑂1, … , 𝑂𝑡, 𝑆𝑡 = 𝑗 𝑃 𝑂𝑡+1, … , 𝑂𝑇 , 𝑆𝑡 = 𝑗
𝑃 𝑂1, … , 𝑂𝑇
=𝛼𝑗 𝑡 𝛽𝑗(𝑡)
σ𝑖 𝛼𝑖(𝑇)
Задача о кривой монете
B
0,5
0,8
0,5
0,7
+0 – 0,5
1 – 0,5
0,2
0,3
0 – 0,9
1 – 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
Результаты могут отличаться!
Обучение HMMАлгоритм Баума-Велча
Задача – максимизировать вероятность генерации последовательности, подбирая параметры марковской модели.
Действуем итеративно:
Пока коэффициенты не перестанут (заметно) изменяться.
𝑝𝑖𝑗 𝑡 =𝛼𝑖 𝑡 𝑎𝑖𝑗𝑏𝑗 𝑂𝑡+1 𝛽𝑗 𝑡 + 1
σ𝑚𝛼 𝑇
𝛾𝑖 𝑡 =
𝑗
𝑝𝑖𝑗 𝑡
ො𝜋𝑖 = 𝛾𝑖(1)
ො𝑎𝑖𝑗 =σ𝑡 𝑝𝑖𝑗(𝑡)
σ𝑡 𝛾𝑖(𝑡)
𝑏𝑖(𝑂) =σ𝑡,𝑂𝑡=𝑂
𝛾𝑖(𝑡)
σ𝑡 𝛾𝑖(𝑡)
Пример применения обучения HMMЗадачи распознавания и генерации речи
HMM парное выравнивание
G→
G↓
M↘
Задача – выравнивание с помощью HMM
HMM профиль
Insertions (гэпы в последовательности):
Deletions (гэпы в профиле):
HMM профиль
HMM поиск генов
top related