К книге
Мыслящие машины Дженсена Хуанга: История Nvidia и мировой ИИ-революцииЧасть I. Глава 11 AlexNet
54%
Часть I. Глава 11 AlexNet
15

Если бы Алекс Крижевский мог стать невидимкой, он бы, вероятно, так и сделал. Этот талантливый программист испытывал патологическое отвращение к вниманию. Худощавый рыжий парень неохотно о себе рассказывал даже коллегам. Поэтому его научный руководитель в аспирантуре Джеффри Хинтон мало что мог о нем рассказать, разве что сказал: «Алекс, пожалуй, лучший программист, которого я когда-либо встречал».

Хинтон познакомился с Крижевским в конце 2000-х, когда тот учился в магистратуре Университета Торонто и жил с родителями. Крижевский родился в еврейской семье в СССР, в Восточной Украине, но его семья эмигрировала в Канаду, когда Алекс был маленьким. Его родным языком был русский, но по-английски он говорил безупречно, хотя и был немногословен. Своими манерами он напоминал Хинтону опытного шпиона, который много знает, но не станет болтать, однако стоило ему открыть рот и становилось ясно, что за этим лбом кроется глубокий ум.

Однажды он без приглашения явился в кабинет к Хинтону. «Он пришел ко мне и заявил: "Я лучший студент по программной инженерии, и мне скучно, – вспоминает Хинтон. – Можно я присоединюсь к вашей группе?"» Это была дерзкая просьба: Хинтон был знаменитым ученым, посвятившим годы разработке нейронных сетей, соавтором знаковой статьи 1986 года о методе обратного распространения ошибок, который он на протяжении десятилетий пропагандировал, несмотря на непонимание и даже враждебность большинства разработчиков искусственного интеллекта.

Однако научная работа Хинтона завела его далеко от основных компьютерных исследовательских центров, таких как Стэнфорд и MIT. Заснеженный Торонто сложно было назвать столицей инноваций. Исследования Хинтона имели весьма ограниченное финансирование. Прежде чем взять Крижевского в ученики, он честно предупредил его, что в научном сообществе идея разработки нейронных сетей непопулярна. И хотя группа Хинтона добивалась результатов, не уступающих результатам, получаемым традиционными методами, статьи о ее исследованиях регулярно отказывались публиковать. «Нейронные сети считались бессмыслицей», – констатирует он.

Хинтон считает, что предубеждение против нейронных сетей носило «идеологический» характер. Это слово он произносит с той же ядовитой интонацией, с какой Хуанг говорит слово «политический». А общепринятая идеология на тот момент заключалась в том, что просто создать полезный ИИ недостаточно, он должен каким-то образом раскрыть секреты разума и превратить их в математический код. Стандартный 1100-страничный учебник по ИИ представлял собой обзор вероятностного вывода, деревьев решений и метода опорных векторов. Нейронным сетям отводилось 10 страниц с кратким обсуждением игры в нарды в начале. Когда коллега Хинтона разработал нейронную сеть, превзошедшую лучшие программы распознавания пешеходов, его статью даже не приняли для обсуждения на конференции. «Реакция была такой: это не считается, потому что не объясняет, как производятся вычисления, так что здесь нет ничего полезного», – рассказывает Хинтон.

Хинтон возражал, что математически описать, как в человеческом мозге формируется речь, тоже невозможно, но его никто не слушал. ИИ-сообщество не желало имитировать разум – оно хотело разгадать его. Хинтон считал попытки разгадать, как мыслит мозг, абсурдными, сравнивая их с попытками разгадать, как функционирует почка, но и этот довод не находил понимания. Чтобы как-то замаскировать свою деятельность и получить финансирование, он и другие исследователи нейронных сетей вынуждены были называть свою работу «машинное обучение» или «глубокое обучение» – чем угодно, только не разработкой ИИ.

