В 1997 году Зепп Хохрайтер и Юрген Шмидхубер нашли способ преодолеть проблему распада, который они назвали сетью долгой краткосрочной памяти (Long short-term memory; LSTM)[230]
. Основная идея в том, чтобы передать информацию в будущее без потерь, как в период задержки в префронтальной коре мозга обезьяны. В сети LSTM есть сложная схема для принятия решения, как именно объединять новую входящую информацию со старой. Как следствие, растянутые во времени взаимосвязи сохраняются выборочно. Эта версия рабочей памяти не использовалась в течение 20 лет, пока не была воскрешена и реализована в сетях глубокого обучения, где оказалась очень успешной во многих областях, зависящих от последовательности обучения входов и выходов, включая видеоролики, музыку, движения и речь.Шмидхубер – один из руководителей Института исследований искусственного интеллекта Далле Молле в Манно, крошечном городке в районе Тичино на юге Швейцарии, недалеко от лучших туристических троп в Альпах[231]
. Он как Родни Дейнджерфилд[232] в области нейронных сетей. Он изобретательный и единственный в своем роде, однако не считает, что его достаточно уважают: на конференции NIPS в 2015 году в Монреале он представился из зала как «снова ты, Шмидхубер».Рис. 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.]