Как учится машина. Революция в области нейронных сетей и глубокого обучения - Ян Лекун
В исходном перцептроне экстрактор признаков был на самом деле серией бинарных нейронов, связанных с небольшими группами пикселей во входном изображении, выбранных случайным образом (потому что не было лучшей идеи!). Вес этих нейронов нельзя было изменить путем обучения. Они были фиксированными, со случайными значениями. Поскольку соединения нейронов были случайными, вы не могли быть уверены в правильности результата. Для того, чтобы этот первый слой играл свою роль, должно было быть много промежуточных нейронов, извлекающих признаки. В результате количество входов в конечный нейрон (единственный обучаемый нейрон) непропорционально увеличилось. В некоторых системах классификации и распознавания образов (с 2013 г. они уже мало используются) количество входов экстрактора признаков исчисляется миллионами. Чем больше будет признаков, тем легче будет впоследствии классифицировать перцептрон. Так проще, но значительно более трудоемко.
Организация зрительной коры мозга в последовательных областях продолжала вдохновлять исследователей. Они задумались об улучшении перцептрона путем создания дополнительных нейронных слоев. Первый слой системы извлекает очень простые признаки. Следующий слой пытается обнаружить сборки или соединения этих контуров, чтобы сформировать элементарные формы, такие как круги или углы. На следующем слое обнаруживаются комбинации этих паттернов для частей объектов и т. д.
Еще один, более продуманный, способ создать экстрактор признаков – метод опорных векторов, или SVM (англ. Support Vector Machine), который изобрела Изабель Гийон (профессор Орсе с 2015 г.) в сотрудничестве с Владимиром Вапником и Бернхардом Босером, членами нашей команды в Bell Labs. В период с 1995 по 2010 г. SVM был доминирующим методом классификации, однако, при всем уважении к моим друзьям и коллегам, я признаюсь, что этот метод не представлял для меня особого интереса. Он не решил ключевой проблемы автоматического управления экстрактором признаков, хотя казался весьма перспективным.
Подход, лежащий в основе SVM, – это пример того, что мы называем «ядерными методами». Фактически он представляет собой своего рода двухслойную нейронную сеть. (Те, кто пользуется этим методом, такую аналогию не приветствуют.) Первый слой имеет столько единиц, сколько примеров в обучающем наборе, а второй слой вычисляет взвешенные суммы, как обычный перцептрон. Модули на первом слое «сравнивают» вход x с каждым из обучающих примеров X[0], X[1], X[2], …, X[p – 1], используя функции ядра k(x, q), где x – вектор входа, а q – один из обучающих примеров. Например, единица номер 3 первого слоя даст следующий результат: z[3] = k(x, X[3]).
Типичный пример функции k – это экспонента расстояния между двумя векторами:
Единица этого типа выдает большое значение выхода, когда x и q находятся рядом, и маленькое значение, когда они находятся далеко друг от друга.Второй слой сочетает эти выходы с контролируемыми весами. В перцептроне такого типа только конечный слой обучается с учителем. Но первый слой также обучается, так как он использует входы (x) из обучающих примеров[44].
Эта чрезвычайно простая модель стала предметом многих прекрасных книг по математике. Отчасти именно естественное влечение исследователей к тонкой математике сделало SVM и ядерные методы действительно успешными. К сожалению, их авторы часто скрывали от себя ограничения этих методов. Мне и моим коллегам было очень трудно убедить сообщество в том, что, несмотря на успешные результаты, эта машина по сути ненамного мощнее перцептрона. Некоторые из сторонников ядерных методов до сих пор не уверены в полезности многослойных архитектур, в том числе и Владимир Вапник.
Тем не менее, следует признать, что SVM надежны и просты в эксплуатации при небольшом количестве обучающих примеров, что было типичным для середины 1990-х годов. Кроме того, с первых дней Интернета SVM-программы находились в открытом доступе. Девиз «все новое – прекрасно» набирал обороты. В 1990-х годах ядерные методы затмили нейронные сети. О полезности наличия нескольких слоев вскоре забыли.
Однако добавление одного или нескольких слоев искусственных нейронов позволяет вычислять более сложные функции, которые невозможно эффективно вычислить с помощью одного слоя. Математические теоремы показывают, что всего с двумя слоями нейронов можно вычислить все, что угодно, и этот факт мотивировал развитие SVM. Но зачастую первый слой нейронов при этом оказывался гигантским: количество нейронов в нем должно быть намного больше, чем количество пикселей в начальном изображении. В случае нашего маленького 25-пиксельного изображения там могли быть сотни или тысячи нейронов.
Исследователи 1960-х застряли на обучении этих множественных слоев. Процедура обучения перцептрона может обучать только конечный слой. Первый слой экстрактора признаков еще не мог обучаться и должен был быть настроен вручную. Эта трудность ручной настройки тысяч или миллионов весов для каждого попадающего в машину изображения объясняет, почему в конце 1960-х исследователи отказались от идеи интеллектуальной машины, которую можно было бы обучать от начала до конца. Они сосредоточились на прикладных программах, основной задачей которых стало выявление статистических закономерностей. Архитектура, вдохновленная перцептронами, хотя и несовершенная, доминировала в мире машинного обучения до начала 2010-х гг. Возьмите сигнал, пропустите его через созданный вручную экстрактор функций, а затем через систему классификации, которая может быть перцептроном или любым другим статистическим методом обучения: это и есть «першерон» распознавания образов[45].
Заключение
Перцептрон положил начало так называемому машинному обучению с учителем. Процедура обучения настраивает параметры сети таким образом, чтобы результат приближался к желаемому. После обучения хорошо настроенная машина может также распознавать примеры, которых она никогда не видела: это называется способностью к обобщению.
Однако у этого метода есть свои ограничения. Для их преодоления исследователи кодировали изображения, чтобы извлечь ключевые характеристики изображений для выполнения каждой конкретной задачи, прежде чем передать эти изображения классическому классификатору, например, перцептрону. Между 1960 и 2015 гг. исследователи потратили массу времени и энергии на разработку экстракторов функций для решения той или иной проблемы. На эту тему были написаны тысячи статей, и благодаря этим статьям многие авторы нашли свой путь в науке.
Одна из идей, которых я придерживался все эти годы (хотя сообщество долгое время не было готово к ее принятию), заключалась в том, чтобы найти способы обучить экстракторы признаков вместо того, чтобы создавать их вручную. Эту проблему решают многослойные нейронные сети и глубокое обучение.
Глава 4
Обучение путем минимизации, теория обучения
Основной принцип обучения системы с