Шрифт:
Закладка:
Рис. 9.4. Подписи к изображениям глубокого обучения. Верхний ряд иллюстрирует процедуру анализа фотографии. На первом этапе сверточная нейронная сеть помечает объекты на фотографии и передает их рекуррентной нейронной сети. Рекуррентная сеть была обучена выводить соответствующую строку английских слов. Четыре картинки внизу иллюстрируют дальнейшее уточнение, которое использует внимание (белое облако), чтобы соотнести слова и фотографии (arxiv.org/abs/1502.03044, 2015)
На конференции в 2016 году в Барселоне он пять минут донимал спикера, который не уделил достаточного внимания его идеям. В этом весь Шмидхубер. В 2015 году сеть глубокого обучения для распознавания объектов на изображениях была объединена с сетью LSTM для подписи изображений. Входной сигнал в сеть LSTM проходит первичную обработку в сети глубокого обучения, которая определяет все объекты на изображении. Сеть LSTM была обучена выводить строку английских слов, которые описывают изображение (рис. 9.4), а также определять место на изображении, соответствующее слову. Впечатляющим это приложение делает то, что сеть LSTM никогда не обучали понимать смысл предложения – только выводить синтаксически правильную строку слов на основе объектов и их расположения на рисунке. Вместе с NETtalk, приведенной в примере в главе 8, это еще раз доказывает, что нейросети, похоже, связаны с речью, хотя мы пока не понимаем почему. Возможно, в результате анализа сетей LSTM появится новая теория языка, которая прольет свет как на работу нейросетей, так и природу естественного языка.
Порождающие состязательные сети[233]
В главе 7 машина Больцмана была представлена как порождающая модель, умеющая создавать новые входные выборки, когда выходные данные ограничены категорией, которую она обучена распознавать, и шаблоны активности проникают на входной слой. Йошуа Бенджио и его коллеги из Университета Монреаля показали, что можно обучить сети прямого распространения создавать еще более качественные образцы в обстоятельствах состязания[234]. Порождающую сверточную сеть может научить синтезировать хорошие примеры изображений в попытке обмануть другую сверточную сеть, которая должна решить, являются ли входные данные настоящим изображением или поддельным (рис. 9.5). Выходные данные порождающей сети поступают как входные данные дискриминантной сверточной сети, обученной выдавать один выходной сигнал: 1, если входные данные – реальное изображение, и 0 – если поддельное. Эти две сети конкурируют друг с другом. Порождающая сеть пытается увеличить частоту ошибок дискриминантной сети, которая пытается их уменьшить. Конфликт между двумя целями создает удивительные фотореалистичные изображения (см. рис. 9.5).
Рис. 9.5. Порождающие состязательные сети. Вверху: сверточная сеть используется для создания выборки изображений, предназначенных обманывать дискриминативную сеть. Входные данные слева – 100-мерные непрерывные векторы, выбранные случайным образом для генерирования различных изображений. Затем входной вектор активирует слои фильтров, все больше увеличивая пространственный масштаб. Внизу: пример изображений, созданных GAN, после обучения на фотографиях из одной категории. [Alec Radford, Luke Metz, Soumith Chintala, Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, arXiv:1511.06434, 2016.]
Имейте в виду, что эти изображения искусственные и объекты на них никогда не существовали. Они являются обобщенными версиями непомеченных изображений в обучающем наборе. Обратите внимание, что порождающие состязательные сети (Generative adversarial networks; GAN) неконтролируемы, что позволяет им использовать неограниченное количество данных. Есть много других приложений, начиная от приложений для удаления шумов на астрономических изображениях галактик со сверхразрешением[235] до приложений для изучения представлений эмоциональной речи[236].
Рис. 9.6. Векторная арифметика в порождающих состязательных сетях: комбинация входных данных в порождающую сеть, обученную на лицах, превращалась в выходные данные слева, которые затем, складывая и вычитая выбранные входные векторы, использовались для создания комбинации справа. Поскольку смешивание происходит на самом высоком уровне представления, части и позы незаметно для пользователя сочетаются, а не усредняются, как при морфинге[237]. [Alec Radford, Luke Metz, Soumith Chintala, Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, arXiv:1511.06434, 2016.]
Плавно изменяя входной вектор, можно постепенно сдвигать изображение так, что его части, допустим, окна, постепенно появляются или превращаются в другие объекты, например в шкафы[238],[239]. Еще удивительнее то, что можно складывать и вычитать векторы, представляющие состояние сети, для получения смеси объектов на изображении, как показано на рис. 9.6. Смысл этих экспериментов в том, что представление изображений в порождающей сети показывает комнаты так, как если бы мы описывали части картинки. Технология быстро развивается, и следующий рубеж – создание реалистичных фильмов. Тренируя порождающую состязательную сеть на фильмах, например, с Мэрилин Монро, можно будет воскресить старые шедевры и создать новые.
Рис. 9.7. Показ мужской одежды от Джорджо Армани в Милане. Коллекция весна-лето 2018
Неделя моды в Милане. Модели с отрешенными лицами вышагивают по подиуму (рис. 9.7). Что-то меняется в мире моды: «Многие рабочие места исчезают, – сказала Сильвия Вентурини-Фенди перед показом. – Андроиды займут прежние рабочие места, но единственное, что они не смогут заменить, – наш разум и умение творить»[240]. Теперь представьте себе порождающие состязательные сети, которые были обучены создавать новые стили и моделировать модную одежду с почти бесконечным разнообразием. Возможно, мир моды стоит на пороге новой эры, как и многие сферы бизнеса, связанные с творчеством.
Все дело в масштабировании
Большинство современных алгоритмов обучения были открыты более 25 лет назад. Так почему же им потребовалось столько времени, чтобы начать влиять на реальный мир? С компьютерами и размеченными данными[241], которые были доступны исследователям в 1980-х годах, было возможно продемонстрировать только принцип работы в «лабораторных условиях». Несмотря на отдельные многообещающие результаты, мы не знали, насколько хорошо будет масштабироваться сетевое обучение и производительность, так как количество единиц и соединений увеличивалось в соответствии со сложностью реальных проблем. Многие алгоритмы ИИ плохо масштабировались и никогда не выходили за рамки игрушечных задач. Теперь мы знаем, что обучение нейронных сетей хорошо масштабируется, а производительность продолжает расти с размером сети и количеством слоев. Особенно хорошо масштабируется алгоритм обратного распространения ошибки.
Стоит ли удивляться? Кора головного мозга – «изобретение» млекопитающих, она наиболее развита у приматов и особенно у людей. По мере ее разрастания стало доступно больше возможностей и увеличилось число слоев в ассоциативной зоне для представлений более высокого порядка. Сложных систем, которые так же хорошо масштабируются, единицы. Интернет – одна из немногих спроектированных систем, размер которой так же был увеличен в миллион раз. Интернет развивался после