Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Некоторые варианты LSTM-блоков могут не иметь одного или нескольких вентилей. Например, стробированные (или управляемые) рекуррентные блоки (gated recurrent units, GRU) не имеют выходного вентиля.
Это напомнило мне животрепещущий эпизод из книги Святослава Сахарнова «Путешествие на „Тригле“», которую я очень любил в детстве. В нём главный герой, молодой художник, решил примерить на себя роль исследователя веслоногих рачков. Острым кухонным ножом он соскоблил отфильтрованный планктон с марли и поместил его на приборное стекло микроскопа.
Вот стекло под микроскопом. На светлом поле копошились прозрачные многорукие твари.
— Что это?!
Мои глаза полезли на лоб.
Прямо посередине светлого поля судорожно двигался по стеклу пятиногий рачок.
— Ого!
Я поперхнулся от радости.
А вон ещё… ещё… Шестиногие, четырёхногие, семиногие
КАКОЕ ЗАМЕЧАТЕЛЬНОЕ ОТКРЫТИЕ!
Иногда мне кажется, что эксперименты, проводимые в целях создания новых разновидностей LSTM-блоков, напоминают вышеупомянутые художества, произведённые над ни в чём не повинными представителями зоопланктона при помощи острого кухонного ножа. После удаления различных вентилей выясняется, что наиболее важным является вентиль забывания. Без остальных вентилей LSTM-блок худо-бедно способен выполнять свои основные функции. Лишь после удаления вентиля забывания приходится констатировать: таракан оглох [1497] .
1497
* Один из вариантов этого анекдота: «Некий студент решил поставить опыт. Поймал таракана, положил на стол и начал стучать по столу. Таракан убежал. Затем студент начал отрывать по одной лапке у таракана и обнаружил, что с каждым разом таракан реагирует на стук всё хуже. Потом, когда все лапки были оторваны, студент постучал по столу, но таракан никуда не убежал. В итоге студент сделал вывод, что таракан оглох».
По сравнению с простыми рекуррентными сетями 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], которых также называют автоэнкодерами или иногда — автоассоциаторами.
Обсуждая в начале книги типы задач, решаемых при помощи методов машинного обучения, мы упоминали задачу сокращения размерности. Например, словесное описание объекта куда компактнее фотографии, сделанной с высоким разрешением, однако по этому описанию можно, пусть и с некоторыми потерями, восстановить внешний вид описанного объекта. Представьте себе многослойную нерекуррентную нейронную сеть, в которой размерность рецептивного слоя в точности равна размерности
Сама архитектура связей такой сети может быть различной. Например, для обработки изображений чаще всего применяют свёрточные автокодировщики, то есть на входе такой модели присутствуют слои свёртки, а на выходе — обратные им по выполняемой функции слои развёртки. При обработке последовательностей могут использоваться рекуррентные автокодировщики. Ничто не мешает использовать и полносвязные архитектуры, архитектуры с какими-то особенными вычурными слоями.
Почему и за счёт чего автокодировщики работают? На этот вопрос можно ответить по-разному, но важно, что на практике данные, обрабатываемые при помощи автоэнкодеров, содержат некоторую избыточность, они отличаются от равномерно распределённого шума. В них присутствуют закономерности, которые и учится выявлять автокодировщик в процессе обучения.
Чем могут быть полезны автокодировщики? Конечно, первое напрашивающееся применение — это сжатие данных с потерями. Однако потенциальная польза от автокодировщиков куда шире. Автокодировщик может применяться в качестве генеративной модели. Например, обучив его на большом наборе фотографий людей, можно затем сгенерировать латентный вектор случайным образом, подставить его в декодер и получить совершенно новое фото (для таких задач в наши дни обычно используются так называемые вариационные автокодировщики (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. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
рейтинг книги
Завод 2: назад в СССР
2. Завод
Фантастика:
попаданцы
альтернативная история
фэнтези
рейтинг книги
Измена
Любовные романы:
современные любовные романы
рейтинг книги
Звездная Кровь. Изгой II
2. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
рейтинг книги
Надуй щеки! Том 5
5. Чеболь за партой
Фантастика:
попаданцы
дорама
рейтинг книги
На границе империй. Том 4
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
рейтинг книги
Зауряд-врач
1. Зауряд-врач
Фантастика:
альтернативная история
рейтинг книги
Бывшие. Война в академии магии
2. Измены
Любовные романы:
любовно-фантастические романы
рейтинг книги
Бастард Императора. Том 2
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Адвокат империи
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
рейтинг книги
Товарищ "Чума" 2
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
рейтинг книги
Адептус Астартес: Омнибус. Том I
Warhammer 40000
Фантастика:
боевая фантастика
рейтинг книги