Крижевский, не испугавшись трудностей, присоединился к группе Хинтона. Хинтон познакомил его с Ильей Суцкевером, еще одним русскоговорящим еврейским иммигрантом родом из Советского Союза. Несмотря на схожие биографии, Суцкевер и Крижевский были абсолютно непохожи. Суцкевер был спортивным молодым человеком с темными густыми бровями, выразительными карими глазами и лукавой улыбкой. Будучи ярым последователем Хинтона, Суцкевер утверждал, что нейронные сети однажды превзойдут человеческий интеллект, – предсказывать подобное в то время не решался сам Хинтон. «Илья любит шокировать, но ему это сходит с рук, потому что он открытый и честный, – говорит Хинтон. – Ему наплевать на условности. Он верит в себя. И он прав».

Хинтон дал Суцкеверу и Крижевскому амбициозное задание: научить компьютер видеть с помощью графических процессоров Nvidia. CUDA уже применялась в лаборатории Хинтона. В 2008 году он поручил аспирантам Абдельрахману Мохамеду и Джорджу Далю создать модуль распознавания речи с использованием дорогостоящего сервера Nvidia. К началу 2009 года нейронная сеть Мохамеда и Даля не уступала лучшим существующим математическим моделям. Хинтон был поражен. В том же году, выступая на конференции, посвященной нейронным информационным системам, он заявил коллегам, что будущее ИИ за нейронными сетями, работающими на базе процессоров, производящих параллельные вычисления, так что им стоит бросить все, чем они занимаются, и приобрести графические процессоры Nvidia. После выступления Хинтон отправил в Nvidia электронное письмо: «Я только что посоветовал тысяче экспертов по машинному обучению купить ваши видеокарты. Может, вы предоставите мне одну бесплатно?»

Nvidia отказала. Хотя компания работала над множеством приложений для суперкомпьютеров, она не занималась разработкой ИИ. Более того, «машинного обучения» даже не было в списке потенциальных сфер применения параллельных вычислений, предложенном Кирком в его учебнике. Иногда группа CUDA даже не отвечала Хинтону на его письма. Предубеждение против нейронных сетей было весьма стойким. На вводных курсах по ИИ все еще можно было услышать утверждение, что нейронные сети неспособны выполнять даже простые логические функции, хотя этот вопрос был решен при помощи метода обратного распространения ошибки десятилетия назад.

Хинтон понимал, что единственный способ привлечь внимание Nvidia – не просто сравняться с конкурентами, а превзойти их. Крижевский и Суцкевер казались наиболее подходящими специалистами в его группе для достижения этой цели. У этих двоих было много общего, хотя Суцкевер не считал Крижевского другом в буквальном смысле: Крижевский был слишком замкнутым человеком. Но они были настроены на одну волну, и даже Хинтон иногда с трудом их понимал. Бывало так, что Хинтон задавал вопрос, они обсуждали его на русском, а затем выдавали ответ, который неизменно оказывался точным.

Хинтон поручил Крижевскому и Суцкеверу создать систему распознавания изображений на основе сверточной нейронной сети, использующей математические фильтры для выделения ключевых деталей на снимках. Он призывал их мыслить масштабно: ему нужна была не просто победа, а триумф. Крижевский, не имевший подобного опыта работы, очень быстро освоил методы параллельного программирования: его мозг моментально усвоил концепцию «поездки в Starbucks из всех точек сразу». «Он лучше всех умел заставить графический процессор строить сверточные нейросети, – говорит Хинтон. – Он просто волшебник».

К началу 2012 года Крижевский адаптировал классическую учебную модель распознавания изображений для платформы CUDA. Графическому процессору понадобилось всего 30 секунд на ее обучение. Когда Крижевский показал результат Суцкеверу, тот не мог сдержать восторг: скорость вычислений была невероятной, в сотни раз больше, чем все, с чем он сталкивался ранее. Суцкевер изначально верил в потенциал нейросетей. Он считал, что они – самый очевидный способ функционирования искусственного интеллекта. «Если допустить, что искусственный нейрон подобен биологическому, то ИИ должен уметь все, что умеем мы, – говорит Суцкевер. – А если выяснится, что нейроны можно ускорять, то получается, что мы обучаем искусственный мозг».

