Чтение онлайн

на главную - закладки

Жанры

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Обзор соединительных структур сети

В ячейке таблицы знак «x» стоит тогда и только тогда, когда нейроны, тип которых указан в заголовке столбца, получают входы от нейронов, тип которых указан в первой ячейке строки. Плановые нейроны, являясь рецептивными нейронами сети, получают входы только извне сети, поэтому первый столбец таблицы пуст. Каждый из нейронов состояния получает входы от выходных нейронов, а также от опять же нейронов состояния и так далее.

Если внимательно взглянуть на диаграмму сети, представленную Джорданом, можно отметить один интересный нюанс — наличие связей, соединяющих одни нейроны состояния с другими. Если подумать, то такая структура соединений вполне ожидаема, ведь нейроны состояния в некотором роде являются следующим слоем для самих себя, поэтому структура их связей с собой же повторяет, например, структуру связей между нейронами скрытого и выходного слоёв.

В тексте статьи Джордан отмечает, что «рекуррентные связи между выходными блоками и блоками состояния не являются необходимыми для работы сети при наличии соединений между блоками состояния» [1490] . Эта ремарка Джордана показывает, что, по сути, его работа вводит в оборот не одну, а несколько возможных архитектур сетей. В общем, копаясь в манускриптах древних, можно найти множество занятных подробностей.

1490

Jordan M. J. (1986). Serial order: a parallel distributed processing approach. ICS Report 8604 // http://cseweb.ucsd.edu/~gary/258/jordan-tr.pdf

Не менее, чем вопрос о топологии рекуррентных сетей, интересен вопрос: каким образом такие сети могут быть обучены? Трюки, позволяющие применять метод обратного распространения ошибки к рекуррентным сетям, изобретались разными исследователями неоднократно. Наверное, самый популярный из них получил название «метод обратного распространения ошибки сквозь время» [backpropagation through time]. Идея заключается в том, чтобы развернуть рекуррентную сеть вдоль временной шкалы, дублируя её для каждого момента времени и заменяя рекуррентные связи на прямые, соединяющие сеть, относящуюся к моменту времени t, с копией сети, относящейся к моменту времени t + 1. Однако применение этого метода на практике обнажает ахиллесову пяту метода обратного распространения ошибки — «проблему исчезающего (или затухающего) градиента» [vanishing gradient problem]. Поскольку производные сигмоидальных функций на краях достаточно малы, абсолютный размер ошибки (а значит, и величин коррекции весов сети) быстро уменьшается по мере удаления слоя, для которого производится расчёт, от выходного слоя сети. В принципе, эта проблема характерна не только для сигмоидальных функций, поскольку в процессе обратного распространения ошибки градиент для каждого i– го слоя рассчитывается на базе градиента для i + 1-го слоя, отдельные компоненты градиента могут легко стать слишком малыми величинами. Таким образом, острота проблемы растёт по мере увеличения количества слоёв обучаемой сети. В случае развёрнутой на множество шагов во времени рекуррентной сети, как и в случае других сверхглубоких архитектур, мы неизбежно будем сталкиваться с ситуацией, когда точности выбранного для хранения весов типа данных перестанет хватать для хранения сверхмалых компонент градиента. И даже если мы сможем преодолеть эту проблему, скажем за счёт использования специальных типов, скорость обучения такой сети будет, скорее всего, неудовлетворительной, ведь синаптические веса в передних слоях сети будут корректироваться крайне медленно. Вообще, градиенты весов нейронных сетей штука чрезвычайно капризная — при некоторых условиях они могут не только исчезать, но и, напротив, «взрываться» [exploding gradient problem]. Взрывающиеся или затухающие градиенты могут привести к стагнации или, напротив, слишком быстрому изменению синаптических весов и тем самым сделать обучение нейронной сети нестабильным. Поэтому архитекторы нейронных сетей нередко вынуждены применять для решения подобных проблем особую «уличную магию», например «обрезку градиента» [gradient clipping] [1491] , уже упоминавшиеся нами «перепрыгивающие связи» и так далее.

1491

Pascanu R., Mikolov T., Bengio Y. (2012). On the difficulty of training recurrent neural networks // https://arxiv.org/abs/1211.5063

Из-за проблемы исчезающего градиента на границе 1980–1990-х гг. исследователи могли позволить себе рекуррентные сети, способные различать лишь сравнительно короткие зависимости в обрабатываемых последовательностях [1492] , [1493] . Было трудно поверить в то, что когда-нибудь появятся сети, способные улавливать закономерности в событиях, разделённых десятками или даже сотнями шагов. Однако через некоторое время появилась новая нейросетевая архитектура, способная существенно снизить остроту этой проблемы. О ней мы и поговорим в следующем разделе.

1492

Hochreiter S. (1991). Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich // http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf

1493

Hochreiter S., Bengio Y., Frasconi P., Schmidhuber J. (2001). Gradient flow in recurrent nets: the difficulty of learning long-term dependencies / Kremer S. C., Kolen J. F. (2001). A Field Guide to Dynamical Recurrent Neural Networks. John Wiley & Sons // https://books.google.ru/books?id=NWOcMVA64aAC

Рис. 106.
Схематическое изображение блока рекуррентной нейронной сети (RNN). Обозначения: ht1 — предыдущее скрытое состояние, ht — текущее скрытое состояние, xt — обрабатываемый элемент последовательности, ot — текущий выход, th — функция активации (гиперболический тангенс)

5.2.5.3 Сети с долгой краткосрочной памятью (LSTM) и другие модели

