В 1969 г. Минский вместе с Сеймуром Пейпертом написал книгу о персептронах. По сути, там доказывалось, что они не могут решать задачу XOR и проблему связности. Обложку книги украшали изображения двух лабиринтов: один – связный, а второй – нет. Доказано, что персептрон не может классифицировать фигуры по признаку связности. Книга привела к тому, что в течение следующих 25 лет на коннекционизм просто не выделяли средств. Впоследствии Минский сожалел об этом и незадолго до своей смерти говорил, что осознал потенциал глубоких нейронных сетей.
М. Ф.: Но ведь он работал над первыми коннекционистскими нейронными сетями еще в 1950-х гг.?
Р. К.: Да, но к 1960 г. он в них разочаровался. Более того, возможности этих сетей стали очевидными только десятилетия спустя, после того как опробовали трехслойные нейронные сети. При большем количестве слоев возникала проблема взрывающегося или исчезающего градиента, то есть ситуации, когда динамический диапазон коэффициентов уменьшался, потому что числа становились слишком большими или слишком маленькими.
Эту проблему решил Джеффри Хинтон с группой математиков. Они предложили после каждого слоя корректировать веса, чтобы они оставались в заданном диапазоне значений. Это дало возможность работать с нейронными сетями, состоящими из ста слоев. Но все равно осталась проблема, которую можно описать фразой: «Жизнь начинается с миллиарда примеров».
Это одна из причин, по которой я работаю в Google. Тут есть доступ к миллиарду примеров изображений собак, кошек и других вещей. Хотя остается и множество вещей, для которых ничего подобного не существует. Скажем, у нас есть многочисленные примеры естественного языка, но их значения не снабжены аннотациями. Да и как это можно сделать для языков, которых мы изначально не понимаем? Для решения некоторых задач можно обойтись без огромного набора маркированных данных. К таким задачам относится, например, игра го. Когда систему, созданную компанией DeepMind, пытались обучать на примере всех онлайн-ходов, нашлось порядка миллиона примеров. Система научилась играть на любительском уровне. Для дальнейшего обучения требовалось еще 999 млн примеров, а где их брать?
М. Ф.: Вы утверждаете, что современное глубокое обучение сильно зависит от наличия маркированных данных, то есть все сводится к обучению с учителем.
Р. К.: Именно так. Это ограничение можно обойти, если получится смоделировать мир, в котором вы работаете. В этом случае появится возможность создавать собственные обучающие данные. Так и поступили в DeepMind. Они просто стали играть все новые и новые партии. Ходы маркировались традиционными методами. В результате без предварительно представленных людьми данных нейронную сеть удалось обучить настолько, что алгоритм AlphaZero смог сто раз подряд победить алгоритм AlphaGo.
Вопрос в том, в каких ситуациях работает такой подход? Например, симулировать можно математические правила: аксиомы теории чисел не сложнее правил игры го. А процесс вождения намного сложнее. Но в компании Waymo применили комбинацию методов и создали достаточно хороший беспилотник, а затем проехали миллионы миль с водителем, готовым в любой момент взять управление на себя. В результате накопилось достаточно данных для создания точного симулятора. После этого порядка миллиарда миль было пройдено в симуляторе, чтобы сгенерировать обучающие данные для глубокой нейронной сети, предназначенной для улучшения алгоритмов.
Теперь очередь за моделированием биологического и медицинского миров. Подобные симуляторы позволили бы проводить клинические испытания за часы, а не за годы, и генерировать собственные обучающие данные.
Это не единственный подход к проблеме обучающих данных. Например, у людей работает технология переноса обучения (transfer learning), то есть они умеют использовать накопленный опыт для решения задач другого типа. Я придумал собственную модель на базе приблизительного представления о работе неокортекса. Первые идеи появились в 1962 г., и последующие 50 лет я всячески их обдумывал. Вместо одной большой нейронной сети можно обучить на шаблонах множество модулей. В книге «Как создать разум» я описываю неокортекс как 300 млн модулей, последовательно распознающих образ и допускающих определенную степень изменчивости. Они образуют иерархическую структуру. Для такого обучения требуется меньше данных. Машина, как человек, сумеет обобщать информацию и переносить ее из одной предметной области в другую. После выхода книги Ларри Пейдж пригласил меня в Google, чтобы я попробовал применить свои идеи к распознаванию естественного языка.
М. Ф.: На базе этих концепций уже созданы какие-то продукты?