Прежде этот подход всегда упирался в аппаратные возможности, но графический процессор был способен всего за полминуты сделать то, на что машине с процессором Intel потребовался бы час, а природе – сотни тысяч лет. Суцкевер сразу понял, что необходимо использовать все доступные вычислительные мощности, чтобы ускорить эту синтетическую эволюцию. Это понимание сыграло существенную роль в развитии технологии. «Илья обладает способностью на лету схватывать то, к чему другие приходят постепенно», – замечает Хинтон.

Двое аспирантов скинулись, чтобы собрать самый мощный компьютер, какой могли себе позволить. Средств у них было немного: они смогли приобрести лишь два графических процессора GeForce GTX 580 примерно по 500 долларов каждый. Вожделенные GeForce походили на реквизит фильма «Чужой»: каждая видеокарта, весящая около полутора килограммов, была помещена в черный корпус с зеленой отделкой и с круглым отверстием для мощного вентилятора, охлаждавшего процессор. Под корпусом на черной плате в окружении радиаторов скрывалась огромная микросхема Nvidia с 3 миллиардами транзисторов, сгруппированных в 32 параллельных ядра. Именно такая мощь была нужна Крижевскому. Это была та самая армия мотоциклистов, кухонный комбайн, толпа танцующих транзисторов.

Крижевский установил оба графических процессора в системный блок в своей спальне и загрузил их задачами на неделю. («На самом деле немалые счета за электричество оплачивали его родители», – замечает Хинтон.) Наконец-то появился тот самый потребитель, о котором мечтал Хуанг: программист, настолько ограниченный в финансах, что вынужден проводить свои эксперименты на перепрофилированном графическом ускорителе. Странный одиночка, о котором даже коллеги знали немногое. Настоящий безумный ученый. Иконоборец. Человек, которому было суждено создать для CUDA поистине революционное приложение.

Для обучения своей нейросети Крижевский использовал базу данных ImageNet, созданную преподавательницей информатики из Стэнфорда Фэй Фэй Ли. Недовольная ограниченностью общедоступных баз данных, Ли разработала свой собственный подход, наняв работников Amazon Mechanical Turk, чтобы они вручную отобрали более 15 миллионов изображений в 22 000 категорий. База ImageNet была в сотни раз больше любой аналогичной, и хотя научные консультанты Ли сомневались в целесообразности такого огромного труда, это было именно то, что нужно Крижевскому. Его сеть состояла примерно из 650 000 нейронов, что сопоставимо с нервной системой пчелы. Для обучения столь масштабной нейросети требовался огромный объем данных.

Сначала нейроны в сети Крижевского были соединены в случайном порядке, но по мере обучения они образовывали сложный и строго упорядоченный узор. В течение наносекунд сеть обрабатывала случайно выбранное изображение и пыталась отнести его к одной из тысяч категорий. Это мог быть скат, шотландский терьер или гольф-кар. Сеть никогда прежде не работала с этими изображениями, поэтому при определении категории она могла только делать предположения – и чаще всего ошибалась. Однако даже подобная ошибка позволяла сети определить, чем это изображение не является (например, что это точно не скат).

Сеть обрабатывала информацию, перенастраивая связи между нейронами методом обратного распространения ошибки, предложенным Хинтоном. Это была самая сложная часть процесса, так как для нее требовалось многократное повторение операции умножения матриц, которую ученые сравнивали со сборкой невообразимо большого кубика Рубика. Более ранние попытки обучения нейронных сетей часто терпели крах именно на этом этапе, но у Крижевского была CUDA и мощь архитектуры параллельных вычислений GeForce. Как только все математические расчеты завершались (за мельчайшую долю секунды), сеть приступала к обработке следующего изображения, а их были тысячи, а потом и миллионы.

