Kitabı oxu: «Как учится машина. Революция в области нейронных сетей и глубокого обучения»
Перевод Е. Арсеновой
Редактор В. Скворцов
Научный редактор М. Плец
Руководители проекта А. Марченкова, Ю. Семенова
Дизайн А. Маркович
Корректор Е. Жукова
Компьютерная верстка Б. Руссо
© Odile Jacob, octobre 2019
© ООО «Альпина ПРО», 2021
Все права защищены. Данная электронная книга предназначена исключительно для частного использования в личных (некоммерческих) целях. Электронная книга, ее части, фрагменты и элементы, включая текст, изображения и иное, не подлежат копированию и любому другому использованию без разрешения правообладателя. В частности, запрещено такое использование, в результате которого электронная книга, ее часть, фрагмент или элемент станут доступными ограниченному или неопределенному кругу лиц, в том числе посредством сети интернет, независимо от того, будет предоставляться доступ за плату или безвозмездно.
Копирование, воспроизведение и иное использование электронной книги, ее частей, фрагментов и элементов, выходящее за пределы частного использования в личных (некоммерческих) целях, без согласия правообладателя является незаконным и влечет уголовную, административную и гражданскую ответственность.
* * *
Введение
«Открой дверь модульного отсека, Хэл!» В фильме «2001 год: Космическая одиссея» HAL 9000, сверхразумный компьютер, управляющий работой космического корабля, отказывается открыть дверь модульного отсека астронавту Дейву Боумену. В этой драматической сцене – вся трагедия искусственного интеллекта. Мыслящая машина оборачивается против человека, который ее сам же разработал. Что это: фантазия или обоснованные опасения? Стоит ли тревожиться о том, что однажды нашим миром будут управлять терминаторы – искусственные гуманоиды с почти неограниченными возможностями и темными замыслами? Этот вопрос люди задают все чаще и чаще сейчас, когда мы переживаем неслыханную революцию в интеллектуальных технологиях, которую никто не мог вообразить себе еще полвека назад. Искусственный интеллект, изучению которого я посвятил много лет, меняет все наше общество.
Я решил написать эту книгу, чтобы объяснить определенный набор методов и приемов в этой области, не скрывая всей ее сложности. Понять это не так просто, как научиться играть в шашки, но я думаю, что это необходимо для формирования аргументированного мнения по вопросам, связанным с искусственным интеллектом. Наше медиапространство пестрит такими терминами как «глубокое обучение», «машинное обучение» или «нейронные сети» … Я хочу, шаг за шагом, пролить свет на научный подход, который работает на стыке вычислительной техники и нейробиологии, не прибегая при этом к каким-либо метафорам.
Во время нашего погружения в основы работы вычислительных машин я буду использовать два способа изложения информации. Первый из них – традиционный: я рассказываю, описываю и анализирую. Время от времени для тех, кому интересно, я буду приводить более сложные примеры из математики и компьютерных наук.
Искусственный интеллект (ИИ) позволяет машине распознавать изображения, транскрибировать голос с одного языка на другой, переводить тексты, автоматизировать управление автомобилем или контролировать производственные процессы. Его широкое распространение в последние годы связано с методом, именуемым глубоким обучением, которое позволяет не просто программировать машину для выполнения определенной задачи, а обучать ее решению более широкого круга сходных задач. Глубокое обучение применяется к так называемым искусственным нейронным сетям, архитектура и функционирование которых вдохновлены устройством человеческого мозга.
Наш мозг состоит из 86 миллиардов нейронов, нервных клеток, связанных друг с другом. Искусственные нейронные сети также состоят из множества единиц, математических функций, подобных очень упрощенным нейронам. В мозгу обучение изменяет связи между нейронами; то же самое происходит и с искусственными нейронными сетями. Поскольку эти единицы часто организованы в несколько слоев, мы говорим о «сетях» и «глубоком» обучении.
Роль искусственных нейронов состоит в том, чтобы вычислить взвешенную сумму входных сигналов и создать выходной сигнал, если эта сумма превышает определенный порог. Но искусственный нейрон – это не больше и не меньше, чем математическая функция, рассчитанная компьютерной программой. Однако мы не случайно применяем к искусственным сетям те же термины, что и к реальным нейронам, – ведь именно открытия в области нейробиологии послужили стимулом исследованиям в области ИИ.
В этой книге я также хочу проследить свой интеллектуальный путь в рамках этого необычного научного приключения. Мое имя по-прежнему связано с так называемыми «сверточными» нейронными сетями, которые подняли распознавание объектов компьютером на небывалую высоту. Вдохновленные структурой и функцией зрительной коры головного мозга млекопитающих, они могут эффективно обрабатывать изображения, видео, звук, голос, текст и другие типы сигналов.
В чем состоит деятельность исследователя? Откуда берутся его идеи? Что касается меня, то я уделяю много внимания интуитивным догадкам. Дальше наступает очередь математики. Я знаю, что другие ученые действуют диаметрально противоположным образом. Я проецирую в свою голову пограничные случаи, которые Эйнштейн называл «мысленными экспериментами», благодаря которым вы сначала представляете ситуацию, а затем пытаетесь рассмотреть ее следствия для лучшего понимания проблемы.
Моя интуиция подпитывается чтением книг. Я просто пожираю книги. Я исследую работы тех, кто был до меня. Вы никогда ничего не создадите в одиночку. Идеи живут, дремлют, и они возникают в чьей-то голове, потому что пришло время. Так рождаются исследования. Они продвигаются неравномерно, то прыжками, то шажками, а порой – даже пятясь. Но деятельность эта всегда коллективна. Образ одинокого исследователя, делающего в своей лаборатории мировое открытия, – не более, чем романтическая фантастика.
Путь разработки глубокого обучения не был простым. Приходилось бороться со скептиками всех мастей. Сторонники «классического» искусственного интеллекта, основанного исключительно на логике и рукописных программах, пророчили нам провал. Люди, добившиеся успеха в традиционном машинном обучении, показывали на нас пальцами, хотя глубокое обучение, над которым мы работали, и было по существу набором определенных методов в более широкой области машинного обучения. Однако тот тип машинного обучения, который позволял машине решать задачу путем сравнения конкретных примеров внутри массива данных, а не прямым исполнением написанной программы, тоже имел свои пределы. Мы пытались их преодолеть. Средством для этого послужили глубокие нейронные сети. Они были очень эффективными, но при этом сложными в математическом анализе и в реализации. Поэтому мы прослыли чуть ли не алхимиками…
Сторонники традиционного машинного обучения перестали высмеивать нейронные сети в 2010 г., когда последние наконец продемонстрировали свою эффективность. Лично я никогда не сомневался в успехе. Я всегда был убежден, что человеческий интеллект настолько сложен, что для того, чтобы его скопировать, нужно стремиться построить самоорганизующуюся систему, способную учиться самостоятельно, через опыт.
Сегодня эта форма искусственного интеллекта так и осталась наиболее перспективной, благодаря доступности больших баз данных и прогрессу в разработке оборудования, например графических процессоров, намного увеличивших вычислительную мощность компьютеров.
По окончании учебы я планировал провести несколько лет в Северной Америке. И я все еще там! После некоторых жизненных перипетий я попал в компанию Facebook, владеющую сайтом с 2 миллиардами активных пользователей, чтобы вести фундаментальные исследования в области ИИ. Это – тоже часть моей публичной биографии. Я не хочу скрывать ничего из того, что происходит в компании Марка Цукерберга, которой в 2018 г. были предъявлены серьезные обвинения, и чье безграничное расширение вызывает опасение. В любом случае – я сторонник открытости.
В марте 2019 г. я был удостоен премии Тьюринга за 2018 г. от Ассоциации вычислительной техники – своего рода Нобелевской премии в компьютерной области. Я разделил эту награду с двумя другими специалистами по глубокому обучению, Йошуа Бенджио и Джеффри Хинтоном, моими партнерами, с которыми мы много спорили, но всегда сходились в главном.
Я многим обязан всем этим встречам, месту, которое я со временем занял в сообществе безумных наследников кибернетики 1950-х гг., не устававшим задавать друг другу «детские» на вид, но глубокие по сути вопросы, вроде: «Как получается, что нейроны, очень простые объекты, соединяясь друг с другом, производят новое свойство, которое называется интеллектом?»
Теперь эта научная авантюра порождает новые важные вопросы. Отличается ли работа машины, которая распознает автомобиль посредством выделения таких элементов, как колеса, лобовое стекло и т. д. от работы нашей зрительной коры при идентификации той же самой машины? Что делать с наблюдаемым сходством между работой машины и мозгом человека или животного? Область исследования безгранична.
Посмотрим правде в глаза: машины, какими бы мощными и сложными они ни были, по-прежнему очень узкоспециализированы. Они учатся менее эффективно, чем люди и животные. По сей день у них нет ни здравого смысла, ни совести. По крайней мере, пока! Несомненно, они превосходят людей в определенных задачах: например, побеждают их в го и в шахматах; они переводят сотни языков, они узнают растения или насекомых, они обнаруживают опухоли на медицинских изображениях. Но человеческий мозг сохраняет значительное преимущество перед машинами в том, что он более универсален и гибок.
Смогут ли машины догнать нас, и если да – то как скоро?
Глава 1
Революция в искусственном интеллекте
Искусственный интеллект проникает во все секторы экономики, связи, здравоохранения и даже транспорта – благодаря созданию беспилотных автомобилей… Многие наблюдатели говорят уже не о технологической эволюции, а о революции.
Вездесущий искусственный интеллект
«Алекса, какая погода в Буэнос-Айресе?» Менее чем за секунду «умная» акустическая система записывает вопрос, передает его через домашний Wi-Fi на серверы Amazon, которые транскрибируют и интерпретируют его. Затем они получают информацию от метеорологической службы и возвращают ответ, который Алекса озвучивает приятным голосом: «В настоящее время в Буэнос-Айресе, Аргентина, температура воздуха 22 ℃. Пасмурно».
В офисе ИИ – прилежный помощник. Он работает быстро, и его не пугают повторяющиеся задачи. Он может просмотреть миллионы записей в базе денных в поисках цитаты и найти нужную за долю секунды благодаря возможностям современных компьютеров, скорость вычислений у которых сделалась почти невероятной.
Один из первых программируемых электронных компьютеров, ENIAC, построенный в 1945 г. в Университете Пенсильвании для расчета траектории полета снарядов, выполнял приблизительно 360 умножений в секунду для десятизначных цифр. Сейчас эта машина выглядит неповоротливым доисторическим чудищем. Процессоры нынешних персональных компьютеров в миллиард раз быстрее. Они имеют производительность в сотни гигафлопс1. Графические процессоры, используемые нашими компьютерами для визуализации, имеют производительность в несколько десятков терафлопс. Гигантские числа с впечатляющими названиями.
Их уже не остановить! Современные суперкомпьютеры объединяют десятки тысяч этих графических процессоров и достигают скорости в сотни тысяч терафлопс, производя колоссальные объемы вычислений для всевозможных симуляций: прогнозирования погоды, моделирования климата, расчета воздушного потока вокруг самолета или конформации белка, моделирования таких головокружительных событий, как первые мгновения существования Вселенной, смерть звезды, эволюция галактик, столкновения элементарных частиц или ядерный взрыв.
Такие симуляции включают численное решение дифференциальных уравнений или уравнений в частных производных – это задача, которую в прошлом математикам приходилось решать вручную. И все же – так ли умны эти вычислительные гиганты, как математики прошлых лет? Нет, конечно… во всяком случае, пока. Одна из задач развития искусственного интеллекта заключается в том, чтобы когда-нибудь научить машины использовать их огромную вычислительную мощность для решения интеллектуальных задач, сейчас подвластных только животным и людям.
Не стоит судить только по внешности. Программы искусственного интеллекта умеют хорошо учиться, но лишь до определенного момента. В 2017 г. робот Норико Араи – специалиста Токийского университета, изучавшего влияние ИТ на общество, успешно сдал вступительный экзамен в один из японских университетов. Программа, получившая название Todai (название университета), сдала эссе, экзамены по математике и английскому языку лучше 80 % абитуриентов. Но это не значит, что система была умной: на самом деле робот вообще не понимал, что он пишет! Успех программы скорее говорит о несовершенстве как вступительных испытаний в высшие успешные заведения Японии, так и машинного интеллекта. Мы были бы рады, если, в конечном счете, Todai провалится на более продуманно организованных экзаменах.
Искусственный интеллект в искусстве
Искусственный интеллект может быть хорошим художником, точнее – копиистом. Он мастерски создает произведения «в стиле». Он способен превратить любую фотографию в картину Моне, сделать из зимнего пейзажа весенний2 или заменить лошадь зеброй на видео. Остерегайтесь фальшивых видеороликов! Более того: в 2017 г. команда Ахмеда Эльгаммала из Университета Рутгерса (США) разработала систему, создающую картины, так похожие на оригинальные творения некоторых художников, что эксперты не могут отличить их от реальных картин тех же художников3.
Музыка – тоже не исключение. Многие исследователи используют методы искусственного интеллекта для синтеза звука и музыкальной композиции. Так 21 марта 2019 г. в честь дня рождения Иоганна Себастьяна Баха связанный с Google4 проект Magenta анонсировал новую систему, названную Google Doodle5, которая позволяет любому пользователю сочинять и аранжировать мелодию в стиле известного композитора. Вспомним также, что 4 февраля 2019 г. в Лондонском концертном зале Cadogan Hall 66 музыкантов английского оркестра «English Session Orchestra» публично исполнили новую версию Симфонии № 8 Шуберта, известную как «неоконченная». В тот вечер она стала законченной. После анализа двух существующих частей система искусственного интеллекта, разработанная компанией Huawei, создала две недостающие части музыкального произведения (впрочем, композитору Лукасу Кантору все-таки пришлось написать партитуру для оркестра).
Гуманоиды? Ничего подобного!
София – красивая девушка со стрижкой «под ноль», загадочной улыбкой и кристально-чистыми глазами, стала настоящей звездой 2017 г. «Вы смотрите слишком много голливудских фильмов!» – усмехается она в ответ журналисту, который выразил беспокойство о том, что однажды роботы захватят Землю. Ее появление вызвало такой общественный резонанс, что в том же году Саудовская Аравия предоставила ей гражданство. На самом деле это прекрасное существо было всего лишь марионеткой, для которой программисты написали набор стандартных ответов на самые разные вопросы. То, что ей говорят, обрабатывается системой сопоставления, которая выбирает из каталога возможных ответов наиболее подходящий к данному случаю.
Софья обманывает свою аудиторию. Она не умнее, чем Todai в Токио. Просто у нее более выраженная и живая мимика, и мы, люди, впечатленные этой анимацией, верим в наличие у человекообразного робота настоящего ума.
«Старый добрый» искусственный интеллект…
Мир искусственного интеллекта меняется. Его границы постоянно расширяются. Когда та или иная проблема решена, она покидает сферу искусственного интеллекта и постепенно переходит в классический набор инструментов.
Например, преобразование математических формул в инструкции, выполняемые компьютером, было делом искусственного интеллекта лишь в 1950-х гг., когда информатика только зарождалась как наука. Сегодня – это обычная функция компиляторов – программ, которые преобразуют программы, написанные инженерами, в наборы инструкций, которые непосредственно исполняются машиной. А компиляция как предмет преподается всем студентам-компьютерщикам.
Или возьмем задачу поиска маршрута. В 1960-е она явно принадлежала к области ИИ. Сегодня – это опять всего лишь стандартный инструмент, каких много. Существуют эффективные алгоритмы поиска кратчайшего пути в графе (сети взаимосвязанных узлов), такие как алгоритм Дейкстры 1959 г.6 или алгоритм A* («А звезда») Харта, Нильссона и Рафаэля 1969 г.7 С повсеместным распространением GPS эта задача далеко отошла от переднего края науки.
Ядром искусственного интеллекта в 1970-х и 1980-х гг. был набор методов автоматического рассуждения, основанных на логике и манипулировании символами. С некоторой издевкой англоязычные сторонники этого подхода называют подобные системы GOFAI (аббревиатурой от Good Old-Fashioned Artificial Intelligence, то есть «старый добрый искусственный интеллект»).
Перейдем теперь к экспертным системам, где машина вывода применяет правила к фактам и выводит из них новые факты. В 1975 г. MYCIN, например, должен был помочь врачам выявлять острые инфекции, такие как менингит, и назначать лечение антибиотиками. В нем было около 600 правил вроде: «ЕСЛИ инфекционный организм грамотрицательный, И организм палочковидный, И организм анаэробный, ТО этот организм является (с вероятностью 60 %) бактерией».
Для своего времени MYCIN была инновационной системой. Ее правила включали в том числе и факторы достоверности, которые система объединяла для получения оценки общей достоверности результата. Она был оборудована так называемым механизмом вывода с «обратной связью», посредством которого система выдвигала одну или несколько диагностических гипотез и расспрашивала практикующего врача о симптомах пациента. В процессе этого система уточняла гипотезы в зависимости от ответов и ставила диагноз, и, наконец, назначала антибиотик и дозировку (с той или иной степенью уверенности).
Чтобы создать такую систему, врач-эксперт должен был сидеть рядом с инженером и подробно рассказывать инженеру о своих рассуждениях. Как он диагностирует аппендицит или менингит? Какие при этом бывают симптомы? Так у MYCIN появлялись правила. Иначе говоря, если у пациента имеется определенный симптом, то существует такая-то вероятность аппендицита, такая-то вероятность непроходимости кишечника и такая-то вероятность почечной колики. Инженер вручную записывал эти правила в базу.
Надежность MYCIN (и ее преемников) была довольно неплохой. Но они так и не вышли за рамки эксперимента. Компьютеризация в медицине тогда только зарождалась, а процесс ввода данных был утомительным. В конце концов, все эти экспертные системы, основанные на логике и деревьях поиска, оказались слишком тяжелыми и сложными в разработке. Они вышли из употребления, но остаются эталоном и продолжают описываться в учебниках по искусственному интеллекту.
Тем не менее работа над логикой привела к появлению некоторых важных приложений: к символьному решению уравнений и исчислению интегралов в математике, а также к автоматической проверке программ. Например, с его помощью компания Airbus проверяет точность и надежность своего программного обеспечения для управления пассажирскими самолетами.
Часть исследовательского сообщества ИИ продолжает работать над этими темами. Другие специалисты, к которым принадлежу и я, посвятили себя совершенно другим подходам, основанным на машинном обучении.
… или же машинное обучение?
Рассуждения – это лишь малая часть человеческого разума. Мы часто думаем по аналогии, мы действуем интуитивно, опираясь на представления о мире, постепенно приобретаемые через опыт. Восприятие, интуиция, опыт, наборы усвоенных навыков – все это результат обучения.
В таких условиях, если мы хотим построить машину, интеллект которой будет приближен к человеческому, мы должны сделать ее тоже способной к обучению. Человеческий мозг состоит из 86 млрд взаимосвязанных нейронов (или нервных клеток), 16 млрд из которых находятся в коре головного мозга. В среднем каждый нейрон образует почти 2000 других соединений с другими нейронами – так называемых синапсов. Обучение происходит путем создания синапсов, удаления синапсов или изменения их эффективности. Поэтому, используя самый известный подход к машинному обучению, мы создаем искусственные нейронные сети, процесс обучения которых изменяет связи между нейронами. Приведем несколько общих принципов.
Машинное обучение включает первый этап обучения или тренировки, когда машина постепенно «учится» выполнять задачу, и второй этап – реализацию – когда машина закончила обучение.
Чтобы научить машину определять, содержит ли изображение автомобиль или самолет, мы должны начать с представления ей тысяч изображений, содержащих самолет или автомобиль. Каждый раз, когда на входе системе дается изображение, нейронная сеть (или «нейросеть»), состоящая из соединенных между собой искусственных нейронов (в действительности – это множество математических функций, вычисляемых компьютером), обрабатывает это изображение и выдает выходной ответ. Если ответ правильный, мы ничего не делаем и переходим к следующему изображению. Если ответ неверный, мы немного корректируем внутренние параметры машины, то есть силу связей между нейронами, чтобы ее выходной сигнал приближался к желаемому ответу. Со временем система настраивается и в конечном итоге сможет распознать любой объект, будь то изображение, которое она видела ранее, или любое другое. Это называется способностью к обобщению.
Сравнение этой способности нейросетей с соответствующими функциями мозга говорит о том, что машинам до нас еще далеко. Приведем некоторые цифры. В мозге 8,6·1010 нейронов, связанных между собой примерно 1,5·1014 синапсами. Каждый синапс может выполнять «вычисление» сотни раз в секунду. Данный синаптический расчет эквивалентен сотне цифровых операций на компьютере (умножение, сложение и т. д.) или 1,5·1018 операций в секунду для всего мозга, хотя в действительности лишь часть нейронов активна в любой момент времени. Для сравнения, карта GPU (графического процессора) может выполнять 1013 операций в секунду. Чтобы приблизиться к мощности мозга, потребуется 100 000 видеокарт. И тут есть одна загвоздка: человеческий мозг потребляет мощность, эквивалентную 25 Вт. Карта с одним GPU (графического процессора) потребляет в десять раз больше, т. е. 250 Вт. Электронные цепи в миллион раз менее эффективны, чем биологические.
Коктейль из старого и нового
Сегодняшние приложения, как правило, используют сочетание машинного обучения, GOFAI и классических вычислений. Рассмотрим машину, способную управлять автомобилем без водителя. Бортовая система визуального распознавания, обученная распознавать визуальные объекты и сигналы, присутствующие на дороге, использует определенную архитектуру нейронной сети, называемую «сверточной сетью». Но решение, которое принимает автопилот автомобиля, когда он «видит» разметку полосы движения, тротуар, припаркованный автомобиль или велосипед, зависит от традиционных систем планирования траектории движения, с правилами, написанными вручную, или же систем, основанных на правилах, которые относятся к области GOFAI.
Полностью автономные транспортные средства находятся все еще на этапе тестирования, но ряд коммерческих автомобилей, подобных «Tesla» 2015 г., уже имеют системы помощи водителю с использованием сверточных сетей. Регуляторы скорости, оснащенные системами технического зрения, берут транспортное средство под автономное управление на автостраде, удерживают его в пределах полосы движения или автоматически меняют ее после того, как водитель включает сигнал поворота, и при этом следят за наличием других автомобилей вокруг.
Тест Тьюринга
Мы будем писать о возможностях и приложении искусственного интеллекта на протяжении всей этой книги, но сейчас пришло время сделать шаг назад. Как определить общие черты всех этих интеллектуальных машин?
Я бы сказал, что искусственный интеллект – это способность машины выполнять задачи, обычно выполняемые животными и людьми, то есть воспринимать, рассуждать и действовать. Эти свойства неотделимы от способности учиться, как это наблюдается и у живых существ. Системы искусственного интеллекта – это просто очень сложные электронные схемы и компьютерные программы. Но возможности хранения информации, доступ к памяти, скорость вычислений и возможности обучения позволяют им «абстрагироваться» от конкретных примеров, содержащейся в огромных объемах данных.
Воспринимать, рассуждать и действовать. Алана Тьюринга – английского математика, оказавшего существенное влияние на развитие информатики и расшифровавшего Enigma – систему шифрования сообщений немецкой армии времен Второй мировой войны, можно назвать первым «пророком» обучающихся машин. Он уже проникся важностью обучения, когда написал: «Вместо того чтобы пытаться создать программу, имитирующую сознание взрослого, почему бы не попытаться создать такую, которая имитирует ум ребенка. Ведь если ум ребенка получает соответствующее воспитание, он становится умом взрослого человека»8.
Имя Алана Тьюринга связано, кроме того, со знаменитым тестом, суть которого сводится к диалогу между человеком и двумя собеседниками, которых он не видит: компьютером и еще одним человеком9. Если по истечении некоторого заданного времени человек не определяет, кто из двух «собеседников» является машиной, значит, машина успешно прошла тест. Но достижения в области ИИ сегодня таковы, что эксперты больше не считают тест Тьюринга эффективным. Способность вести осмысленный диалог является лишь одной из форм интеллекта, и здесь искусственный интеллект легко может обмануть даже опытного эксперта: для этого машине достаточно выдать себя за рассеянного и слегка аутичного подростка, плохо знающего английский язык, чтобы объяснить недостаточное понимание собеседника и ошибки в собственной речи.
Постоянное совершенствование
Я уверен, что глубокое обучение – это неотъемлемая часть будущего искусственного интеллекта. Однако на сегодняшний день эти системы не способны к логическим рассуждениям. В то же время подходы к ИИ, основанные на логике, в нынешнем их состоянии несовместимы с обучением. Наша важнейшая задача на ближайшие годы – сделать эти два подхода совместимыми друг с другом.
Таким образом, глубокое обучение пока остается очень мощным… и очень ограниченным инструментом. Речь не идет о том, чтобы заставить машину, обученную игре в шахматы, работать, и наоборот. Она выполняет действия, не имея ни малейшего представления о том, что делает, и не обладает здравым смыслом. Если бы системы искусственного интеллекта были помещены на шкалу интеллектуальных способностей от мыши до человека, то они оказались бы намного ближе к мыши, чем к человеку – и это несмотря на то, что производительность ИИ в точных и узкоспециализированных задачах является сверхчеловеческой.
Могущество алгоритма
Алгоритм – это последовательность инструкций. Вот и все. В этом нет ничего волшебного. Ничего непонятного. Приведем пример. Возьмем список цифр, которые я хочу расставить в порядке возрастания. Я пишу компьютерную программу, которая считывает первое число, сравнивает его со следующим и меняет их положение, если первое больше второго. Затем я сравниваю второе и третье и повторяю ту же операцию до последнего числа в списке. Затем я возвращаюсь к списку столько раз, сколько необходимо, пока при очередном проходе число произошедших замен не станет равным нулю.
Данный алгоритм сортировки списка чисел называется «сортировкой пузырьком». Я могу перевести его в серию точных инструкций на вымышленном языке программирования10.
Сортировка пузырьком (Таблица Т)
###для i в диапазоне от (значение T) –1 до 1
для j в диапазоне от 0 до i –1######
если T[j+1] < T[j]#########
обменять (T, j+1, j)############
Возьмите одно значение, сравните его с другим, прибавьте его к третьему, выполните такие-то и такие-то математические операции, циклы, проверьте, является ли условие истинным или ложным и т. д. Алгоритм – все равно, что кулинарный рецепт.
Мы обычно говорим об «алгоритме Фейсбука» или «алгоритме Гугла». Это неправильно. Скорее, алгоритмом (точнее, набором алгоритмов) является механизм, обеспечивающий работу поискового сайта, который создает список всех сайтов, содержащих поисковый текст. Таких сайтов может быть сотни, даже тысячи! Затем каждому из этих сайтов присваивается ряд баллов, полученных с помощью других алгоритмов, написанных вручную или выработанных самой машиной в процессе обучения. Эти баллы оценивают популярность сайта, его надежность, релевантность его содержания, наличие ответа, если поисковая фраза является вопросом, а также соответствие содержания интересам пользователя. Довольно сложное дело.
Однако, что касается обучаемых систем, то программный код, который заставляет их работать и вычисляет баллы, достаточно прост и мог бы уместиться в нескольких строках, если бы нас не интересовала скорость его выполнения (на самом деле требования к быстродействию приводят к его усложнению). Реальная сложность системы заключается не в коде, который вычисляет ее выходные данные, а в связях между нейронами сети, которые, в свою очередь, зависят от архитектуры этой сети и ее обучения.
Прежде чем мы с вами исследуем внутреннее устройство интеллектуальной машины, я хочу обрисовать историю искусственного интеллекта, начиная с середины XX века. Это – захватывающая история, в которой я принимаю участие уже довольно давно, и которая состоит из предвидений и дискуссий, скачков вперед и периодов застоя, где между собой столкнулись ученые, верящие в машинную логику, и те, кто, опираясь на нейробиологию и кибернетику, работают, как и я, над развитием способностей машин к обучению.
Глава 2
Краткая история искусственного интеллекта… и моего карьерного пути
Вечный поиск
Американский автор Памела Маккордак заметила как-то, что история искусственного интеллекта начинается с «извечного желания играть в Бога». Издавна человек пытается сконструировать устройства, создающие иллюзию жизни. В XX веке достижения науки дали надежду на механизацию мыслительного процесса. С появлением первых роботов и компьютеров в 1950-х гг. некоторые утописты предсказывали, что вычислительные машины быстро достигнут уровня человеческого интеллекта. Фантасты описали такие компьютеры во всех подробностях, но на сегодняшний день мы еще далеки от их воплощения в реальность.
Прогресс на этом долгом пути зависит от технических инноваций: более быстрые процессоры, более емкие устройства памяти. В 1977 г. у суперкомпьютера Cray-1 вычислительная мощность составляла 160 MFLOPS (мегафлопс). Он весил 5 т, потреблял 115 кВт·ч и стоил 8 млн долларов. На сегодняшний день игровая видеокарта стоимостью 300 евро, которую можно найти в компьютере у каждого второго увлеченного видеоиграми школьника, обеспечивает скорость 10 TFLOPS (терафлопс), или в 60 000 раз больше. Скоро любой смартфон сможет похвастаться такой мощностью.
История искусственного интеллекта в современном понимании берет начало с Дартмутского семинара, на котором впервые и прозвучал сам термин «искусственный интеллект». Семинар проходил летом 1956 г. в Дартмутском колледже недалеко от Ганновера, штат Нью-Гэмпшир, и был организован двумя исследователями – Марвином Мински и Джоном МакКарти. Марвин Мински был увлечен концепцией самообучающейся машины. В 1951 г. он в компании еще одного студента из Принстона построил одну из первых подобных машин, SNARC, небольшую электронную нейронную сеть с 40 «синапсами», способную к элементарному обучению. Джон МакКарти, в свою очередь, изобрел LISP, язык программирования, широко используемый в разработке ИИ.
Джону МакКарти также приписывают применение графов для создания шахматных программ. В работе семинара приняло участие около 20 исследователей, в том числе Клод Шеннон, инженер-электротехник и математик из Bell Labs (лаборатории гигантской телефонной компании AT&T в Нью-Джерси), Натан Рочестер из IBM и Рэй Соломонофф – основоположник концепции машинного обучения.
Участники бурно обсуждали области, движимые зарождающимися автоматизированными вычислениями и кибернетикой: изучение правил в естественных и искусственных системах, сложная обработка информации, искусственные нейронные сети, теория автоматов… На этом небольшом семинаре были разработаны и декларированы основные принципы и подходы к созданию искусственного интеллекта. Сам термин предложил все тот же Джон МакКарти.
Логика превыше всего
В настоящее время часть ученых представляет себе интеллектуальные машины, работающие только на основе логики и использующие для этого деревья поиска и экспертные системы. Инженер вводит в систему данные и правила их обработки, а система извлекает из них результаты вычислений или анализа. Более широкая цель ученых заключается в создании машины, способной заменить человека в сложных рассуждениях. Аллан Ньюэлл и Герберт Саймон из Университета Карнеги-Меллона в Питтсбурге первыми разработали программу Logic Theorist («Логический теоретик»), которая умела доказывать простые математические теоремы, исследуя дерево поиска, составленное из преобразований математических формул. Это было прекрасное время.
Однако через некоторое время тематика ИИ надолго погрузилась в спячку. В 1970 г. Агентство Министерства обороны США ARPA11 сократило бюджеты фундаментальных исследований в области ИИ. Три года спустя, после отчёта Лайтхилла, который дал крайне пессимистические прогнозы для будущих исследований в области искусственного интеллекта, Великобритания сделала то же самое. Нет денег – нет исследований…
Процесс сдвинулся с мертвой точки в начале 1980-х. В то время большие надежды подавали экспертные системы, и Япония запустила амбициозный проект по созданию «компьютера пятого поколения», который должен был интегрировать навыки логического мышления в саму его конструкцию. Он должен был уметь вести беседу, переводить тексты, интерпретировать изображения и, возможно, даже рассуждать, как человек. К сожалению, эта идея себя не оправдала. Разработка и коммерциализация экспертных систем, таких как MYCIN, о которой мы уже говорили, оказались намного сложнее, чем ожидалось.
Идея поставить рядом с врачами или инженерами когнитологов (специалистов по восприятию и познанию), пытавшихся записать ход их мыслей или рассуждений в процессе диагностики болезни или неисправности, не сработала. Это опять оказалось сложнее, дороже и вовсе не так надежно, как предполагалось вначале, и к тому же упрощало знания и опыт, накопленные специалистом, до примитивного набора правил.
С этим «классическим» интеллектом, который так трудно воспроизвести, связаны алгоритмы на графах, которые тоже имели в свое время оглушительный успех.
Игровой мир
В 1997 г. чемпиона мира по шахматам Гарри Каспарова пригласили в Нью-Йорк принять участие в матче из шести партий против Deep Blue, суперкомпьютера, созданного транснациональной корпорацией IBM, – монстра высотой почти 2 м и весом 1,4 т. В шестой, заключительной партии матча, которую предваряли три ничьи и по одной победе с каждой стороны, Гарри Каспаров сдался уже на двадцатом ходу. Он признался, что был поражен и побежден вычислительной мощью машины.
Давайте на минутку остановимся на устройстве Deep Blue. В компьютере было 30 процессоров, дополненных 480 схемами, специально разработанными для проверки позиций на шахматной доске. Обладая такой вычислительной мощностью, машина могла оценивать качество примерно 200 млн позиций на доске в секунду, используя классические алгоритмы деревьев поиска.
Несколько лет спустя, 14, 15 и 16 февраля 2011 г., после трех раундов игры компьютер IBM Watson одержал победу в американской игре-викторине – Jeopardy! Аватар компьютера, размещенный между двумя чемпионами, представлял собой земной шар, покрытый световыми лучами. Программа, написанная учеными-компьютерщиками, удаляла из вопроса ненужные слова (артикли, предлоги…), определяла значимые слова и искала эти слова в огромном количестве текстов, порядка 200 млн страниц, определяя там те предложения, в которых можно было найти ответ.
Эти тексты, а именно вся Википедия, энциклопедии, словари, тезаурусы, сообщения информационных агентств, литературные произведения, хранились в его оперативной памяти объемом 16 терабайт12 (жесткие диски были бы слишком медленными для таких задач). Сотни тысяч объектов и имен собственных сформировали большой список записей, каждая из которых относилась к определенной статье Википедии, веб-странице или тексту, где она появилась… Система Watson проверяла, существует ли документ, в котором присутствует часть ключевых терминов вопроса. После этой проверки проблема сводилась к нахождению правильного ответа в статье.
Например, если бы вопрос звучал так: «Где родился Барак Обама?», система Watson знала, что ответом будет название места. В ее базе данных был список всех документов, в которых упоминался Барак Обама. Поэтому где-нибудь обязательно нашлась бы статья со словами «Обама», «родился» и «Гавайи». Затем машине просто нужно было выбрать слово «Гавайи», соответствующее ответу. Watson, по сути, состояла из системы быстрого поиска информации в сочетании с хорошей индексацией данных. Но эта система не понимала смысла вопроса. Она вела себя как школьник, выполняющий домашнее задание с открытой книгой (или открытой Википедией!). На заданный вопрос она может найти правильный ответ в учебнике и переписать его, ничего не понимая в том, что пишет.
В 2016 г. появляется еще одно достижение. В Сеуле южнокорейский чемпион по игре в го был побежден своим компьютерным противником AlphaGo, внушительной системой, разработанной DeepMind, дочерней компанией Google. Восемнадцатикратный чемпион мира Ли Седоль проиграл машине четыре игры из пяти. В отличие от Deep Blue, AlphaGo была «обучена». Она тренировалась, играя против самой себя, сочетая при этом несколько хорошо известных методов: сверточные сети, усиленное обучение и метод Монте-Карло для поиска в дереве, метод «рандомизированных деревьев поиска». Впрочем, не будем забегать вперед.
Нейробиология и перцептрон
В 1950-х гг., когда «великие магистры» классического искусственного интеллекта, основанного на логике и графах, раздвинули границы его применения, пионеры машинного обучения сформулировали альтернативные идеи. Они были уверены, что логики недостаточно, чтобы компьютерные системы были способны решать сложные задачи. Необходимо было приблизиться к функционированию мозга и тем самым сделать системы способными программировать самих себя, опираясь на механизмы обучения мозга. Это направление основано на так называемом «глубоком обучении» (deep learning) и искусственных нейронных сетях, – именно в этой области я и работаю. На подобных механизмах основана работа большинства продвинутых современных приложений, включая автономные автомобили.
Происхождение метода относится к середине прошлого века. Еще в 1950-х гг. пионеры искусственного интеллекта поддерживали теории, разработанные Дональдом Хеббом, канадским психологом и нейробиологом, который, в частности, размышлял о роли нейронных связей в обучении. Вместо того чтобы воспроизводить логические цепочки человеческих рассуждений, почему бы не исследовать их носитель, этот потрясающий биологический процессор, которым является мозг?
Таким образом, исследователи вычислений сконцентрировались на нейронном способе обработки информации в отличие от ранее применявшейся логической, или «последовательной», обработки. Они нацелились на моделирование биологических нейронных цепей. Машинное обучение, на которое были направлены их усилия, основывалось на оригинальной архитектуре, сети математических функций, которые по аналогии называют «искусственными нейронами».
Они улавливают входной сигнал, и нейроны в сети обрабатывают его таким образом, что на выходе этот сигнал идентифицируется. Сложность операции, например, распознавание образов, поддерживается комбинированным взаимодействием очень простых элементов, а именно искусственных нейронов. Так и в нашем мозге взаимодействие основных функциональных единиц – нейронов – порождает сложные мысли.
Возникновение описываемой концепции датируется 1957 г.: в том же году в Корнельском университете психолог Фрэнк Розенблатт, вдохновленный когнитивной теорией Дональда Хебба, построил перцептрон – первую обучающуюся машину. Мы рассмотрим ее в следующей главе, так как она являются эталонной моделью машинного обучения. После обучения перцептрон способен, например, распознавать образы (геометрические фигуры, буквы и т. д.).
В 1970-х гг. два американца, Ричард Дуда, в то время профессор электротехники в Университете Сан-Хосе (Калифорния), и Питер Харт – ученый-компьютерщик из SRI (Стэнфордского исследовательского института) в Менло-Парке (Калифорния), обсуждали все эти так называемые методы «распознавания статистических форм13», примером которых является перцептрон. С самого начала их руководство стало мировым эталоном, Библией распознавания образов для всех студентов… и для меня тоже.
Но перцептрон далеко не всесилен. Система, состоящая из одного слоя искусственных нейронов, имеет «врожденные» ограничения. Исследователи пытались увеличить его эффективность, вводя несколько слоев нейронов вместо одного. Но без алгоритма обучения слоев, который к тому моменту еще не был известен, такие машины все еще оставались очень малоэффективными.
Эпоха застоя
Перейдем к кому времени, когда в 1969 г. Сеймур Паперт и Марвин Мински – тот самый, который в 1950-х гг. увлекался искусственными нейронными сетями, прежде чем отречься от них, опубликовали книгу «Перцептроны: Введение в вычислительную геометрию»14. Они математически доказали пределы возможностей перцептрона, и некоторые из доказанных ими ограничений по сути поставили крест на использовании этой и подобных машин.
Казалось, развитие уперлось в непреодолимую стену. Эти два профессора Массачусетского технологического института пользовались большим авторитетом, так что их работа наделала много шума. Агентства, финансирующие исследования, прекратили поддержку исследовательских работ в этой области. Как и исследования в GOFAI, исследования нейронных сетей пережили серьезный застой.
В этот период большинство ученых перестали говорить о создании умных машин, способных к обучению. Они предпочитали ограничивать свои амбиции более приземленными проектами. Используя методы, унаследованные от нейронных сетей, они создали, например, «адаптивную фильтрацию» – процесс, лежащий в основе многих коммуникационных технологий в современном мире. Прежде физические свойства проводных линий связи сильно ограничивали передачу высокочастотных сигналов, приводя к их существенным искажениям уже на расстоянии нескольких километров. Теперь сигнал восстанавливается с помощью адаптивного фильтра. Используемый алгоритм называется Luckyʼs Algorithm в честь его изобретателя Боба Лаки, который в конце 1980-х руководил отделом Bell Labs, где тогда работало около 300 человек. в том числе и я.
Без адаптивной фильтрации у нас не было бы телефона с громкой связью, который позволяет вам говорить в микрофон без самовозбуждения, происходящего от усиления микрофоном звука громкоговорителя (когда это случается, мы слышим громкий вой или свист). В эхокомпенсаторах, кстати, используются алгоритмы, очень похожие на алгоритм перцептрона.
Не появился бы без этой технологии и модем15. Это устройство позволяет одному компьютеру коммуницировать с другим компьютером по телефонной линии или иной линии связи.
Преданные последователи
Тем не менее, и во времена застоя в 1970-х и 1980-х гг. некоторые ученые продолжали работать над нейронными сетями, хотя научное сообщество считало их сумасшедшими, чуть ли не фанатиками. Я имею в виду Теуво Кохонена, финна, который написал об «ассоциативных воспоминаниях» – теме, близкой к нейронным сетям. Я также говорю и о группе японцев – в Японии существует изолированная инженерная экосистема, отличная от западной, – и среди них о математике Сун-Ити Амари и исследователе искусственного интеллекта Кунихико Фукусима. Последний работал над машиной, которую он назвал «когнитроном», по аналогии с термином «перцептрон». Он создал две его версии: «когнитрон» 1970-х и «неокогнитрон» 1980-х. Как и Розенблатт в свое время, Фукусима был вдохновлен достижениями нейробиологии, особенно открытиями американца Дэвида Хьюбела и шведа Торстен Н. Визеля.
Эти два нейробиолога получили Нобелевскую премию по физиологии в 1981 г. за свою работу над зрительной системой кошек. Они обнаружили, что зрение возникает в результате прохождения визуального сигнала через несколько слоев нейронов, от сетчатки до первичной зрительной коры, затем в другие области зрительной коры, и, наконец – в нижневисочную кору. Нейроны в каждом из этих слоев выполняют особые функции. В первичной зрительной коре каждый нейрон связан только с небольшой областью поля зрения, а именно со своим рецепторным полем. Такие нейроны называются «простыми». В следующем слое другие нейроны включают активацию предыдущего слоя, что помогает поддерживать представление изображения, если объект немного перемещается в поле зрения. Такие нейроны называются «сложными».
Таким образом, Фукусима был вдохновлен идеей первого слоя простых нейронов, которые обнаруживают простые узоры в небольших рецепторных полях, выдающих изображение, и сложных нейронов в следующем слое. Всего в неокогнитроне было пять слоев: простые нейроны – сложные нейроны – простые нейроны – сложные нейроны, и затем «классификационный слой», подобный перцептрону. Он, очевидно, использовал для первых четырех уровней некоторый алгоритм обучения, но последний был «неконтролируемым», то есть он не принимал во внимание конечную задачу. Такие слои обучались «вслепую». Только последний слой обучался под наблюдением (как и перцептрон). У Фукусимы не было алгоритма обучения, который регулировал бы параметры всех слоев его неокогнитрона. Однако его сеть позволяла распознавать довольно простые формы, например, символы чисел.
В начале 1980-х гг. идеи Фукусимы поддерживали и другие ученые. Некоторые североамериканские исследовательские группы также работали в этой области: психологи Джей Макклелланд и Дэвид Румелхарт, биофизики Джон Хопфилд и Терри Сейновски, и ученые-компьютерщики, в частности Джеффри Хинтон – тот самый, с которым я впоследствии разделю Премию Тьюринга, присужденную в 2019 г.
Мой выход на сцену
Я начал интересоваться всеми этими темами в 1970-х гг. Возможно, любопытство к ним зародилось во мне еще, когда я наблюдал за моим отцом, авиационным инженером и мастером на все руки, который в свободное время занимался электроникой. Он строил модели самолетов с дистанционным управлением. Я помню, как он сделал свой первый пульт для управления небольшой машиной и лодкой во время забастовок в мае 1968 г., когда он проводил много времени дома. Я не единственный в семье, кому он передал свою страсть к любимому делу. Мой брат, который на шесть лет младше меня, тоже сделался ученым-компьютерщиком. После академической карьеры он стал исследователем в компании Google.
С самого раннего детства меня манили новые технологии, компьютеризация, покорение космоса… Еще я мечтал стать палеонтологом, потому что меня очень интриговал человеческий интеллект и его эволюция. Даже сегодня я по-прежнему верю, что работа нашего мозга остается самой загадочной вещью в мире. Я помню, как в Париже на большом экране я вместе с моими родителями, а также дядей и тетей – «фанатами» научной фантастики, смотрел фильм «2001: Космическая одиссея». Мне было тогда восемь лет. Фильм затронул все, что я любил: космические путешествия, будущее человечества и восстание суперкомпьютера «Хэл», который готов был убивать ради собственного выживания и успеха миссии. Уже тогда меня волновал вопрос о том, как воспроизвести человеческий интеллект в машине.
Неудивительно, что после школы я захотел воплотить эти мечты в жизнь. В 1978 г. я поступил в Парижскую высшую школу электронной инженерии (École Supérieure d'Ingénieurs en Électrotechnique et Électronique, ESIEE) в которую можно подавать заявление сразу после получения степени бакалавра, без затрат времени на дополнительную подготовку. (Откровенно говоря, длинная учеба – не единственный способ добиться успеха в науке. Я могу это подтвердить на своем примере.) А поскольку учеба в ESIEE предоставляет студенту некоторую свободу, я сумел воспользоваться этим.
Плодотворное чтение
Меня воодушевили новости о дебатах на конференции Cerisy о врожденном и приобретенном знании16, прочитанные мною в 1980 г. Лингвист Ноам Хомски подтвердил, что в мозге существуют исходно заложенные структуры, позволяющие человеку научиться языку. Психолог Жан Пиаже защищал идею о том, что любое обучение задействует определенные, уже существующие структуры мозга, и что овладение языком осуществляется поэтапно по мере того, как формируется интеллект. Таким образом, интеллект будет результатом обучения, основанного на обмене информацией с внешним миром. Эта идея мне понравилась, и мне стало интересно, как ее можно применить в отношении машины. В этой дискуссии принимали участие именитые ученые, в том числе Сеймур Паперт. В ней он восхвалял перцептрон, который описывал как простую машину, способную обучаться сложным задачам.
Так я и узнал о существовании обучающейся машины. Эта тема меня просто очаровала! Поскольку я не учился по средам после обеда, я начал рыскать по полкам библиотеки Национального института компьютерных и автоматических исследований в Роккенкуре (National Institute for Research in Digital Science and Technology, сокращенно «Inria»). У этого учреждения самый богатый библиотечный фонд ИТ-литературы в Иль-де-Франс. Я вдруг понял, что на Западе больше никто не работает с нейронными сетями, и с еще большим удивлением обнаружил, что книга, положившая конец исследованиям перцептрона, принадлежит перу того же самого Сеймура Паперта!
Теория систем, которую в 1950-х гг. мы называли кибернетикой, и которая изучает естественные (биологические) и искусственные системы – еще одна моя страсть. Возьмем, например, систему регулирования температуры тела: организм человека поддерживает температуру 37 ℃ благодаря наличию своеобразного «термостата», который корректирует разницу между своей температурой и температурой снаружи.
Меня увлекла идея самоорганизации систем. Каким образом относительно простые молекулы или объекты могут спонтанно организовываться в сложные структуры? Как может появиться интеллект из большого набора простых взаимодействующих нейронов?
Я изучал математические работы по теории алгоритмической сложности Колмогорова, Соломонова и Чайтина. Книга Дуды и Харта17, о которой я уже упоминал, стала для меня настольной. Я читал журнал «Биологическая кибернетика» («Biological Cybernetics. Advances in Computational Neuroscience and in Control and Information Theory for Biological Systems», издательство Springer), посвященный математическим моделям работы мозга или живых систем.
Все эти вопросы, оставленные без ответа в период застоя искусственного интеллекта, не выходили у меня из головы, и у меня постепенно стало формироваться убеждение: если мы хотим создавать интеллектуальные машины, недостаточно, чтобы они работали только логически, они должны быть способными учиться, совершенствоваться на собственном опыте.
Читая все эти труды, я понимал, что часть научного сообщества разделяет мое виденье проблемы. Вскоре я познакомился с работами Фукусимы и задумался о способах повышения эффективности нейронных сетей неокогнитрона. К счастью, ESIEE предоставлял студентам компьютеры, которые для того времени были очень мощными. Мы писали программы с Филиппе Метсу, школьным другом, любителем искусственного интеллекта, как и я, хотя его больше интересовала психология обучения детей. Преподаватели математики согласились заниматься с нами дополнительно. Вместе мы пытались моделировать нейронные сети. Но эксперименты отнимали очень много сил: компьютеры не тянули наши эксперименты, а написание программ было сплошной головной болью.
На четвертый год обучения в ESIEE, одержимый этим исследованием, я догадался о не совсем математически обоснованном правиле обучения многослойных нейронных сетей. Я представил алгоритм, который будет распространять сигналы в обратном направлении по сети, начиная с выходного слоя, чтобы обучать сеть от начала до конца. Я назвал этот алгоритм HLM (от Hierarchical Learning Machine)18.
Я очень гордился своей идеей… HLM является предшественником алгоритма «обратного распространения градиента», который сегодня повсеместно используется для обучения систем глубокого обучения. Вместо распространения обратных градиентов в сети, как это происходит сегодня, HLM распространял желаемые состояния для каждого нейрона. Это позволяло использовать бинарные нейроны, что являлось преимуществом, учитывая медлительность компьютеров того времени для выполнения умножения. HLM был первым шагом в обучении многоуровневых сетей.
Коннекционистские модели обучения
Летом 1983 г. я получил высшее образование по специальности «инженер». Тогда же я наткнулся на книгу, в которой рассказывалось о работе небольшой группы французов, интересующихся самоорганизующимися системами и сетями автоматов. Они экспериментировали в бывшем помещении Политехнической школы на холме Святой Женевьевы в Париже. Эта лаборатория сетевой динамики (Laboratoire de dynamique de réseau, или LDR) была независимой, хотя ее члены занимали должности в разных высших учебных заведениях. У них было мало денег, не было планового бюджета, а их компьютер нуждался в ремонте. Это означало, что исследования машинного обучения во Франции висят на волоске! Я решил примкнуть к ним. Я мог реально помочь им, потому что эти ученые не занимались изучением старых публикаций по нейронным сетям, как это делал я.
Я решил объяснить им, что меня интересует эта тема и что в своей инженерной школе я занимаюсь схожей тематикой. Я работал в их группе, продолжая учебу в аспирантуре в Университете Пьера и Марии Кюри. В 1984 г. мне нужно было подать заявление на защиту докторской диссертации. Я занимал должность младшего научного сотрудника ESIEE по гранту, но мне нужно было найти себе научного руководителя. Много времени я работал с Франсуазой Фогельман-Суле (сейчас Сули-Фогельман), которая в то время преподавала компьютерные науки в Университете Париж-V и, по логике вещей, именно она должна была бы курировать мою диссертацию, но у нее не было на это полномочий, поскольку она еще не прошла государственную сертификацию на право руководить аспирантами (необходимую во многих европейских странах).
Поэтому я обратился к единственному члену лаборатории, который мог курировать диссертацию по информатике, – Морису Милграму, профессору информатики и инженерии Технологического университета Компьена. Он согласился, но дал понять, что не сможет мне сильно помочь, потому что ничего не знает о нейронных сетях, но я и так был безмерно благодарен ему за эту помощь. Поэтому я посвятил свое время одновременно ESIEE (и ее мощным компьютерам) и LDR (и ее интеллектуальной среде). Я попал на ранее неизвестную мне территорию, и это было интересно.
За рубежом исследования, близкие к моим, набирали обороты. Летом 1984 г. я сопровождал Франсуазу Фогельман в Калифорнию, где прошел месячную стажировку в известной многим лаборатории Xerox PARC.
В то время, я помню, в мире было два человека, с которыми я мечтал встретиться: Терри Сейновски – биофизик и нейробиолог из Университета Джона Хопкинса в Балтиморе, и Джеффри Хинтон из Университета Карнеги-Меллон в Питтсбурге – тот самый, кто поделит с Йошуа Бенджио и мной Премию Тьюринга в 2019 г. В 1983 г. Хинтон и Сейновски опубликовали статью о машинах Больцмана19, которая содержит процедуру обучения сетей со «скрытыми нейронами», то есть нейронами в промежуточных слоях между входом и выходом. Я увлекся этой статьей именно потому, что в ней говорилось об обучении многослойных нейронных сетей. «Главный» вопрос в моей работе! Эти люди сыграли важную роль в моей жизни!
Лез-Уш
Моя профессиональная жизнь изменилась в феврале 1985 г. во время конференции в Лез-Уш, в Альпах. Там я встретился с лучшими представителями мировой науки, интересующимися нейронными сетями: физиками, инженерами, математиками, нейробиологами, психологами и, в частности, членами новой развивающейся исследовательской группы в области нейронных сетей, которая сформировалась внутри легендарной лаборатории Bell Labs. Через три года я попал в эту группу благодаря знакомствам, которые приобрел в Лез-Уш.
Встреча была организована теми французскими исследователями из LDR, с которыми я уже работал: Франсуазой, ее тогдашним мужем Жераром Вайсбухом, профессором физики ENS, и Эли Биненштоком – нейробиологом-теоретиком, работавшим в то время в CNRS. Конференция собрала вместе физиков, интересующихся «спиновыми стеклами», а также ведущих физиков и нейробиологов.
Спин – это свойство элементарных частиц и атомов, которое можно описать по аналогии с маленькими магнитами, с обращенными вверх или вниз полюсами. Эти два значения спина можно сравнить с состояниями искусственного нейрона: он либо активен, либо неактивен. Он подчиняется тем же уравнениям. Спиновые стекла представляют собой своего рода кристалл, в котором примесные атомы имеют магнитный момент. Каждый спин взаимодействует с другими спинами на основе связанных весовых показателей.
Если весовой коэффициент положительный, они, как правило, выстраиваются в одном направлении. Если вес отрицательный, они противопоставляются. Мы связываем значения +1 со спином «вверх», а –1 со спином «вниз». Каждый примесный атом принимает ориентацию, которая является функцией взвешенной суммы ориентаций соседних примесных атомов. Другими словами, функция, определяющая, будет ли спин идти вверх или вниз, аналогична функции, которая делает искусственный нейрон активным или неактивным.
После основополагающей статьи Джона Хопфилда20, в которой были описаны аналогии между спиновыми стеклами и искусственными нейронными сетями, многие физики начали интересоваться и самими сетями, и их обучением – темами, по-прежнему не приветствовавшимися их коллегами – инженерами и компьютерщиками.
В Лез-Уш я был одним из самых молодых исследователей, и мне пришлось общаться на английском языке о многоуровневых сетях и алгоритме HLM, моем предшественнике алгоритмов обратного распространения. Я только начал подготовку своей диссертации, и нервничал, выступая перед столь именитой аудиторией.
Меня особенно привлекли две личности: Ларри Джекел, глава отдела Bell Labs (позже мне самому довелось работать в этом отделе) и Джон Денкер – настоящий ковбой из Аризоны: джинсовый костюм, большие бакенбарды, ковбойские сапоги… Этот не очень похожий на ученого человек, только что защитивший диссертацию, был невероятно уверен в себе! Когда на него находило вдохновение, он мог быть чертовски убедителен и изобретательно отстаивал свою точку зрения, причем без агрессии и часто вполне обоснованно. Франсуаза Фогельман говорила мне: «У ребят из Bell Labs огромное преимущество. Когда вы только хотите сделать что-то новое, то выясняется, что это либо уже было сделано в Bell Labs десять лет назад, либо это просто не работает». Черт возьми!
Так вот, я выступал с речью о многослойных сетях, в которых (уже!) никто ничего не понимал. В конце Джон Денкер поднял руку. Я напрягся. Но он просто сказал: «А это имеет место быть! Благодаря тебе я многое понял…» Он сказал это прямо перед всей этой публикой! Он и его руководитель Ларри Джекел меня не забыли. Год спустя они пригласили меня прочитать лекцию в их лаборатории. Еще двумя годами позже я появился на собеседовании, а через три года я стал членом их команды!
В Лез-Уш я встретил и Терри Сейновски, соавтора статьи Джеффри Хинтона о машинах Больцмана. Он появился там уже после моего выступления, но я поймал его во второй половине дня и объяснил свою работу над многоуровневыми сетями. Я подозревал, что ему будет это интересно. Он терпеливо слушал, но ничего не сказал о том, что он и Джеффри Хинтон уже работают над обратным распространением. Джеффри удалось заставить этот алгоритм работать, но еще не все об этом знали – и я тоже.
Самые прекрасные идеи заразительны. Принцип обратного распространения Джеффри позаимствовал у Дэйва Рамелхарта из Калифорнийского университета в Сан-Диего, у которого он несколькими годами ранее проходил стажировку после защиты диссертации. К 1982 г. Дэйв смог разработать и запрограммировать этот метод, но не смог заставить его работать. Он пришел к Джеффри, который ответил: «Он не будет работать из-за проблемы локальных минимумов»21.
В итоге Дэйв сдался. Но во время работы над машиной Больцмана Джеффри понял, что работать с локальными минимумами не так сложно, как он думал. Поэтому он реализовал метод Дэйва Рамельхарта на языке Lisp на своей Lisp-машине от компании Symbolics. И метод заработал!
Итак, во время нашего обсуждения в Лез-Уш Терри понял, что мой алгоритм HLM очень похож на обратное распространение. Он сам уже работал над применением метода обратного распространения ошибки, который через несколько месяцев стал весьма популярным. Мне он об этом не сказал. Но вернувшись в США, он признался Джеффри: «Во Франции есть ребенок, который работает над тем же, что и мы!»
Весной того же года я написал первую самостоятельную статью (признаться, несколько выпадавшую из канонов научной литературы) о своей разработке. Мне удалось обнародовать ее на конгрессе по когнитивным исследованиям в июне 1985 г., первом конгрессе во Франции, объединяющем ИИ, нейронные сети, когнитивные науки и нейробиологию. Джеффри Хинтон был главным спикером. Он прочитал вводную лекцию, в которой рассказал о машинах Больцмана. В конце концов, вокруг него собралась группа из 50 человек. Я хотел подойти к нему, но не было возможности. И тут я увидел, как он поворачивается к Дэниэлу Хэндлеру, одному из организаторов конференции, и услышал, как он спросил: «Вы знаете кого-нибудь по имени Ян Лекун?» Дэниэл оглянулся вокруг. Я закричал: «Я здесь!» Дело было в том, что Джеффри увидел мою статью и попытался ее перевести, хотя французским владел слабо. Тем не менее, он сумел понять, что я – именно тот «ребенок», о котором сказал ему Терри.
Мы с Джеффри встретились на следующий день за обедом. Он объяснил мне принцип обратного распространения. Хотя он знал, что я и так его понимаю! Он сказал мне, что пишет статью и процитирует в ней мою. Я чуть не впал в прострацию. Мы быстро поняли, что наши интересы, наши подходы, наше мышление схожи. Джеффри пригласил меня в летнюю школу коннекционистских моделей в Карнеги-Меллон в следующем году, и я, конечно же, согласился. (Исследователи когнитивных наук предпочитали для обозначения нейронных сетей использовать термин «коннекционистские модели».)
Использование обратного распространения градиента22
Изобретения не возникают из ничего. Они являются результатом проб, ошибок, разочарований и дискуссий, и зачастую для их реализации требуется много времени. Таким образом, «рубежи» искусственного интеллекта расширялись благодаря целой серии открытий. Популяризация градиентного обратного распространения в 1980-х гг. позволила обучать многослойные нейронные сети, состоящие из тысяч нейронов, организованных по слоям, с сотнями тысяч соединений. Каждый слой нейронов объединяет, обрабатывает и преобразует информацию из предыдущего слоя и передает результат следующему слою, пока в конечном слое не сформируется ответ. Такая многоуровневая архитектура обеспечивает потрясающую пропускную способность23 этих многоуровневых сетей. Позже мы поговорим о глубоком обучении.
Но в 1985 г. идея, что для многоуровневой сети может появиться процедура обучения, все еще с трудом воспринималась. Физиков интересовала аналогия между полносвязными нейронными сетями («сетями Хопфилда») и спиновыми стеклами. Они видели в них модель ассоциативной памяти в мозге. «Мадленка» Пруста24 по форме, запаху и вкусу относится к образам и связанным с ними чувствам, то есть к воспоминаниям. Многоуровневые сети работают скорее в режиме восприятия: с помощью каких механизмов можно идентифицировать мадлен только по его форме? Физики не сразу это поняли.
Все изменилось в 1986 г. Терри Сейновски опубликовал технический отчет о NetTalk, многоуровневой сети, основанной на обратном распространении информации, которая «училась» читать вслух. Система транскрибирует английский текст в последовательность фонем (элементарных речевых звуков), передаваемых на синтезатор речи. Легко преобразовать текст в речь на французском языке, но чрезвычайно сложно на английском. В начале обучения система заикалась, как ребенок, который учится говорить, однако со временем ее произношение улучшилось. Терри Сейновски приехал прочитать лекцию в Высшей школе перед обомлевшей аудиторией. Внезапно все захотели со мной пообщаться. Многослойные сети вдруг стали интересными, и я был знатоком в этой области!
Годом раньше я обнаружил, что обратное распространение может быть сформулировано математически с помощью Лагранжева формализма (названного в честь франко-итальянского математика XVIII в. и астронома Жозефа-Луи Лагранжа). Это вид формализма, на котором базировалась классическая механика, квантовая механика и теория «оптимального управления». Я понимал, что метод, аналогичный алгоритму обратного распространения ошибки, уже был предложен теоретиками оптимального управления в начале 1960-х гг. Он известен как алгоритм Келли-Брайсона или «метод помощника», подробно описанный в справочнике Артура Брайсона и Ю-Чи Хо «Applied Optimal Control, Arthur E. Bryson, Yu-Chi Ho, 1975», опубликованном в 1969 г.
Эти исследователи были далеки от идеи об использовании данного метода для машинного обучения или нейронных сетей. Их интересовали планирование и системы управления. Например, как управлять траекторией ракеты, чтобы она попала на точную орбиту и успешно встретилась с другим космическим кораблем, израсходовав при этом как можно меньше топлива. Однако с математической точки зрения эта проблема очень похожа на вопрос о настройке синаптических весов многослойной нейронной сети, чтобы результат последнего слоя стал желаемым.
Позже я узнал, что несколько исследователей очень близко подошли к открытию обратного распространения ошибки. В 1960-х и 1970-х гг. некоторые из них открыли «автоматическое дифференцирование в обратном режиме» – основной блок для расчета градиентов при обратном распространении. Но они использовали его для облегчения численного решения дифференциальных уравнений или оптимизации функций. Об обучении в многослойных сетях тогда никто и не думал. Никто – кроме, возможно, Пола Вербоса, студента из Гарварда, который прошел курсы Ю-Чи Хо и который в своей диссертации 1974 г. предложил использовать для обучения то, что он называл «упорядоченными производными». Много позже он смог испытать свой метод на практике.
Итак, в июле 1986 г. я провел две недели в Питтсбурге в Летней школе коннекционистских моделей в Университете Карнеги-Меллона, куда меня пригласил Джеффри Хинтон. Я сомневался, нужно ли мне лететь в Соединенные Штаты: моя жена была беременна нашим первым ребенком, а роды ожидались через четыре недели после моего возвращения…
Я помню эту поездку и соотношу ее с основанием сообщества исследователей нейронных сетей. Я подружился с Джеффри и Майклом Джорданом, который только защитил диссертацию. Почему только его назвали Майклом – он был франкофилом и говорил по-французски лучше, чем я по-английски! На пикниках в Летней школе он исполнял песни Жоржа Брассенса, аккомпанируя себе на гитаре.

Рис. 2.1. Участники Летней школы по коннекционистским моделям 1986 г. в Университете Карнеги-Меллона (Питтсбург, США)
На фото мы видим Станисласа Дехаена (SD), Майкла Джордана (MJ), Джея Макклелланда (JMcC), Джеффри Хинтона (GH), Терри Сейновски (TS) и меня (YLC). Многие участники встречи тоже станут видными фигурами в области машинного обучения, искусственного интеллекта и когнитивных наук: Энди Барто, Дэйв Турецки, Джерри Тезауро, Джордан Поллак, Джим Хендлер, Майкл. Мозер, Ричард Дурбин и ряд других (© Организаторы летней школы).
Хотя я был всего лишь аспирантом, Джеффри предложил мне выступить с речью, объясняя это тем, что именно я создал алгоритм обратного распространения. За ужином, запив его хорошей бутылкой бордо, которую я привез с собой в багаже, он сказал мне, что через год планирует уйти из университета Карнеги-Меллон25 и перейти в Университет Торонто. «Вы хотите присоединиться ко мне в качестве младшего исследователя?» Конечно! У меня оставался лишь год на то, чтобы защитить докторскую.
Революция продолжалась. Публикация статьи Рамельхарта-Хинтона-Уильямса об обратном распространении произвела эффект взорвавшейся бомбы26. Новости об успехе NetTalk распространялись как лесной пожар. Сообщество исследователей нейронных сетей быстро пополнялось все новыми участниками.
Мое программное обеспечение для моделирования нейронных сетей и обучения методом обратного распространения ошибки – все еще называемое HLM – представляло интерес для некоторых французских производителей. В частности, программу купила компания Thomson-CSF (теперь Thales).
Я получил докторскую степень в июне 1987 г. Диссертацию в Университете Пьера и Марии Кюри (теперь переименованном в Университет Сорбонны) я защищал в буквальном смысле на костылях, потому что в апреле сломал лодыжку, экспериментируя с новым методом передвижения по песку при помощи паруса! Джеффри Хинтон входил в состав жюри вместе с Морисом Милграмом, Франсуазой Фогельман-Суле, Жаком Питра (один из столпов исследований в области символического ИИ во Франции) и Бернаром Анжениолем (директором исследовательской группы Thomson-CSF). Через месяц я присоединился к Джеффри в Торонто вместе с женой и нашим ребенком, которому тогда исполнился всего лишь год. Моя жена согласилась отодвинуть на второй план свою карьеру фармацевта и заниматься сыном во время нашего пребывания в США, которое, как мы считали, не должно было продлиться более года…
Я взял с собой одного из своих друзей, Леона Ботту, студента, которого я встретил в начале 1987 г., когда он учился на последнем курсе Политехнической школы. Он проявил интерес к нейронным сетям и решил пройти со мной выпускную стажировку, не сообщив администрации школы, что я на тот момент еще не защитил докторскую. У меня уже были планы написать новое программное обеспечение для создания и обучения нейронных сетей. Это должен был быть симулятор, управляемый интерпретатором Lisp (особенно гибкого и интерактивного языка программирования). Я попросил Леона создать такой интерпретатор27, что он и сделал буквально за три недели. Нашему сотрудничеству способствовал тот факт, что мы работали на одинаковых компьютерах: Amiga от компании Commodore. В отличие от ПК и Mac того времени, компьютеры Amiga обладали свойствами, аналогичными свойствам рабочих станций Unix, широко распространенных в ИТ-отделах по обе стороны Атлантики: они программируются на языке C с помощью компилятора gcc и текстового редактора Emacs. Я писал диссертацию на своем Amiga, используя компьютерную систему обработки текстов LaTeX. Мы обменивались программами удаленно, подключая к нашим компьютерам сеть Minitel.
Мы назвали новую программу SN (от термина «Neuronal Simulator», т. е. «нейронный симулятор»). Ее написание положило начало сотрудничеству и дружбе, продлившимся долгие годы: и сегодня офис Леона находится рядом с моим, в помещении FAIR28 в Нью-Йорке.
В Торонто я закончил работу над SN и модифицировал эту программу, чтобы реализовать идею архитектуры нейронной сети, адаптированной к распознаванию изображений, которую я обдумывал уже некоторое время (теперь эта архитектура называется «сверточной сетью»; см. Главу 6). Она была вдохновлена неокогнитроном Фукусимы, но использовала более «классические» нейроны и управлялась алгоритмом обратного распространения. В то же время Джеффри Хинтон разработал другой, более простой тип сверточной сети, которую он использовал для распознавания речи. Он назвал ее TDNN (Time Delay Neural Network, т. е. «нейронная сеть с временной задержкой»).
В конце 1987 г. меня пригласили прочесть лекцию в Монреальском исследовательском центре компьютерных наук – институте, связанном с университетом Макгилла. В конце моего выступления один из молодых магистрантов задал ряд вопросов, из которых было очевидно, что он серьезно подошел к многослойным нейронным сетям. В то время в этой области было очень мало исследователей. Он задавался вопросом о том, как адаптировать архитектуру нейронных сетей, чтобы они могли обрабатывать протяженные во времени сигналы, такие как речь или текст. Я запомнил его имя: Йошуа Бенджио. Его вопросы были настолько актуальны, что я пообещал себе не упускать его из виду и начать с ним сотрудничество после завершения его учебы. Позже я нашел его уже работающим в Bell Labs, куда его взяли после защиты докторской диссертации и недолгой работы в Массачусетском технологическом институте.
Святая святых
Конференция в Лез-Уш оказалась полезной для меня и по другим причинам. В 1986 г., во время Летней школы по машинному обучению29. Ларри Джекел и сотрудники отдела исследований адаптивных систем Bell Labs узнали, что я был в Питтсбурге. Они попросили меня заехать в Bell Labs в Нью-Джерси на обратном пути, чтобы выступить с докладом. Я помню свое первое появление в этом знаменитом «храме технологий» – по крайней мере, таким он был в 1980-х гг. – где родились многие изобретения современного мира. Там собрались все светила физики, химии, математики, информатики и электротехники. Лаборатория Ларри Джекеля примыкала к лаборатории Артура Ашкина, будущего лауреата Нобелевской премии по физике в 2018 г. за работу над «лазерным пинцетом». Рядом с ним был Стивен Чу, который в 1997 г. получит Нобелевскую премию по физике за открытия по охлаждению и захвату атомов при помощи лазера. Отдел исследований компании Bell Labs, насчитывавший 1200 человек, расположенных в нескольких зданиях, возглавлял Арно Пензиас, получивший Нобелевскую премию за открытие космического излучения, доказывающего теорию Большого Взрыва. Голова шла кругом.
Само здание, расположенное в Холмделе, в 60 км к югу от Нью-Йорка, одним своим видом захватывало дух. Его спроектировал знаменитый финский архитектор Ээро Сааринен. Представьте себе восьмиэтажный стеклянный параллелепипед, 300 м в длину и 100 м в ширину, в котором трудилось более 6000 инженеров. В исследовательской части работало около 300 человек.
Весной 1987 г. Ларри снова пригласил меня в Bell Labs, на этот раз для собеседования. Я сказал ему: «Пригласите мою жену. Ее нужно убедить!» Пока я общался с членами лаборатории, Ларри катался на машине с Изабель и Кевином, нашим 18-месячным ребенком. Он расхваливал штат Нью-Джерси: зеленые насаждения, большие дома в американском стиле и океанское побережье. Нью-Джерси дали прозвище «Штат садов», и это было вполне заслужено. Вечером в итальянском ресторане Кевин от усталости начал плакать. Джон Денкер, мужчина с бакенбардами, взял Кевина на руки и начал ходить с ним по ресторану. Кевин мгновенно успокоился. Позже я узнал, что Джон был старшим из четырех детей в своей семье и прекрасно умел обращался с маленькими детьми. Помимо того, что он был выдающимся физиком и инженером, он читал на французском и цитировал Вольтера и Золя. Неплохо для аризонского ковбоя! На следующий день Ларри и двое его коллег отвезли нас на Манхэттен. Мы хотели подняться на самый верх Всемирного торгового центра, но погода была ужасная, и охрана нас отговорила. Но мы все-таки решили подняться на вершину башен-близнецов. И когда мы сделали это, наградой нам стало вкуснейшее гороховое пюре, от которого мы не могли оторваться! Радушный прием, который мы получили, убедил нас. Мы с Изабель согласились остаться в Нью-Джерси на год или два.
Итак, в октябре 1988 г. я был принят на работу в Bell Labs. Отдел Ларри был частью отдела Боба Лаки, блестящего инженера и изобретателя алгоритма адаптивной фильтрации. Он руководил отделом «BL113», который собрал 300 исследователей из Холмдела и Кроуфорд-Хилла, города, находящегося рядом с Холмделом. Именно он утвердил создание исследовательской группы нейронных сетей. Я встречался с ним несколько раз: колоритная личность, высокий, худой, который интересовался всем, и, конечно, телекоммуникационными технологиями. Я также виделся с Джоном Хопфилдом, еще одним человеком из Bell Labs, который установил связь между спиновыми стеклами и нейронными сетями. Я познакомился с ним в Лез-Уше четырьмя годами ранее…
Что касается условий работы, то они были просто космическими по сравнению с теми, что я столкнулся во Франции. У нас были невероятные ресурсы, полная свобода в исследованиях, а мои коллеги были настоящими светилами в своей области. Когда я там работал, в моем распоряжении был компьютер Sun-4. В Торонто мы работали на компьютере того же типа. «В Bell Labs нельзя прославиться, сэкономив деньги», – говорили они мне. Эта фраза заставляет задуматься о многом…
Годы в Bell Labs
В Торонто мне уже удалось протестировать свои первые сверточные сети на очень небольшом наборе рукописных чисел, который я создал сам, нарисовав их с помощью компьютерной мыши. Но Bell Labs получила набор из 9298 изображений «настоящих» рукописных чисел, собранный Почтой США (United States Postal Service, USPS), из почтовых индексов на конвертах. Сверточный сетевой модуль в моем программном обеспечении SN уже был готов к использованию. Я решил построить «большую» сверточную сеть с входом 16 × 6 пикселей и четырьмя слоями. Всего в сети было 1256 нейронов, 64 660 соединений и 9760 настраиваемых параметров (в сверточной сети несколько соединений имеют один и тот же параметр). Что это был за монстр! У меня уходило целых три дня, чтобы обучить мой Sun-4 на 7291 обучающих примерах. Но зато потом он делал лишь 5 % ошибок на 2007 тестовых примерах, побив все предыдущие рекорды. Эти результаты были получены менее чем через два месяца после моего приезда. Ларри был очень доволен и назвал мою сеть «LeNet» (как «ЛеКун»). Вскоре нам удалось запустить ее на небольшой «ускорительной карте», которая могла распознавать 30 символов в секунду. Был заметен прогресс, и мы разработали новую сверточную сетевую архитектуру LeNet1 с более чем 4600 единицами и почти 100 000 соединениями. Количество ошибок еще уменьшилось.

Рис. 2.2. Первая сверточная сеть для распознавания рукописных символов
Эту первую сверточную сеть я создал, когда начал работать в Bell Labs в конце 1988 г. Перед вами нейронная сеть, архитектура которой, вдохновленная зрительной корой головного мозга, состоит из четырех слоев. Нейроны первых двух слоев связаны с небольшими участками предыдущего слоя, которые называются рецептивными полями (см. главу 6 о сверточных сетях). Последовательные слои извлекают из изображения все более абстрактные и обобщенные свойства.
Вскоре Ларри стал искать партнеров из инженерной части Bell Labs для разработки технологии и получения на ее основе коммерческого продукта. Проект заинтересовал группу инженеров. Мы работали вместе и очень быстро разработали систему для считывания сумм на банковских чеках.
В системе использовалась «большая» сверточная сеть LeNet5 с 340 000 подключениями и «сетчаткой» размером 20 × 20 пикселей. Я разработал ее с помощью моих коллег и друзей Леона Ботту, Йошуа Бенжио и Патрика Хаффнера в сотрудничестве с другими инженерами. Наша система считывала сумму около половины предоставляемых ей чеков, делая при этом менее 1 % ошибок. Другая половина чеков отклонялась машиной – их необходимо было обрабатывать вручную. Именно тогда наша система впервые достигла уровня точности, действительно пригодного для использования.
Оказалось, что дочерняя компания AT&T, компания NCR (National Cash Register), продавала сканеры чеков и банкоматы для банков. Мы оборудовали их нашей системой автоматического считывания. В 1994 г. появились первые банкоматы NCR французского Банка взаимного кредитования Бретании, с нашей системой, которая автоматически считывала сумму чека, внесенного в банкомат.
Первое внедрение системы скорочтения произошло в 1995 г. Мы отмечали свой успех в итальянском ресторане в очаровательном городке Ред-Бэнк, родном городе джазмена графа Бэйси и режиссера Кевина Смита, неподалеку от нашей лаборатории.
Но, вернувшись домой, мы узнали, что руководство AT&T только что решило разделить компанию на несколько независимых. Через несколько месяцев NCR перешла на другую сторону, забрав с собой группу, которая разрабатывала и продавала продукцию. Новая компания Lucent Technologies, в свою очередь, разделилась, забрав с собой бренд Bell Labs, а также большую часть лабораторий, включая группу инженеров, с которыми мы работали. Тем временем наша исследовательская группа осталась в AT&T и теперь зависела от новой организации AT&T Labs Research. К моему огорчению, проект пришлось приостановить.

Рис. 2.3. LeNet5. Коммерчески развернутая сверточная сеть для распознавания рукописных символов
Архитектура сети второго поколения состоит из семи слоев. Она намного больше предыдущей и использует отдельные слои для свертки и подключения (см. главу 6). Она может распознавать в том числе числа, написанные от руки без соблюдения почтовых правил.
NCR и Lucent продолжали продавать новую продукцию. В конце 1990-х наша система считывала 10–20 % всех чеков, выпущенных в США. Это был один из самых впечатляющих успехов в области нейронных сетей того десятилетия.
Тем не менее, новая телекоммуникационная компания AT&T не была особенно заинтересована в технологиях такого рода. На дворе был 1996 г. – самый разгар Интернет-бума. Меня повысили до начальника отдела, и мне нужно было найти новый проект для моей группы. Мы решили приступить к сжатию изображений, чтобы сканировать бумажные документы с высоким разрешением и распространять их через Интернет. Я надеялся, что библиотеки по всему миру отсканируют свои коллекции книг, чтобы они стали доступными в Интернете. Но для этого была нужна подходящая техника. Она будет представлена в 1998 г. под названием DjVu (произносится «дежавю» по-французски). Алгоритм DjVu может сжимать страницу, отсканированную с высоким разрешением, примерно до 50 килобайт, что в десять раз меньше, чем в формате JPEG или PDF.
К сожалению, AT&T не смогла вывести DjVu на рынок. То, что крупные компании плохо продавали инновации, выпущенные их лабораториями, было, увы, в порядке вещей. Вспомним печально известный провал компании Xerox, чья калифорнийская лаборатория PARC изобрела всю современную автоматизацию офиса – персональные рабочие станции, компьютерные сети, системы многоярусного графического отображения, компьютерную мышь и лазерный принтер. Однако маркетологи компании не смогли продать ничего из этого, в результате чего Стив Джобс и Apple смогли скопировать эту концепцию с помощью своих систем Lisa и Macintosh.
Наши работодатели, AT&T, потерпели ту же неудачу. Изобретения Bell Labs, ее отдела исследований и разработок, безусловно, оказали определенное влияние на материнскую организацию. Однако деньги на продаже транзисторов и солнечных элементов, камер CCD и операционной системе Unix, а также языках программирования C и C++ заработали совсем другие компании. К сожалению, AT&T не позаботилась о и таких технологиях как DjVu и решила продать лицензию на нее за десяток миллионов долларов одной компании в Сиэтле, уже работающей с рынком изображений – LizardTech, которая также упустила благоприятные маркетинговые возможности. Мы посоветовали LizardTech распространить базовый код как открытый исходный код. Мы знали, что единственный способ добиться признания нового формата – сделать его доступным для всех. Увы! Забота о «контроле» и прибыли заставила их хранить код в секрете. Позже они передумали, но было уже слишком поздно. Впрочем, это уже другая история…
Почти табу
С 1995 г. снова начались темные времена. Даже наши идеи сверточных сетей не были приняты, не говоря уже об их практическом применении в других областях. С Йошуа Бенжио, который вернулся в Монреаль, но остался сотрудником моей лаборатории на неполный рабочий день, Джеффри Хинтоном, уехавшим из Торонто, чтобы основать лабораторию теоретической нейробиологии в Лондоне, и некоторыми другими, мы снова остались одни в борьбе за нейронные сети. Почему пропал интерес к нейронным сетям в сообществе машинного обучения? Это загадка, которую еще предстоит разгадать историкам и социологам. Тема нейронных сетей оказалась чуть ли не под запретом. О них тогда говорили примерно так: «Сверточные сети? Чушь собачья! Говорят, что они настолько сложны, что только Ян ЛеКун способен заставить их работать».
Технические недоработки, несомненно, препятствовали распространению сверточных сетей: они требовали больших вычислительных ресурсов, а компьютеры в то время были медленными и дорогими, да и наборы данных оказывались слишком малы – ведь это был период времени до Интернет-бума. Поэтому их нужно было собирать самостоятельно, а это имело свою цену в деньгах и ограничивало количество приложений. Наконец, программное обеспечение для нейронных сетей, такое как SN, должно было быть написано от руки от А до Я самими исследователями: огромная трата времени. Кроме того, AT&T не позволила нам распространить наш симулятор нейронной сети SN с открытым исходным кодом, который, возможно, позволил бы ускорить внедрение сверточных сетей. В то время компании придерживались принципа «каждый сам за себя».
В 1991 г. Леон Ботту, только получивший докторскую степень, присоединился к нам в Bell Labs. Но тогда ему не понравились Соединенные Штаты, и через год он вернулся во Францию, чтобы возглавить стартап Neuristique, который он ранее основал с некоторыми своими друзьями. Эта фирма продавала одну из версий SN и предложила услуги компаниям, желающим внедрить нейронные сети. Их системы работали настолько хорошо, что сотрудники фирмы часто сталкивались с недоверием своих потенциальных клиентов. Эксперты, консультирующие этих клиентов, утверждали, что все, что делает Neuristique, «невозможно», несмотря на бесспорные результаты! Поэтому после нескольких лет застоя Леон решил вернуться к исследованиям. Он снова присоединился к нам в Bell Labs и принял решение остаться в США.
По всем этим причинам исследователи машинного обучения отказались от нейронных сетей. Они предпочли им SVM (англ. Support Vector Machine, метод опорных векторов) и «ядерные методы». По иронии судьбы эти методы тоже были изобретены коллегами и друзьями из нашей лаборатории: Изабелем Гайон, Владимиром Вапником и Бернхардом Бозером в период с 1992 по 1995 г. С 1995 по 2010 г. ядерные методы стали «флагманом» машинного обучения. Сообщество проявило интерес и к другому набору методов – «усилению», разработанному Робом Шапиро и Йоавом Фройндом, коллегами из другого отдела Bell Labs. Мы все были хорошими друзьями. Та ситуация дала нам представление об интеллектуальных разногласиях в стенах нашей компании. Таким образом, в области нейронных сетей снова настал кризис, который продлился почти 15 лет.
В 1995 г. Ларри Джекель все еще верил в будущее сверточных сетей и был разочарован тем, что им предпочли SVM. Владимир Вапник – математик. Ему нравились методы, работу которых можно было гарантировать с помощью математических теорем. Нейронные сети ему не нравились, потому что они были слишком сложными, чтобы их можно было объяснить хорошей теорией. Поэтому Ларри решил заключить с математиком пари.
Во-первых, Ларри поставил на то, что до 14 марта 2000 г. появится математическая теория, объясняющая, почему нейронные сети могут хорошо работать. Вапник сделал ставку на обратное… согласившись на одно условие: если человеком, разработавшим теорию, окажется сам Вапник, то он выигрывает пари. Лучшего способа заставить Владимира заняться этой теорией Ларри не смог бы и придумать!
Во-вторых, Вапник поставил на то, что после 14 марта 2000 г. никто уже не будет использовать нейронные сети. Ларри ставил на противоположное. Они подписали свои прогнозы, и я тоже подписал их, так как выступал свидетелем. Ставкой обоих пари был ужин в ресторане.
Было два ужина. Ларри проиграл первое пари, но второе проиграл Владимир. Что касается меня, то я дважды насладился бесплатным ужином!
В 2001 г. Леон Ботту и я завершили проект DjVu. Более пяти лет мы почти не работали над машинным обучением, но мы писали длинные статьи, в которых подробно рассказывали о нашей работе в первой половине года десятилетия. Для меня те статьи представляли собой своего рода бесконечную «лебединую песнь»: сообщество больше не интересовалось нейронными сетями, но мы рассказывали им, как заставить эти сети работать. Мы провели новое тестирование, которое должно было стать познавательным и исчерпывающим. В 1998 г. мы опубликовали статью ЛеКуна, Ботто, Бенгио и Хаффнера30 в престижном журнале Proceedings of the IEEE под названием «Градиентное обучение для распознавания документов», ставшую впоследствии знаменитой.
В той статье было подробное объяснение того, как заставить работать сверточные сети. Мы развили идею построения обучающей системы путем сборки дифференцируемых параметризованных модулей. Также мы описали новый метод – «преобразование графов сетей», позволяющий обучать системы, модули которых управляют графами, в то время как классические нейронные сети управляют только массивами чисел. Мы также продемонстрировали, как можно построить и обучить систему распознавать символы. В период с 1998 по 2008 г. статья имела переменный успех, набирая лишь несколько десятков цитирований в год. Но с 2013 г. ситуация резко изменилась. В 2018 г. статья собрала 5400 ссылок. Многие видят в ней сейчас основополагающую статью по теории сверточных сетей, хотя первые статьи были опубликованы десятью годами ранее. В 2019 г. моя статья собрала 20000 цитирований.

Рис. 2.4. Пари 1995 г. между Ларри Джекелем и Владимиром Вапником
1. Джекель делает ставку (ставка – хороший обед), что не позднее 14 марта 2000 г. исследователи поймут, почему большая сеть нейронов, обученных на большой базе данных, работает хорошо (под «пониманием», мы подразумеваем то, что будут четкие условия и ограничения). Но, если решение найдет Вапник, он все равно выиграет. Вапник ставит на то, что Джекель ошибается.
2. Вапник делает ставку (хороший обед в ресторане), что не позднее 14 марта 2005 г. ни один здравомыслящий человек не будет использовать нейронные сети, которые, по сути, останутся такими же, как в 1995 г. Джекель делает ставку, что Вапник не прав. Вапник выиграл первое пари, а Джекель выиграл второе.
В конце 2001 г. Интернет-пузырь попросту лопнул. План AT&T по обеспечению Интернета и телевидения во всех домах через оптоволокно и коаксиальные кабели не убедил Уолл-стрит. Акции падали. Это нас не устраивало, ведь акции, которые мы получили после продажи DjVu, теперь ничего не стоили! Вице-президент AT&T Labs Research Ларри Рабинер, новатор в области распознавания речи, объявил, что выходит на пенсию через три месяца. Зная его преданность исследованиям и лаборатории, в которой он провел всю свою жизнь, я расценил эту новость как предзнаменование конца света и начал осторожно искать исследовательскую должность в другой компании.

Рис. 2.5. Фотография любезно предоставлена отделом исследований обработки изображений AT&T Labs Research
Я руководил этой лабораторией с 1996 по начало 2002 г. Слева направо стоят: Владимир Вапник, Леон Ботту, Ян Лекун, Йорн Остерманн, Ханс-Петер Граф. Впереди сидят: Эрик Косатто, Патриция Грин, Фу-Цзе Хуанг и Патрик Хаффнер. Вапник, Ботто, Граф, Косатто и Хуанг присоединятся ко мне в NEC в начале 2002 г.
В декабре наступил тот самый конец света. Компания объявила, что снова разделится на несколько частей и увольняет половину научных сотрудников. У меня в кармане уже лежало предложение от японской компании NEC, так что я решил тоже примкнуть к толпе уволенных и сказал своему директору: «Меня не волнует, чем интересуется компания. Я буду заниматься зрением, робототехникой и нейробиологией». Это было правдой, но больше всего я хотел, чтобы меня уволили! Директор так и поступил, и я ему за это благодарен. Леон, Владимир Вапник и я покинули AT&T в начале 2002 г., чтобы попасть в Исследовательский институт NEC в Принстоне, престижную лабораторию японской Nippon Electric Company. Там мы возобновили наши исследования в области нейронных сетей.
Перед тем, как покинуть AT&T, я сделал несколько фотографий сотрудников моей лаборатории.
На момент, когда было сделано это фото, Владимир Вапник находился на пике своей популярности, так что мне хотелось сделать запоминающуюся фотографию с юмором. Я написал на доске формулу теории обучения, которая носит его имя и благодаря которой он прославился. Я попросил его встать рядом с доской. Он был очень рад, что я фотографирую его на фоне его шедевра. Но под формулой я написал фразу – «Все ваши байесы принадлежат нам». Это был очень своеобразный каламбур, который я должен объяснить. В то время в Интернете стал популярным мем31, в котором высмеивалась японская видеоигра Zero Wing. Перевод игровых диалогов с японского на английский был весьма несовершенным. Один из персонажей, этакий галактический император-завоеватель, там говорит на плохом английском языке: «Как дела, господа! Все ваши база принадлежащие нам. Вы на пути к уничтожению» (англ. «How are you gentlemen!! All your base are belong to us. You are on the way to destruction», что является очевидной синтаксической ошибкой, ведь на самом деле он должен был сказать – «все ваши базы принадлежат нам». Эта фраза рассмешила многих и стала достаточно известной. Еще следует заметить, что подход к теории обучения, соперничавший с подходом Вапника, был основан на теореме Байеса, формуле, связывающей вероятности совместных и условных событий, которая названа по имени ее изобретателя, британского математика и пастора XVIII века Томаса Байеса. Вапник не любил байесовские теории. Он называл их «вронгами» («vrong», искаженное английское слово wrong – неверный, ложный, где w не произносится), со своим неподражаемым русским акцентом. В итоге я изменил знаменитый мем, заменив слова BASE на BAYES, сделав Вапника императором-завоевателем галактики машинного обучения! Я разместил эту фотографию на своем сайте в 2002 г. Вскоре она стала «официальной» фотографией Вапника, на которую ссылается его страница в Википедии. Это забавно, поскольку я не уверен, что Владимир осознал всю тонкость шутки и ее синтаксическую неточность в этом отношении32.

Рис. 2.6. Владимир Вапник в 2002 г.
Владимира сфотографировали рядом с формулой теории обучения, которая сделала его знаменитым. Эта фраза – каламбур, основанный на распространенном в то время Интернет-меме.
Через две недели после начала работы в NEC мне позвонил Ларри Пейдж, генеральный директор Google, стартапа с 600 сотрудниками, который уже был на слуху, так что многие пользовались его услугами. Он хотел нанять директора по исследованиям. Ларри знал меня, потому что был поклонником DjVu. Я пошел на собеседование. Компания Google предложила мне работу, но в конечном итоге я от нее отказался. Во-первых, моя семья не захотела переезжать в Калифорнию, во-вторых, даже если предложение и было привлекательным, после шести лет управления отделом и проектом прикладных исследований (DjVu) я все же хотел вернуться к фундаментальным исследованиям и работе над обучением, нейронными сетями, нейробиологией и робототехникой. Я знал, что не смогу достичь этой цели в стартапе из 600 человек, у которого еще нет нужного дохода, особенно если я буду занимать руководящую должность.
Увы! Уже менее чем через год NEC столкнулась с финансовыми трудностями и стала давить на Принстонскую лабораторию, чтобы та занялась созданием приложений, полезных для бизнеса. Руководство NEC сообщило нам, что им неинтересно машинное обучение, и лучшие умы стали увольняться один за другим: физики, биологи, исследователи зрения. Затем уволили директора лаборатории и на его место поставили того, кто не имел ни малейшего исследовательского опыта. Лучший способ убить нас!
Я проработал в NEC в течение 18 месяцев, прежде чем в 2003 г. перешел в Нью-Йоркский университет (NYU) в качестве профессора. Перед этим я подал заявки в несколько мест и получил предложения от Университета Иллинойса в Урбана-Шампейн и Института Тойоты Чикагского университета. Но я не получил никакого ответа из Нью-Йорка и начал сильно беспокоиться.
Я связался с тем, кто предложил мне подать заявку. Он удивился: «Ты подавал заявку? Мы ничего не получили!» На самом деле на компьютере администратора, занимающегося заявками, случился сбой, и половина заявок просто-напросто потерялась. Нью-Йоркский университет назначил для меня собеседование буквально в последнюю минуту. Я начал с презентации моих работ. Заведующая отделом информатики, конечно же, тоже находилась в аудитории. Ее звали Маргарет Райт, и она была специалистом по исследованиям операций. Я знал ее, потому что она также работала в Bell Labs, и познакомился с ней во время семинара в Калифорнийском университете в Беркли несколькими годами ранее. Она считала, что некоторые хорошо известные результаты исследования операций применимы к машинному обучению, но я не мог с ней согласиться. Я надеялся, что она забыла об этом эпизоде, но нет! В конце моей лекции она задала вопрос, конкретно относящийся к той нашей дискуссии. В тот момент я подумал, что мои шансы получить работу здесь упали до нуля, однако я и тут ошибся: она вспомнила, что узнала кое-что новое в тот день! Я был нанят профессором Нью-Йоркского университета в сентябре 2003 г. с твердым намерением возобновить исследовательскую программу по нейронным сетям и продемонстрировать, на что они способны.
С конца 1990-х я был уверен, что следующий успех сверточных сетей произойдет в области распознавания объектов на изображениях. Поэтому в 1997 г. я опубликовал статью в CVPR (IEEE Computer Vision and Pattern Recognition, научно-технический журнал). Заинтересовала она лишь немногих, но некоторые громкие имена в этой области, такие как Дэвид Форсайт из Университета Иллинойса, знали, что машинное обучение действительно может сыграть важную роль в распознании. Он пригласил меня на мастер-класс на Сицилию в компании мировых лидеров в этой области. Я встретился с Джином Понсе, работавшим тогда в Университете Иллинойса (и одновременно преподававшим в Высшей школе, где я учился) Марсиялем Эбертом из Карнеги-Меллона, Джитендрой Маликом из Калифорнийского университета в Беркли, Эндрю Зиссерманом из Оксфорда, Пьетро Пероном из Калифорнийского технологического института и многими другими. К моему удивлению, все они оказались в восторге от возможностей сверточных сетей. В 2000 г. меня пригласили провести пленарную конференцию в CVPR. Я получил свое место в сообществе и налаживал связи, которые принесли плоды в будущем. В течение следующего десятилетия машинное обучение приобретало все большее значение в решении задач распознания. Но только в 2014 г. сверточные сети стали здесь доминирующим методом. Но если лидеры в этой области были открыты для новых идей, то их младшие коллеги, оценивающие наши статьи, были гораздо менее снисходительными.
«Заговор» глубокого обучения
Вместе с Джеффри Хинтоном и Йошуа Бенжио, моими коллегами и друзьями, мы решили возродить интерес научного сообщества к нейронным сетям. Мы по-прежнему были убеждены, что они хорошо работают и могут значительно улучшить распознавание изображений и речи. К счастью, на нашем пути появилась благотворительная организация CIFAR (Canadian Institute for Advanced Research, Канадский институт перспективных исследований; эту аббревиатуру можно также прочесть как «see far», то есть «видеть далеко» по-английски). В 2004 г. она запустила пятилетнюю программу «Нейронные вычисления и адаптивное восприятие», или NCAP (Neural Computation & Adaptive Perception), директором которой тогда стал Джеффри Хинтон, а я – научным консультантом. Программа NCAP позволила нам собираться вместе, организовывать семинары, приглашать наших студентов и даже создавать небольшое научное сообщество.
Остальные исследователи считали исследования нейронных сетей глупостью, а мы, между тем, придумали новое название: глубокое обучение. Я назвал наше трио «заговором глубокого обучения». Шутка, но не совсем.
Нам не давали возможности публиковаться. Почти все статьи, которые мы опубликовали по этой теме в 2004–2006 гг., были отклонены на крупных конференциях по машинному обучению, NIPS (англ. Neural Information Processing Systems, системы обработки нейронной информации)33, 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. Впрочем, первую свою систему распознавания лиц я создал еще в 1991 г. во время шестимесячного нахождения в центральной лаборатории Thomson-CSF в Палезо. Эта работа была опубликована в 1993 г., но была проигнорирована сообществом.

Рис. 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. Результаты этой работы послужили источником вдохновения для ряда проектов по созданию беспилотных автомобилей.

Рис. 2.8. Распознавание объектов независимо от положения и ориентации
Сверточная сеть обучается на изображениях игрушек, относящихся к пяти категориям: человек, животное, самолет, легковой автомобиль и грузовик. Но оказалось, что она может распознавать реальные объекты на естественных изображениях, которые отличаются от игрушек.

Рис. 2.9. Робот DAVE (2003)
Эта небольшая радиоуправляемая машина оснащена двумя камерами. Сверточная сеть (справа), обученная имитировать действия человека-пилота, позволяет ему управлять своим движением автономно, избегая препятствий. Вход в сеть состоит из изображений с двух камер (вверху). Выходные данные сети – это угол поворота рулевого колеса (изображен четкой световой полосой под изображениями справа). Миниатюры представляют активацию единиц в последовательных слоях сети.
Вернемся в 2005 г., один из наших самых успешных в Нью-Йоркском университете. Мы продемонстрировали, что сверточные сети можно использовать для семантической сегментации, то есть для маркировки каждого пикселя изображения определенной категорией объекта, к которому относится пиксель. Мы применяли этот метод для анализа биологических изображений, полученных с помощью микроскопии (рис. 2.10). В будущем этот метод оказался очень полезным для управления роботами и автомобилями, так как позволяет помечать каждый пиксель изображения как доступную для проезда область или как препятствие.
Мы также обучали сверточную сеть сравнению изображений. Для этого мы применили «метрическое обучение», основанное на идее «сиамских сетей», которую я предложил еще в 1994 г. для проверки подлинности подписи. Оно позволяла определять, являются ли два портрета фотографиями одного и того же человека или двух разных людей. Позже эта идея была реализована в системах распознавания лиц35.
В 2007 г. мы взяли курс на распознавание объектов на естественных изображениях. До сих пор мы работали только с изображениями игрушек, теперь же нам нужно было обрабатывать обычные фотографии и распознавать на них основной объект.

Рис. 2.10. Сверточная сеть для семантической сегментации биологических изображений
Каждый пиксель входного изображения идентифицируется как принадлежащий к одной из пяти категорий: ядро клетки, ядерная мембрана, цитоплазма, клеточная мембрана и внешняя среда. (а) – изображение клетки зародыша нематоды показано на входе в сеть. (b, c и d) – последовательные слои сверточной сети извлекают элементы изображения. (e) – результат состоит из пяти миниатюр, по одной для каждой из пяти категорий областей. В каждой выходной миниатюре яркий пиксель указывает, что соответствующий пиксель во входном изображении был распознан как принадлежащий к категории, связанной с миниатюрой.

Рис. 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) для нейронных сетей. Другие исследователи из Стэнфордского университета, IDSIA36 (Швейцарского исследовательского института ИИ), Монреаля и Торонто продолжили эту работу. В 2011 г. стало ясно, что будущее принадлежит тем, кто будет обучать большие нейронные сети на графических процессорах. Они должны были стать проводником новой революции глубокого обучения.
Следующий, 2012 г. ознаменовал собой решающий шаг37. Началась новая эра, время всеобщего признания эффективности сверточных сетей. Им будет посвящена отдельная глава этой книги.
Глава 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, которых нет в нашем обучающем наборе. Такой тип обучения называется «обучение с учителем».
Найти функцию f(х), которая предсказывает у на основе х
Представим идеального водителя, у которого обучающие примеры расположены по линии, показанной на рис. 3.1. Поскольку кажется, что в расположении этих точек есть какая-то закономерность, нам нужно найти функцию, график которой проходит через все эти точки. Кстати, мы только что совершили несколько произвольный выбор функции, априори решив, что это прямая, угол наклона которой нам и нужно найти.
Эта функция записывается следующим образом:
f(x) = w * x
Я использую здесь обозначения, применяемые в информатике, где символ * обозначает умножение. Данная функция представляет собой прямую, проходящую через 0, наклон которой определяется числом w. Удобнее рассматривать f как функцию с двумя переменными, x и w. Чтобы запрограммировать эту функцию на компьютере с языком Python38, следует написать следующее:
def f(x, w): return w * x

Рис. 3.1. Взаимосвязь между отклонением автомобиля от полосы движения и углом поворота рулевого колеса, необходимый для возврата автомобиля в середину полосы
Абсцисса соответствует положению автомобиля относительно центра полосы движения на автостраде (в метрах), а ордината – углу поворота рулевого колеса, необходимому для возврата автомобиля в центр полосы (в градусах). Для отрицательного значения положения (слева от центра полосы движения) к рулевому колесу следует приложить отрицательный угол (в данном случае – по часовой стрелке). Здесь отклонение в 1 м исправляется поворотом руля на угол 4°.
Символы w и x представляют собой переменные, функция которых вычисляет произведение, обозначенное w * x. Понятие переменной в информатике означает своего рода «ящик» или ячейку в памяти компьютера, где можно хранить число. Например, можно создать переменную w и поместить в нее значение 4, а затем создать переменную x, имеющую значение 2:
w = 4
x = 2
Символы w и x – это просто названия соответствующих ячеек памяти. Чтобы вычислить функцию с этими значениями x и w, следует написать:
yp = f(x, w)
где символ yp обозначает прогноз y, произведенный нашей моделью.

Рис. 3.2. Прямая, которая проходит как можно ближе к точкам, которые не выровнены
Три из четырех точек лежат на одной прямой. Прямая с коэффициентом наклона 4 проходит через эти три точки, но не через четвертую. Проблема в том, как найти компромисс: прямую, которая проходит «как можно ближе» ко всем четырем точкам. При этом она может не проходить ни через одну из заданных точек.
После произведенного вычисления переменная yp будет содержать значение 8 (4 раза по 2).
Чтобы применить функцию к обучающему примеру № 3, необходимо выполнить следующее: присвоить переменным x и y значения X[3] и Y[3] и вычислить результирующее значение функции f(x, w).
x = X[3]
y = Y[3]
yp = f(x, w)
Поиск прямой, проходящей через точки, сводится к поиску правильного значения параметра w этой функции. Предположим, у нас есть только две тренировочные точки, A = [[0.0, 0.0], [0.9, 3.6]]39.
Через эти две точки проходит одна прямая. В этом случае правильное значение w равно 4, поскольку 4 * 0.9 = 3.6. Добавим третью точку (–0.8, –3.2). Три точки принадлежат одной прямой, и правильное значение w всегда равно 4.
Но это идеальная ситуация, в реальной жизни так обычно не бывает.
Поставим четвертую точку (1.9, 5.4).
Если мы используем то же значение 4.0 для w, значение, предсказанное нашей функцией yp = f(x, w), будет не 5.4, а 7.6 = 4 * 1.9. Как указывалось ранее, символ yp обозначает прогноз y, произведенный нашей моделью. Данная точка находится не справа, потому что она не совмещена с первыми тремя точками. Что тогда делать?
Должен быть компромисс: нужно выбрать прямую, которая проходит как можно ближе ко всем точкам, с небольшими ошибками.
Как минимизировать ошибку?
При значении w = 4.0 значение, предсказанное справа, равно 7.6. Но значение, наблюдаемое в примере 4, равно 5.4. Четвертая точка выдает ошибку –2.2 = 5.4 – 7.6. Меняя w, мы можем переместить прямую ближе к этой четвертой точке, но тогда мы отодвинемся от остальных трех. Поскольку невозможно пройти через все точки, лучшим компромиссом в нашем примере является прямая, наклон которой составляет примерно 3.2.
При заданном значении w для каждой из точек возникает ошибка между предсказанным функцией yp (на новой прямой) и наблюдаемым у (в каждом примере обучения).
Мы можем измерить среднюю ошибку по всем этим четырем точкам. Для каждой точки ошибка может быть положительной или отрицательной; важно расстояние между предсказанным значением yp и наблюдаемым значением y, независимо от его знака. Чтобы определить это расстояние, необходимо использовать квадрат этой ошибки, но также можно использовать его абсолютное значение (которое всегда положительно).
Для заданного значения w ошибка в примере, скажем (X[3], Y[3]), равна (Y[3] – w * X[3]) ** 2, поскольку значение предсказано для X[3], это yp = w * X[3]. (Мы используем обозначение из информатики: ** 2 для возведения в квадрат40.)
Мерой неточности системы L(w) является среднее значение всех этих ошибок на обучающих примерах:
L(w) = ¼ * ((Y[0] – w * X[0]) ** 2 + (Y[1] – w * X[1]) ** 2 + (Y[2] – w * X[2]) ** 2 + (Y[3] – w * X[3]) ** 2)
Данная величина зависит от w: иначе говоря, это функция от w. Мы называем это функцией стоимости, и w – единственный регулируемый параметр этой функции. Чем меньше значение L(w), тем меньше средняя ошибка, тем точнее наше приближение. Следовательно, мы должны найти значение w, которое минимизирует эту функцию стоимости L(w) (см. рисунок 3.3).
Вместе с точками обучения p функция стоимости обозначается с использованием греческой буквы «сигма»
для обозначения суммы членов для всех значений индекса i от 0 до p-1:

Эта формула включает квадрат w. Следовательно, это многочлен второй степени; другими словами, парабола.
Есть способ сделать это, он называется «стохастический градиентный спуск», или SGD (Stochastic Gradient Descent). Идея его состоит в том, чтобы взять точку обучения и немного скорректировать линию, чтобы она приблизилась к рассматриваемой точке. Затем следует перейти к следующей точке обучающего набора и провести небольшую корректировку, чтобы приблизиться и к этой новой точке. Корректировка должна быть такой же незначительной, как и ошибка. Другими словами, корректировка будет пропорциональна ошибке. Допустим, если мы возьмем пример № 3, корректировка для w будет следующей:
w = w + e * 2 * (Y[3] – w * X[3]) * X[3]

Рис. 3.3. Парабола, являющаяся графиком квадратичной функции стоимости
Когда функция стоимости представляет собой многочлен второй степени по отношению к w, она принимает форму параболы с единственным минимумом. Решение, то есть значение w, которое дает минимальное значение стоимости, обозначено на графике значком 
Это не математическая формула, а обозначение, заимствованное из информатики: оно означает, что мы заменяем переменную w (слева от знака равенства) ее текущим значением (справа от знака равенства), суммированным с результатом выражения, расположенного справа от знака плюс.
Давайте рассмотрим эту формулу. Переменная e называется «шагом градиента». Она должна содержать небольшое положительное число, которое определит размер приращения w. Если число X[3] положительно, а линия находится ниже точки (X[3], Y[3]), то есть разница (Y[3] – w * X[3]) положительна, тогда необходимо увеличить значение w. Именно это и делает приведенная формула. И наоборот, если линия проходит над точкой, разница будет отрицательной и значение w будет уменьшаться. Скорость, с которой линия приближается к точке, уменьшается по мере приближения линии к точке, останавливаясь при прохождении через точку. Когда X[3] отрицательно, формула меняет знак приращения на противоположный: слишком маленький наклон приводит к положительной ошибке, и наоборот.
Повторяя примеры один за другим и каждый раз немного меняя наклон прямой, в конечном итоге мы стабилизируем прямую по отношению к значению w, которое минимизирует L(w), при условии постепенного уменьшения значения e. Этот метод, получивший название «стохастическая аппроксимация», был изобретен в 1951 г. американскими статистиками Гербертом Роббинсом и Саттоном Монро.
В скобках – для математиков
Обобщим метод стохастического градиентного спуска.
Обозначим через C(x, y, w) функцию стоимости для данного примера.
В нашем примере C(x, y, w) = (y – w * x) ** 2 для заданной точки (x, y), тогда обновление w в соответствии со стохастическим градиентным спуском будет следующим:
w = w – e * dC(x, y, w) / dw
где e – шаг градиента, а dC(x, y, w) / dw – производная (также называемая градиентом) C относительно w.
Производная от (y – w * x) ** 2 относительно w равна –2 * (y – w * x) * x, а формула обновления принимает следующий вид:
w = w + 2 * e * (y – w * x) * x
идентично тому, что мы видели выше. Это можно понять интуитивно: если наклон (производная) C(x, y, w) положительный, необходимо уменьшить w. Если наклон отрицательный, w необходимо увеличить. После нескольких итераций w в конечном итоге упадет до нижней части C(x, y, w). Мы хотим минимизировать L(w), который представляет собой среднее значение C(x, y, w) для всех точек:

Роббинс и Монро продемонстрировали, что процедура сходится к минимуму L(w), если ее применять многократно ко всем точкам, при условии, что е постепенно уменьшается.
Стохастический градиентный спуск на сегодняшний день является наиболее широко используемым методом обучения современных систем машинного обучения. Вот почему я счел полезным описать его здесь. Мы еще вернемся к нему, когда будем обсуждать перцептрон, Adaline и многослойные нейронные сети.
Но в нашем случае для того, чтобы заставить прямую пройти как можно ближе к набору точек, стохастический градиентный спуск оказывается медленным и бесполезным на практике методом. Параболическая функция стоимости может быть преобразована следующим образом:

Нам известно, что эта функция представляет собой многочлен второй степени относительно w, и теперь у нас есть коэффициенты. Минимум этого многочлена – это значение W, для которого его производная равна нулю:

Подведем итоги
Основные принципы любой машины, управляемой обучением с учителем, заключаются в следующем:
1. Собираем обучающий набор
A = {(X[0], Y[0]),…,(X[p-1], Y[p-1])}
2. Предлагаем модель, т. е. первую функцию f(x, w) с параметрами w. Их может быть очень много, миллионы. В этом случае мы называем их по отдельности w[0], w[1], w[2] … и вместе: w.
3. Предлагаем функцию стоимости C(x, y, w), которая измеряет ошибку для обучающего примера, например C(x, y, w) = (yf (x, w)) ** 2, а L(w) – его среднее значение по обучающей выборке.
4. Находим значение параметров функции f(x, w), которые минимизируют функцию стоимости L(w), обычно с помощью стохастического градиентного спуска:
w = w – e * dC(X[i], Y[i], w) / dw
Галилей и Пизанская башня
Функция f(x, w) может быть не только линейной. Скорость камня, падающего вертикально вниз, увеличивается пропорционально квадрату времени падения. Представьте себе, как Галилей поднимается на Пизанскую башню. Он останавливается на первом этаже. Он бросает вниз камешек и измеряет время, за которое камешек упадет на землю. Он поднимается еще на один этаж. Он снова бросает камень и измеряет время падения. Он повторяет этот опыт снова и снова, на каждом следующем этаже.
Существует закономерность, связывающая переменные x – время падения, и y – высоту падения камня.
Таким образом, зная время падения, можно вычислить высоту падения в зависимости от времени. Это квадратичная функция, график этой функции – парабола.
Формула, связывающая x (время падения) с y (высота падения): y = 0.5 * g * x ** 2, где g – ускорение свободного падения, или 9,81 м/с2. Благодаря своим наблюдениям Галилей смог установить этот закон, который позволяет, зная время падения предмета с высоты, вычислять высоту падения. И предсказать время падения в зависимости от высоты, приведя формулу к соответствующему виду.
Таким образом, Галилей заложил основы научного метода, который устанавливает законы, связывающие одну переменную с другой математической формулой. Иначе говоря, он выводил законы из наблюдений и предсказывал явления на основе этих законов.
В этом и состоит принцип машинного обучения.
Распознавание изображений или еще чего-нибудь
Принцип обнаружения основного правила также применим и к распознаванию изображений. Вход x – это изображение. Но изображение – это не более чем большой набор чисел. Например, черно-белая фотография размером 1000 × 1000 пикселей выражается в виде 1 млн чисел, каждое из которых указывает значение оттенка серого для каждого пикселя. Если это цветное изображение, каждый пиксель описывается уже не одним, а сразу тремя значениями, уровнями яркости трех основных цветов: красного, зеленого и синего.
Ответ машины y (распознавание изображений) можно выразить одним числом или серией чисел. Я предоставляю машине изображение кошки (x) и прошу ее ответить: «Это кошка» (y). Считаем, что y = 1 – кошка, а y = –1 – это не кошка. Фактически, мы просим функцию классифицировать изображения, представленные как входные данные, на две категории.
Таким же образом можно обучить автомобиль, оснащенный камерой, ездить самостоятельно. В этом случае дело обстоит немного сложнее, потому что вход x, который подается в систему, представляет собой изображение, которое включает в себя миллионы чисел, из которых нужно оценить положение автомобиля на дороге. Выход yp – это угол поворота рулевого колеса и показатели усилий на педалях. Если машина должна научиться отличать изображение автомобиля от изображения самолета, мы собираем тысячи изображений автомобилей и тысячи изображений самолетов. Вводим изображение автомобиля. Если машина дает правильный ответ, ничего не меняем. Если машина дает неверный ответ, необходимо настроить параметры системы так, чтобы ее ответ приблизился к правильному. Другими словами, нужно изменить настройки, чтобы минимизировать ошибку.
Все системы обучения с учителем работают по одному и тому же принципу, а именно:
Вход x. Это может быть изображение (таблица чисел в компьютерной программе); речевой сигнал (последовательность чисел на выходе аналого-цифрового преобразователя, преобразующего в цифровой вид аналоговый сигнал от микрофона); текст для перевода (также представленный серией чисел)… Ниже мы будем говорить об этом подробнее.
Желаемый выход у. Это идеальный желаемый результат для входа x.
Выход yp. Это ответ машины, который требуется (или не требуется) корректировать.
Фрэнк Розенблатт, Берни Уидроу и перцептрон
Давайте остановимся на самом простом типе машины, «линейном классификаторе», который мы рассмотрим на примере перцептрона.
Этот предок самообучающихся машин был разработан в 1957 г. американским психологом Фрэнком Розенблаттом в авиационной лаборатории Корнельского университета в Буффало (США). В те годы часть ученых в области ИИ исследовала феномен обучения, характерный для интеллекта человека и животных.
Изобретателя перцептрона вдохновили открытия в области нейробиологии своего времени. Затем психологи и биологи работали над тем, как работает мозг и как нейроны соединяются друг с другом. Они представили биологический нейрон как своего рода разветвленную звезду. Все ветви нейрона, кроме одной, образуют входы, или дендриты, которые соединяют этот нейрон с вышестоящими нейронами через контактную зону – синапс. Последняя ветвь, аксон, является единственным выходом для нижестоящих нейронов. Нейрон принимает электрические сигналы, излучаемые выше по потоку, обрабатывает их и передает, если необходимо, один сигнал ниже по потоку. Этот сигнал состоит из последовательности электрических импульсов, называемых потенциалами действия или «спайками» (от англ. spike – пик на графике), частота которых представляет собой интенсивность активности нейрона. Данная частота может быть выражена числом.
В 1943 г. два американских кибернетика и нейробиолога Уоррен Маккалок и Уолтер Питтс предложили очень упрощенную математическую модель биологического нейрона – чуть ли даже не его карикатуру, по мнению некоторых. Этот «искусственный нейрон» вычислял взвешенную сумму чисел, представляющих активность восходящих нейронов. Если эта сумма меньше определенного порога, нейрон становился неактивным. Если, наоборот, сумма выше порога, нейрон активировался и производил серию импульсов, распространяющихся вдоль его аксона в направлении нижестоящих нейронов. Частота импульсов также выражалась определенным числом.
В модели Маккаллока и Питтса выход являлся двоичным: активным или неактивным, т. е. +1 или –1. Каждый бинарный нейрон вычисляет взвешенную сумму выходов вышестоящих нейронов, с которыми он связан. Он дает на выходе +1, если сумма больше порогового значения, и –1 в противоположном случае. В нашем примере данный порог равен 0.
Это выражается следующей формулой:
s = w[0] * x[0] + w[1] * x[1], …, w[n-1] * x[n-1]
где s – взвешенная сумма, x[0], x[1], x[2],…, x[n-1] – входы, а w[0], w[1], w[2],…, w[n-1] – веса, то есть коэффициенты, входящие в взвешенную сумму. Такой набор из n чисел называется «n-мерным вектором». В векторе пронумеровано каждое число. В системе математических обозначений мы запишем эту формулу более компактно:

Такая операция между векторами называется скалярным произведением. На компьютере мы можем написать программу (на языке Python), которая выполняет следующие вычисления:
def dot(w, x):
s = 0
for i in range (len(w)):
s = s + w[i] * x[i]
return s
Данный код определяет функцию dot(w, x), аргументы которой – два вектора w и x. Функция вычисляет скалярное произведение между w и x и возвращает результат. Оператор for – это цикл, который накапливает в переменной s сумму произведений членов w и x; число итераций цикла равно размерности w и получено с помощью len(w). Последний оператор возвращает значение s вызывающей программе.
w = [–2, 3, 4]
x = [1, 0, 1]
s = dot(w, x)
Который поместит число 2 в переменную s, то есть результат будет выглядеть так:
– 2 * 1 + 3 * 0 + 4 * 1 = 2.
Поскольку порог равен 0, выход нейрона будет равен +1, если s строго больше 0, и –1, если s меньше 0 или равно 0. Небольшая программа в Python может это вычислить:
def sign(s):
if s > 0: return +1
else: return –1
def neurone(w, x):
s = dot(w, x)
return sign(s)
Функция sign, определенная выше, возвращает +1, если ее аргумент s больше 0, и –1 в противном случае.
Согласно Маккалоку и Питтсу, их бинарные нейроны выполняют логические вычисления, а мозг можно рассматривать как машину логического вывода41.
Эта гипотеза вдохновила психолога Фрэнка Розенблатта. Его перцептрон использовал бинарные пороговые нейроны Маккаллока и Питтса. Он основан на принципе передачи сигнала нейрону, который вычисляет взвешенную сумму своих входов и активируется, когда эта сумма больше 0. Но Розенблатт пошел дальше в копировании биологического нейрона. Воодушевленный идеей, что обучение изменяет синаптическую эффективность в мозге, он разработал процедуру, которая позволяет машине адаптироваться путем исправления ошибок посредством изменения весов, составляющих взвешенную сумму. Последняя мысль восходит еще к работе испанского нейроанатома Сантьяго Рамона-и-Кахала, опубликованной в конце XIX в.
Розенблатт также читал работы канадского психолога Дональда Хебба, который в 1949 г. в своей книге «Организация поведения»42 предложил идею о том, что синапс, соединяющий два нейрона, усиливается, когда эти два нейрона активируются одновременно. Гипотеза была подтверждена в 1960-х гг., а в 1970-х Эрик Кандел, изучая ставшую знаменитой аплизию, объяснил биохимические механизмы адаптации нейронов.
Перцептрон в своей простейшей форме представляет собой нейрон Маккаллока и Питтса, который обучается посредством изменения своего веса. На этапе обучения оператор показывает машине, например, изображение буквы C, и указывает ожидаемый выход: +1 для буквы C (и –1 для другой буквы). Затем машина регулирует веса входов так, чтобы ее выход приблизительно соответствовал ожидаемому. Эту процедуру необходимо было повторить с несколькими изображениями буквы C и других букв. Путем регулировки весовая конфигурация становится способной распознавать любую (или почти любую) букву C.
Чтобы убедиться в том, что машина обучена должным образом, мы тестируем ее, показывая ей изображения буквы C и изображения других букв, которые она не видела во время обучения. Если распознавание работает, то можно считать, что машина обучена и готова к практическому применению.
В 1957 г. в Буффало машина Фрэнка Розенблатта выглядела как большой металлический шкаф, из которого во все стороны торчали провода. У него была своего рода искусственная сетчатка, сеть фотоэлементов, которые принимали входное изображение, и сотни автоматизированных приводов, немного похожих на ручки регулировки громкости на усилителе, управлявших показателями весов. Каждый привод представлял собой переменный резистор, подключенный к небольшому электродвигателю. Электронная схема вычисляла взвешенную сумму напряжения входов на сетчатке, задаваемую переменными резисторами. Если эта взвешенная сумма превышала пороговое значение, загорался выходной индикатор. Если сумма не превышала пороговое значение, индикатор не загорался.
Новизна перцептрона заключалась именно в его способности к самообучению: он автоматически регулировал свои веса после демонстрации каждого нового изображения, приводя их в соответствие с желаемым выходом. На самом деле, идея корректировки параметров модели на основе данных существовала на протяжении многих веков. Инновация Розенблатта заключалась в применении этой идеи для машинного распознавания образов.
Pulsuz fraqment bitdi.
для обозначения суммы членов для всех значений индекса i от 0 до p-1: