Изменения
Исправление неточностей
'''Сети глубокого доверия''' {{---}} это вероятностные [[Порождающие модели|генеративные модели]], которые состоят из нескольких слоев стохастических скрытых переменных. Скрытые переменные обычно имеют двоичные значения и часто называются скрытыми узлами или детекторами признаков. Два верхних слоя имеют ненаправленные, симметричные связи между ними и образуют ассоциативную память. Нижние слои действуют сверху вниз, Между оставшимися парами соседних слоёв есть только направленные соединения связи от слоя вышеверхнего к нижнему. Состояния узлов в нижнем слое представляют вектор данных.
Два наиболее значимых свойства сетей глубокого доверия:
# Существует эффективная послойная процедура для обучения нисходящих генеративных весов, которая определяет, как переменные в одном слое зависят от переменных в слое выше.# После обучения скрытых переменных в каждом слое могут быть выведены значения за один проход снизу вверх, который начинается с наблюдаемого вектора данных в нижнем слое и использует генеративные веса в обратном направлении.
Сети глубокого доверия обучаются по одному слою за раз, обрабатывая значения скрытых переменных в одном слое в тот момент, когда они выводятся из данных для обучения следующего слоя. Это эффективное, жадное обучение может сопровождаться или сочетаться с другими процедурами обучения, которые точно настраивают все веса для улучшения генеративных или дискриминационных характеристик всей сети.
== Реализация ==
Мы начнем с определения класса для глубокой сети доверия, который назовем DBN(Deep belief network), который будет хранить уровни многослойного перцептрона MLP (Multilayer perceptron) вместе со связанными с ними RBM. Поскольку мы используем RBM для инициализации MLP, код будет отражать эту идею, насколько это возможно. Далее будут приведены RBM, используемые для инициализации сети, и MLP, используемый для классификации.
from __future__ import print_function, division
import os