Чтобы «видеть», нейросеть не нуждалась в освещении. Вместо него был поток чисел, представляющих расположение и цвета определенного набора пикселей. Затем она корректировала значения в числовых матрицах – тех самых синаптических весах, – которые отвечали за разные уровни интерпретации данных. Из-за этого некоторые скептики утверждали, что нейронная сеть всего лишь выполняет математические операции, но с таким же успехом можно говорить, что человеческая сетчатка всего лишь взаимодействует с фотонами света.

Допустим, в течение нескольких минут обучения сеть Крижевского совершенно случайно правильно идентифицировала первое изображение – например, цветочный горшок. Этот маленький успех вызывал бурный процесс умножения матриц: схема обратного распространения стремилась сообщить нейронам, что именно отличает «цветочный горшок» от «шимпанзе», «бильярдного стола» или «самосвала». Это давало минимальный выигрыш: вероятно, сеть приняла бы за цветочный горшок и мусорное ведро. Но если она сталкивалась с предметом совершенно иной формы – скажем, с акулой, – она уже могла увидеть различие.

Этот процесс повторялся миллионы раз в секунду, превращая комнату Крижевского в арену гиперскоростной эволюции. Процесс обучения нейросети был сродни чуду. В сети Крижевского было несколько «слоев», каждый из которых постепенно учился различать разные аспекты данных. Один слой улавливал форму, другой – цвет, третий – симметрию, и все эти слои связывались причудливыми информационными каналами, образуя гармоничное целое. При появлении нового изображения – стрекозы, песочных часов, мангуста, контейнеровоза, дирижабля или трости – информационные потоки формировали все более точное отражение реальности.

Вентиляторы охлаждения на блоках GeForce работали постоянно, создавая шум около 44 децибел. Этот гул не то чтобы был оглушительным, но тем не менее не давал Крижевскому спать по ночам. Успешность идентификации изображений росла с 0 до 1%, затем до 10%, до 40%, до 60% – и наконец стабилизировалась на уровне 80%. Завершившая обучение сеть имела слабые места, особенно в распознавании человеческих инструментов – например, никак не могла отличить лопатку от топорика. Крижевский мог бы еще поработать над улучшением, но этот результат уже превосходил все прочие методы распознавания, точность которых была не более 70%.

В Стэнфорде группа ImageNet под руководством Ли проводила ежегодные соревнования по распознаванию изображений искусственным интеллектом. Для проверки работоспособности своей модели Крижевский протестировал ее на данных прошлого года, с которыми его сеть никогда не сталкивалась. Она легко побила все рекорды.

В мире машинного обучения такая работа с размеченными наборами данных называлась «обучение с учителем» (supervised learning), поэтому Крижевский назвал свою нейросеть SuperVision. Хинтон и Суцкевер были потрясены результатами его работы. «Появились графические процессоры, и произошло чудо», – с восторгом говорит Суцкевер даже спустя 10 лет. В оптимальных условиях две карты GeForce могли выполнять суммарно 3 триллиона операций в секунду, то есть 10 квадриллионов операций менее чем за неделю. Человеку на выполнение такой задачи потребовалось бы 9 миллиардов лет, а теперь все это было закодировано в хрупком синтетическом мозге SuperVision. «Без CUDA заниматься машинным обучением было бы непомерно сложно», – утверждает Хинтон.

Крижевский решил представить SuperVision миру в 2012 году на очередном конкурсе ImageNet. Хинтон и Суцкевер сгорали от нетерпения. «Мы знали, что победим», – говорит Хинтон. Они первыми испытали восторг и гордость от причастности к пока никому не известной ИИ-технологии, которая должна была изменить мир. Представляя возможные области применения SuperVision, они обсуждали автономных роботов, беспилотные автомобили и самопрограммирующиеся компьютеры. Для этих троих – по крайней мере тогда – ИИ был исключительно благим порождением прогресса.

