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

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

Жанры

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

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

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

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

— Что это?!

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

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

— Ого!

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

А вон ещё… ещё… Шестиногие, четырёхногие, семиногие

рачки так и кишели под микроскопом. Один из них был даже одноногий.

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

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

1497

* Один из вариантов этого анекдота: «Некий студент решил поставить опыт. Поймал таракана, положил на стол и начал стучать по столу. Таракан убежал. Затем студент начал отрывать по одной лапке у таракана и обнаружил, что с каждым разом таракан реагирует на стук всё хуже. Потом, когда все лапки были оторваны, студент постучал по столу, но таракан никуда не убежал. В итоге студент сделал вывод, что таракан оглох».

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

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

1498

Merity S., Keskar N. S., Socher R. (2017). Regularizing and Optimizing LSTM Language Models // https://arxiv.org/abs/1708.02182

1499

Melis G., Kocisky T., Blunsom P. (2019). Mogrifier LSTM // https://arxiv.org/abs/1909.01792

1500

Rusch T. K., Mishra S., Erichson N. B., Mahoney M. W. (2021). Long Expressive Memory for Sequence Modeling // https://arxiv.org/abs/2110.04744

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1501

Kingma D. P., Welling M. (2019). An Introduction to Variational Autoencoders // https://arxiv.org/abs/1906.02691

1502

Berthelot D., Raffel C., Roy A., Goodfellow I. (2018). Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizer // https://arxiv.org/abs/1807.07543

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

1503

Hinton G. E., Salakhutdinov R. R. (2006). Reducing the Dimensionality of Data with Neural Networks / Science. — 2006-07-28. — Vol. 313, iss. 5786, pp. 504–507 // https://dx.doi.org/10.1126%2Fscience.1127647

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

Сумеречный Стрелок 2

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

Завод 2: назад в СССР

Гуров Валерий Александрович
2. Завод
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Завод 2: назад в СССР

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Звездная Кровь. Изгой II

Елисеев Алексей Станиславович
2. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой II

Надуй щеки! Том 5

Вишневский Сергей Викторович
5. Чеболь за партой
Фантастика:
попаданцы
дорама
7.50
рейтинг книги
Надуй щеки! Том 5

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Адептус Астартес: Омнибус. Том I

Коллектив авторов
Warhammer 40000
Фантастика:
боевая фантастика
4.50
рейтинг книги
Адептус Астартес: Омнибус. Том I

Миротворец

Астахов Евгений Евгеньевич
12. Сопряжение
Фантастика:
эпическая фантастика
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Миротворец