Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №12 "Ограниченная машина Больцмана"
Лектор - Павел Нестеров
Нейросетейвой автоэнкодер. Стохастические и рекурентные нейронные сети. Машина Больцмана и ограниченная машина Больцмана. Распределение Гиббса. Алгоритм contrastive divergence для обучения РБМ. Сэмплирование данных из РБМ. Бинарная РБМ и гауссово-бинарная РБМ. Влияние регуляризации, нелинейное сжатие размерности, извлечение признаков. Semantic hashing.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
2. План лекции
Вспоминаем прошлую лекцию
Softmax слой
Обучение без учителя
Ограниченная машина Больцмана
Алгоритм contrastive divergence
Заметки про RBM
1 / 60
3. Модифицированная модель нейрона МакКаллока-Питтса
Рис.: Схема искусственного нейрона1
1Neural Networks and Learning Machines (3rd Edition), Simon O. Haykin
2 / 60
4. Многоснойная нейронная сеть прямого распространения
Рис.: Архитектура сети с двумя скрытыми слоями2
2Neural Networks and Learning Machines (3rd Edition), Simon O. Haykin
3 / 60
5. Алгоритм обратного распространения ошибки
Рис.: Схема прямого (нелинейного) и обратного (линейного)
распространения сигнала в сети
4 / 60
6. Некоторые функции стоимости
Среднеквадратичная ошибка:
E =
1
2 i∈output (ti − yi )
2
∂E
∂yi
= yi − ti
Логарифм правдоподобия Бернулли:
E = − i∈output (ti log yi + (1 − ti ) log (1 − yi ))
∂E
∂yi
=
ti
yi
−
1 − ti
1 − yi
Для каких задач машинного обучения удобны эти функции?
5 / 60
7. Вспоминаем логистическую регрессию, два класса
D = {(xi , yi )}i=1...m , ∀xi ∈ Rn
, ∀yi ∈ {0, 1}
P(y = 1, x) =
P(x|y) · P(y)
P(x|y) · P(y) + P(x|y) · P(y)
=
1
1 + exp P(x|y)·P(y)
P(x|y)·P(y)
=
1
1 + e−a
= σ(a)
где y это y = 0, а так же P(y = 0) = 1 − P(y = 1), a : h(w) = wT
· x
H(p, q) = − i pi · log qi = −y · log ˆy − (1 − y) · log(1 − ˆy)
какое распределение?
6 / 60
8. Логистическая регрессия, обобщение на N классов
D = {(xi , yi )}i=1...m , ∀xi ∈ Rn
, ∀yi ∈ {0, 1, . . . , N}
P(y = 1|x) = 1
1+e−a = e−a
e−a+1 = 1
Z · e−a
= 1
Z · ewT
·x
Z - некоторая нормализирующая константа
P(x) = 1
Z · e−E(x)
- распределение Больцмана-Гиббса (почти)
Введем для каждого класса свой вектор весов, получим:
P(y = c|x) =
1
Z
· ewT
c ·x
=
ewT
c ·x
i ewT
i ·x
(1)
c P(y = c|x) = c
1
Z · ewT
c ·x
= Z
Z = 1
как представить в виде нейросети?
7 / 60
9. Softmax слой
z
(n)
j =
Nn−1
i=0 w
(n)
ij x
(n)
i
yj = softmax(zj ) =
zj
Z
=
zj
k zk
E(y, t) = −
Nn−1
j=1 tj · log yj
∂y
(n)
j
∂z
(n)
j
= ???
8 / 60
11. Вспомним backprop
∂E
∂w
(n)
ij
=
∂E
∂z
(n)
j
∂z
(n)
j
∂w
(n)
ij
∂z
(n)
j
∂w
(n)
ij
= i
∂w
(n)
ij x
(n−1)
i
∂w
(n)
ij
= x
(n−1)
i
В итоге получим:
∂E
∂w
(n)
ij
= x
(n−1)
i
∂E
∂z
(n)
j
(2)
Продолжим с этого момента, с учетом того, что функцией
стоимости является перекрестная энтропия (опустим индекс слоя
для наглядности):
E(y (z) , t) = −
Nn−1
j=1 tj · log yj (zj )
∂E
∂zj
= ???
10 / 60
12. Дифференцирование перекрестной энтропии, #1
Раньше было так (для выходного слоя):
∂E
∂zj
=
∂E
∂yj
∂yj
∂zj
Теперь стало так:
∂E
∂zj
=
Nn
i=1
∂E
∂yi
·
∂yi
∂zj
почему так?
11 / 60
22. Обучение без учителя
When we’re learning to see, nobody’s telling us what the right answers
are — we just look. Every so often, your mother says “that’s a dog”, but
that’s very little information. You’d be lucky if you got a few bits of
information — even one bit per second — that way. The brain’s visual
system has 1014
neural connections. And you only live for 109
seconds.
So it’s no use learning one bit per second. You need more like 105
bits
per second. And there’s only one place you can get that much
information: from the input itself.3
3Geoffrey Hinton, 1996 (quoted in (Gorder 2006))
21 / 60
23. Статистическая механика, #1
Представим некоторую физическую систему с множеством степеней
свободы, которая может находится в одном из множества состояний
с некоторой вероятностью, а каждому такому состоянию состоянию
соответствует некоторая энергия всей системы:
pi ≥ 0 - вероятность состояния i
i pi = 1
Ei - энергия системы в состоянии i
Тогда вероятность состояния i будет описываться распределением
Больцмана-Гиббса, при условии термодинамического равновесия
между системой и окружающей средой:
pi =
1
Z
exp −
Ei
kB · T
(3)
где
T - абсолютная температура (К)
kB - константа Больцмана (Дж/К)
Z = i exp − Ei
kB ·T - нормализирующая константа (partition
function, Zustadsumme, статсумма)
22 / 60
24. Статистическая механика, #2
Два важных вывода:
1. состояния с низкой энергией имеют больше шансов возникнуть
чем состояния с высокой энергией;
2. при понижении температуры, чаще всего будут возникать
состояния из небольшого подмножества состояний с низкой
энергией.
23 / 60
25. Нейросеть Хопфилда
обратная связь
пороговая функция активации
Такая сеть (рекуррентная нейронная
сеть) может находится как в стабильном
состоянии, осциллировать, или даже
проявлять признаки детерминированного
хаоса.
Хопфилд показал, что при симметричной
матрице весов, существует такая
функция энергии бинарных состояний
системы, что при симуляции система
эволюционирует в одно из
низко-энергетических состояний.
24 / 60
26. Нейросеть Хопфилда, энергия системы, #1
E = −
i
si bi −
i<j
si sj wij (4)
si - состояние нейрона i
bi - смещение нейрона i
wij - вес между нейроном i и j
Рис.: Поверхность описываемая энергией сети Хопфилда
25 / 60
27. Нейросеть Хопфилда, энергия системы, #2
Рис.: Поверхность описываемая энергией сети Хопфилда, два стабильных
состояния4
4Neural Networks and Learning Machines (3rd Edition), Simon O. Haykin
26 / 60
28. Нейросеть Хопфилда, как ассоциативная память
a - нет образов в памяти
b - два образа далеко друг от друга
c - два образа накладываются друг на друга
Вместимость 0.15 · N на N нейронов.
27 / 60
29. Нейросеть Хопфилда, алгоритм обучения
Обучение сети Хопфилда происходит в один прогон по множеству
данных по следующему правилу:
∆wij =
1
n
n
i=1
si sj , ∀k : sk ∈ {−1, 1} (5)
Это в точности первое правило Хебба:
если два нейрона по разные стороны от синапсов активируются
синхронно, то "вес"синапса слегка возрастает
28 / 60
30. Машина Больцмана - стохастический генеративный
вариант сети Хопфилда
энергия не изменилась: E = − i si bi − i<j si sj wij
симметричная матрица весов wij = wji , но нет обратных связей:
wii = 0
появились скрытые состояния (система ищет такую
конфигурацию скрытых состояний которая лучшим образом
описывает видимые состояния)
∀i : si ∈ {0, 1}
стохастический нейрон 29 / 60
33. Имитация отжига, идея, #2
Рис.: Влияние температуры на вероятности переходов5
SimulatedAnnealing.gif
5https://class.coursera.org/neuralnets-2012-001/lecture
32 / 60
34. Имитация отжига
∆Ei = bi + j wij sj
pi = 1
Z exp − Ei
kB ·T
pi=1
pi=0
= exp −
Ei=0 − Ei=1
kB T
= exp
∆Ei
kB T
⇒
∆Ei
T
= ln(pi=1) − ln(pi=0) = ln(pi=1) − ln(1 − pi=1)
= ln
pi=1
1 − pi=1
⇒
−
∆Ei
T
= ln
1 − pi=1
pi=1
= ln
1
pi=1
− 1 ⇒
exp −
∆Ei
T
=
1
pi=1
− 1 ⇒
pi=1 =
1
1 + exp −∆Ei
T
33 / 60
35. Машина Больцмана - выводы
Теоретически такая модель может все (как обычно в нейросетях), но
время требуемое для обучения такой модели экспоненциально
зависит от размера машины
по этой же причине нет возможности вычислить Z
так же приходится использовать семплирование Гиббса6
, в
связи с топологией сети (почему?)
6Семплирование по Гиббсу не требуется явно выраженное совместное
распределение, а нужны лишь условные вероятности для каждой переменной,
входящей в распределение. Алгоритм на каждом шаге берет одну случайную
величину и выбирает ее значение при условии фиксированных остальных. Можно
показать, что последовательность получаемых значений образуют возвратную
цепь Маркова, устойчивое распределение которой является как раз искомым
совместным распределением.
34 / 60
37. Виды RBM
В зависимости от априрного распределения ассоциированного с
видимым и скрытым слоями, различают несколько видов RBM:
Bernoulli-Bernoulli (binary-binary)
Gaussian-Bernoulli
Gaussian-Gaussian
Poisson-Bernoulli
и т.д.
Бинарные (Bernoulli-Bernoulli, binary-binary) RBM играют важную
роль в глубоком обучении, по аналогии с выводом алгоритма
обучения для бинарной ограниченной машины Больцмана, можно
вывести аналогичные правила для остальных типов моделей.
36 / 60
38. RBM, обозначения
D = {xi }i=1...N - множество данных;
v, h - значения видимых и скрытых нейронов;
a, b, W - смещения видимых и скрытых нейронов, и матрица
весов;
n, m - количество видимых и скрытых нейронов;
E(v, h) = −
n
i=1 ai vi −
m
j=1 bj hj −
n
i=1
m
j=1 wij vi hj =
−vT
a − hT
b − vT
W b
p(v, h) = 1
Z e−E(v,h)
Z =
N
r
M
t e−E(v(r)
,h(t)
)
P(v) =
M
t P(v, h(t)
) = 1
Z
M
t e−E(v,h(t)
)
Далее значки вектора x будут опускаться для простоты.
37 / 60
39. RBM, функция активации
Аналогично обычной машине Больцмана, рассмотрим только для
скрытого слоя:
P(hk = 1|v) =
e−E1
e−E1 + e−E0
=
1
1 + eE1−E0
=
1
1 + e−bk − n
i vi wik
= σ bk +
n
i=1
vi wik
Вопрос:
P(h|v) = ???
38 / 60
41. RBM, целевая функция
E(v, h) = −
n
i=1
ai vi −
m
j=1
bj hj −
n
i=1
m
j=1
wij vi hj (6)
P(v) =
1
Z
M
t
e−E(v,h(t)
)
(7)
максимизировать вероятность данных при заданной
генеративной модели
что будем делать?
40 / 60
42. RBM, дифференцирование P(v), #1
E(v, h) = −
n
i=1
ai vi −
m
j=1
bj hj −
n
i=1
m
j=1
wij vi hj
∂E(v, h)
∂wij
= ?
∂E(v, h)
∂ai
= ?
∂E(v, h)
∂bj
= ?
∂e−E(v,h)
∂wij
= ?
∂e−E(v,h)
∂ai
= ?
∂e−E(v,h)
∂bj
= ?
41 / 60
43. RBM, дифференцирование P(v), #2
E(v, h) = −
n
i=1
ai vi −
m
j=1
bj hj −
n
i=1
m
j=1
wij vi hj
∂E(v, h)
∂wij
= −vi hj
∂E(v, h)
∂ai
= −vi
∂E(v, h)
∂bj
= −hj
∂e−E(v,h)
∂wij
= vi hj e−E(v,h)
∂e−E(v,h)
∂ai
= vi e−E(v,h)
∂e−E(v,h)
∂bj
= hj e−E(v,h)
42 / 60
45. RBM, дифференцирование P(v), #4
Z =
N
r
M
t
e−E(v(r)
,h(t)
)
∂Z
∂wij
=
N
r
M
t
v
(r)
i h
(t)
j e−E(v(r)
,h(t)
)
∂Z
∂ai
=
N
r
M
t
v
(r)
i e−E(v(r)
,h(t)
)
∂Z
∂bj
=
N
r
M
t
h
(t)
j e−E(v(r)
,h(t)
)
44 / 60
46. RBM, дифференцирование P(v), #5
∂P v(k)
∂wij
=
1
Z2
Z
M
t
v
(k)
i h
(k)
j e−E(v(r)
,h(t)
)
−
M
t
e−E(v(r)
,h(t)
)
N
r
M
t
v
(r)
i h
(t)
j e−E(v(r)
,h(t)
)
∂ ln P v(k)
∂wij
=
1
P v(k)
∂P v(k)
∂wij
45 / 60
47. RBM, дифференцирование P(v), #6
∂ ln P v(k)
∂wij
= v
(k)
i
M
t
h
(t)
j P h(t)
|v(k)
−
N
r
M
t
v
(r)
i h
(t)
j P h(t)
, v(k)
= ???
46 / 60
48. RBM, дифференцирование P(v), #7
∂ ln P v(k)
∂wij
=
M
t
v
(k)
i h
(t)
j P h(t)
|v(k)
−
N
r
M
t
v
(r)
i h
(t)
j P h(t)
, v(k)
= M v
(k)
i hj
data
− M [vi hj ]model
∂ ln P v(k)
∂ai
= v
(k)
i − M [vi ]model
∂ ln P v(k)
∂bj
= M [hj ]data − M [hj ]model
47 / 60
49. RBM, правила обновления
∆wij = η M v
(k)
i hj
data
− M [vi hj ]model
∆ai = η v
(k)
i − M [vi ]model
∆bj = η M [hj ]data − M [hj ]model
48 / 60
50. Алгоритм Contrastive Divergence
Цель: собрать достаточную статистику для оценки M[· · · ]data и
M[· · · ]model
Рис.: Процесс сбора достаточной статистики7
∆wij = η M v
(k)
i hj
(0)
− M [vi hj ]
(∞)
M [· · · ]
(0)
- позитивная фаза
M [· · · ]
(∞)
- негативная фаза
7https://class.coursera.org/neuralnets-2012-001/lecture
49 / 60
51. Практические советы
не семплировать видимый слой (семплирование замедляет
сходимость, но математически это более корректно);
не семплировать значения скрытого слоя при выводе из
восстановленного образа;
CD-k, уже при k = 1 качество не сильно уступает большим
значениям, но выигрыш в скорости значительный;
размер минибатча 10-100 экземпляров (почему?);
кроссвалидаци восстановленных образов;
использование момента сказывается крайне положительно на
скорости сходимости;
http://www.cs.toronto.edu/ hinton/absps/guideTR.pdf
50 / 60