litbaza книги онлайнРазная литератураОхота на электроовец. Большая книга искусственного интеллекта - Сергей Сергеевич Марков

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 168 169 170 171 172 173 174 175 176 ... 482
Перейти на страницу:
регрессии — ведь компоненты такого вектора представляют собой, по сути дела, набор абстрактных признаков образов, использованных при обучении автоэнкодера. Потратив единожды вычислительные ресурсы на обучение автокодировщика, можно затем «недорого» строить множество «лёгких» моделей, решающих широкий спектр задач.

В начале нашего тысячелетия автокодировщики применялись для каскадного обучения глубоких сетей. Этот метод, предложенный[1503] Джеффри Хинтоном и Русланом Салахутдиновым, заключается в том, что слои нейронной сети обучаются последовательно слева направо. К очередному необученному слою на время обучения подключается декодер, дополняющий сеть до архитектуры автокодировщика. Затем полученный автокодировщик обучается, причём веса в уже обученных ранее слоях на время обучения фиксируются, этот приём называется заморозкой [freezing]. Описанная процедура повторяется для всех слоёв сети, кроме последних, которые обучаются в обычном режиме — с учителем и с применением метода обратного распространения ошибки. В наши дни этот способ обучения глубоких сетей применяется редко, поскольку были найдены другие, более удобные для практического применения способы борьбы с исчезновением градиента. Однако в отдельных случаях послойное предобучение всё-таки позволяет добиться наилучших результатов.

Также автоэнкодеры могут применяться для очистки сигнала от шума, в таком случае используют термин «шумоподавляющие автокодировщики» (Denoising Autoencoders, DAE)[1504]. При обучении такого автокодировщика мы можем добавлять на вход сети некоторый шум, стремясь на выходе получить образ до внесения в него шума.

К латентному пространству автокодировщика можно присоединить какую-либо семантическую информацию относительно входного образа, например возраст человека на фото или наличие у него бороды. Затем, на этапе работы декодера, можно подменить эти значения другими, тем самым заставив сеть изменить возраст человека на фото или пририсовать ему бороду. Нередко отдельные компоненты латентного представления сами по себе в результате обучения оказываются интерпретируемыми параметрами: их смысл можно обнаружить, наблюдая изменения, происходящие с образом при изменении отдельных компонентов латентного вектора. Словом, значение автокодировщиков для республики машинного обучения огромно. Их вклад в достижение WOW-эффекта от многих демонстраций возможностей современных технологий искусственного интеллекта трудно переоценить.

Разобраться в том, кто именно изобрёл автокодировщики, не так уж просто. Сама идея сокращения размерности данных не нова. Ещё в 1901 г. Карл Пирсон, основатель математической статистики, предложил свой знаменитый метод главных компонент (Principal component analysis, PCA)[1505] — один из наиболее популярных «классических» способов уменьшения размерности данных с потерей наименьшего количества информации. Первые коннекционистские модели, адресующие эту проблему, появились в начале 1980-х. Ими стали самоорганизующиеся карты Кохонена (Self-organizing map, SOM) — одна из разновидностей сетей Кохонена. Их создатель, финский учёный, специалист в области искусственных нейронных сетей и машинного обучения Теуво Кохонен, опубликовал в 1981–1984 гг. первые работы, посвящённые развитию своей модели[1506], [1507], [1508].

В 1984 г. Экли, Хинтон и Сейновски предложили[1509] решение, в котором набор входных образов сопоставляется с набором выходных образов через небольшой набор скрытых нейронов. В последующем году появилась публикация[1510], посвящённая исследованию методов обучения такой сети.

Эта модель и получила название «машина Больцмана», в честь австрийского физика Людвига Больцмана, одного из основоположников статистической физики. Все синаптические связи между нейронами больцмановской машины — симметричные, а сами нейроны разделены на два множества — скрытые и видимые, где последние выполняют роль рецептивного слоя. Каждый нейрон может находиться в одном из двух состояний — «включённом» [on] и «выключенном» [off], причём это состояние он приобретает на основе некоторой функции вероятности от состояний нейронов, соединённых с нашим нейроном, и от синаптических весов этих связей. Синаптические веса являются действительными числами и могут принимать также и отрицательные значения. Довольно интересно здесь то, что авторы статьи не говорят о том, какая именно функция вероятности может быть использована в машине, что позволяет конструировать машины Больцмана на основе самых разных функций. Понятно, что классическим решением будет логистическая функция от суммы произведений состояний связанных нейронов (где «включённое» состояние соответствует 1, а «выключенное» — 0) на веса соответствующих связей. Каждый нейрон также имеет индивидуальную величину «смещения» [bias] (иногда также используется термин «порог» [threshold]), обозначаемую традиционно буквой θ. Смещение можно рассматривать как вес синапса, связывающего наш нейрон с особенным нейроном, находящимся в постоянно включённом состоянии.

Хинтон и его коллеги рассматривали машину Больцмана как модель для решения задачи «удовлетворения ограничений» [constraint satisfaction], то есть задачи поиска набора значений переменных, удовлетворяющих определённому набору ограничений.

Рис. 110. Схема машины Больцмана

В математической статистике модели, подобные машине Больцмана, называют марковскими случайными полями.

Впрочем, достижением Хинтона и его коллег стало не только и не столько создание прямого нейросетевого аналога случайных марковских полей и присвоение ему имени австрийского физика (тем более что некоторые исследователи склонны рассматривать машину Больцмана в качестве разновидности сети Хопфилда), сколько идея использования для обучения таких сетей так называемого алгоритма имитации отжига [simulated annealing].

Название этого алгоритма отсылает нас ВНЕЗАПНО к металлургии, в которой отжигом называется вид термической обработки стали, заключающийся в нагреве заготовки до определённой температуры, выдержке в течение некоторого времени и последующем, обычно медленном, охлаждении до комнатной температуры. Из школьного курса физики мы знаем, что температура вещества пропорциональна средней кинетической энергии составляющих его частиц. Чем выше температура, тем быстрее движутся частицы, по мере же остывания их движение становится всё более медленным, и в случае с кристаллическими телами частицы постепенно всё ближе и ближе перемещаются к позициям, соответствующим узлам кристаллической решётки. В процессе остывания система приближается к состоянию, соответствующему энергетическому минимуму. В машине Больцмана таким энергетическим минимумом является состояние, при котором набор синаптических весов (включая смещения) и состояний нейронов находится в «полностью непротиворечивом состоянии» (когда состояния нейронов видимого слоя, установленные в результате инициализации сети, совпадают с их состояниями, рассчитанными на основе синаптических входов). Энергию системы создатели модели описывают при помощи следующей нехитрой формулы:

где wij — вес синапса, соединяющего нейроны i и j; si — состояние нейрона (0 или 1); θ — смещение. Условие i < j при суммировании нужно для того, чтобы исключить повторное суммирование для одних и тех же синапсов (поскольку синаптические связи в машине Больцмана полностью симметричны). Энергия суммируется для всего набора имеющихся у нас прецедентов. Процесс обучения начинается с точки, соответствующей случайному набору весов и некоторой величины температуры T. Затем на каждом шаге мы выбираем случайным образом новую точку в окрестностях текущей и рассчитываем величину энергии для неё. Если энергия в новой точке меньше, то мы переходим в неё со стопроцентной вероятностью. Если же величина

1 ... 168 169 170 171 172 173 174 175 176 ... 482
Перейти на страницу:

Комментарии
Минимальная длина комментария - 20 знаков. Уважайте себя и других!
Комментариев еще нет. Хотите быть первым?