Решительный шаг вперёд в области рекуррентных нейронных сетей удалось сделать в 1997 г., когда Юрген Шмидхубер и Зепп Хохрайтер предложили [1494] принципиально новую архитектуру, получившую весьма оригинальное название — «долгая краткосрочная память» (Long short-term memory, LSTM).

Сталкиваясь с памятью людей, можно заметить, что люди помнят только важные события, а многое старое и ненужное забывается. Можно представить, что было бы, если бы человек запоминал абсолютно всё. Например, такая ситуация описана в рассказе «Фунес, чудо памяти» (Funes el memorioso) [1495] , принадлежащем перу аргентинского писателя Хорхе Луиса Борхеса. Чтобы убить время, главный герой рассказа восстанавливает в своей памяти переживания целого дня, на что у него уходит также целый день. Фунес изобретает собственную систему счисления, где каждое число имеет своё название, например число 7030 получает имя «Максимо Перес», а 7040 — имя «поезд». Лирический герой автора пытается объяснить Фунесу, что такая система противоречит самой идее счёта, но Фунес не понимает его или не хочет понимать.

1494

Hochreiter S., Schmidhuber J. (1997). Long short-term memory / Neural Computation journal, 1997, Vol. 9, No. 8, pp. 1735—1780 // https://doi.org/10.1162/neco.1997.9.8.1735

1495

Borges J. L. (1988). Funes el memorioso. Umbriel Libros // https://books.google.ru/books?id=hCYxuwEACAAJ

Действительно, способность к обобщению, к абстракции основывается на отвлечении от конкретных деталей, на их забвении. Избавившись от неважных деталей, мы можем находить аналогии, и именно они позволяют нам сложить 7030 и 7040, в то время как трудно представить себе операцию сложения «Максимо Переса» и «поезда». Поэтому возникает вполне резонный вопрос: нельзя ли реализовать в нейронных сетях такой механизм забывания, который позволял бы сети запоминать важные признаки последовательности, игнорируя не влияющие ни на что мелочи? Именно эта идея лежит в основе «долгой краткосрочной памяти» Шмидхубера и Хохрайтера.

Основой LSTM-сети являются так называемые LSTM-блоки (LSTM units). Такой блок представляет собой рекуррентный элемент сети, способный запоминать значения как на короткие, так и на длинные промежутки времени. Это достигается благодаря тому, что LSTM-блок не использует функцию активации внутри своих рекуррентных компонентов, благодаря чему хранимое значение не размывается во времени и при использовании метода обратного распространения ошибки во времени градиент не исчезает.

Обычно LSTM-блоки содержат три вентиля [gate], предназначенных для управления потоками информации на входе, выходе и внутри блока. Эти вентили называются соответственно «входным» [input gate], «выходным» [output gate] и «вентилем забывания» [forget gate].

Основной функцией, выполняемой LSTM-блоком, является отслеживание зависимостей между элементами поступающей на вход последовательности. Входной вентиль определяет меру, в которой новые значения поступают в ячейку памяти [cell], вентиль забывания — меру, в которой значения сохраняются в ячейке от шага к шагу, а выходной вентиль отвечает за меру, в которой значения в ячейке используются для вычисления выходного значения. Обученный блок должен понимать, что именно и в какой мере стоит замечать, запоминать и использовать для ответа на каждом из шагов.

LSTM-блок может содержать несколько ячеек памяти, управляемых одними и теми же вентилями. К сожалению, в отношении терминологии в данном случае существует некоторая путаница [1496] , но мы будем придерживаться именно этих наименований — LSTM-блок для обозначения совокупности ячеек памяти и управляющих вентилей и LSTM-ячейка для обозначения одного скалярного компонента памяти LSTM-блока.

Рис. 107. Схематическое изображение блока LSTM

1496

user124589 (2016). Understanding LSTM units vs. cells / StackExchange. CrossValidated, Oct 23 '16 // https://stats.stackexchange.com/questions/241985/understanding-lstm-units-vs-cells

Поделиться:
Популярные книги

Хозяйка собственного поместья

Шнейдер Наталья
1. Хозяйка
Фантастика:
фэнтези
5.00
рейтинг книги
Хозяйка собственного поместья

Душелов. Том 2

Faded Emory
2. Внутренние демоны
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Душелов. Том 2

Невеста снежного демона

Ардова Алиса
Зимний бал в академии
Фантастика:
фэнтези
6.80
рейтинг книги
Невеста снежного демона

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Смерть любит танцы

Klara Клара
1. Танцы
Фантастика:
фэнтези
8.96
рейтинг книги
Смерть любит танцы

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Власть меча

Смит Уилбур
5. Кортни
Приключения:
исторические приключения
5.00
рейтинг книги
Власть меча

Вооружен и очень удачлив. Трилогия

Горбенко Людмила
123. В одном томе
Фантастика:
фэнтези
6.77
рейтинг книги
Вооружен и очень удачлив. Трилогия

Гимназистка. Нечаянное турне

Вонсович Бронислава Антоновна
2. Ильинск
Любовные романы:
любовно-фантастические романы
7.12
рейтинг книги
Гимназистка. Нечаянное турне

Мужчина не моей мечты

Ардова Алиса
1. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.30
рейтинг книги
Мужчина не моей мечты

В осаде

Кетлинская Вера Казимировна
Проза:
военная проза
советская классическая проза
5.00
рейтинг книги
В осаде

Отцы-основатели.Весь Саймак - 9.Грот танцующих оленей

Саймак Клиффорд Дональд
9. Отцы-основатели. Весь Саймак
Фантастика:
научная фантастика
5.00
рейтинг книги
Отцы-основатели.Весь Саймак - 9.Грот танцующих оленей

Купец I ранга

Вяч Павел
1. Купец
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец I ранга