Как учится машина. Революция в области нейронных сетей и глубокого обучения

Ян Лекун, 2019

Мы живем во время революции, еще 50 лет назад казавшейся невероятной, – революции в области умных машин, которые теперь обучаются самостоятельно, вместо того чтобы просто выполнять запрограммированные команды. И возможности таких машин огромны: распознавание изображений, лиц и голосов, переводы на сотни языков, беспилотное управление автомобилями, обнаружение опухолей на медицинских снимках и многое другое. Автор книги Ян Лекун стоит у истоков этой революции. Лауреат премии Тьюринга, профессор Нью-Йоркского университета и руководитель фундаментальными исследованиями в Facebook, он является одним из изобретателей глубокого обучения, применяемого к так называемым искусственным нейронным сетям, архитектура и функционирование которых вдохновлены устройством человеческого мозга. В своей книге он, не прибегая к метафорам, делится своим научным подходом на стыке компьютерных наук и нейробиологии, проливая свет на будущее искусственного интеллекта, связанные с ним проблемы и перспективы. Сегодня искусственный интеллект действительно меняет все наше общество. Эта понятная и доступная книга перенесет вас в самое сердце машины, открывая новый увлекательный мир, который уже является нашей реальностью.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Как учится машина. Революция в области нейронных сетей и глубокого обучения предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Глава 1

Революция в искусственном интеллекте

Искусственный интеллект проникает во все секторы экономики, связи, здравоохранения и даже транспорта — благодаря созданию беспилотных автомобилей… Многие наблюдатели говорят уже не о технологической эволюции, а о революции.

Вездесущий искусственный интеллект

«Алекса, какая погода в Буэнос-Айресе?» Менее чем за секунду «умная» акустическая система записывает вопрос, передает его через домашний Wi-Fi на серверы Amazon, которые транскрибируют и интерпретируют его. Затем они получают информацию от метеорологической службы и возвращают ответ, который Алекса озвучивает приятным голосом: «В настоящее время в Буэнос-Айресе, Аргентина, температура воздуха 22 ℃. Пасмурно».

В офисе ИИ — прилежный помощник. Он работает быстро, и его не пугают повторяющиеся задачи. Он может просмотреть миллионы записей в базе денных в поисках цитаты и найти нужную за долю секунды благодаря возможностям современных компьютеров, скорость вычислений у которых сделалась почти невероятной.

Один из первых программируемых электронных компьютеров, ENIAC, построенный в 1945 г. в Университете Пенсильвании для расчета траектории полета снарядов, выполнял приблизительно 360 умножений в секунду для десятизначных цифр. Сейчас эта машина выглядит неповоротливым доисторическим чудищем. Процессоры нынешних персональных компьютеров в миллиард раз быстрее. Они имеют производительность в сотни гигафлопс[1]. Графические процессоры, используемые нашими компьютерами для визуализации, имеют производительность в несколько десятков терафлопс. Гигантские числа с впечатляющими названиями.

Их уже не остановить! Современные суперкомпьютеры объединяют десятки тысяч этих графических процессоров и достигают скорости в сотни тысяч терафлопс, производя колоссальные объемы вычислений для всевозможных симуляций: прогнозирования погоды, моделирования климата, расчета воздушного потока вокруг самолета или конформации белка, моделирования таких головокружительных событий, как первые мгновения существования Вселенной, смерть звезды, эволюция галактик, столкновения элементарных частиц или ядерный взрыв.

Такие симуляции включают численное решение дифференциальных уравнений или уравнений в частных производных — это задача, которую в прошлом математикам приходилось решать вручную. И все же — так ли умны эти вычислительные гиганты, как математики прошлых лет? Нет, конечно… во всяком случае, пока. Одна из задач развития искусственного интеллекта заключается в том, чтобы когда-нибудь научить машины использовать их огромную вычислительную мощность для решения интеллектуальных задач, сейчас подвластных только животным и людям.

Не стоит судить только по внешности. Программы искусственного интеллекта умеют хорошо учиться, но лишь до определенного момента. В 2017 г. робот Норико Араи — специалиста Токийского университета, изучавшего влияние ИТ на общество, успешно сдал вступительный экзамен в один из японских университетов. Программа, получившая название Todai (название университета), сдала эссе, экзамены по математике и английскому языку лучше 80 % абитуриентов. Но это не значит, что система была умной: на самом деле робот вообще не понимал, что он пишет! Успех программы скорее говорит о несовершенстве как вступительных испытаний в высшие успешные заведения Японии, так и машинного интеллекта. Мы были бы рады, если, в конечном счете, Todai провалится на более продуманно организованных экзаменах.

Искусственный интеллект в искусстве

Искусственный интеллект может быть хорошим художником, точнее — копиистом. Он мастерски создает произведения «в стиле». Он способен превратить любую фотографию в картину Моне, сделать из зимнего пейзажа весенний[2] или заменить лошадь зеброй на видео. Остерегайтесь фальшивых видеороликов! Более того: в 2017 г. команда Ахмеда Эльгаммала из Университета Рутгерса (США) разработала систему, создающую картины, так похожие на оригинальные творения некоторых художников, что эксперты не могут отличить их от реальных картин тех же художников[3].

Музыка — тоже не исключение. Многие исследователи используют методы искусственного интеллекта для синтеза звука и музыкальной композиции. Так 21 марта 2019 г. в честь дня рождения Иоганна Себастьяна Баха связанный с Google[4] проект Magenta анонсировал новую систему, названную Google Doodle[5], которая позволяет любому пользователю сочинять и аранжировать мелодию в стиле известного композитора. Вспомним также, что 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 века. Это — захватывающая история, в которой я принимаю участие уже довольно давно, и которая состоит из предвидений и дискуссий, скачков вперед и периодов застоя, где между собой столкнулись ученые, верящие в машинную логику, и те, кто, опираясь на нейробиологию и кибернетику, работают, как и я, над развитием способностей машин к обучению.

Оглавление

* * *

Приведённый ознакомительный фрагмент книги Как учится машина. Революция в области нейронных сетей и глубокого обучения предоставлен нашим книжным партнёром — компанией ЛитРес.

Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других

Примечания

1

FLOPS (обозначается также как flops, flop/s, произносится по-русски как «флопс») — акроним от англ. Floating-point Operations Per Second (число операций с плавающей точкой в секунду). Представляет собой внесистемную единицу измерения производительности компьютеров. Правописание и склонение термин в русском языке еще не устоялось: иногда пишут «флоп», иногда «флопс». — Прим. ред.

2

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.

3

https://arxiv.org/abs/1706.07068.

4

https://ai.google/research/teams/brain/magenta/.

5

https://www.google.com/doodles/celebrating-johann-sebastian-bach.

6

https://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra.

7

https://fr.wikipedia.org/wiki/Algorithme_A*.

8

Alan Turing, Computing machinery and intelligence, Mind, october 1950, vol. 59, n236.

9

То же.

10

https://fr.wikipedia.org/wiki/Tri_a_bulles.

Смотрите также

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я