![](/books_files/covers/thumbs_240/kak-uchitsya-mashina-revolyuciya-v-oblasti-neyronnyh-setey-i-glubokogo-obucheniya-217295.jpg)
Автор книги: Ян Лекун
Жанр: Техническая литература, Наука и Образование
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 5 (всего у книги 25 страниц) [доступный отрывок для чтения: 7 страниц]
«Заговор» глубокого обучения
Вместе с Джеффри Хинтоном и Йошуа Бенжио, моими коллегами и друзьями, мы решили возродить интерес научного сообщества к нейронным сетям. Мы по-прежнему были убеждены, что они хорошо работают и могут значительно улучшить распознавание изображений и речи. К счастью, на нашем пути появилась благотворительная организация CIFAR (Canadian Institute for Advanced Research, Канадский институт перспективных исследований; эту аббревиатуру можно также прочесть как «see far», то есть «видеть далеко» по-английски). В 2004 г. она запустила пятилетнюю программу «Нейронные вычисления и адаптивное восприятие», или NCAP (Neural Computation & Adaptive Perception), директором которой тогда стал Джеффри Хинтон, а я – научным консультантом. Программа NCAP позволила нам собираться вместе, организовывать семинары, приглашать наших студентов и даже создавать небольшое научное сообщество.
Остальные исследователи считали исследования нейронных сетей глупостью, а мы, между тем, придумали новое название: глубокое обучение. Я назвал наше трио «заговором глубокого обучения». Шутка, но не совсем.
Нам не давали возможности публиковаться. Почти все статьи, которые мы опубликовали по этой теме в 2004–2006 гг., были отклонены на крупных конференциях по машинному обучению, NIPS (англ. Neural Information Processing Systems, системы обработки нейронной информации)[33]33
Для справки, в 2018 г. NIPS поменяло свое название. Теперь она называется NeurIPS под тем предлогом, что NIPS имеет сексистский оттенок (nips на английском языке – уменьшительное от nipples, которое переводится с французского как «соски»). Раньше об этом никто не думал! Теперь же внимание научного сообщества обратило на это одно из ответвлений #MeeToo – глобального движения, зародившегося в октябре 2017 г. в Соединенных Штатах, которое осуждает сексуальное и гендерное насилие, чьими жертвами становятся женщины.
[Закрыть], ICML (англ. International Conference on Machine Learning, Международная конференция по машинному обучению). В то время машинное обучение в основном было связано с «ядрами», «усилением» и байесовскими вероятностными методами. Нейронные сети к этой области не относились. Конференции по прикладным областям, такие как CVPR (Конференция по компьютерному зрению и распознаванию образов; см. выше) и ICCV (англ. International Conference on Computer Vision, Международная конференция по компьютерному зрению), тоже относились к нейронным сетям прохладно.
Нам оставалось только верить! Но иногда веры становится недостаточно. Я помню, как 6 декабря 1987 г. Джеффри Хинтон пришел в лабораторию в состоянии полной депрессии. Он был угрюм, что не было на него похоже. У Джеффри вообще было хорошее чувство юмора, как у любого уважающего себя англичанина. Но в тот день ему было не до шуток. Коллег, заходивших к нему в кабинет, ждал сухой формальный прием. В конце концов Джеффри признался, что ему тяжело: «Сегодня мне 40 лет, моя карьера окончена. Я больше ничего не достигну». Сорок лет – это рубеж, за которым, по его мнению, ум начинает работать медленнее. Он был уверен, что больше ничего не узнает о том, как работает мозг. Двадцать лет спустя у нас появились новые идеи, но они так и не получили огласку.
Но постепенно, благодаря программе CIFAR, круг наших единомышленников расширился. С 2006 г. он достиг критического размера, в связи с чем наши статьи, представленные на конференциях, стали читать многие эксперты, объединенные тематикой этих исследований. О наших идеях заговорили, а нас самих стали узнавать.
В 2007 г. на конференции NIPS к нам в очередной раз отнеслись пренебрежительно, а между тем в 2018 г. там собрались 9000 участников. Джеффри Хинтон, Йошуа Бенджио и я посещали эту конференцию каждый год, потому что именно там происходят самые интересные обмены идеями о машинном обучении. Неделя встреч, три дня пленарных заседаний и два дня семинаров, где все могли свободно высказывать свои мнения.
Конференция и семинары проходили в то время на зимнем спортивном курорте недалеко от Ванкувера. Участники приехали туда в четверг днем на автобусе. Мы хотели провести там семинар по глубокому обучению, но организаторы без объяснения причин отказали нам. Ну и ладно! На деньги CIFAR мы организовали нашу «пиратскую» встречу и арендовали собственные автобусы для перевозки участников. Наш семинар посетили 300 участников, это был настоящий рекорд! Наш мастер-класс стал самым популярным мероприятием NIPS в том году! Эта история способствовала принятию термина «глубокое обучение» в специальной литературе.
Эффективность сверточных сетей подтвердилась
С методологической точки зрения, некоторые читатели, незнакомые с глубоким обучением, могут перейти к прочтению следующих глав, прежде чем продолжить эту, так как здесь мы ссылаемся на основные понятия, которые будут подробно разобраны позже.
В период с 2003 по 2013 г. моя лаборатория в Нью-Йоркском университете расширила область применения сверточных сетей. В 2003 г. мы добились распознавания простых объектов независимо от ориентации и освещения, а также распознавания лиц (см. рисунки 2.7 и 2.8)[34]34
См. подробное объяснение в главе 6 (фото свадьбы бабушки и дедушки Яна ЛеКуна).
[Закрыть]. Впрочем, первую свою систему распознавания лиц я создал еще в 1991 г. во время шестимесячного нахождения в центральной лаборатории Thomson-CSF в Палезо. Эта работа была опубликована в 1993 г., но была проигнорирована сообществом.
![](i_007.jpg)
Рис. 2.7. Распознание лиц с помощью сверточной сети
Изображение слева является результатом применения первой сверточной сети для распознания объектов на изображениях, созданных в 1991–1992 гг. Статьи об этом впервые вышли в 1993 и 1994 гг. Справа: высокопроизводительная система, разработанная в NEC в 2003–2004 гг. Такая система могла распознать необычные лица, например, пришельцев из «Звездного пути», а также оценивать выражение лица.
В 2003–2004 гг. лаборатория добилась значительного успеха с новым проектом, названным DAVE (рис. 2.9). Мы создали маленький грузовик-робот, оснащенный двумя камерами, который самостоятельно передвигался на местности. Конечно, сначала нужно было его обучить. Человек-пилот управлял им в течение часа или двух в разных локациях: в парках, садах, лесах. Система записывала как изображения двух камер, так и положение рулевого колеса. Затем сверточная сеть обучалась предсказывать угол поворота рулевого колеса на основе входных изображений, чтобы робот вел себя как человек-пилот, который поворачивает рулевое колесо, чтобы объехать возникшее препятствие. После этапа обучения, который длится несколько дней на компьютере, система смогла управлять роботом.
Эта демонстрация силы имитационного обучения, впрочем, не сумела удивить исследовательское сообщество. Статья оставалась не принятой к публикации до 2006 г. С другой стороны, она заинтересовала представителей Управления перспективных исследовательских проектов Министерства обороны США (Defense Advanced Research Projects Agency, DARPA) и побудила их начать проект LAGR (Learning Applied to Ground Vehicles, т. е. прикладное обучение наземных роботов), обширную исследовательскую программу по применению машинного обучения к пилотированию мобильных роботов, которая длилась с 2005 по 2009 г. Мы вернемся к этой теме в Главе 6. Результаты этой работы послужили источником вдохновения для ряда проектов по созданию беспилотных автомобилей.
![](i_008.jpg)
Рис. 2.8. Распознавание объектов независимо от положения и ориентации
Сверточная сеть обучается на изображениях игрушек, относящихся к пяти категориям: человек, животное, самолет, легковой автомобиль и грузовик. Но оказалось, что она может распознавать реальные объекты на естественных изображениях, которые отличаются от игрушек.
![](i_009.jpg)
Рис. 2.9. Робот DAVE (2003)
Эта небольшая радиоуправляемая машина оснащена двумя камерами. Сверточная сеть (справа), обученная имитировать действия человека-пилота, позволяет ему управлять своим движением автономно, избегая препятствий. Вход в сеть состоит из изображений с двух камер (вверху). Выходные данные сети – это угол поворота рулевого колеса (изображен четкой световой полосой под изображениями справа). Миниатюры представляют активацию единиц в последовательных слоях сети.
Вернемся в 2005 г., один из наших самых успешных в Нью-Йоркском университете. Мы продемонстрировали, что сверточные сети можно использовать для семантической сегментации, то есть для маркировки каждого пикселя изображения определенной категорией объекта, к которому относится пиксель. Мы применяли этот метод для анализа биологических изображений, полученных с помощью микроскопии (рис. 2.10). В будущем этот метод оказался очень полезным для управления роботами и автомобилями, так как позволяет помечать каждый пиксель изображения как доступную для проезда область или как препятствие.
Мы также обучали сверточную сеть сравнению изображений. Для этого мы применили «метрическое обучение», основанное на идее «сиамских сетей», которую я предложил еще в 1994 г. для проверки подлинности подписи. Оно позволяла определять, являются ли два портрета фотографиями одного и того же человека или двух разных людей. Позже эта идея была реализована в системах распознавания лиц[35]35
См. главу 7 «Встраивание контента и измерение сходства».
[Закрыть].
В 2007 г. мы взяли курс на распознавание объектов на естественных изображениях. До сих пор мы работали только с изображениями игрушек, теперь же нам нужно было обрабатывать обычные фотографии и распознавать на них основной объект.
![](i_010.jpg)
Рис. 2.10. Сверточная сеть для семантической сегментации биологических изображений
Каждый пиксель входного изображения идентифицируется как принадлежащий к одной из пяти категорий: ядро клетки, ядерная мембрана, цитоплазма, клеточная мембрана и внешняя среда. (а) – изображение клетки зародыша нематоды показано на входе в сеть. (b, c и d) – последовательные слои сверточной сети извлекают элементы изображения. (e) – результат состоит из пяти миниатюр, по одной для каждой из пяти категорий областей. В каждой выходной миниатюре яркий пиксель указывает, что соответствующий пиксель во входном изображении был распознан как принадлежащий к категории, связанной с миниатюрой.
![](i_011.jpg)
Рис. 2.11. Семантическая сегментация изображений города
Каждый пиксель помечен сверточной сетью в категории объекта, которому он принадлежит: автомобиль, проезжая часть, тротуар, здание, дерево, небо, пешеход и т. д.
К сожалению, базы данных изображений, используемые сообществом компьютерного зрения, были тогда невелики. База данных Caltech-101 содержала около 100 категорий объектов, но только по 30 примеров на категорию. Этого было слишком мало для обучения сверточной сети. На тот момент были предпочтительны более «классические» методы, использующие ручные экстракторы признаков, за которыми следует классификатор на основе SVM. Отсутствие достаточного количества примеров заставило нас сосредоточиться на неконтролируемом обучении. Идея состояла в том, чтобы предварительно обучить слои сверточной сети извлекать общие шаблоны без их привязки к конкретной задаче. В результате этого слой сети создает представление, из которого можно восстановить входные данные слоя. Эта технология называется «автоэнкодер», особенность ее заключается в минимизации количества включенных нейронов. С этой идеей мы изо всех сил пытались достичь производительности, сравнимой с обычными системами, однако нашлось одно приложение, для которого такой метод был особенно полезным: обнаружение пешеходов, необходимое автономным автомобилям. Дело в том, что обнаружение пешеходов было одним из немногих приложений, для которых у нас было достаточно данных. Статья появилась в июне 2013 г., а сами методы актуальны и сегодня. Мы вернемся к ним в главе 9.
После LAGR моя лаборатория приняла участие в проекте глубокого обучения, финансируемом DARPA. Впервые мы столкнулись с тем, что идеально соответствовало нашим интересам! Но это было начало 2009 г., администрация США сменилась, а руководство DARPA все ждало подходящего момента. Финансирование проекта то утверждалось, то откладывалось, а затем сократилось. В самом начале сотрудничества с нашей лабораторией уставший от неопределенности руководитель проекта подал в отставку. Его преемник пытался все остановить. Мы спорили с ним, но добивались успеха, только если работали над второстепенными для нас темами. Мы по-прежнему работали над системой семантической сегментации естественных изображений, которая уже била рекорды по точности и скорости.
Все еще скептически настроенное сообщество исследователей компьютерного зрения отвергло нашу статью на конференции CVPR 2012 г., несмотря на хорошие результаты. Рецензенты, оценивавшие наш текст, не понимали, как сверточные сети, о которых они никогда не слышали, могут работать так хорошо. Все происходящее напомнило мне старый анекдот: «Конечно, это хорошо работает на практике. Но работает ли это в теории?» Рецензенты не видели смысла в обучении сквозной системы технического зрения, имея в руках лишь такую небольшую разработку. Один из них, например, заметил, что если машина все распознает, научное сообщество не поймет проблему компьютерного зрения! К счастью, через несколько месяцев статья была принята на ICML, крупной конференции по машинному обучению.
Тем временем глубокое обучение начали признавать. Стали появляться новые базы данных изображений, размер которых увеличивался, что очень благоприятствовало обучения больших глубоких нейронных сетей.
Примерно в 2010 г. появились и первые результаты глубокого обучения распознаванию речи. Это были еще не сверточные сети, но их появление было не за горами. Тремя наиболее продвинутыми компаниями в этой области стали Google, Microsoft и IBM. У Джеффри Хинтона появилась блестящая идея: летом во время стажировки он послал трех своих докторантов в каждую из этих компаний с инструкциями по замене центрального модуля их системы глубокой нейронной сетью. Попытка оказалась успешной, производительность всюду значительно улучшилась. Менее чем через 18 месяцев сразу три компании внедрили новые системы распознавания речи, основанные на глубоком обучении. Теперь мы говорили с нашим виртуальным компьютерным помощником, и сверточная сеть сразу переводила нашу речь в текст. Прогресс был настолько стремительным, что позволил создавать новые потребительские товары, активируемые речью.
Усовершенствование компьютерного оборудования тоже вносило свой вклад. Развитие графических процессоров (GPU) увеличивало вычислительную мощность компьютеров. В 2006 г. мой друг и бывший коллега по Bell Labs Патрис Симард из Microsoft Research впервые решил провести эксперимент с использованием графических процессоров (GPU) для нейронных сетей. Другие исследователи из Стэнфордского университета, IDSIA[36]36
На итальянском языке: Istituto Dalle Molle di Studi sull'Intelligenza Artificiale, IDSIA (Институт исследований в области искусственного интеллекта Далле Молле). Данное заведение находится в Манно, Швейцария. Он был основан в 1988 г. Анджело Далле Молле через фонд, носящий его имя.
[Закрыть] (Швейцарского исследовательского института ИИ), Монреаля и Торонто продолжили эту работу. В 2011 г. стало ясно, что будущее принадлежит тем, кто будет обучать большие нейронные сети на графических процессорах. Они должны были стать проводником новой революции глубокого обучения.
Следующий, 2012 г. ознаменовал собой решающий шаг[37]37
Yann LeCun, Yoshua Bengio, Geoffrey Hinton, «Deep learning», Nature, 2015, 521, p. 436–444.
[Закрыть]. Началась новая эра, время всеобщего признания эффективности сверточных сетей. Им будет посвящена отдельная глава этой книги.
Глава 3
Простые обучающие машины
Машину можно обучить выполнять простую задачу: например, настраивать угол поворота рулевого колеса или распознавать буквы. С точки зрения, находящейся примерно посередине между информатикой и математикой, обучение машины состоит в параметризации функции f(x) в ней таким образом, чтобы из входящей информации (изображение, звук, текст) получались ожидаемые выходы (идентификация изображения, звука или текста).
Мягкотелые как источник вдохновения
Долгое время любимцем нейробиологов был один вид моллюсков, называемый «аплизия». Дело в том, что благодаря своим элементарным реакциям на внешние раздражители это животное демонстрировало, как адаптируются синаптические связи, послужившие моделью для обучающихся машин.
Весьма просто устроенная нервная система аплизии управляет в том числе деятельностью наружных жабр, с помощью которых она дышит. Если коснуться жабр пальцем, моллюск их втянет и выпустит обратно лишь через некоторое время.
Если повторить касание, он снова их втянет и опять через некоторое время выпустит. Если повторить это действие еще раз, жабры снова втянутся, но уже немного меньше. В конечном итоге аплизия почти перестанет реагировать на прикосновение и будет выпускать жабры обратно сразу же после касания. Это значит, что моллюск привык к беспокойствам со стороны внешнего мира. Он как бы говорит себе, что в конце концов ситуация не слишком серьезна, поэтому ее можно проигнорировать.
Психиатр и нейробиолог Эрик Кандел исследовал нейронную сеть, которая управляет изменением поведения аплизии. Втягивание жабр происходит в результате изменений в эффективности синапсов, соединяющих те нейроны, которые воспринимают прикосновение, и те, что вызывают втягивание. Чем сильнее раздражитель, тем сильнее снижается эффективность синапсов и тем меньше втягиваются жабры. Кандел исследовал биохимические механизмы, которые заставляют эти синапсы менять эффективность, что, в конечном счете, влияет на поведение этого моллюска. Иначе говоря, он объяснил механизм адаптации аплизии к повторяющимся раздражителям. Эта работа принесла ему Нобелевскую премию по физиологии в 2000 г.
Этот механизм адаптации или обучения путем изменения синаптической эффективности присутствует почти у всех животных, имеющих настоящую нервную систему. Для справки: мозг – это сеть нейронов, соединенных синапсами, большинство из которых можно изменить путем обучения. Это определение применимо ко всей цепочке живых существ, от крошечного червя Caenorhabditis elegans длиной всего в 1 мм с 302 нейронами, до аплизии и ее 18 000 нейронов, до мухи-дрозофилы (250 000 нейронов и 10 млн синапсов), мыши (71 млн нейронов и около миллиарда синапсов), кролика и осьминога (полмиллиарда нейронов), кошки и сороки (800 млн нейронов), собаки и свиньи (2,2 млрд), орангутанга и гориллы (32 млрд нейронов) и, наконец, человека с его 86 млрд нейронов и примерно 150 000 млрд синапсов. Перед нами одна из величайших загадок интеллекта: как разумное поведение возникает из сети очень простых взаимодействующих единиц, меняя связи между ними.
Воспроизведение мышления – цель исследования машинного обучения на основе искусственных нейронных сетей. Обучение путем корректировки эффективности синапсов является примером того, что статистики с середины XX в. называют «идентификацией параметров модели».
Изучение и минимизация ошибок: пример
Допустим, вы хотите построить автомобиль, который управляет своим движением, имитируя водителя-человека. Что нужно делать?
Первый шаг – собрать данные, полученные от опытного водителя, то есть записать положение автомобиля на трассе и то, как водитель корректирует это положение, поворачивая рулевое колесо, чтобы удерживать автомобиль по центру дорожной полосы.
Можно представить себе измерение положения автомобиля в полосе движения, анализируя изображение камеры, которая фиксирует белые линии. Каждую десятую долю секунды регистрируется положение автомобиля относительно дорожной разметки и угол поворота рулевого колеса. В результате получается большой объем данных. За один час это составляет 36 000 положений автомобиля и углов поворота руля!
Давайте перенесем эту модель на график: положение автомобиля представляет переменную x (ось абсцисс), мы называем это «входом в систему». Если ширина полосы 4 м, то x будет равно 0, когда автомобиль находится посередине, 2 м, когда автомобиль пересекает дорожную разметку справа, и –2 м, если она пересекает разметку слева. Таким же образом, угол поворота рулевого колеса является переменной y (ось ординат на графике). Это называется «выход системы». Он выдает угол поворота рулевого колеса в градусах, например, 5°, чтобы повернуть немного влево, 0°, чтобы держать рулевое колесо прямо, и –5°, чтобы повернуть немного вправо.
Таким образом, регистрируя действия водителя за рулем, мы собираем тысячи числовых пар (x, y), состоящих из положения на дороге и соответствующего угла поворота рулевого колеса. Затем мы объединяем это множество примеров в виде списка из пар чисел X и Y, элементы которого пронумерованы. Чтобы обозначить конкретный пример в этом списке, его номер дается в квадратных скобках, например, пара значений X[3] и Y[3] соответствует примеру номер 3 (это обозначение, которое любят компьютерщики: в квадратных скобках в программировании указывается порядковый номер элемента массива). Мы соберем p примеров (например, p = 36 000), которые составят так называемый обучающий набор:
A = {(X[0], Y[0]), (X[1], Y[1]), (X[2], Y[2]),…, (X[p-1], Y[p-1])}
Цель состоит в том, чтобы на этих примерах научить машину предугадывать правильный угол поворота рулевого колеса в зависимости от положения автомобиля на дороге. Другими словами, мы хотим, чтобы машина «имитировала» водителя-человека, воспроизводя его поведение как можно лучше.
Для этого требуется найти функцию f(x), которая для каждого x обучающего набора подбирает соответствующий y в этом наборе, то есть Y[0] для X[0], Y[1] для X[1] и т. д. Как только функция f(x) найдена, мы можем использовать ее для интерполяции и вычисления y, соответствующего любому x, даже для значений x, которых нет в нашем обучающем наборе. Такой тип обучения называется «обучение с учителем».
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?