Исследователи из Торонто также осознали еще одну важную вещь: если SuperVision получила преимущество благодаря Nvidia, то и Nvidia может получить преимущество от SuperVision, поскольку потребность нейросетей в росте мощности параллельных вычислений казалась бесконечной. «Еще до подачи заявки мы поняли, что в будущем значительную часть научных расчетов будет составлять машинное обучение», – говорит Хинтон.

Когда Фэй Фэй Ли впервые увидела результаты SuperVision, она не поверила своим глазам. Ее конкурс задумывался как способ доказать научным руководителям ценность ее работы, но в 2010 году в нем было 35 участников, в 2011-м – 15, а в 2012 году – всего семь. Будущее конкурса оказалось под вопросом. Тем удивительнее был тот факт, что один из этих семи продемонстрировал показатель распознавания выше 80% – на 10% больше существующего рекорда в области, где прогресс традиционно измерялся долями процента. А еще удивительнее было то, что победила нейронная сеть – технология, которую Ли считала пережитком прошлого. «Представьте, что вам сказали, что рекорд скорости для наземных транспортных средств побила " Хонда-Цивик", причем сразу на 100 миль в час», – пишет Ли в автобиографии.

Ли родилась в Китае и была единственным ребенком в семье. Ее родители переехали в Нью-Джерси, когда она была подростком. Этот период оказался для нее непростым: мечтательная девочка изо всех сил старалась влиться в круг старшеклассников и при этом была вынуждена работать, чтобы помочь семье свести концы с концами. Ей повезло с учителем математики, который заметил ее способности, и благодаря его помощи Фэй Фэй получила стипендию в Принстонском университете. В качестве основного предмета она сначала выбрала физику, а затем переключилась на электронику, мечтая научить машину «видеть».

И вот теперь, столкнувшись с чудом – машиной, которая действительно была способна «видеть», – Ли не могла поверить в реальность происходящего. Она попросила свою команду перепроверить данные. «Я разговаривал с человеком, который обрабатывал результаты, и он тоже сначала был уверен, что это ошибка», – рассказывает Хинтон. Ли продолжала сомневаться и обратилась к своему научному руководителю. Тот написал Хинтону электронное письмо, спрашивая, уверены ли они на все сто в правильности результатов. «Мы перепроверяли несколько раз, прежде чем он признал, что данные верны», – вспоминает Хинтон.

Постепенно до Ли начало доходить, что ее угасающий конкурс ИИ только что открыл настоящее сокровище. Официальные результаты ImageNet опубликовали в октябре 2012 года. В том же месяце разработчики должны были представить свои модели на научной конференции во Флоренции. У Ли только что родился первенец, и она не собиралась ехать в Италию, но, увидев результаты SuperVision, изменила свое решение. Ей нужно было лично встретиться с гением, придумавшим эту технологию.

Фэй Фэй Ли прилетела во Флоренцию, но Алекс Крижевский не отвечал на ее сообщения. Она начала сомневаться, приедет ли он вообще. Может, он передумал? Или заблудился в галерее Уффици? Однако утром в день конференции Крижевский неожиданно появился. Ли была поражена: неужели этот похожий на подростка лохматый парень в широченной толстовке и черных очках действительно создатель SuperVision? Они обменялись неловкими приветствиями. Ли была очень рада, что главный докладчик наконец-то объявился, но все-таки упрекнула его в том, что он не выходил на связь. Крижевский мямлил, извиняясь.

В тот день выступление Алекса Крижевского было последним. Качество его презентации совершенно не соответствовало значимости сделанных им открытий. В самом начале его голос неожиданно сорвался на высокий гнусавый тон. Он нервно кашлянул и смущенно опустил взгляд, затем быстро пролистал серию черно-белых слайдов, не поднимая глаз. На одном из слайдов перечислялись впечатляющие характеристики SuperVision: 650 000 нейронов, 60 миллионов параметров и 630 миллионов соединений. «Вообще-то я обучал ее у себя в спальне, – сообщил Крижевский аудитории. – Для станции, которую можно обучить дома, она довольно большая».

