Я. Л.: Нет, все происходило в США. В Канаде такие исследования тогда еще не велись. В начале 1980-х гг. Джеффри Хинтон был сотрудником Калифорнийского университета в Сан-Диего, где работал с такими специалистами по когнитивной психологии, как Дэвид Румельхарт и Джеймс Макклелланд. В результате появилась книга, объясняющая психологию при помощи простых нейронных сетей и компьютерных моделей. Затем Джеффри стал доцентом в Университете Карнеги – Меллона. В Торонто он переехал только в 1987 г. Тогда же в Торонто перебрался и я, и в течение года работал в его лаборатории.
М. Ф.: В начале 1980-х гг. я был студентом, изучавшим вычислительную технику, и не помню, чтобы где-то применялись нейронные сети. Сейчас ситуация резко изменилась.
Я. Л.: Нейронные сети не просто оказались на обочине науки. В 1970-х гг. и начале 1980-х гг. их фактически предали анафеме. Статьи отклонялись за одно упоминание нейронных сетей.
Известна статья
М. Ф.: Вы известны как автор сверточной нейронной сети. Объясните, пожалуйста, что это такое?
Я. Л.: Изначально эта нейронная сеть была оптимизирована под распознавание объектов на изображениях. Но оказалось, что ее можно применить к широкому кругу задач, например распознаванию речи и машинному переводу. Идеей для ее создания послужили особенности зрительной коры мозга животных и людей, изученные в 1950–60-х гг. Дэвидом Хьюбелом и Торстеном Визелом, позднее получившими Нобелевскую премию в области нейробиологии.
Сверточная сеть – это особый способ соединения нейронов, которые не являются точной копией биологических нейронов. В первом слое – слое свертки – каждый нейрон связан с небольшим количеством пикселов изображения и вычисляет взвешенную сумму своих входных данных. В процессе обучения веса меняются. Группы нейронов видят небольшие участки изображения. Если нейрон обнаруживает определенный признак на одном участке, другой нейрон обнаружит точно такой же признак на соседнем участке, а все остальные нейроны – в остальных участках изображения. Математическая операция, которую нейроны выполняют вместе, называется дискретной сверткой. Отсюда название.
Затем идет нелинейный слой, где каждый нейрон включается или выключается, в зависимости от того, выше или ниже заданного порога оказалась вычисляемая слоем свертки взвешенная сумма. Наконец, третий слой выполняет операцию субдискретизации, чтобы убедиться, что небольшое смещение или деформация входного изображения не сильно меняет результат на выходе. Это обеспечивает независимость от деформаций входного изображения.
По сути, сверточная сеть – это стек, организованный из слоев свертки, нелинейности и субдискретизации. Когда они сложены, появляются нейроны, распознающие объекты. Например, нейрон, который включается при нахождении лошади на изображении, другой нейрон – для автомобилей, третий – для людей и так далее, для всех нужных вам категорий.
При этом то, что делает нейронная сеть, определяется силой связей между нейронами, то есть весами. И эти веса не запрограммированы, а являются результатом обучения.
Сети показывается изображение лошади, и, если она не отвечает «лошадь», ее информируют, что это неправильно, и подсказывают правильный ответ. После этого с помощью алгоритма обратного распространения ошибки сеть корректирует веса всех соединений, чтобы в следующий раз при демонстрации такого же изображения результат был ближе к нужному. При этом приходится демонстрировать ей тысячи изображений.
М. Ф.: Это обучение с учителем? Как я понимаю, сейчас это доминирующий подход.
Я. Л.: Именно так. Почти все современные приложения глубокого обучения используют обучение с учителем. Магия в том, что обученная сеть по большей части дает правильные ответы даже для изображений, которых ей раньше не показывали. Но нуждается в огромном количестве примеров.
М. Ф.: А чего можно ожидать в будущем? Можно ли будет учить машину как ребенка, которому достаточно один раз показать кошку и назвать ее?
Я. Л.: На самом деле вы не совсем правы. Первые тренировки сверточной сети действительно проходят на миллионах изображений различных категорий. А потом, если нужно добавить новую категорию, например научить компьютер распознавать кошек, для этого достаточно нескольких образцов. Ведь сеть уже обучена распознавать объекты практически любого типа. Дополнения к обучению касаются пары верхних слоев.
М. Ф.: Это уже похоже на то, как учатся дети.