Изменения

Перейти к: навигация, поиск

Сети глубокого доверия

124 байта добавлено, 20:34, 21 апреля 2020
Нет описания правки
Два наиболее значимых свойства сетей глубокого доверия:
- # Существует эффективная послойная процедура для обучения нисходящих генеративных весов, которая определяют, как переменные в одном слое зависят от переменных в слое выше. - # После обучения скрытых переменных в каждом слое могут быть выведены значения за один проход снизу вверх, который начинается с наблюдаемого вектора данных в нижнем слое и использует генеративные веса в обратном направлении.
Сети глубокого доверия обучаются по одному слою за раз, обрабатывая значения скрытых переменных в одном слое в тот момент, когда они выводятся из данных для обучения следующего слоя. Это эффективное, жадное обучение может сопровождаться или сочетаться с другими процедурами обучения, которые точно настраивают все веса для улучшения генеративных или дискриминационных характеристик всей сети.
== Композиция простых обучающих модулей ==
[[Файл:Rbmimage4.png |400px|thumb| right| Рис. 1 Распределение RBM]]
Глубокая сеть доверия может рассматриваться как набор простых обучающих модулей, каждый из которых представляет собой ограниченную машину Больцмана(RBM), которая содержит слой видимых узлов, представляющий данные, и слой скрытых узлов, который обучаются представлению особенностей, которые захватывают более высокие порядки корреляции в данных. Ограниченные машины Больцмана могут быть сложены и обучены жадным алгоритмом, чтобы сформировать так называемые Глубокие сети доверия, которые моделируют совместное распределение между наблюдаемым вектором x и скрытыми слоями h ^ k следующим образом
[[Файл:Rbmimage1.png| 340px]], Где [[Файл:Rbmimage2.png | 120px]] условное распределение для видимых узлов, обусловленных скрытыми узлами RBM на уровне k, и [[Файл:Rbmimage3.png | 90px]] это видимое-скрытое совместное распределение в RBM верхнего уровня. Это показано на рисунке ниже1.[[Файл:Rbmimage4.png |600px| center]]
RBM используют вероятностный подход для нейронных сетей, и поэтому их также называют стохастическими нейронными сетями.
Если мы разложим RBM, то становится ясно, что они состоят из трех частей:
- # Один входной слой так называемые Видимые узлы - # Один скрытый слой - # Один узел смещения
В приведенном выше примере видимые узлы - это не что иное, как то, нравится ли вам книга или нет. Скрытые узлы помогают найти то, что заставило вас одобрить эту книгу. Узлы смещения добавлены, чтобы включить различные виды свойств, разных книг.
Простая визуализация Ограниченной машины Больцмана<ref>[[Файл:Bolcman.jpg]]</ref>[[Файл:Bolcman.jpg |600px400px| thumb | right | centerРис 1. Визуализация RBM]]
Зеленым отмечены видимые узлы, а красным скрытые
Сети глубокого доверия имеют две фазы:
- # Фаза предварительного обучения - # Фаза тонкой настройки
Фаза предварительного обучения - это не что иное, как несколько уровней RBN, в то время как фаза тонкой настройки - это нейронная сеть с прямой связью. Визуализация обеих фаз на рис. ниже
[[Файл:Vis2f.png |600px| center]]
Как работают Глубокие сети доверия?
# 1. Нахождение признаков видимых узлов, используя алгоритм контрастной дивергенции.# 2. Нахождение скрытых признаков объектов, найденных в предыдущем шаге.# 3. Когда фаза обучения скрытого слоя закончена, можно сказать, что Глубокая сеть доверия обучена.
== Реализация ==
# the labels are presented as 1D vector of [int] labels
self.y = T.ivector('y')
<tex>self.sigmoid_layers </tex> будет хранить графики прямой связи, которые вместе образуют MLP, в то время как self.rbm_layers будет хранить RBM, используемые для предварительной подготовки каждого уровня MLP.
Следующим шагом мы строим сигмоидные слои n_layers (мы используем класс HiddenLayer, введенный в Multilayer Perceptron, с единственной модификацией, в которой мы заменили нелинейность от tanh на логистическую функцию [[Файл:Vital1.png]] и n_layers RBM, где n_layers - это глубина нашей модели. Мы связываем сигмовидные слои так, что они образуют MLP, и строим каждый RBM таким образом, чтобы они разделяли весовую матрицу и скрытое смещение с соответствующим сигмовидным слоем.
for i in range(self.n_layers):
Анонимный участник

Навигация