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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 167 168 169 170 171 172 173 174 175 ... 482
Перейти на страницу:
обозначения одного скалярного компонента памяти LSTM-блока.

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

Некоторые варианты LSTM-блоков могут не иметь одного или нескольких вентилей. Например, стробированные (или управляемые) рекуррентные блоки (gated recurrent units, GRU) не имеют выходного вентиля.

Это напомнило мне животрепещущий эпизод из книги Святослава Сахарнова «Путешествие на „Тригле“», которую я очень любил в детстве. В нём главный герой, молодой художник, решил примерить на себя роль исследователя веслоногих рачков. Острым кухонным ножом он соскоблил отфильтрованный планктон с марли и поместил его на приборное стекло микроскопа.

Вот стекло под микроскопом. На светлом поле копошились прозрачные многорукие твари.

— Что это?!

Мои глаза полезли на лоб.

Прямо посередине светлого поля судорожно двигался по стеклу пятиногий рачок.

— Ого!

Я поперхнулся от радости.

А вон ещё… ещё… Шестиногие, четырёхногие, семиногие рачки так и кишели под микроскопом. Один из них был даже одноногий.

КАКОЕ ЗАМЕЧАТЕЛЬНОЕ ОТКРЫТИЕ!

Иногда мне кажется, что эксперименты, проводимые в целях создания новых разновидностей LSTM-блоков, напоминают вышеупомянутые художества, произведённые над ни в чём не повинными представителями зоопланктона при помощи острого кухонного ножа. После удаления различных вентилей выясняется, что наиболее важным является вентиль забывания. Без остальных вентилей LSTM-блок худо-бедно способен выполнять свои основные функции. Лишь после удаления вентиля забывания приходится констатировать: таракан оглох[1497].

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

По сравнению с простыми рекуррентными сетями LSTM-сети гораздо лучше приспособлены к ситуациям, когда важные события разделены временными лагами с неопределённой продолжительностью и границами. Неудивительно, что в начале нового тысячелетия они стали основой многих систем, предназначенных для обработки естественного языка, прогнозирования временных рядов, распознавания речи и решения других задач, связанных с обработкой последовательностей. Сегодня идеи, положенные в основу LSTM, получили развитие в новом поколении рекуррентных нейросетевых архитектур, к которому относятся, например, такие модели, как AWD-LSTM[1498], Mogrifier LSTM[1499] и LEM[1500].

Конечно, на заре новой весны искусственного интеллекта арсенал коннекционистских инструментов не ограничивался упомянутыми выше моделями. Определённую популярность среди исследователей имели сети Кохонена, эхо-сети (Echo State Network, ESN), сети Хопфилда и модели на их основе — сети Коско, машина Больцмана (Boltzmann machine), а затем и ограниченная машина Больцмана (Restricted Boltzmann Machine, RBM), глубокие сети доверия (Deep Belief Networks, DBN) и даже машина Гельмгольца (Helmholtz machine).

Хотя сегодня редко используют машины Больцмана, Гельмгольца или DBN непосредственно, да и мало кто из специалистов-практиков в области глубокого обучения с ходу вспомнит особенности этих моделей, они сыграли в истории нейронных сетей важную роль, став предшественниками современных глубоких сетей-автокодировщиков, о которых мы поговорим в следующем разделе.

5.2.6 Автокодировщики, контрастное обучение и близнецы Барлоу

Истратил я зарплату на новый пылесос.

Шумит как экскаватор, свистит как паровоз.

Вся пыль в него влетает с ковров и со стены…

И тут же вылетает с обратной стороны.

Павел Рудаков и Вениамин Нечаев. С обратной стороны

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

Обсуждая в начале книги типы задач, решаемых при помощи методов машинного обучения, мы упоминали задачу сокращения размерности. Например, словесное описание объекта куда компактнее фотографии, сделанной с высоким разрешением, однако по этому описанию можно, пусть и с некоторыми потерями, восстановить внешний вид описанного объекта. Представьте себе многослойную нерекуррентную нейронную сеть, в которой размерность рецептивного слоя в точности равна размерности выходного слоя. При этом слой, находящийся в середине сети, обладает существенно меньшей размерностью (либо при обучении такой сети используются какие-либо штрафы или ограничения для значений в этом слое). Например, на вход сети подаётся изображение размером 100 × 100 пикселей, стало быть, в её рецептивном слое, как и в выходном, 10 000 нейронов. В промежуточном же слое сети всего 500 нейронов. Мы будем обучать эту сеть таким образом, чтобы изображение, полученное на выходе сети, было максимально похоже на изображение, подаваемое на вход. Важной особенностью такой процедуры обучения является отсутствие учителя: данные, используемые для обучения автокодировщика, в общем случае не требуют разметки. Предъявив автоэнкодеру в ходе обучения десятки или сотни тысяч изображений, мы таким образом вынудим сеть придумать такой способ компактного представления картинок, который позволит добиться минимальных потерь в изображении при последующем его декодировании. При этом часть сети, начинающаяся с рецептивного слоя и заканчивающаяся самым узким слоем (своеобразным «бутылочным горлышком»), будет выполнять функцию кодировщика, а часть сети, начинающаяся с самого узкого слоя и заканчивающаяся выходным слоем, — роль декодера. Совокупность сигналов в нейронах самого узкого слоя, при поступлении на вход некоторого образа, называется латентным вектором [latent vector] или латентным представлением [latent representation] образа, а пространство возможных значений латентного вектора — латентным пространством. Описанная нами нейронная сеть называется, как вы уже, наверное, догадались — автокодировщиком.

Рис. 109. Схема автокодировщика

Сама архитектура связей такой сети может быть различной. Например, для обработки изображений чаще всего применяют свёрточные автокодировщики, то есть на входе такой модели присутствуют слои свёртки, а на выходе — обратные им по выполняемой функции слои развёртки. При обработке последовательностей могут использоваться рекуррентные автокодировщики. Ничто не мешает использовать и полносвязные архитектуры, архитектуры с какими-то особенными вычурными слоями.

Почему и за счёт чего автокодировщики работают? На этот вопрос можно ответить по-разному, но важно, что на практике данные, обрабатываемые при помощи автоэнкодеров, содержат некоторую избыточность, они отличаются от равномерно распределённого шума. В них присутствуют закономерности, которые и учится выявлять автокодировщик в процессе обучения.

Чем могут быть полезны автокодировщики? Конечно, первое напрашивающееся применение — это сжатие данных с потерями. Однако потенциальная польза от автокодировщиков куда шире. Автокодировщик может применяться в качестве генеративной модели. Например, обучив его на большом наборе фотографий людей, можно затем сгенерировать латентный вектор случайным образом, подставить его в декодер и получить совершенно новое фото (для таких задач в наши дни обычно используются так называемые вариационные автокодировщики (Variational Autoencoders, VAE)[1501] или методы вроде «состязательно ограниченных интерполяций автокодировщиков» (Adversarially Constrained Autoencoder Interpolation)[1502], которые накладывают некоторые дополнительные ограничения на латентные векторы автокодировщика, чтобы улучшить сходимость модели и качество генерируемых данных). Латентные векторы автокодировщика могут быть входом для моделей, решающих задачи классификации и

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

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