Доклад Крижевского не произвел фурора: ничто не указывало на то, что он сейчас рассказал об открытии огромной значимости. «Ну вот, – сказал он. – Это все». После этого его завалили на удивление жесткими вопросами. Впрочем, враждебность аудитории можно было понять: то, что сделал Крижевский, абсолютно не вписывалось в общепринятые теории. По сути, он заявил собравшимся, что до сих пор они занимались ерундой и десятилетия их исследований ничего не стоят. Он мог хотя бы представить свои открытия более уважительно! После нескольких мучительных минут Ли прервала поток вопросов, так как в них не было ничего конструктивного: участники конференции просто выплескивали на этого странного юношу свое негодование.

Несмотря на прием, оказанный Крижевскому во Флоренции, ИИ-сообщество встретило результаты SuperVision с энтузиазмом. «Многие ведущие исследователи практически сразу оценили ее возможности и признали: нейронные сети действительно работают», – говорит Хинтон. В 2013 году конкурс ImageNet был буквально завален заявками участников, работающих с нейронными сетями, а в 2014 году все участники – а их было больше сорока – применяли их. Научная статья о сети SuperVision, подписанная Крижевским, Суцкевером и Хинтоном, стала одним из самых значимых прорывов в истории вычислительной техники и к настоящему времени процитирована уже более 150 000 раз. Крижевский разработал несколько ключевых методов программирования, но основным его открытием оказалось то, что графический процессор может обучать нейронные сети в сотни раз быстрее, чем центральный.

Компания Google поручила одному из своих сотрудников, поляку Войцеху Зарембе, воспроизвести SuperVision. Вскоре его сеть, названная WojNet, стала популярной в среде компьютерщиков, и Хинтон испугался, что открытие скромного Крижевского не получит заслуженного признания. Он предложил Крижевскому переименовать SuperVision, использовав в названии его имя, чтобы подчеркнуть его вклад. Крижевский не считал это необходимым, но все же согласился («Алекс не особо интересуется такими вещами, как брендинг», – замечает Хинтон). С тех пор сеть известна как AlexNet.

Хинтон волновался зря. Крупные технологические компании начали проявлять огромный интерес к малоизвестному факультету компьютерных наук Университета Торонто, и поиски финансирования остались позади. Команда AlexNet получила множество предложений о сотрудничестве и о покупке их технологии. По настоянию Суцкевера Хинтон учредил стартап под названием DNNResearch, в котором каждый из троицы – Хинтон, Крижевский и Суцкевер – получил треть акций. У DNNResearch не было ни клиентов, ни совета директоров, ни доходов, ни веб-сайта, только интеллектуальная мощь троих ученых.

Этого было вполне достаточно. В декабре 2012 года, находясь на научной конференции, Хинтон организовал по электронной почте аукцион по продаже этой «компании». Команда AlexNet, расположившаяся в номере на седьмом этаже отеля в Лейк-Тахо, осознавала, что вот-вот разбогатеет. Microsoft и лондонский ИИ-стартап DeepMind сделали первоначальные предложения, но вскоре выбыли из борьбы. Главное соперничество развернулось между Google и китайским технологическим гигантом Baidu. Ставки быстро перевалили за 20 миллионов долларов, а трое исследователей бродили по гостиничному номеру, иногда подходя к окну, чтобы полюбоваться заснеженными лесистыми склонами Сьерра-Невады.

Когда Google предложила 44 миллиона, Хинтон с согласия Суцкевера и Крижевского принял предложение и закрыл аукцион. Им казалось, что Google более подходящий партнер, чем китайская компания. Теперь нейронная сеть AlexNet, которую Крижевский обучал у себя в спальне, могла быть поставлена в один ряд с самолетом братьев Райт и лампочкой Эдисона. «Это было как Большой взрыв, – вспоминает Хинтон. – Настоящая революция».

Предыдущая главаГлава 15 из 28Следующая глава