Машинное обучение 1, весна 2014: Лекция 4
TRANSCRIPT
Алгоритм передачи сообщенийПриближённый вывод
Графические модели и байесовский вывод на них
Сергей Николенко
Computer Science Club, Казань, 2014
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Outline
1 Алгоритм передачи сообщенийГрафические моделиSum–product и max–sum
2 Приближённый выводСложная структура графаСложные факторы
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
В чём же проблема
В предыдущих лекциях мы рассмотрели задачубайесовского вывода, ввели понятие сопряжённогоаприорного распределения, поняли, что наша основнаязадача – найти апостериорное распределение.
Но если всё так просто – взяли интеграл, посчитали, всёполучилось – о чём же здесь целая наука?
Проблема заключается в том, что распределения, которыенас интересуют, обычно слишком сложные (слишкоммного переменных, сложные связи).
Но, с другой стороны, в них есть дополнительнаяструктура, которую можно использовать, структура в виденезависимостей и условных независимостей некоторыхпеременных.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Пример: рассмотрим распределение трёх переменных изапишем его по формуле полной вероятности:
p(x , y , z) = p(x | y , z)p(y | z)p(z).
Теперь нарисуем граф, в котором стрелки указывают,какие условные вероятности заданы.
Пока граф полносвязный, это нам ничего не даёт – любоераспределение p(x1, . . . , xn) так можно переписать.
Но если некоторых связей нет, это даёт нам важнуюинформацию и упрощает жизнь.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Рассмотрим направленный ациклический граф навершинах x1, . . . , xk и зададим в каждой вершинераспределения p(xi | pa(xi )). Тогда будем говорить, чтограф с этими локальными распределениями являетсяграфической моделью (байесовской сетью доверия) длясовместного распределения вероятностей
p(x1, . . . , xk) =
k∏i=1
p(xi | pa(xi )).
Другими словами, если мы можем разложить большоесовместное распределение в произведение локальныхраспределений, каждое из которых связывает малопеременных, это хорошо. :)
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Пример: обучение параметров распределения понескольким экспериментам (плашки, можно нарисоватьпараметры явно):
p(x1, . . . , xn, θ) = p(θ)n∏
i=1
p(xi | θ).
Что можно сказать о (не)зависимости случайных величинxi и xj?Задача вывода на графической модели: в некоторой частивершин значения наблюдаются, надо пересчитатьраспределения в других вершинах (подсчитать условныераспределения). Например, из этой модели получатся изадача обучения параметров, и задача последующегопредсказания.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
d -разделимость – условная независимость, выраженная вструктуре графа:
последовательная связь, p(x , y , z) = p(x)p(y | x)p(z | y):если y не наблюдается, тоp(x , z) = p(x)
∫p(y | x)p(z | y)dy = p(x)p(z | x);
если y наблюдается, тоp(x , z | y) = p(x,y,z)
p(y) = p(x)p(y |x)p(z|y)p(y) = p(x | y)p(z | y),
получили условную независимость.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
расходящаяся связь, p(x , y , z) = p(x)p(y | x)p(z | x), – так же:
если y не наблюдается, тоp(x , z) = p(x)p(z | x)
∫p(y | x)dy = p(x)p(z | x);
если y наблюдается, тоp(x , z | y) = p(x,y,z)
p(y) = p(x)p(y |x)p(z|x)p(y) = p(x | y)p(z | y),
получили условную независимость.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Интересный случай – сходящаяся связь,p(x , y , z) = p(x)p(y)p(z | x , y):
если z не наблюдается, то p(x , y) = p(x)p(y),независимость есть;если z наблюдается, тоp(x , y | z) = p(x,y,z)
p(z) = p(x)p(y)p(z|x,y)p(z) , и условной
независимости нету.
Обобщение: если наблюдается хотябы один из потомков z , уже можетне быть независимости между x и y .
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Можно сформулировать, как структура графа соотноситсяс условной независимостью: в графе, где вершины измножества Z получили означивания (evidence), две ещё неозначенные вершины x и y условно независимы приусловии множества означенных вершин Z , если любой(ненаправленный) путь между x и y :
либо проходит через означенную вершину z ∈ Z споследовательной или расходящейся связью;либо проходит через вершину со сходящейся связью, вкоторой ни она, ни её потомки не получили означиваний.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с направленными графами
Можно сказать, что граф задаёт некоторое семействораспределений – не все распределения на вершинах графабудут соответствовать тем ограничениям по условнойнезависимости, которые накладывает структура графа.
Теорема (без доказательства): это семействораспределений в точности совпадает с семейством техраспределений, которые можно разложить в произведение
p(x1, . . . , xk) =
k∏i=1
p(xi | pa(xi )).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Пример байесовской сети
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Markov blanket
Интересный вопрос: какие вершины нужно означить, чтобынаверняка «отрезать» одну вершину (Markov blanket)?
Иначе говоря, для какого минимального множествавершин X p(xi | xj 6=i ) = p(xi | X )?
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Markov blanket
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с ненаправленными графами
Можно сделать и так, чтобы условие независимости было(более) локальным.
Для этого нужно задавать модели ненаправленнымиграфами. В них условие совсем естественное: множествовершин X условно независимо от множества вершин Yпри условии множества вершин Z , если любой путь от X кY проходит через Z .
В частности, очевидно,p(xi , xj | xk 6=i ,j) = p(xi | xk 6=i ,j)p(xj | xk 6=i ,j) тогда и толькотогда, когда xi и xj не соединены ребром.
Такие модели называются марковскими сетями (Markovrandom fields).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Условная независимость в ненаправленных моделях
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с ненаправленными графами
Поэтому в ненаправленных моделях локальныераспределения соответствуют кликам в графе, ифакторизация получается в виде
p(x1, . . . , xk) =1Z
∏ψC (xC ),
где C – максимальные клики, ψC – неотрицательныефункции (потенциалы), а Z – нормировочная константа(partition function).Поскольку ψC ≥ 0, их обычно представляют какэкспоненты:
ψC (xC ) = exp (−EC (xC )) ,
EC – функции энергии, они суммируются в полнуюэнергию системы (это всё похоже на статистическуюфизику, отсюда и терминология).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Графические модели с ненаправленными графами
Интересный факт: назовём идеальной картой (perfect map)распределения D графическую модель G , если всеусловные независимости, присутствующие в D,отображены в G , и наоборот (ничего лишнего). Тогдаидеальные карты в виде направленных моделейсуществуют не у всех распределений, в видененаправленных тоже не у всех, и эти множествасущественно различаются (бывают распределения,которые нельзя идеально выразить направленноймоделью, но можно ненаправленной, и наоборот).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Фактор-графы
Важная для вывода модификация – фактор-граф (можнопостроить и по направленной модели, и поненаправленной).Фактор-граф – двудольный граф функций и переменных.Функция, соответствующая графу, – произведение всехвходящих в него функций (т.е. то самое разложение иесть).Пример: p(x1, x2, x3) = f1(x1)f2(x2)f3(x3)f4(x1, x2)f5(x2, x3).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Три представления
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Функция в общем виде
Чтобы поставить задачу в общем виде, рассмотримфункцию
p∗(X ) =
m∏j=1
fj(Xj),
где X = {xi }ni=1, Xj ⊆ X .
Т.е. мы рассматриваем функцию, которая раскладываетсяв произведение нескольких других функций.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Задачи
Задача нормализации: найти Z =∑
X∏m
j=1 fj(Xj).
Задача маргинализации: найти
p∗i (xi ) =∑k 6=i
p∗(X ).
Также может понадобиться, например, pi1i2 , но реже.
Поиск гипотезы максимального правдоподобия:
x∗ = arg maxXp(X ).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Задачи
Все эти задачи NP-трудные.
То есть, если мир не рухнет, сложность их решения вхудшем случае возрастает экспоненциально.
Но можно решить некоторые частные случаи.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Пример
Давайте начнём с графа в виде (ненаправленной) цепи:
p(x1, . . . , xn) =1Zψ1,2(x1, x2) . . . ψn−1,n(xn−1, xn).
Мы хотим найти
p(xk) =∑x1
. . .∑xk−1
∑xk+1
. . .∑xn
p(x1, . . . , xn).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Пример
Очевидно, тут можно много чего упростить; например,справа налево:∑
xn
p(x1, . . . , xn) =
=1Zψ1,2(x1, x2) . . . ψn−2,n−1(xn−2, xn−1)
∑xn
ψn−1,n(xn−1, xn).
Эту сумму можно вычислить отдельно и продолжать в томже духе справа налево, потом аналогично слева направо.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Пример
В итоге процесс сойдётся на узле xk , куда придут два«сообщения»: слева
µα(xk) =∑xk−1
ψk−1,k(xk−1, xk)
[. . .
∑x2
ψ2,3(x2, x3)
[∑x1
ψ1,2(x1, x2)
]. . .
],
справа
µβ(xk) =∑xk+1
ψk,k+1(xk , xk+1)
[. . .
[∑xn
ψn−1,n(xn−1, xn)
]. . .
].
Каждую частичную сумму можно рассматривать как«сообщение» от узла к своему соседу, причём этосообщение – функция от соседа.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Чтобы обобщить, удобно рассмотреть опять фактор-граф.
Предположим, что фактор-граф – дерево (если не дерево,так просто не сработает).
Алгоритм передачи сообщений решает задачумаргинализации для функции видаp(x1, . . . , xn) =
∏s fs(Xs), заданной в виде фактор-графа.
Передаём сообщения по направлению к нужному узлу отпеременных к функциям и наоборот.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Передача сообщений
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Чтобы найти p(xk), запишемp(x1, . . . , xn) =
∏s∈ne(xk )
Fs(xk ,Xs), где Xs – переменные изподдерева с корнем в fs . Тогда
p(xk) =∑xi 6=k
p(x1, . . . , xn) =∏
s∈ne(xk )
∑Xs
Fs(xk ,Xs)
=
=∏
s∈ne(xk )
µfs→xk (xk),
где µfs→xk (xk) – сообщения от соседних функций кпеременной xk .
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Чтобы найти µfs→xk (xk), заметим, что Fs(xk ,Xs) тожеможно разложить по соответствующему подграфу:
Fs(xk ,Xs) = fs(xk ,Ys)∏y∈Ys
Gy (y ,Xs,y ),
где Ys – переменные, непосредственно связанные с fs(кроме xk), Xs,y – соответствующие поддеревья.Итого получаем
µfs→xk (xk) =∑Ys
fs(xk ,Ys)∏y∈Ys
∑Xs,y
Gy (y ,Xs,y )
=
=∑Ys
fs(xk ,Ys)∏y∈Ys
µy→fs (y).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Можно аналогично подсчитать, чтоµy→fs (y) =
∏f ∈ne(y)\fs µf →y (y).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Итак, получился простой и понятный алгоритм:как только узел получил сообщения от всех соседей, кромеодного, он сам начинает передавать сообщение в этогососеда;сообщение по ребру между функцией и переменнойявляется функцией от этой переменной;узел-переменная x передаёт сообщение
µx→f (x) =∏
g∈ne(x)\f
µg→x(x);
узел-функция f (x ,Y ) передаёт сообщение
µf →x(x) =∑y∈Y
f (x ,Y )∏y∈Y
µy→f (y);
начальные сообщения в листьях µx→f (x) = 1,µf →x(x) = f (x).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Когда сообщения придут из всех соседей в какую-топеременную xk , можно будет подсчитать
p(xk) =∏
f ∈ne(xk )
µf →xk (xk).
Когда сообщения придут из всех соседей в какой-тофактор fs(Xs), можно будет подсчитать совместноераспределение
p(Xs) = fs(Xs)∏
y∈ne(fs )
µy→fs (y).
За два прохода (по каждому ребру туда и обратно) можнобудет подсчитать маргиналы во всех узлах.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Алгоритм передачи сообщений
Это называется алгоритм sum-product, потому чтосообщение вычисляется как
µf →x(x) =∑y∈Y
f (x ,Y )∏y∈Y
µy→f (y).
Задача максимизации arg maxxp(x1, . . . , xn) решается также, но алгоритмом max-sum: сумма заменяется намаксимум, а произведение на сумму.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Передача сообщений
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Так что же делать с байесовской сетью?
Для модели не в виде фактор-графа надо просто представитьеё в виде фактор-графа тем или иным способом.Для байесовской сети это значит, что её сначала нужнопредставить в виде марковской сети, а потом добавитьфакторы в явном виде.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Так что же делать с байесовской сетью?
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Так что же делать с байесовской сетью?
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Графические моделиSum–product и max–sum
Так что же делать с байесовской сетью?
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Outline
1 Алгоритм передачи сообщенийГрафические моделиSum–product и max–sum
2 Приближённый выводСложная структура графаСложные факторы
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Приближённый вывод
Когда граф – дерево, и в каждом узле всё считается явнои аналитически, можно посчитать быстро и точно.
Но что делать, когда зубная щётка недоступна?Могут быть две проблемы:
1 сложная структура графа, с циклами;2 сложные факторы – результат маргинализации в
отдельном узле неудобный.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Суть
Sum–product работает корректно, только если граф —дерево (ну, разве что скрестить пальцы и помолиться...).
Что делать, когда граф содержит циклы?
Нужно использовать деревья сочленений.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Деревья сочленений — неформально
Если цикл не сдаётся, его уничтожают, то есть заменяютвесь цикл на одну вершину.
Получается дерево, в котором уже можно работатьобычным sum–product’ом; но при этом, конечно, заменанескольких вершин одной приводит к экспоненциальномураздуванию соответствующего фактора (множествозначений соответствующей переменной должно содержатьвсе комбинации значений исходных переменных).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Другие методы
Если цикл всё-таки большой, то есть хороший общийметод, который применяют, когда нельзя применятьsum–product.
Метод заключается в том, чтобы применять sum–product.:)
Он работает довольно часто даже тогда, когда в принципеработать не обязан (когда есть циклы).
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Передача сообщений с циклами
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Вариационные методы
Если факторы простые, а структура сложная, можноприближать сложное распределение более простойформой, разрывая связи в графе: вариационныеприближения (из матфизики).
Т.е. надо будет выбрать распределение из некоторогоболее простого семейства, которое лучше всегоприближает сложное распределение.
«Похожесть» можно определить по расстояниюКульбака–Лейблера
d(p, q) =∫
p(x) lnp(x)q(x)
dx .
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Вариационные методы
Например: давайте искусственно разорвём связи, оставивтолько рёбра внутри подмножеств вершин Xi .
Иначе говоря, будем предполагать, что любой факторq(Z ) представляется в виде
q(Z ) =∏
qi (Zi ), где Zi = Z ∪ Xi .
Затем оптимизируем параметры, минимизируя расстояниемежду исходным распределением и такимфакторизованным; это соответствует методусамосогласованного поля (mean field theory) в физике.
Более подробно мы рассматривать вариационные методысейчас не будем.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Сэмплирование по Гиббсу
Ещё один важный метод – сэмплирование по Гиббсу.
Постепенно сэмплируем одни переменные при условиидругих.
Это вариант MCMC-приближений (Markov chain MonteCarlo), про них мы подробно говорить не будем.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Expectation propagation
Если структура простая, но сложные факторы (результатне представляется в виде распределения нужной формы),можно его приближать простыми распределениями. Если внашем факторизованном распределении
p(θ | D) =1
p(D)
∏i
fi (θ)
слишком сложные факторы fi , мы хотим их заменить накакие-нибудь простые (из экспоненциального семейства,например, гауссианы):
q(θ | D) =1Z
∏i
f̂i (θ).
И тоже минимизировать расстояние Кульбака–Лейблерамежду p и q.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Expectation propagation
Для одного фактора всё это очень просто было бы –посчитать среднее и дисперсию (moment matching).
Для многих факторов надо приближать все f̂iодновременно. Можно доказать (мы не будем), что этоможно делать последовательно, приближая фактор зафактором и итерируя, покаТаким образом, алгоритм Expectation Propagation насамом деле очень простой:
1 запустить алгоритм передачи сообщений, но на каждомшаге вместо сообщения µfs→xk (xk) считать егоприближение µ̂fs→xk (xk) из какого-нибудь простогосемейства;
2 повторять передачу сообщений, пока не сойдётся.
Сергей Николенко Графические модели и байесовский вывод на них
Алгоритм передачи сообщенийПриближённый вывод
Сложная структура графаСложные факторы
Thank you!
Спасибо за внимание!
Сергей Николенко Графические модели и байесовский вывод на них