Читать онлайн Идиот или гений? Как работает и на что способен искусственный интеллект бесплатно

Мелани Митчелл
Идиот или гений? Как работает и на что способен искусственный интеллект

Посвящается моим родителям, которые научили меня быть думающим человеком и много чему еще

MELANIE MITCHELL

ARTIFICIAL INTELLIGENCE

A GUIDE FOR THINKING HUMANS


© Melanie Mitchell, 2019

© З. Мамедьяров, перевод на русский язык, 2022

© ООО “Издательство АСТ”, 2022

Издательство CORPUS ®


Книжные проекты Дмитрия Зимина

Эта книга издана в рамках программы “Книжные проекты Дмитрия Зимина” и продолжает серию “Библиотека фонда «Династия»”. Дмитрий Борисович Зимин – основатель компании “Вымпелком” (Beeline), фонда некоммерческих программ “Династия” и фонда “Московское время”.

Программа “Книжные проекты Дмитрия Зимина” объединяет три проекта, хорошо знакомых читательской аудитории: издание научно-популярных книг “Библиотека фонда «Династия»”, издательское направление фонда “Московское время” и премию в области русскоязычной научно-популярной литературы “Просветитель”.

Подробную информацию о “Книжных проектах Дмитрия Зимина” вы найдете на сайте ziminbookprojects.ru

Пролог
Испуганные

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

Найти само здание Google Maps оказалось несложно. У двери стояла машина Google Street View, на крыше которой громоздилась установка с камерой, похожей на черно-красный футбольный мяч. Оказавшись внутри и получив у охраны хорошо заметный гостевой пропуск, я растерялась и заблудилась в лабиринтах кабинок, занятых стайками работников Google, которые, надев наушники, сосредоточенно стучали по клавишам компьютеров Apple. В конце концов мои бессистемные поиски (в отсутствие плана здания) увенчались успехом: я нашла нужную переговорную и присоединилась к собравшимся на целый день.

Эту встречу в мае 2014 года организовал Блез Агуэра-и-Аркас, молодой специалист по компьютерным технологиям, который недавно ушел с высокой должности в Microsoft, чтобы возглавить разработку машинного интеллекта в Google. В 1998 году компания Google начала с одного “продукта” – веб-сайта, на котором использовался новый, исключительно успешный метод поиска в интернете. С годами Google превратилась в главную технологическую компанию мира и теперь предлагает широкий спектр продуктов и услуг, включая Gmail, “Google Документы”, “Google Переводчик”, YouTube, Android и множество других, которыми вы пользуетесь каждый день, и таких, о которых вы, может, и не слышали вовсе.

Основатели Google, Ларри Пейдж и Сергей Брин, долгое время лелеяли мысль о создании искусственного компьютерного интеллекта, и эта сверхзадача предопределила одно из главных направлений деятельности Google. За последние десять лет компания наняла множество специалистов в области искусственного интеллекта, включая знаменитого изобретателя и противоречивого футуролога Рэя Курцвейла, который утверждает, что в ближайшем будущем наступит технологическая сингулярность, то есть момент, когда компьютеры станут умнее людей. Курцвейла наняли в Google, чтобы он помог воплотить эту идею в жизнь. В 2011 году внутри Google создали группу исследования ИИ, которую назвали Google Brain, а после этого компания приобрела впечатляющее количество ИИ-стартапов со столь же многообещающими названиями, среди которых Applied Semantics, DeepMind и Vision Factory.

Иными словами, Google уже нельзя назвать просто поисковым сервисом – даже с натяжкой. Google быстро превращается в компанию прикладного ИИ. Именно искусственный интеллект, подобно клею, связывает различные продукты, услуги и смелые исследования Google и его головной организации, Alphabet. Идеальная цель компании отражена в оригинальной концепции входящей в ее состав группы DeepMind: “Постичь интеллект и использовать его, чтобы постичь все остальное”[1].

ИИ и “ГЭБ”

Устроенной в Google встречи по вопросам ИИ я ждала с нетерпением. Я начала работать с различными аспектами ИИ еще в аспирантуре, в 1980-х годах, а достижения Google меня восхищали. У меня также был целый ряд неплохих идей, которыми я хотела поделиться. Но я должна признать, что встречу собрали не ради меня. Ее организовали, чтобы лучшие исследователи ИИ из Google смогли побеседовать с Дугласом Хофштадтером, легендой ИИ и автором знаменитой книги с загадочным названием “Гёдель, Эшер, Бах: эта бесконечная гирлянда”, или коротко: “ГЭБ”. Если вы специалист в области компьютерных наук или просто увлекаетесь компьютерами, вероятно, вы слышали об этой книге, читали ее или пытались прочесть.

В написанной в 1970-х “ГЭБ” нашли отражение многие интеллектуальные увлечения Хофштадтера: обращаясь к математике, искусству, музыке, языку, юмору и игре слов, он поднимает глубокие вопросы о том, как разум, сознание и самосознание, неотъемлемо присущие каждому человеку, возникают в неразумной и бессознательной среде биологических клеток. В книге также рассматривается, как компьютеры в итоге смогут обрести разум и самосознание. Это уникальная книга – я не знаю ни одной другой, которая могла бы с ней сравниться. Вчитаться в нее нелегко, но она тем не менее стала бестселлером и принесла своему автору Пулитцеровскую премию и Национальную книжную премию. Несомненно, “ГЭБ” вдохновила заняться ИИ больше молодежи, чем любая другая книга. Среди этой молодежи была и я.

В начале 1980-х годов, окончив колледж, где я изучала математику, я обосновалась в Нью-Йорке, устроилась работать учителем и готовила подростков к поступлению в колледж. Я была несчастна и пыталась понять, чем мне на самом деле хочется заняться в жизни. Прочитав восторженный отзыв в журнале Scientific American, я узнала о “ГЭБ” и незамедлительно купила книгу. Следующие несколько недель я читала ее, все больше убеждаясь, что хочу не просто стать специалистом по ИИ, но и работать с Дугласом Хофштадтером. Никогда прежде я не приходила в такой восторг от книги и не чувствовала такой уверенности в выборе профессии.

В то время Хофштадтер преподавал информатику в Индианском университете. У меня родился отчаянный план подать документы на поступление в аспирантуру по информатике, приехать и убедить Хофштадтера принять меня на программу. Была лишь одна загвоздка: я никогда не изучала информатику. Я выросла в окружении компьютеров, потому что в 1960-х мой отец работал специалистом по ЭВМ в технологическом стартапе, а в свободное время собирал мейнфрейм в домашнем кабинете. На машине Sigma 2, размером с холодильник, красовался значок “Я молюсь на фортране” – и я почти не сомневалась, что в ночи, когда все засыпают, компьютер и правда тихонько читает молитвы. Мое детство пришлось на 1960-е и 1970-е, а потому я постигла азы популярных в то время языков – сначала фортрана, а затем бейсика и паскаля, – но почти ничего не знала о методах программирования, не говоря уже о многих других вещах, которые должен знать человек, решивший поступить в аспирантуру по информатике.

Чтобы ускорить свое продвижение к цели, в конце учебного года я уволилась с работы, переехала в Бостон и стала изучать основы информатики, готовясь сменить карьеру. Через несколько месяцев после начала новой жизни я пришла на занятие в Массачусетский технологический институт (MIT) и заметила объявление о лекции Дугласа Хофштадтера, которая должна была два дня спустя состояться в том же кампусе. Я прослушала лекцию, дождалась своей очереди в толпе почитателей и сумела поговорить с Хофштадтером. Оказалось, что он приехал в MIT в разгар годичного академического отпуска, по окончании которого планировал перейти из Индианского университета в Мичиганский университет в Энн-Арбор.

Если не вдаваться в детали, я проявила настойчивость и убедила Хофштадтера взять меня на должность лаборанта – сначала на лето, а затем на оставшиеся шесть лет учебы в аспирантуре, после чего получила докторскую степень по информатике в Мичиганском университете. Мы с Хофштадтером продолжили тесно общаться, часто обсуждая ИИ. Он знал, что я интересуюсь исследованиями ИИ, которые проводятся в Google, и любезно предложил мне присоединиться к нему на встрече.

Шахматы и первое зерно сомнения

В переговорной, которую я так долго искала, собралось около двадцати человек (не считая нас с Дугласом Хофштадтером). Все они работали инженерами в Google и занимались исследованиями ИИ в составе разных команд. В начале встречи все по очереди представились. Несколько человек отметили, что занялись ИИ, потому что в юности прочитали “ГЭБ”. Им всем не терпелось услышать, что легендарный Хофштадтер скажет об ИИ. Затем Хофштадтер поднялся и взял слово. “Я хочу сказать несколько слов об исследованиях ИИ в целом и работе Google в частности, – начал он, преисполненный энтузиазма: – Я напуган. Очень напуган”.

Хофштадтер продолжил свое выступление[2]. Он рассказал, что в 1970-х, когда он приступил к работе над ИИ, все это казалось интересным, но таким далеким от жизни, что не было “ни опасности на горизонте, ни чувства, что все это происходит на самом деле”. Создание машин с человекоподобным интеллектом сулило чудесные интеллектуальные приключения в рамках долгосрочного исследовательского проекта, до воплощения которого, как говорили, оставалась по меньшей мере “сотня Нобелевских премий”[3]. Хофштадтер полагал, что теоретически ИИ возможен: “Нашими «врагами» были люди вроде Джона Сёрла, Хьюберта Дрейфуса и других скептиков, которые утверждали, что ИИ невозможен. Они не понимали, что мозг – это кусок вещества, которое подчиняется законам физики, а компьютер может моделировать что угодно… уровень нейронов, нейротрансмиттеров и так далее. Все это возможно в теории”. Идеи Хофштадтера о моделировании интеллекта на разных уровнях – от нейронов до сознания – подробно разбирались в “ГЭБ” и десятилетиями лежали в основе его собственных исследований. Но до недавних пор Хофштадтеру казалось, что на практике общий ИИ “человеческого уровня” не успеет появиться при его жизни (и даже при жизни его детей), поэтому он не слишком об этом беспокоился.

В конце “ГЭБ” Хофштадтер перечислил “Десять вопросов и возможных ответов” об искусственном интеллекте. Вот один из них: “Будут ли такие шахматные программы, которые смогут выигрывать у кого угодно?” Хофштадтер предположил, что таких программ не будет. “Могут быть созданы программы, которые смогут обыгрывать кого угодно, но они не будут исключительно шахматными программами. Они будут программами общего разума”[4].

На встрече в Google в 2014 году Хофштадтер признал, что был “в корне неправ”. Стремительное совершенствование шахматных программ в 1980-х и 1990-х годах посеяло первое зерно сомнения в его представления о краткосрочных перспективах ИИ. Хотя в 1957 году пионер ИИ Герберт Саймон предсказал, что компьютерная программа станет чемпионом мира “не позднее, чем через десять лет”, в середине 1970-х, когда Хофштадтер писал “ГЭБ”, лучшие компьютерные шахматные программы играли лишь на уровне хорошего (но не блестящего) любителя. Хофштадтер подружился с шахматным энтузиастом и профессором психологии Элиотом Хёрстом, который много писал об отличиях выдающихся шахматистов от шахматных программ. Эксперименты показали, что шахматисты обычно выбирают ход, быстро узнавая комбинацию на доске, а не перебирая все возможные варианты методом “грубой силы”, как делают компьютерные программы. В ходе партии лучшие шахматисты считают комбинацию фигур определенным “положением”, которое требует определенной “стратегии”. Иными словами, шахматисты быстро распознают конкретные комбинации и стратегии как элементы концепций более высокого уровня. Хёрст утверждал, что в отсутствие такой способности узнавать комбинации и распознавать абстрактные концепции шахматные программы никогда не смогут достигнуть уровня лучших шахматистов. Аргументы Хёрста казались Хофштадтеру убедительными.

Тем не менее в 1980-х и 1990-х годах компьютерные шахматные программы совершили резкий скачок в развитии, в основном за счет стремительного повышения быстродействия компьютеров. Лучшие программы по-прежнему играли не по-человечески: чтобы выбрать ход, они заглядывали далеко вперед. К середине 1990-х годов компьютер Deep Blue, разработанный компанией IBM специально для игры в шахматы, достиг уровня гроссмейстера. В 1997 году программа нанесла поражение действующему на тот момент чемпиону мира Гарри Каспарову в матче из шести партий. Искусство шахмат, которое еще недавно казалось вершиной человеческого разума, пало под натиском “грубой силы”.

Музыка – бастион человечности

Хотя победа Deep Blue подтолкнула прессу к спекуляциям о начале эпохи разумных машин, “настоящий” ИИ все еще казался делом далекого будущего. Deep Blue умел играть в шахматы, но не умел ничего другого. Хофштадтер ошибся насчет шахмат, но не отказывался от других возможных ответов на вопросы об искусственном интеллекте, заданные в “ГЭБ”, и особенно на первый в списке:

Вопрос: Будет ли компьютер когда-нибудь сочинять прекрасную музыку?

Возможный ответ: Да, но не скоро.

Хофштадтер продолжил:

Музыка – это язык эмоций, и до тех пор, пока компьютеры не испытают сложных эмоций, подобных человеческим, они не смогут создать ничего прекрасного. Они смогут создавать “подделки” – поверхностные формальные имитации чужой музыки. Однако несмотря на то, что можно подумать априори, музыка – это нечто большее, чем набор синтаксических правил… Я слышал мнение, что вскоре мы сможем управлять перепрограммированной дешевой машинкой массового производства, которая, стоя у нас на столе, будет выдавать из своих стерильных внутренностей произведения, которые могли бы быть написаны Шопеном или Бахом, живи они подольше. Я считаю, что это гротескная и бессовестная недооценка глубины человеческого разума[5].

Хофштадтер называл этот ответ “одним из самых важных элементов «ГЭБ»” и готов был “поставить на него собственную жизнь”.

В середине 1990-х уверенность Хофштадтера в оценках ИИ снова пошатнулась – и довольно сильно, – когда он познакомился с программой, написанной музыкантом Дэвидом Коупом. Программа называлась Experiments in Musical Intelligence (“Эксперименты с музыкальным интеллектом”), или ЭМИ. Композитор и профессор музыки Коуп создал ЭМИ, чтобы она облегчила ему процесс сочинения музыки, автоматически генерируя пьесы в его характерном стиле. Но прославилась ЭМИ созданием пьес в стиле композиторов-классиков, например Баха и Шопена. ЭМИ сочиняет музыку, следуя большому набору правил, разработанных Коупом и определяющих общий синтаксис композиции. При создании новой пьесы “в стиле” конкретного композитора эти правила применяются к многочисленным примерам из его творчества.

На встрече в Google Хофштадтер восхищенно рассказывал о своем знакомстве с ЭМИ:

Я сел за фортепиано и сыграл одну из мазурок ЭМИ “в стиле Шопена”. Она звучала не совсем так, как музыка Шопена, но в достаточной степени напоминала его творчество и была достаточно складной, чтобы я ощутил глубокое беспокойство.

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

Затем Хофштадтер вспомнил лекцию, которую читал в престижной Истменской школе музыки в Рочестере, в штате Нью-Йорк. Описав ЭМИ, он предложил слушателям, среди которых было несколько преподавателей композиции и теории музыки, угадать, какое из произведений, исполняемых пианистом, было (малоизвестной) мазуркой Шопена, а какое – сочинением ЭМИ. Впоследствии один из слушателей вспоминал: “Первая мазурка была изящна и очаровательна, но ей не хватало изобретательности и плавности «настоящего Шопена»… Вторая явно принадлежала Шопену – ее отличали лиричная мелодия, широкие и изящные хроматические модуляции, а также естественная и гармоничная форма”[6]. Многие преподаватели согласились с такой оценкой и шокировали Хофштадтера, проголосовав за то, что ЭМИ написала первую пьесу, а Шопен – вторую. На самом деле все было наоборот.

В переговорной Google Хофштадтер сделал паузу и вгляделся в наши лица. Все молчали. Наконец он продолжил: “Я испугался ЭМИ. Действительно испугался. Я возненавидел ее и узрел в ней серьезную угрозу. Она грозила уничтожить все то, что я особенно ценил в человечестве. Думаю, ЭМИ стала ярчайшим воплощением моих опасений, связанных с искусственным интеллектом”.

Google и сингулярность

Затем Хофштадтер заговорил о своем неоднозначном отношении к исследованиям ИИ, проводимым в Google, где занимались беспилотными автомобилями, распознаванием речи, пониманием естественного языка, машинным переводом, компьютерно-генерируемым искусством, сочинением музыки и многим другим. Тревоги Хофштадтера подкреплялись верой Google в Рэя Курцвейла и его представление о сингулярности, в которой ИИ, имея способность самостоятельно учиться и совершенствоваться, быстро достигнет человеческого уровня разумности, а затем и превзойдет его. Казалось, Google делает все возможное, чтобы ускорить этот процесс. Хотя Хофштадтер сильно сомневался в идее сингулярности, он признавал, что предсказания Курцвейла его тревожат. “Меня пугали эти сценарии. Я был настроен весьма скептически, но все равно мне казалось, что они могут оказаться правдой, даже если называемые сроки неверны. Нас застанут врасплох. Нам будет казаться, что ничего не происходит, и мы не заметим, как компьютеры вдруг станут умнее нас”.

Если это действительно произойдет, “нас отодвинут в сторону. Мы превратимся в пережитки прошлого. Мы останемся ни с чем. Может, это и правда случится, но я не хочу, чтобы это случилось в ближайшее время. Я не хочу, чтобы мои дети остались ни с чем”.

Хофштадтер завершил свое выступление прозрачным намеком на тех самых инженеров Google, которые собрались в переговорной и внимательно слушали: “Меня очень пугает, очень тревожит, очень печалит, а также ужасает, шокирует, удивляет, озадачивает и обескураживает, что люди очертя голову слепо бегут вперед, создавая все эти вещи”.

Почему Хофштадтер испуган?

Я огляделась. Казалось, слушатели озадачены и даже растеряны. Исследователей ИИ из Google ничто из перечисленного ничуть не пугало. Более того, это были дела давно минувших дней. Когда Deep Blue обыграл Каспарова, когда ЭМИ начала сочинять мазурки в стиле Шопена и когда Курцвейл написал первую книгу о сингулярности, многие из этих инженеров учились в школе и, возможно, читали “ГЭБ” и восхищались ею, несмотря на то что многие из приводимых в ней прогнозов развития ИИ к тому времени несколько устарели. Они работали в Google как раз для того, чтобы сделать ИИ реальностью, причем не через сотню лет, а сейчас – и как можно скорее. Они не понимали, что именно так сильно беспокоит Хофштадтера.

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

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

Как видно из “ГЭБ”, Хофштадтер твердо верит, что разум и все его характеристики в полной мере проистекают из физической среды мозга и остального тела, а также из взаимодействия тела с физическим миром. Здесь нет ничего нематериального или бесплотного. Хофштадтер беспокоится о сложности. Он боится, что ИИ может показать нам, что человеческие качества, которые мы ценим больше всего, очень просто механизировать. После встречи Хофштадтер пояснил мне, рассуждая о Шопене, Бахе и других выдающихся представителях рода человеческого: “Если маленький чип сможет обесценить эти умы бесконечной остроты, сложности и эмоциональной глубины, это разрушит мое представление о сущности человечества”.

Я в недоумении

За выступлением Хофштадтера последовала короткая дискуссия, в ходе которой недоумевающие слушатели побуждали Хофштадтера подробнее разъяснять опасения, связанные с ИИ и, в частности, с работой Google. Но коммуникационный барьер не рухнул. Встреча продолжилась презентациями и обсуждениями проектов с перерывами на кофе – все как обычно, – но о словах Хофштадтера больше никто не вспоминал. В завершение встречи Хофштадтер попросил участников поделиться своими соображениями о ближайшем будущем ИИ. Несколько исследователей из Google предположили, что общий ИИ человеческого уровня, вероятно, появится в течение ближайших тридцати лет, во многом благодаря успехам Google в совершенствовании метода “глубокого обучения”, навеянного представлениями о человеческом мозге.

Я ушла со встречи в растерянности. Я знала, что Хофштадтера тревожат некоторые работы Курцвейла о сингулярности, но прежде не понимала, насколько глубоки его опасения. Я также знала, что Google активно занимается исследованиями ИИ, но поразилась оптимизму некоторых прогнозов о времени выхода общего ИИ на “человеческий” уровень. Лично я полагала, что ИИ достиг больших успехов в ряде узких сфер, но не приблизился к широкой, общей разумности человека – и не мог приблизиться к ней даже за столетие, не говоря уже о трех десятках лет. При этом я была уверена, что люди, имеющие другую точку зрения, серьезно недооценивают сложность человеческого разума. Я читала книги Курцвейла и по большей части находила их смехотворными. Тем не менее, прислушавшись к мнению людей, которых я уважала и которыми восхищалась, я решила критически оценить свои собственные взгляды. Возможно, полагая, что эти исследователи ИИ недооценивают людей, я сама недооценивала силу и потенциал сегодняшнего ИИ?

В последующие месяцы я начала внимательнее следить за обсуждением этих вопросов. Я вдруг стала замечать множество статей, постов и целых книг, в которых выдающиеся люди говорили нам, что прямо сейчас настает пора опасаться угроз “сверхчеловеческого” ИИ. В 2014 году физик Стивен Хокинг заявил: “Развитие полноценного искусственного интеллекта может означать конец человеческой расы”[7]. В тот же год предприниматель Илон Маск, основавший компании Tesla и SpaceX, назвал искусственный интеллект, “вероятно, величайшей угрозой нашему существованию” и сказал, что “искусственным интеллектом мы призываем демона”[8]. Сооснователь Microsoft Билл Гейтс согласился с ним: “В этом вопросе я согласен с Илоном Маском и другими и не понимаю, почему некоторые люди не проявляют должной озабоченности”[9]. Книга философа Ника Бострома “Искусственный интеллект” (Superintelligence)[10], где он рассказывает о потенциальных угрозах, которые возникнут, когда машины станут умнее людей, неожиданно стала бестселлером, несмотря на сухость и тяжеловесность повествования.

Другие ведущие мыслители выражали несогласие. Да, говорили они, нам нужно удостовериться, что программы ИИ безопасны и не могут причинить вред людям, но все сообщения о скором появлении сверхчеловеческого ИИ серьезно преувеличены. Предприниматель и активист Митчелл Капор сказал: “Человеческий разум – удивительный, изощренный и не до конца изученный феномен. Угрозы воспроизвести его в ближайшее время нет”[11]. Робототехник (и бывший директор лаборатории ИИ в MIT) Родни Брукс согласился с ним и отметил, что мы “сильно переоцениваем способности машин – и тех, что работают сегодня, и тех, что появятся в грядущие несколько десятилетий”[12]. Психолог и исследователь ИИ Гэри Маркус даже высказал мнение, что в сфере создания “сильного ИИ” – то есть общего ИИ человеческого уровня – “прогресса почти не наблюдается”[13].

Я могла бы и дальше приводить противоречащие друг другу цитаты. В общем и целом, я пришла к выводу, что в сфере ИИ царит неразбериха. Наблюдается то ли огромный прогресс, то ли почти никакого. Появление “настоящего” ИИ ожидается то ли со дня на день, то ли через несколько веков. ИИ или решит все наши проблемы, или всех нас лишит работы, или уничтожит человеческую расу, или обесценит человечность. Стремление к нему – то ли благородная цель, то ли “призыв демона”.

О чем эта книга

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

Я пытаюсь осмыслить и более широкие вопросы, которые с самого начала подпитывали дебаты об ИИ. Что мы называем “общим человеческим” или даже “сверхчеловеческим” интеллектом? Близок ли современный ИИ к этому уровню? Можно ли сказать, что он движется в этом направлении? Какие опасности таит ИИ? Какие аспекты своего разума мы особенно ценим? В какой степени ИИ человеческого уровня заставит нас усомниться в своих представлениях о собственной человечности? Говоря словами Хофштадтера, насколько мы должны быть испуганы?

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

Часть I
Предыстория

Глава 1
Истоки искусственного интеллекта

Два месяца и десять мужчин в Дартмуте

Мечта о создании разумной машины – машины, которая разумна в той же степени, что и человек, или даже превосходит его, – появилась много столетий назад, но стала частью современной науки с началом эры цифровых компьютеров. Идеи, приведшие к созданию первых программируемых компьютеров, родились из стремления математиков понять человеческое мышление – в частности, логику – как механический процесс “манипуляции символами”. Цифровые компьютеры, по сути, представляют собой символьные манипуляторы, которые оперируют комбинациями символов 0 и 1. Пионеры вычислительной техники, включая Алана Тьюринга и Джона фон Неймана, проводили аналогии между работой компьютеров и мозга человека, и им казалось очевидным, что человеческий разум можно воссоздать в компьютерной программе.

Большинство людей из сферы искусственного интеллекта считают, что официально она выделилась в отдельную дисциплину на маленьком семинаре, который был организован молодым математиком Джоном Маккарти и состоялся в 1956 году в Дартмуте.

В 1955 году Маккарти, которому тогда было двадцать восемь лет, поступил преподавателем на математический факультет Дартмутского колледжа. В студенческие годы он изучал психологию и новую “теорию автоматов” (которая впоследствии стала информатикой) и заинтересовался идеей о создании думающей машины. В аспирантуре на кафедре математики Принстонского университета Маккарти познакомился с Марвином Минским, который учился вместе с ним и тоже интересовался потенциалом разумных компьютеров. Окончив аспирантуру, Маккарти некоторое время работал в Лабораториях Белла и IBM, где сотрудничал с основателем теории информации Клодом Шенноном и пионером электротехники Натаниэлем Рочестером. Оказавшись в Дартмуте, Маккарти убедил Минского, Шеннона и Рочестера помочь ему с организацией “двухмесячного семинара по изучению искусственного интеллекта, который планировалось провести летом 1956 года с участием десяти человек”[14]. Термин “искусственный интеллект” был предложен Маккарти, который хотел отделить эту сферу от связанной с ней кибернетики[15]. Позже Маккарти признал, что название никому не нравилось, ведь целью был настоящий, а не “искусственный” интеллект, но “без названия было не обойтись”, поэтому он стал использовать понятие “искусственный интеллект”[16].

Четыре организатора летнего семинара подали заявку на получение финансирования в Фонд Рокфеллера. Они написали, что в основе планируемого исследования лежит “предположение, что каждый аспект обучения и любую другую характеристику интеллекта теоретически можно описать так точно, что можно создать машину для его моделирования”[17]. В заявке перечислялись основные темы для обсуждения – обработка естественного языка, нейронные сети, машинное обучение, абстрактные концепции и рассуждения, творческие способности, – и они до сих пор определяют сферу искусственного интеллекта.

Хотя самые мощные компьютеры в 1956 году были примерно в миллион раз медленнее современных смартфонов, Маккарти с коллегами полагали, что создание ИИ не за горами: “Мы считаем, что значительного прогресса по одной или нескольким из этих задач можно добиться, если группа правильно подобранных ученых получит возможность поработать над ними вместе в течение лета”[18].

Вскоре возникли трудности, знакомые любому, кто хоть раз пытался организовать научный семинар. Фонд Рокфеллера согласился предоставить лишь половину запрашиваемой суммы, а убедить участников приехать и остаться оказалось гораздо сложнее, чем Маккарти мог предположить. О согласии между ними не шло и речи. Было много интересных дискуссий и много противоречий. Как обычно бывает на подобных встречах, “у каждого была своя идея, большое самомнение и горячий интерес к собственному плану”[19]. Тем не менее дартмутское лето ИИ помогло добиться очень важных результатов. У области исследований появилось название. Были очерчены ее общие цели. Будущая “большая четверка” пионеров сферы – Маккарти, Минский, Аллен Ньюэлл и Герберт Саймон – встретились и построили ряд планов на будущее. По какой-то причине эти четверо после семинара смотрели в будущее искусственного интеллекта с оптимизмом. В начале 1960-х годов Маккарти основал Стэнфордский проект в области искусственного интеллекта с “целью за десять лет сконструировать полностью разумную машину”[20]. Примерно в то же время будущий нобелевский лауреат Герберт Саймон предсказал: “В ближайшие двадцать лет машины смогут выполнять любую работу, которая под силу человеку”[21]. Вскоре после этого основатель Лаборатории ИИ в MIT Марвин Минский дал прогноз, что “до смены поколений… задачи создания «искусственного интеллекта» будут в основном решены”[22].

Основные понятия и работа с ними

Пока не произошло ни одно из предсказанных событий. Насколько далеки мы от цели сконструировать “полностью разумную машину”? Потребуется ли нам для этого осуществить обратное проектирование сложнейшего человеческого мозга или же мы найдем короткий путь, где хитрого набора пока неизвестных алгоритмов будет достаточно, чтобы создать полностью разумную в нашем представлении машину? Что вообще имеется в виду под “полностью разумной машиной”?

“Определяйте понятия… или мы никогда не поймем друг друга”[23]. Этот призыв философа XVIII века Вольтера остается слабым местом дискуссий об искусственном интеллекте, поскольку главное понятие – интеллект – все еще не имеет четкого определения. Марвин Минский называл такие понятия, как “интеллект”, “мышление”, “познание”, “сознание” и “эмоция”, “словами-чемоданами”[24]. Каждое из них, подобно чемодану, набито кучей разных смыслов. Понятие “искусственный интеллект” наследует эту проблему, в разных контекстах означая разное.

Большинство людей согласится, что человек наделен интеллектом, а пылинка – нет. Кроме того, мы в массе своей считаем, что человек разумнее червя. Коэффициент человеческого интеллекта измеряется по единой шкале, но мы также выделяем разные аспекты интеллекта: эмоциональный, вербальный, пространственный, логический, художественный, социальный и так далее. Таким образом, интеллект может быть бинарным (человек либо умен, либо нет), может иметь диапазон (один объект может быть разумнее другого), а может быть многомерным (один человек может обладать высоким вербальным, но низким эмоциональным интеллектом). Понятие “интеллект” действительно напоминает набитый до отказа чемодан, который грозит лопнуть.

Как бы то ни было, сфера ИИ практически не принимает в расчет эти многочисленные различия. Усилия ученых направлены на решение двух задач: научной и практической. В научном направлении исследователи ИИ изучают механизмы “естественного” (то есть биологического) интеллекта, пытаясь внедрить его в компьютеры. В практическом направлении поборники ИИ просто хотят создать компьютерные программы, которые справляются с задачами не хуже или лучше людей, и не заботятся о том, думают ли эти программы таким же образом, как люди. Если спросить исследователей ИИ, какие цели – научные или практические – они преследуют, многие в шутку ответят, что это зависит от того, кто в данный момент финансирует их работу.

В недавнем отчете о текущем состоянии ИИ комитет видных исследователей определил эту область как “раздел информатики, изучающий свойства интеллекта посредством синтеза интеллекта”[25]. Да, определение закольцовано. Впрочем, тот же комитет признал, что определить область сложно, но это и к лучшему: “Отсутствие точного, универсального определения ИИ, вероятно, помогает области все быстрее расти, развиваться и совершенствоваться”[26]. Более того, комитет отмечает: “Практики, исследователи и разработчики ИИ ориентируются по наитию и руководствуются принципом «бери и делай»”.

Анархия методов

Участники Дартмутского семинара 1956 года озвучивали разные мнения о правильном подходе к разработке ИИ. Одни – в основном математики – считали, что языком рационального мышления следует считать математическую логику и дедуктивный метод. Другие выступали за использование индуктивного метода, в рамках которого программы извлекают статистические сведения из данных и используют вероятности при работе с неопределенностью. Третьи твердо верили, что нужно черпать вдохновение из биологии и психологии и создавать программы по модели мозга. Как ни странно, споры между сторонниками разных подходов не утихают по сей день. Для каждого подхода было разработано собственное множество принципов и техник, поддерживаемых отраслевыми конференциями и журналами, но узкие специальности почти не взаимодействуют между собой. В недавнем исследовании ИИ отмечается: “Поскольку мы не имеем глубокого понимания интеллекта и не знаем, как создать общий ИИ, чтобы идти по пути настоящего прогресса, нам нужно не закрывать некоторые направления исследований, а принимать «анархию методов», царящую в сфере ИИ”[27].

Однако с 2010-х годов одно семейство ИИ-методов, в совокупности именуемых глубоким обучением (или глубокими нейронными сетями), выделилось из анархии и стало господствующей парадигмой ИИ. Многие популярные медиа сегодня ставят знак равенства между понятиями “искусственный интеллект” и “глубокое обучение”. При этом они совершают досадную ошибку, и мне стоит прояснить различия между терминами. ИИ – это область, включающая широкий спектр подходов, цель которых заключается в создании наделенных интеллектом машин. Глубокое обучение – лишь один из этих подходов. Глубокое обучение – лишь один из множества методов в области “машинного обучения”, подобласти ИИ, где машины “учатся” на основе данных или собственного “опыта”. Чтобы лучше понять эти различия, нужно разобраться в философском расколе, который произошел на заре исследования ИИ, когда произошло разделение так называемых символического и субсимволического ИИ.

Символический ИИ

Давайте сначала рассмотрим символический ИИ. Программа символического ИИ знает слова или фразы (“символы”), как правило понятные человеку, а также правила комбинирования и обработки этих символов для выполнения поставленной перед ней задачи.

Приведу пример. Одной ранней программе ИИ присвоили громкое имя “Универсальный решатель задач” (General Problem Solver, или GPS)[28]. (Прошу прощения за сбивающую с толку аббревиатуру: Универсальный решатель задач появился раньше системы глобального позиционирования, ныне известной как GPS.) УРЗ мог решать такие задачи, как задача о миссионерах и людоедах, над которой вы, возможно, ломали голову в детстве. В этой известной задаче три миссионера и три людоеда должны переправиться через реку на лодке, способной выдержать не более двух человек. Если на одном берегу окажется больше (голодных) людоедов, чем (аппетитных) миссионеров, то… думаю, вы поняли, что произойдет. Как всем шестерым переправиться на другой берег без потерь?

Создатели УРЗ, когнитивисты Герберт Саймон и Аллен Ньюэлл, записали, как несколько студентов “размышляют вслух”, решая эту и другие логические задачи. Затем Саймон и Ньюэлл сконструировали программу таким образом, чтобы она копировала ход рассуждений студентов, который ученые признали их мыслительным процессом.

Я не буду подробно описывать механизм работы УРЗ, но его символическую природу можно разглядеть в формулировке программных инструкций. Чтобы поставить задачу, человек писал для УРЗ подобный код:

ТЕКУЩЕЕ СОСТОЯНИЕ:

ЛЕВЫЙ-БЕРЕГ = [3 МИССИОНЕРА, 3 ЛЮДОЕДА, 1 ЛОДКА]

ПРАВЫЙ-БЕРЕГ = [ПУСТО]


ЖЕЛАЕМОЕ СОСТОЯНИЕ:

ЛЕВЫЙ-БЕРЕГ = [ПУСТО]

ПРАВЫЙ-БЕРЕГ = [3 МИССИОНЕРА, 3 ЛЮДОЕДА, 1 ЛОДКА]

Если говорить обычным языком, эта инструкция показывает, что изначально левый берег реки “содержит” трех миссионеров, трех людоедов и одну лодку, в то время как правый не содержит ничего. Желаемое состояние определяет цель программы – переправить всех на правый берег реки.

На каждом шаге программы УРЗ пытается изменить текущее состояние, чтобы сделать его более похожим на желаемое состояние. В этом коде у программы есть “операторы” (в форме подпрограмм), которые могут преобразовывать текущее состояние в новое состояние, и “правила”, кодирующие ограничения задачи. Например, один оператор перемещает некоторое количество миссионеров и людоедов с одного берега реки на другой:

ПЕРЕМЕСТИТЬ (#МИССИОНЕРОВ, #ЛЮДОЕДОВ, С-БЕРЕГА, НА-БЕРЕГ)

Слова в скобках называются параметрами, и после запуска программа заменяет эти слова на числа или другие слова. Параметр #миссионеров заменяется на количество перемещаемых миссионеров, параметр #людоедов заменяется на количество перемещаемых людоедов, а параметры с-берега и на-берег заменяются на “левый-берег” и “правый-берег” в зависимости от того, с какого берега нужно переместить миссионеров и людоедов. В программе закодировано знание, что лодка перемещается вместе с миссионерами и людоедами.

Прежде чем программа сумеет применить этот оператор с конкретными значениями параметров, она должна свериться с закодированными правилами: так, за один раз можно переместить не более двух человек, а если в результате применения оператора на одном берегу окажется больше людоедов, чем миссионеров, применять его нельзя.

Хотя эти символы обозначают знакомые людям понятия – “миссионеры”, “людоеды”, “лодка”, “левый берег”, – запускающий программу компьютер, конечно, не понимает значения символов. Можно заменить параметр “миссионеры” на “z372b” или любой другой бессмысленный набор знаков, и программа будет работать точно так же. Отчасти поэтому она называется Универсальным решателем задач. Компьютер определяет “значение” символов в зависимости от того, как их можно комбинировать и соотносить друг с другом и как ими можно оперировать.

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

Субсимволический ИИ: перцептроны

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

Одной из первых субсимволических ИИ-программ, созданных по модели мозга, стал перцептрон, изобретенный в конце 1950-х годов психологом Фрэнком Розенблаттом[29]. Сегодня термин “перцептрон” кажется заимствованным из научной фантастики пятидесятых годов (как мы увидим, вскоре за ним последовали “когнитрон” и “неокогнитрон”), но перцептрон стал важной вехой развития ИИ и может считаться авторитетным прадедом самого успешного инструмента современного ИИ, глубоких нейронных сетей.

Розенблатт изобрел перцептрон, обратив внимание на то, как нейроны обрабатывают информацию. Нейрон – это клетка мозга, которая получает электрический или химический импульс от связанных с нею нейронов. Грубо говоря, нейрон суммирует все импульсы, которые получает от других нейронов, и сам посылает импульс, если итоговая сумма превышает определенный порог. Важно, что разные связи (синапсы) конкретного нейрона с другими нейронами имеют разную силу, а потому, суммируя импульсы, нейрон придает больше веса импульсам от сильных связей, чем импульсам от слабых связей. Нейробиологи полагают, что поправки на силу связей между нейронами – важнейший элемент процесса обучения, происходящего в мозге.

С точки зрения специалиста по информатике (или, как в случае с Розенблаттом, психолога), обработку информации нейронами можно смоделировать в компьютерной программе – перцептроне, – которая преобразует много численных входных сигналов в один выходной сигнал. Аналогия между нейроном и перцептроном показана на рис. 1. На рис. 1A мы видим нейрон с ветвистыми дендритами (волокнами, которые проводят входящие импульсы в клетку), телом клетки и аксоном (или выводным каналом). На рис. 1B изображен простой перцептрон. Как и нейрон, перцептрон суммирует все входящие сигналы. Если итоговая сумма равняется порогу перцептрона или превышает его, перцептрон выдает значение 1 (“передает сигнал”); в противном случае он выдает значение 0 (“не передает сигнал”). Чтобы смоделировать различную силу связей нейрона, Розенблатт предложил присваивать каждому входному сигналу перцептрона численный вес и умножать входной сигнал на его вес, прежде чем прибавлять к сумме. Порог перцептрона – это число, определяемое программистом (или, как мы увидим, узнаваемое самим перцептроном).


Рис. 1. A: нейрон в мозге; В: простой перцептон


Иными словами, перцептрон – это простая программа, которая принимает решение “да или нет” (1 или 0) в зависимости от того, достигает ли сумма взвешенных входных сигналов порогового значения. Вероятно, вы тоже время от времени принимаете такие решения в жизни. Например, вы узнаете мнение нескольких друзей о конкретном фильме, но вкусам одних друзей доверяете больше, чем вкусам других. Если сумма “дружеских восторгов” – при большем весе мнений тех друзей, которым вы доверяете больше, – достаточно высока (то есть превышает некоторый неосознанный порог), вы решаете посмотреть фильм. Именно так перцептрон выбирал бы фильмы к просмотру, если бы у него были друзья.

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

Давайте сделаем перцептрон детектором восьмерок – в таком случае он будет выдавать единицу, если входным сигналом служит изображение цифры 8, и ноль, если на входном изображении будет любая другая цифра. Чтобы создать такой детектор, нам нужно (1) понять, как превратить изображение в набор численных входных сигналов, и (2) определить численные значения весов и порог перцептрона для формирования верного выходного сигнала (1 для восьмерок и 0 для других цифр). Я рассмотрю эту задачу более подробно, поскольку многие из этих принципов понадобятся нам при обсуждении нейронных сетей и их применения в компьютерном зрении.


Рис. 2. Примеры рукописных цифр


Входные сигналы нашего перцептрона

На рис. 3A показана увеличенная рукописная восьмерка. Каждый квадрат координатной сетки – это пиксель с численным значением “насыщенности”: насыщенность белых квадратов равняется 0, насыщенность черных – 1, а насыщенность серых имеет промежуточное значение. Допустим, все изображения, которые мы даем перцептрону, подогнаны к единому размеру – 18 × 18 пикселей. На рис. 3B показан перцептрон для распознавания восьмерок. У этого перцептрона 324 (то есть 18 × 18) входных сигнала, каждый из которых соответствует одному пикселю из сетки 18 ×18. При получении изображения, подобного показанному на рисунке 3A, каждый входной сигнал настраивается на насыщенность соответствующего пикселя. Каждому входному сигналу также присваивается свой вес (на рисунке не показан).


Рис. 3. Иллюстрация перцептрона, который распознает рукописные восьмерки. Каждый пиксель на изображении 18 × 18 пикселей соответствует одному входному сигналу перцептрона, что дает 324 (= 18 × 18) входных сигнала.


Как узнать веса и порог перцептрона

В отличие от символической системы Универсального решателя задач, которую я описала ранее, перцептрон не имеет очевидных правил для выполнения задачи, а все его “знания” закодированы в числах, определяющих веса входных сигналов и пороговое значение. В ряде статей Розенблатт показал, что при корректных весах и пороговом значении такой перцептрон, как на рисунке 3B, вполне неплохо справляется с такими задачами на восприятие, как распознавание простых рукописных цифр. Но как именно определить корректные веса и пороговое значение для конкретной задачи? И снова Розенблатт предложил ответ, навеянный работой мозга: перцептрон должен сам узнавать эти значения. Но каким образом? Вторя популярным в то время теориям бихевиоральной психологии, Розенблатт считал, что перцептроны должны обучаться, накапливая условный рефлекс. Отчасти вдохновленный работой бихевиориста Б. Ф. Скиннера, который обучал крыс и голубей выполнять задачи с помощью положительного и отрицательного подкрепления, Розенблатт полагал, что перцептрон следует обучать на примерах: его нужно вознаграждать, когда он выдает верный результат, и наказывать, когда он ошибается. Теперь такая форма обучения в ИИ называется обучением с учителем. В ходе обучения система получает пример и генерирует выходной сигнал, а затем получает “сигнал от учителя”, который показывает, насколько выходной сигнал системы отличается от верного. Затем система использует этот сигнал, чтобы скорректировать веса и пороговое значение.

Концепция обучения с учителем – ключевой элемент современного ИИ, поэтому ее стоит разобрать подробнее. Как правило, обучение с учителем требует большого набора положительных (скажем, коллекции восьмерок, написанных разными людьми) и отрицательных (скажем, коллекции других рукописных цифр, среди которых нет восьмерок) примеров. Каждый пример размечается человеком, который присваивает ему определенную категорию (метку) – здесь это “восьмерка” и “не восьмерка”. Метка применяется в качестве контрольного сигнала. Некоторые положительные и отрицательные примеры используются для тренировки системы и формируют тренировочное множество. Оставшиеся примеры – тестовое множество – используются для оценки работы системы после обучения, чтобы понять, насколько хорошо она научилась правильно отвечать на запросы в целом, а не только на обучающие примеры.

Вероятно, самым важным в информатике стоит признать понятие “алгоритм”. Оно обозначает “рецепт” со списком шагов, которые компьютер может предпринять для решения конкретной задачи. Главным вкладом Фрэнка Розенблатта в ИИ стало создание особого алгоритма, названного алгоритмом обучения перцептрона. С помощью этого алгоритма перцептрон можно научить на примерах определять веса и пороговое значение для получения верных ответов. Вот как он работает: сначала весам и порогу присваиваются случайные значения в диапазоне от –1 до 1. В нашем примере первому входному сигналу может быть присвоен вес 0,2, второму – вес –0,6 и так далее. Пороговым значением может стать 0,7. С генерацией начальных значений без труда справится компьютерная программа, называемая генератором случайных чисел.

Теперь мы можем приступать к процессу обучения. Перцептрон получает первый обучающий пример, не видя метку с верной категорией. Перцептрон умножает каждый входной сигнал на его вес, суммирует результаты, сравнивает сумму с пороговым значением и выдает либо 1, либо 0. Здесь выходной сигнал 1 означает, что перцептрон распознал восьмерку, а выходной сигнал 0 – что он распознал “не восьмерку”. Далее в процессе обучения выходной сигнал перцептрона сравнивается с верным ответом, который дает присвоенная человеком метка (“восьмерка” или “не восьмерка”). Если перцептрон прав, веса и пороговое значение не меняются. Если же перцептрон ошибся, веса и пороговое значение слегка корректируются так, чтобы сумма входных сигналов в этом тренировочном примере оказалась ближе к нужной для верного ответа. Более того, степень изменения каждого веса зависит от соответствующего значения входного сигнала, то есть вина за ошибку в основном возлагается на входные сигналы, которые сильнее других повлияли на результат. Например, в восьмерке на рис. 3A главным образом на результат повлияли бы более насыщенные (здесь – черные) пиксели, в то время как пиксели с нулевой насыщенностью (здесь – белые) не оказали бы на него никакого влияния. (Для любопытных читателей я описала некоторые математические подробности в примечании[30].)

Все шаги повторяются на каждом из обучающих примеров. Процесс обучения много раз проходится по всем обучающим примерам, слегка корректируя веса и пороговое значение при каждой ошибке перцептрона. Обучая голубей, психолог Б. Ф. Скиннер обнаружил, что учиться лучше постепенно, совершая множество попыток, и здесь дело обстоит точно так же: если слишком сильно изменить веса и пороговое значение после одной попытки, система может научиться неправильному правилу (например, чрезмерному обобщению, что “нижняя и верхняя половины восьмерки всегда равны по размеру”). После множества повторов каждого обучающего примера система (как мы надеемся) окончательно определяет набор весов и пороговое значение, при которых перцептрон дает верные ответы для всех обучающих примеров. На этом этапе мы можем проверить перцептрон на примерах из тестового множества и увидеть, как он справляется с распознаванием изображений, не входивших в обучающий набор.

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

Розенблатт и другие исследователи показали, что сети перцептронов можно научить выполнять относительно простые задачи на восприятие, а еще Розенблатт математически доказал, что теоретически достаточно обученные перцептроны могут безошибочно выполнять задачи определенного, хотя и строго ограниченного класса. При этом было непонятно, насколько хорошо перцептроны справляются с более общими задачами ИИ. Казалось, эта неопределенность не мешала Розенблатту и его спонсорам из Научно-исследовательского управления ВМС США делать до смешного оптимистичные прогнозы о будущем алгоритма. Освещая пресс-конференцию Розенблатта, состоявшуюся в июле 1958 года, газета The New York Times написала:

Сегодня ВМС продемонстрировали зародыш электронного компьютера, который, как ожидается, сможет ходить, говорить, видеть, писать, воспроизводить себя и сознавать свое существование. Было сказано, что в будущем перцептроны смогут узнавать людей, называть их по именам и мгновенно переводить устную речь и тексты с одного языка на другой[31].

Да, даже в самом начале ИИ страдал от шумихи. Вскоре я расскажу о печальных последствиях такого ажиотажа. Но пока позвольте мне на примере перцептронов объяснить основные различия между символическим и субсимволическим подходом к ИИ.

Поскольку “знания” перцептрона состоят из набора чисел, а именно – определенных в ходе обучения весов и порогового значения, – сложно выявить правила, которые перцептрон использует при выполнении задачи распознавания. Правила перцептрона не символические: в отличие от символов Универсального решателя задач, таких как ЛЕВЫЙ-БЕРЕГ, #МИССИОНЕРОВ и ПЕРЕМЕСТИТЬ, веса и порог перцептрона не соответствуют конкретным понятиям. Довольно сложно преобразовать эти числа в понятные людям правила. Ситуация существенно усложняется в современных нейронных сетях с миллионами весов.

Можно провести грубую аналогию между перцептронами и человеческим мозгом. Если бы я могла заглянуть к вам в голову и понаблюдать за тем, как некоторое подмножество ста миллиардов ваших нейронов испускает импульсы, скорее всего, я бы не поняла, ни о чем вы думаете, ни какие “правила” применяете при принятии конкретного решения. Тем не менее человеческий мозг породил язык, который позволяет вам использовать символы (слова и фразы), чтобы сообщать мне – часто недостаточно четко, – о чем вы думаете и почему приходите к определенным выводам. В этом смысле наши нервные импульсы можно считать субсимволическими, поскольку они лежат в основе символов, которые каким-то образом создает наш мозг. Перцептроны, а также более сложные сети искусственных нейронов, называются “субсимволическими” по аналогии с мозгом. Их поборники считают, что для создания искусственного интеллекта языкоподобные символы и правила их обработки должны не программироваться непосредственно, как для Универсального решателя задач, а рождаться в нейроноподобных архитектурах точно так же, как интеллектуальная обработка символов рождается в мозге.

Ограниченность перцептронов

После Дартмутского семинара 1956 года доминирующее положение в сфере ИИ занял символический лагерь. В начале 1960-х годов, пока Розенблатт увлеченно работал над перцептроном, большая четверка “основателей” ИИ, преданных символическому лагерю, создала авторитетные – и прекрасно финансируемые – лаборатории ИИ: Марвин Минский открыл свою в MIT, Джон Маккарти – в Стэнфорде, а Герберт Саймон и Аллен Ньюэлл – в Университете Карнеги – Меллона. (Примечательно, что эти университеты по сей день входят в число самых престижных мест для изучения ИИ.) Минский, в частности, полагал, что моделирование мозга, которым занимался Розенблатт, ведет в тупик и ворует деньги у более перспективных проектов символического ИИ[32]. В 1969 году Минский и его коллега по MIT Сеймур Пейперт опубликовали книгу “Перцептроны”[33], в которой математически доказали, что существует крайне ограниченное количество типов задач, поддающихся безошибочному решению перцептроном, а алгоритм обучения перцептрона не сможет показывать хорошие результаты, когда задачи будут требовать большого числа весов и порогов.

Минский и Пейперт отметили, что если перцептрон усовершенствовать, добавив дополнительный “слой” искусственных нейронов, то количество типов задач, которые сможет решать устройство, значительно возрастет[34]. Перцептрон с таким дополнительным слоем называется многослойной нейронной сетью. Такие сети составляют основу значительной части современного ИИ, и я подробно опишу их в следующей главе. Пока же я отмечу, что в то время, когда Минский и Пейперт писали свою книгу, многослойные нейронные сети еще не были широко изучены, в основном потому что не существовало общего алгоритма, аналогичного алгоритму обучения перцептрона, для определения весов и пороговых значений.

Ограниченность простых перцептронов, установленная Минским и Пейпертом, была уже известна людям, работавшим в этой сфере[35]. Сам Фрэнк Розенблатт много работал с многослойными перцептронами и признавал, что их сложно обучать[36]. Но последний гвоздь в крышку гроба перцептронов вогнала не математика Минского и Пейперта, а их рассуждения о многослойных нейронных сетях:

[Перцептрон] обладает многими свойствами, привлекающими внимание: линейность, интригующая способность к обучению, очевидная простота перцептрона как разновидности устройства для параллельных вычислений. Нет никаких оснований предполагать, что любое из этих достоинств распространяется на многослойный вариант. Тем не менее мы считаем важной исследовательской задачей разъяснить (или отвергнуть) наше интуитивное заключение о том, что обсуждаемое расширение бесплодно[37].

Ой-ой! Сегодня последнее предложение этого отрывка, возможно, сочли бы “пассивно-агрессивным”. Такие негативные спекуляции отчасти объясняют, почему в конце 1960-х финансирование исследований нейронных сетей прекратилось, хотя государство продолжало вливать немалые деньги в символический ИИ. В 1971 году Фрэнк Розенблатт утонул в возрасте сорока трех лет. Лишившись главного идеолога и большей части государственного финансирования, исследования перцептронов и других систем субсимволического ИИ практически остановились. Ими продолжали заниматься лишь несколько отдельных академических групп.

Зима ИИ

Тем временем поборники символического ИИ писали заявки на гранты, обещая скорые прорывы в таких областях, как понимание речи и языка, построение логических выводов на основе здравого смысла, навигация роботов и беспилотные автомобили. К середине 1970-х годов были успешно развернуты некоторые узкие экспертные системы, но обещанных прорывов общего характера так и не произошло.

Это не укрылось от внимания финансирующих организаций. Британский Совет по научным исследованиям и Министерство обороны США подготовили отчеты, в которых дали крайне отрицательную оценку прогрессу и перспективам исследований ИИ. В частности, в британском отчете отмечалось, что некоторые надежды вселяет продвижение в области специализированных экспертных систем – “программ, написанных для работы в узких сферах, где программирование полностью принимает во внимание человеческий опыт и человеческие знания в соответствующей области”, – но подчеркивалось, что текущие результаты работы “над программами общего назначения, ориентированными на копирование механизма решения широкого спектра задач с человеческого [мозга], удручают. Вожделенная долгосрочная цель исследований в сфере ИИ кажется все такой же далекой”[38]. После этого отчета государственное финансирование исследований ИИ в Великобритании резко сократилось, Министерство обороны США тоже существенно урезало бюджеты базовых исследований ИИ.

Это стало одним из первых примеров повторяющегося цикла взлетов и падений ИИ. Как правило, двухфазный цикл развивается следующим образом. Фаза 1: Новые идеи рождают большой оптимизм в научном сообществе. Появляются прогнозы о грядущих прорывах в сфере ИИ, которые часто приводят к шумихе в прессе. Государственные структуры и частные инвесторы выделяют средства на проведение научных исследований и организацию коммерческих стартапов. Фаза 2: Обещанные прорывы не происходят или оказываются гораздо скромнее, чем предполагалось. Приток средств от государственных и частных инвесторов сокращается. Стартапы сворачивают деятельность, исследования ИИ замедляются. Такая схема прекрасно знакома ИИ-сообществу: за “весной ИИ” следуют раздутые обещания и шумиха в прессе, а затем наступает “зима ИИ”. В той или иной степени это происходит циклично с периодичностью от пяти до десяти лет. Когда в 1990 году я окончила университет, сфера ИИ переживала одну из зим и заработала такую плохую репутацию, что мне даже посоветовали не упоминать об искусственном интеллекте в своем резюме.

Простые вещи делать сложно

Холодные зимы ИИ преподали специалистам важные уроки. Самый простой из них через пятьдесят лет после Дартмутского семинара сформулировал Джон Маккарти: “ИИ оказался сложнее, чем мы думали”[39]. Марвин Минский отметил, что исследования ИИ выявили парадокс: “Простые вещи делать сложно”. Изначально исследователи ИИ поставили перед собой цель создать компьютеры, которые смогут беседовать с нами на естественном языке, описывать увиденное своими глазами-камерами и осваивать новые концепции, имея всего несколько примеров – то есть делать все то, с чем без труда справляются маленькие дети, – но, как ни странно, ИИ оказалось тяжелее заниматься этими “простыми вещами”, чем диагностировать сложные болезни, обыгрывать чемпионов по шахматам и го и решать запутанные алгебраические задачи. Как отметил далее Минский, “в целом мы хуже всего понимаем то, с чем наш разум справляется лучше всего”[40]. Попытка создать искусственный интеллект, по меньшей мере, помогла нам понять, как сложно и изощренно устроен наш разум.

Глава 2
Нейронные сети и подъем машинного обучения

Внимание, спойлер! Многослойные нейронные сети – расширенные перцептроны, которые Минский и Пейперт списали со счетов, сославшись на их вероятную “бесплодность”, – сформировали фундамент значительной части современного искусственного интеллекта. Поскольку они лежат в основе нескольких методов, которые я буду описывать в последующих главах, здесь я ненадолго остановлюсь, чтобы пояснить механизм их работы.

Многослойные нейронные сети

Говоря простым языком, сеть – это набор элементов, разными способами связанных друг с другом. Нам всем знакомы социальные сети, где элементами выступают люди, и компьютерные сети, где элементами выступают, соответственно, компьютеры. Элементами нейронных сетей являются искусственные нейроны, подобные перцептронам, которые я описывала в предыдущей главе.

На рис. 4 я изобразила схему простой многослойной нейронной сети, разработанной для распознавания рукописных цифр. В сети есть два столбца (слоя) перцептроноподобных искусственных нейронов (обозначены кружками). Для простоты (и, вероятно, к облегчению нейробиологов, читающих эти строки) я буду называть искусственные нейроны “ячейками”. Как и настроенный на обнаружение восьмерок перцептрон из главы 1, изображенная на рис. 4 сеть имеет 324 (18 × 18) входных сигнала, каждый из которых сообщает о насыщенности соответствующего пикселя на исходном изображении. Однако, в отличие от перцептрона, в этой сети помимо слоя из десяти выходных ячеек есть слой из трех так называемых скрытых ячеек. Каждая выходная ячейка соответствует одной из возможных категорий цифр.


Рис. 4. Двухслойная нейронная сеть для распознавания рукописных цифр


Крупные серые стрелки показывают, что каждый входной сигнал имеет взвешенную связь с каждой скрытой ячейкой, а каждая скрытая ячейка имеет взвешенную связь с каждой выходной ячейкой. Загадочный термин “скрытая ячейка” позаимствован из литературы о нейронных сетях, им обозначается любая невыходная ячейка. Возможно, лучше было бы назвать ее “внутренней ячейкой”.

Представьте структуру вашего мозга, где некоторые нейроны непосредственно управляют “выходными сигналами”, например движением ваших мышц, но большинство нейронов просто взаимодействует с другими нейронами. Такие нейроны можно назвать скрытыми нейронами мозга.

Изображенная на рис. 4 сеть называется “многослойной”, поскольку имеет два слоя ячеек (скрытых и выходных) вместо одного слоя выходных сигналов. Теоретически многослойная сеть может иметь несколько слоев скрытых ячеек, и сети, имеющие более одного слоя скрытых ячеек, называются глубокими сетями. “Глубина” сети определяется количеством ее скрытых слоев. Я подробнее расскажу о глубоких сетях в последующих главах.

Подобно перцептронам, каждая ячейка здесь умножает каждый входной сигнал на вес связи этого входного сигнала, а затем суммирует результаты. В отличие от перцептрона, ячейка здесь не просто “выдает сигнал” или “не выдает сигнал” (то есть выдает 1 или 0) в зависимости от порогового значения, а использует полученную сумму, чтобы вычислить число между 0 и 1, которое называется “активацией” единицы. Если единица получает маленькую сумму, ее активация близка к 0, а если сумма большая, активация близка к 1. (Для интересующихся я описала некоторые математические подробности в примечании[41].)

Чтобы обработать такое изображение, как рукописная восьмерка с рис. 4, сеть проводит вычисления слой за слоем, слева направо. Каждая скрытая ячейка вычисляет свое значение активации, затем эти значения активации становятся входными сигналами для выходных ячеек, которые вычисляют собственную активацию. В сети с рис. 4 активацию выходной единицы можно считать степенью уверенности сети в том, что она “видит” соответствующую цифру, а категорию цифры с самой высокой степенью уверенности – ответом сети, или классификацией.

Теоретически многослойная нейронная сеть может научиться использовать свои скрытые ячейки так, чтобы распознавать более абстрактные характеристики (например, визуальные формы, такие как верхний и нижний “кружки” рукописной восьмерки) вместо простых характеристик (например, пикселей), закодированных во входном сигнале. Как правило, заранее сложно понять, сколько скрытых слоев и сколько скрытых ячеек в каждом слое необходимо, чтобы сеть хорошо справлялась с поставленной задачей. Большинство исследователей нейронных сетей находит оптимальные настройки методом проб и ошибок.

Обучение методом обратного распространения ошибки

В книге “Перцептроны” Минский и Пейперт усомнились в возможности создания успешного алгоритма для определения весов в многослойной нейронной сети. Во многом именно из-за их скепсиса (и сомнений других специалистов из лагеря символического ИИ) финансирование исследований нейронных сетей в 1970-х резко сократилось. Однако, несмотря на негативный эффект книги Минского и Пейперта, небольшой костяк исследователей нейронных сетей продолжил работу, особенно в сфере когнитивной психологии Фрэнка Розенблатта. К концу 1970-х и началу 1980-х годов некоторые исследовательские группы явным образом опровергли предположения Минского и Пейперта о “бесплодности” многослойных нейронных сетей, разработав для них общий алгоритм обучения – метод обратного распространения ошибки для тренировки этих сетей.

Как следует из названия, метод обратного распространения ошибки состоит в том, чтобы взять ошибку, наблюдаемую в выходных ячейках (например, высокую степень уверенности в неверной цифре у сети на рис. 4) и “распространить” вину за эту ошибку в обратном порядке (на рис. 4 в направлении справа налево), распределив вину по ячейкам сети. Таким образом метод обратного распространения ошибки определяет, в какой степени нужно скорректировать каждый из весов для снижения погрешности. В ходе обучения нейронные сети просто постепенно корректируют веса связей так, чтобы погрешность каждого выходного сигнала на всех тренировочных примерах оказалась как можно ближе к 0. Хотя математика метода обратного распространения ошибки выходит за рамки моего рассказа, я описала некоторые тонкости в примечании[42].

Метод обратного распространения ошибки будет работать (по крайней мере теоретически) вне зависимости от того, сколько в вашей нейронной сети входных сигналов, скрытых ячеек и выходных ячеек. Хотя нет математической гарантии, что метод обратного распространения ошибки остановится на верных весах для сети, на практике он прекрасно справляется со многими задачами, которые слишком сложны для простых перцептронов. Так, я натренировала и перцептрон, и двухслойную нейронную сеть, имеющие по 324 входных сигнала и 10 выходных сигналов, распознавать рукописные цифры, применив шестьдесят тысяч примеров, а затем протестировала каждую из систем на десяти тысячах новых примеров. Перцептрон выдавал верный ответ примерно в 80 % случаев, а нейронная сеть с 50 скрытыми ячейками верно распознала целых 94 % новых примеров. Слава скрытым ячейкам! Но чему именно научилась нейронная сеть, чтобы обойти перцептрон? Я не знаю. Возможно, я могла бы найти способ визуализировать 16 700 весов[43] нейронной сети, чтобы пролить свет на ее работу, но я этого не сделала. В целом людям непросто понять, как эти сети принимают решения.

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

Коннекционизм

В 1980-х годах самой заметной из работавших над нейронными сетями групп была команда Калифорнийского университета в Сан-Диего, возглавляемая двумя психологами, Дэвидом Румельхартом и Джеймсом Макклелландом. То, что мы сегодня называем нейронными сетями, в те годы обычно именовали коннекционистскими сетями, поскольку в их основе лежала идея, что знания этих сетей заключены во взвешенных связях (англ. connections) между единицами. Команда Румельхарта и Макклелланда прославилась составлением так называемой библии коннекционизма – двухтомного трактата “Параллельная распределенная обработка данных”, опубликованного в 1986 году. Хотя в области ИИ в то время доминировал символический подход, в книге продвигался субсимволический ИИ и утверждалось, что “люди умнее современных компьютеров, потому что мозг использует базовую вычислительную архитектуру, гораздо лучше подходящую для… решения естественных задач по обработке информации, с которыми так хорошо справляются люди”, например “распознавания объектов в естественных средах и анализа их взаимодействий… понимания языка и извлечения релевантной информации из памяти”[44]. Авторы пришли к выводу, что “символические системы, любимые Минским и Пейпертом”[45], не смогут воссоздать эти человеческие способности.

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

По мнению сторонников коннекционизма, ключом к разумности была подходящая вычислительная архитектура – выстроенная по образу и подобию мозга – и способность системы к самостоятельному обучению на основе данных или действий. Команда под руководством Румельхарта и Макклелланда создавала коннекционистские сети (программно реализованные) как научные модели человеческого обучения, восприятия и развития речи. Хотя производительность этих сетей и близко не подходила к человеческому уровню, различные сети, описываемые в “Параллельной распределенной обработке данных” и других работах, оказались достаточно интересными артефактами ИИ, чтобы на них обратили внимание многие люди, включая сотрудников финансирующих организаций. В 1988 году высокопоставленный чиновник Управления перспективных исследовательских проектов Министерства обороны США (DARPA), которое обеспечивало львиную долю финансирования исследований ИИ, заявил: “Я уверен, что технология, к разработке которой мы приступаем [то есть нейронные сети], важнее атомной бомбы”[46]. И вдруг нейронные сети снова оказались “в игре”.

Плохо с логикой, хорошо с фрисби

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

Как мы видели, субсимволические системы, напротив, сложно интерпретировать, и никто не знает, как непосредственным образом запрограммировать в них сложные человеческие знания и логику. Субсимволические системы кажутся гораздо более подходящими для выполнения перцептивных и моторных задач, правила для которых разработать непросто. Вы не сможете без труда записать правила, которыми руководствуетесь, когда распознаете рукописные цифры, ловите бейсбольный мяч или узнаете голос матери, ведь вы делаете все это автоматически, не думая. Как выразился философ Энди Кларк, природа субсимволических систем такова, что у них “плохо с логикой, но хорошо с фрисби”[47].

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

Подъем машинного обучения

Вдохновленные статистикой и теорией вероятности, исследователи искусственного интеллекта создали множество алгоритмов, которые позволяют компьютерам учиться на данных, и область машинного обучения стала самостоятельным разделом ИИ, намеренно отделенным от символического ИИ. Специалисты по машинному обучению пренебрежительно называли методы символического искусственного интеллекта “старым добрым ИИ”, или GOFAI (Good Old-Fashioned Artificial Intelligence)[48], и категорически отвергали их.

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

Глава 3
Весна ИИ

Весеннее обострение

Вы когда-нибудь выкладывали на YouTube видеоролик со своим котом? Если да, то вы не одиноки. На YouTube загружено более миллиарда видеороликов, и во многих из них фигурируют коты. В 2012 году специалисты по ИИ из Google сконструировали многослойную нейронную сеть, имеющую более миллиарда весов, которая “просматривала” миллионы случайных видеороликов на YouTube и корректировала веса таким образом, чтобы успешно сжимать, а затем распаковывать избранные кадры. Исследователи Google не ставили системе задачу приобретать знания о конкретных объектах, но что же они обнаружили через неделю тренировки, заглянув в структуру сети? Там нашелся “нейрон” (или ячейка), который, судя по всему, отвечал за кодирование котов[49]. Эта машина-самоучка по распознаванию котов стала одним из целой серии впечатляющих прорывов ИИ, привлекших внимание публики в последнее десятилетие. В основе большей их части лежит набор алгоритмов нейронных сетей, называемый глубоким обучением.

До недавних пор представления общества об ИИ в основном формировались многочисленными фильмами и телесериалами, где ИИ был настоящей звездой, – вспомните “Космическую одиссею 2001 года” или “Терминатора”. В реальном мире мы не замечали ИИ ни в прессе, ни в повседневной жизни. Если вы росли в 1990-е или ранее, возможно, вы помните удручающее взаимодействие с системами распознавания речи при обращении в службы поддержки, роботизированную игрушку Furby, способную запоминать слова, или надоедливого и бесполезного Скрепыша, виртуального помощника в виде скрепки, созданного компанией Microsoft. Тогда еще не верилось, что появление полноценного ИИ не за горами.

Возможно, именно поэтому многие удивились и расстроились, когда в 1997 году шахматная программа Deep Blue, разработанная компанией IBM, победила чемпиона мира по шахматам Гарри Каспарова. Потрясенный Каспаров даже обвинил IBM в жульничестве, полагая, что машина не может так хорошо играть в шахматы, не получая помощи от экспертов[50]. (По иронии судьбы на Чемпионате мира по шахматам в 2006 году ситуация изменилась, когда один из участников обвинил другого в жульничестве, решив, что тот получает подсказки от компьютерной шахматной программы[51].)

Наш коллективный человеческий страх перед Deep Blue быстро рассеялся. Мы смирились с тем, что шахматы поддались машине, использующей метод “полного перебора”, и даже допустили, что умение хорошо играть в шахматы вовсе не требует общей интеллектуальной одаренности. Когда компьютеры превосходят людей в каком-либо деле, мы обычно реагируем именно так: приходим к выводу, что для успешного выполнения этой задачи большого ума не надо. “Когда все работает исправно, никто уже не называет это ИИ”, – сокрушался Джон Маккарти[52].

Однако с середины 2000-х годов мы стали узнавать о новых достижениях ИИ, а затем его успехи понеслись друг за другом с головокружительной скоростью. Google запустила сервис автоматического перевода с языка на язык, “Google Переводчик”. Он был несовершенен, но работал на удивление сносно, а впоследствии стал значительно лучше. Вскоре после этого на дороги Северной Калифорнии выехали беспилотные автомобили Google, осторожные и робкие, но все же самостоятельно передвигающиеся в потоке. В наших телефонах и домах появились такие виртуальные помощники, как Siri от Apple и Alexa от Amazon, которые научились обрабатывать многие голосовые запросы. YouTube стал предоставлять поразительно точные автоматизированные субтитры к видеороликам, а Skype предложил синхронный перевод с одного языка на другой во время видеозвонков. Facebook вдруг стал с пугающей точностью узнавать вас на загружаемых фотографиях, а фотохостинг Flickr начал автоматически генерировать текстовое описание фотоснимков.

В 2011 году разработанная IBM программа Watson уверенно выиграла у чемпионов телеигры Jeopardy!, умело интерпретируя подсказки, изобилующие игрой слов. Наблюдая за этим, ее противник Кен Дженнингс счел нужным “поприветствовать наших новых компьютерных владык”. Всего пять лет спустя миллионы интернет-пользователей вникали в премудрости игры го, издавна неприступной для искусственного интеллекта, когда программа AlphaGo в четырех партиях из пяти одержала блестящую победу над одним из лучших игроков мира.

Шумиха вокруг искусственного интеллекта быстро стала оглушительной, и деловой мир обратил на это внимание. Все крупнейшие технологические компании направили миллиарды долларов на исследование и разработку ИИ, непосредственно нанимая специалистов по ИИ или приобретая небольшие стартапы с единственной целью заполучить их талантливых сотрудников. Потенциальная возможность таких сделок, мгновенно делающих основателей стартапа миллионерами, привела к появлению множества стартапов, часто финансируемых и управляемых бывшими университетскими преподавателями, у каждого из которых был свой подход к ИИ. Журналист Кевин Келли, освещающий новости мира технологий, заметил: “Несложно представить, какими будут бизнес-планы следующих 10 000 стартапов: возьмем что-нибудь и добавим ИИ”[53]. Важно подчеркнуть, что почти все эти компании понимали под ИИ глубокое обучение.

Так расцвела очередная весна ИИ.

ИИ: ограниченный и общий, слабый и сильный

Как и в любую из прошлых весен ИИ, сегодня эксперты предсказывают, что “общий ИИ” – тот, который по большинству параметров находится на одном уровне с человеческим разумом или превосходит его, – не заставит себя ждать. “ИИ человеческого уровня появится в середине 2020-х годов”, – предрек Шейн Легг, один из основателей Google DeepMind, в 2008 году[54]. В 2015 году генеральный директор Facebook Марк Цукерберг заявил: “В следующие пять-десять лет мы среди прочего ставим перед собой цель превзойти возможности человека в основных областях восприятия: зрении, слухе, речи, мышлении в целом”[55]. Философы ИИ Винсент Мюллер и Ник Бостром опубликовали результаты проведенного в 2013 году опроса исследователей, в котором многие заявили о пятидесятипроцентной вероятности появления ИИ человеческого уровня к 2040 году[56].

Хотя этот оптимизм во многом основан на недавних успехах глубокого обучения, эти программы – как и все системы ИИ, разработанные до сих пор, – относятся к сфере так называемого ограниченного, или слабого, ИИ. Эти термины не столь уничижительны, как кажется: они просто обозначают систему, которая может выполнять лишь одну узкую задачу (или небольшой набор родственных задач). Возможно, AlphaGo лучше всех в мире играет в го, но больше она ничего не умеет: она не умеет играть ни в шашки, ни в крестики-нолики. “Google Переводчик” может перевести английскую рецензию на фильм на китайский, но не может сказать, понравился ли фильм рецензенту, и уж точно не сумеет сам посмотреть этот фильм и написать о нем отзыв.

Термины “ограниченный” и “слабый” используются в противовес “сильному”, “общему”, “полноценному”, или ИИ “человеческого уровня”, то есть искусственному интеллекту из кино, который умеет почти все, что умеют люди, или даже гораздо больше. Возможно, изначально исследователи ставили своей целью разработку общего ИИ, но создать его оказалось гораздо сложнее, чем ожидалось. Со временем работа над ИИ свелась к решению конкретных, четко определенных задач по распознаванию речи, игре в шахматы, беспилотному вождению и так далее. Создание машин, которые выполняют эти функции, полезно и часто прибыльно, и можно сказать, что при решении каждой из этих задач необходимо задействовать “разум”. Но пока еще не создана ни одна ИИ-программа, которую можно было бы назвать разумной в общем смысле. Это хорошо описано в недавней оценке состояния отрасли: “Множество ограниченных интеллектов никогда не составят в сумме общий интеллект. В общем интеллекте важно не количество навыков, а интеграция этих навыков”[57].

Постойте. Учитывая, что ограниченных интеллектов становится все больше, сколько времени должно пройти, прежде чем кто-нибудь найдет способ комбинировать их, воссоздавая широкие, глубокие и тонкие характеристики человеческого разума? Стоит ли верить когнитивисту Стивену Пинкеру, который считает, что ничего особенного не происходит? “До появления ИИ человеческого уровня по-прежнему остается от пятнадцати до двадцати пяти лет, как это было всегда, а многие его хваленые успехи поверхностны”, – отметил Пинкер[58]. Или же нам стоит прислушаться к оптимистам ИИ, которые уверены, что на этот раз, в эту весну ИИ, все будет иначе?

Неудивительно, что в среде исследователей ИИ бытуют значительные разногласия по вопросу о том, что означает “ИИ человеческого уровня”. Как понять, удалось ли нам сконструировать “думающую машину”? Нужны ли такой системе сознание или самоосознание, которыми обладают люди? Должна ли она понимать вещи так же, как их понимает человек? Учитывая, что речь идет о машине, не будет ли корректнее говорить, что она “моделирует мышление”, или же можно утверждать, что она действительно мыслит?

Могут ли машины мыслить?

Подобные философские вопросы терзают сферу ИИ с самого ее возникновения. Британский математик Алан Тьюринг, разработавший в 1930-х годах первую концепцию программируемого компьютера, в 1950 году опубликовал статью, в которой спросил, что мы имеем в виду, когда задаем вопрос: “Могут ли машины мыслить?” Предложив свою знаменитую “имитационную игру” (которая сегодня называется тестом Тьюринга и подробнее о которой я расскажу ниже), Тьюринг перечислил девять возможных аргументов против создания действительно мыслящей машины и попытался их опровергнуть. Предполагаемые аргументы варьируются в диапазоне от теологического – “Мышление – это функция бессмертной человеческой души. Бог наделил бессмертными душами всех мужчин и женщин, но не дал их ни другим животным, ни машинам. Следовательно, ни животные, ни машины не могут мыслить”, – до экстрасенсорного, который звучит примерно так: “Люди могут телепатически общаться друг с другом, а машины не могут”. Как ни странно, Тьюринг признал последний аргумент “довольно сильным”, потому что “статистических наблюдений, по крайней мере о телепатии, несметное множество”.

По прошествии нескольких десятилетий лично я считаю самым сильным из вероятных аргументов Тьюринга “возражение с точки зрения сознания”, которое он формулирует, цитируя невролога Джеффри Джефферсона:

Пока машина не сможет написать сонет или сочинить концерт, побуждаемая мыслями и чувствами, а не случайной последовательностью символов, мы не сможем согласиться с тем, что машина тождественна мозгу, то есть что она не только пишет эти вещи, но и понимает, что это она их написала. Ни один механизм не может чувствовать (а не просто искусственно сигнализировать, что не требует сложного устройства) радость от своих успехов, печалиться при расплавлении клапанов, получать удовольствие от лести, огорчаться из-за ошибок, увлекаться противоположным полом и злиться или расстраиваться, когда ему не удается получить желаемое[59].

Обратите внимание, что в этом аргументе говорится следующее: 1) только когда машина чувствует и сознает собственные действия и чувства – иными словами, когда она обладает сознанием, – мы можем считать, что она действительно мыслит; 2) ни одна машина никогда не будет на это способна. Следовательно, ни одна машина никогда не сможет мыслить по-настоящему.

Я считаю, это сильный аргумент, хотя и не соглашаюсь с ним. Он перекликается с нашими интуитивными представлениями о машинах и пределах их возможностей. Я обсуждала возможность создания машинного интеллекта с огромным количеством друзей, родственников и студентов, и многие из них приводили этот аргумент. Например, недавно моя мама, юрист на пенсии, прочитала в The New York Times статью об успехах “Google Переводчика”, и у нас состоялся такой разговор:

Мама: Проблема в том, что люди в сфере ИИ слишком много антропоморфизируют!

Я: Что ты имеешь в виду?

Мама: Они говорят так, словно машины могут мыслить по-настоящему, а не просто моделировать мышление.

Я: В чем разница между тем, чтобы “мыслить по-настоящему” и “моделировать мышление”?

Мама: По-настоящему мыслят при помощи мозга, а моделируют мышление при помощи компьютеров.

Я: Что особенного в мозге, что позволяет ему мыслить “по-настоящему”? Чего не хватает компьютерам?

Мама: Не знаю. Думаю, в мышлении есть нечто человеческое, что компьютеры никогда не смогут полностью воссоздать.

Так считает не только моя мама. Многим людям это кажется столь очевидным, что не требует объяснений. Как и многие из этих людей, моя мама причислила бы себя к сторонникам философского материализма: она не верит в существование нефизической “души”, или “жизненной силы”, которая наделяет живых существ разумом. Она просто считает, что машины никогда не будут в состоянии “мыслить по-настоящему”.

В научных кругах самую знаменитую версию этого аргумента предложил философ Джон Сёрл. В 1980 году Сёрл опубликовал статью “Разум, мозг и программы”[60], в которой заявил о своем категорическом несогласии с тем, что машины могут “мыслить по-настоящему”. В этой популярной и неоднозначной статье Сёрл ввел концепции “сильного” и “слабого” искусственного интеллекта, чтобы провести черту между двумя философскими утверждениями о программах ИИ. Хотя сегодня люди в основном называют сильным “ИИ, способный выполнять большинство задач на человеческом уровне”, а слабым – уже существующий ограниченный ИИ, Сёрл использовал эти термины иначе. В представлении Сёрла, ИИ можно назвать сильным, если “должным образом запрограммированный цифровой компьютер не просто моделирует разум, а в буквальном смысле обладает разумом”[61]. Примерами слабого ИИ Сёрл, напротив, считал компьютеры, которые используются для моделирования человеческого разума, но не обладают разумом “в буквальном смысле”[62]. И здесь мы возвращаемся к философскому вопросу, который я обсуждала с мамой: есть ли разница между “моделированием разума” и “обладанием разумом в буквальном смысле”? Как и моя мама, Сёрл полагает, что эта разница принципиальна, и заявил, что сильный ИИ невозможен даже в теории[63].

Тест Тьюринга

Статью Сёрла отчасти вдохновила опубликованная в 1950 году статья Алана Тьюринга “Вычислительные машины и разум”, в которой Тьюринг предложил способ разрубить гордиев узел “моделированного” и “настоящего” разума. Заявив, что “исходный вопрос «Может ли машина мыслить?» лишен смысла, а потому не заслуживает обсуждения”, Тьюринг предложил практический метод, чтобы наделить его смыслом. В его “имитационной игре”, ныне называемой тестом Тьюринга, два участника: компьютер и человек. Каждому из них по отдельности задает вопросы человек-судья, который пытается определить, кто есть кто. Судья физически не взаимодействует с участниками игры, а потому не может опираться на визуальные и слуховые подсказки. Все общение происходит при помощи печатного текста.

Тьюринг предложил следующее: “Вопрос «Могут ли машины мыслить?» нужно заменить вопросом «Можно ли вообразить такой цифровой компьютер, который сможет выиграть в имитационной игре?»” Иными словами, если компьютер достаточно похож на человека, чтобы быть неотличимым от людей, когда в расчет не принимаются его внешний вид и голос (а если уж на то пошло, то не учитывается также, как он пахнет и какой он на ощупь), то почему бы нам не считать, что он мыслит по-настоящему? Почему мы готовы признать “мыслящей” лишь такую сущность, которая состоит из конкретного материала (например, биологических клеток)? Как отметил без лишних церемоний информатик Скотт Ааронсон, предложение Тьюринга стало “выпадом против мясного шовинизма”[64].

Но дьявол всегда в деталях, и тест Тьюринга не исключение. Тьюринг не обозначил критерии для выбора участника-человека и судьи, а также не определил, как долго должен продолжаться тест и на какие темы позволено говорить участникам. При этом он сделал удивительно специфический прогноз: “Полагаю, лет через пятьдесят появится возможность программировать компьютеры таким образом… что они станут справляться с имитационной игрой настолько успешно, что вероятность верной идентификации после пяти минут расспросов для среднего судьи не будет превышать 70 %”. Иными словами, за пять минут игры среднего судью будут обманывать в 30 % случаев.

Прогноз Тьюринга оказался довольно точным. За прошедшие годы проводилось несколько тестов Тьюринга, в которых роль компьютера выполняли чат-боты – программы, созданные специально для поддержания разговора (больше они ничего не умеют). В 2014 году в Лондонском королевском обществе состоялся тест Тьюринга с участием пяти компьютерных программ, тридцати участников-людей и тридцати судей разных возрастов и профессий, включая специалистов и неспециалистов по компьютерным технологиям, а также носителей английского языка и людей, для которых он был неродным. Каждый судья проводил несколько пятиминутных разговоров, в которых параллельно общался (печатая текст) с двумя участниками – человеком и машиной, – а затем должен был определить, кто есть кто. Чат-бот Женя Густман, созданный группой российских и украинских программистов, выиграл соревнование, обманув десять (или 33,3 %) судей. Организаторы соревнования, следуя критерию Тьюринга об “обмане более 30 % судей за пять минут”, наводнили прессу сообщениями о том, что тест Тьюринга наконец-то оказался пройден.

Чат-бот Женя Густман работает аналогично большинству других чат-ботов. Он хранит большой набор шаблонов фраз, которые заполняет на основе запрограммированных правил, применяющихся к входному тексту – реплике собеседника. Создатели чат-бота разработали для него лингвистические правила, которые позволяют ему выделять ключевую информацию из входного сигнала и сохранять ее для последующего использования. Кроме того, чат-бот хранит базу данных “здравого смысла”, созданную людьми, а также некоторые логические правила, которые, вероятно, позволяют ему отвечать на такие вопросы, как “Какого цвета небо во Владивостоке?”, вполне по-человечески, например: “Синее, наверное, если нет облаков”. Если ни одно из правил чат-бота неприменимо к входному сигналу, он просто меняет тему. Правила системы также определяют ее “личность” – в данном случае это тринадцатилетний украинский мальчик, который хорошо, но не идеально (что особенно удобно) владеет английским. Вот отрывок из беседы Жени Густмана с одним из судей, которого он обманул:

Судья: Какого ты пола

Женя: Раз уж вы спрашиваете, я мальчик. Кстати, даже не урод!

Судья: что ты знаешь в данный момент

Женя: Я предпочел бы об этом не говорить, если вы не возражаете. Можете сказать мне, кто вы? Я имею в виду, по профессии.

Судья: сколько тебе лет

Женя: Я мальчик 13 лет.

Судья: что ты умеешь

Женя: Что я умею? Я вам этого не скажу. О-ох. Еще вопросы есть?[65]

После соревнования организаторы выпустили пресс-релиз, в котором объявили: “Компьютерная программа Женя Густман впервые прошла легендарный тест Тьюринга, предложенный 65 лет назад”. Они добавили: “Неслучайно такая важная веха оказалась преодолена в Лондонском королевском обществе, резиденции британской науки, которая на протяжении веков увидела немало великих прорывов человеческой мысли. Эта веха войдет в историю как одна из наиболее важных”[66].

Специалисты по ИИ в один голос рассмеялись над этими словами. Любому человеку, знакомому с принципом программирования чат-ботов, достаточно просмотреть записи состоявшихся на соревновании бесед, чтобы сразу понять, что Женя Густман – программа, причем не слишком сложная. Результат соревнования больше рассказал о судьях и самом тесте, чем о машинах. Учитывая пятиминутное ограничение и склонность уходить от ответа на сложные вопросы, меняя тему или отвечая вопросом на вопрос, программе было довольно легко убедить судью-неспециалиста, что он общается с живым человеком. Это демонстрировали многие чат-боты, от созданной в 1960-х годах программы “Элиза”, притворявшейся психотерапевтом, до современных вредоносных ботов в Facebook, которые в коротких текстовых беседах обманом убеждают людей раскрывать личную информацию.

Конечно, эти боты эксплуатируют склонность человека к антропоморфизации. (Мама, ты была права!) Мы спешим приписывать компьютерам понимание и сознание, имея лишь скудные доказательства.

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

Рэй Курцвейл, занимающий должность технического директора Google, полагает, что должным образом разработанная вариация теста Тьюринга действительно сможет обнаружить машинный интеллект. По его прогнозам, компьютер пройдет этот тест к 2029 году, что станет важной вехой на пути к предсказываемой Курцвейлом сингулярности.

Сингулярность

Рэй Курцвейл долгое время остается главным оптимистом ИИ. Он учился у Марвина Минского в MIT и стал выдающимся изобретателем: он изобрел первый синтезатор речи и один из лучших в мире музыкальных синтезаторов. За эти и другие изобретения в 1999 году президент Билл Клинтон вручил Курцвейлу Национальную медаль в области технологий и инноваций.

Но прославился Курцвейл не своими изобретениями, а своими футуристическими прогнозами – и, в частности, идеей о сингулярности как “периоде будущего, когда скорость технологических изменений станет так высока, а их влияние будет так сильно, что человеческая жизнь необратимо изменится”[67]. Курцвейл использует термин “сингулярность” в значении “уникальное событие с… необычайными последствиями”, в частности, “событие, способное разорвать ткань человеческой истории”[68]. По мнению Курцвейла, этим событием станет достижение искусственным интеллектом превосходства над человеческим разумом.

Курцвейла вдохновили предположения математика Ирвинга Джона Гуда о потенциале интеллектуального взрыва: “Назовем ультраразумной такую машину, которая способна значительно превосходить любую интеллектуальную деятельность человека, каким бы умным он ни был. Поскольку конструирование машин также относится к сфере этой интеллектуальной деятельности, ультраразумная машина сможет конструировать еще более совершенные машины, затем, несомненно, произойдет «интеллектуальный взрыв» – и человеческий разум остается далеко позади”[69].

На Курцвейла также повлиял математик и писатель-фантаст Вернор Виндж, который полагал, что это событие случится еще раньше: “Эволюция человеческого разума продолжалась миллионы лет. Мы добьемся эквивалентного прорыва за малую долю этого времени. Вскоре мы будем создавать разумы, которые будут превосходить наш собственный. Когда это случится, человеческая история достигнет некой сингулярности… и мир выйдет далеко за пределы нашего понимания”[70].

Курцвейл отталкивается от интеллектуального взрыва, ступает на территорию научной фантастики и переходит от ИИ к нанотехнологиям, виртуальной реальности и “загрузке сознания”, не меняя при этом спокойного, уверенного тона дельфийского оракула, который смотрит на календарь и называет конкретные даты. Чтобы получить представление о прогнозах Курцвейла, познакомьтесь с некоторыми из них:

К 2020-м годам молекулярная сборка даст инструменты, чтобы побороть бедность, очистить окружающую среду, победить болезни [и] повысить продолжительность человеческой жизни.


К концу 2030-х годов… мозговые имплантаты на базе массово производимых интеллектуальных наноботов существенно улучшат нашу память, а также все наши сенсорные и когнитивные способности и способности к распознаванию образов.


Загрузка сознания предполагает сканирование всех его значимых элементов и их установку в достаточно мощную вычислительную среду… По осторожному прогнозу, успешная загрузка [сознания] будет осуществлена в конце 2030-х годов[71].


Компьютер пройдет тест Тьюринга к 2029 году[72].


В 2030-х годах искусственное сознание станет вполне возможным. Это и есть ключ к прохождению теста Тьюринга[73].


Я считаю, что сингулярность наступит… в 2045 году. Небиологический разум, созданный в этом году, будет в миллиард раз мощнее всей совокупности человеческого разума сегодня[74].

Немецкий писатель Андриан Крайе иронично назвал прогноз Курцвейла о сингулярности “не более чем верой в технологическое Вознесение”[75].

Все прогнозы Курцвейла основаны на идее об “экспоненциальном прогрессе” во многих областях науки и технологий, особенно в сфере компьютеров. Чтобы проанализировать эту идею, давайте разберемся, как работает экспоненциальный рост.

Экспоненциальная притча

В качестве простой иллюстрации экспоненциального роста я перескажу старую притчу. Давным-давно прославленный мудрец из бедной и голодной деревни посетил далекое и богатое царство, правитель которого предложил ему сыграть в шахматы. Мудрец не спешил соглашаться, но правитель настаивал, обещая мудрецу в награду все, что он только пожелает, если он сумеет одержать победу в игре. Желая спасти свою деревню, мудрец согласился сыграть в шахматы и (как обычно случается с мудрецами) выиграл партию. Царь спросил мудреца, какую награду он хочет. Любивший математику мудрец ответил: “Я прошу, чтобы ты взял эту шахматную доску и положил два рисовых зернышка на первую клетку, четыре – на вторую, восемь – на третью и так далее, удваивая количество зернышек на каждой следующей клетке. Доходя до конца каждого ряда, складывай зерна и отправляй их в мою деревню”. Не разбиравшийся в математике правитель рассмеялся. “И это все, чего ты хочешь? Я велю своим придворным принести рис и скорейшим образом выполнить твою просьбу”.

Слуги принесли большой мешок с рисом. Через несколько минут они выложили рисовые зерна на первые восемь клеток: 2 – на первую, 4 – на вторую, 8 – на третью и так далее. На восьмой клетке оказалось 256 зерен. Они сложили все зерна (всего 511 штук) в маленький мешочек и отправили на лошади в деревню мудреца. Затем они перешли на второй ряд и положили на первую клетку 512 зерен, на вторую – 1024, на третью – 2048. Кучки риса уже не входили на клетки, поэтому зерна считали в большой миске. К концу второго ряда пересчет зерен стал занимать слишком много времени, и придворные математики стали примерно оценивать их количество по весу. Они посчитали, что на шестнадцатую клетку необходимо было положить 65 536 зерен, то есть около килограмма риса. Мешок с рисом за второй ряд клеток весил около двух килограммов.

Когда придворные перешли на третий ряд, за семнадцатую клетку они выделили мудрецу 2 килограмма риса, за восемнадцатую – 4 и так далее. К концу третьего ряда (на клетке номер 24) потребовалось 512 килограммов риса. Слугам приказали принести еще несколько огромных мешков с рисом. На второй клетке четвертого ряда (клетке номер 26) положение стало отчаянным: по подсчетам математиков, за нее мудрецу полагалось 2048 килограммов риса. Для этого нужно было отдать весь рис, запасенный в стране, но придворные не дошли еще даже до середины шахматной доски. Правитель понял, что мудрец его обхитрил, и взмолился, чтобы он простил ему долг и спас царство от голода. Решив, что его деревня получила достаточно риса, мудрец пощадил правителя.


Рис. 5. Графики, показывающие, сколько риса необходимо выделить на каждую клетку шахматной доски, чтобы выполнить просьбу мудреца: A – клетки 1–24 (на оси y показаны сотни килограммов), B – клетки 24–64 (на оси y показаны десятки триллионов килограммов)


На рис. 5A показано количество килограммов риса, выделяемых за каждую клетку до двадцать четвертой. На первой клетке лежит два зернышка, масса которых составляет жалкую долю килограмма. Меньше килограмма риса выделяется на каждую клетку до шестнадцатой включительно. Но после шестнадцатой клетки график стремительно взлетает вверх из-за эффекта удвоения. На рис. 5B показаны цифры для клеток 24–64, которые возрастают с 512 килограммов до более чем 30 триллионов килограммов.

Этот график описывается математической функцией y = 2x, где x – клетка шахматной доски (имеющая номер от 1 до 64), а y – количество рисовых зерен, соответствующих этой клетке. Такая функция называется экспоненциальной, поскольку x – это экспонента числа 2. При любом масштабе графика эта функция имеет характерную точку, в которой кривая переходит от медленного к взрывному росту.

Экспоненциальный прогресс в компьютерной сфере

По мнению Рэя Курцвейла, компьютерная эпоха стала реальным повторением экспоненциальной притчи. В 1965 году один из основателей Intel Corporation Гордон Мур сформулировал закон, который стали называть законом Мура: количество компонентов чипа компьютерной микросхемы удваивается примерно каждые два года. Иными словами, размер (и стоимость) компонентов экспоненциально снижается, а вычислительная скорость и объемы компьютерной памяти экспоненциально растут.

Книги Курцвейла полны графиков, подобных графикам на рис. 5, и его прогнозы о будущем ИИ основаны на экстраполяции тенденций к экспоненциальному прогрессу в соответствии с законом Мура. Курцвейл отмечает, что при сохранении текущих тенденций (а он полагает, что они сохранятся) компьютер стоимостью 1000 долларов “достигнет мощности человеческого мозга (1016 вычислений в секунду) … примерно в 2023 году”[76]. В этот момент, по мнению Курцвейла, для создания ИИ человеческого уровня нужно будет просто осуществить обратное проектирование мозга.

Нейроинженерия

При обратном проектировании мозга необходимо достаточно хорошо разбираться в его устройстве, чтобы его скопировать, или хотя бы использовать основные принципы работы мозга, чтобы воссоздать его разум на компьютере. Курцвейл считает обратное проектирование практическим подходом к созданию ИИ человеческого уровня и ожидает, что он будет применяться в ближайшем будущем. Большинство нейробиологов категорически не согласно с ним, ведь сегодня о работе мозга известно очень мало. Однако аргумент Курцвейла опять же опирается на экспоненциальные тенденции – на этот раз на прогресс в нейробиологии. В 2002 году Курцвейл написал: “Тщательный анализ соответствующих тенденций показывает, что в ближайшие тридцать лет мы поймем принципы работы человеческого мозга и получим возможность воссоздать его способности в искусственных веществах”[77].

Немногие нейробиологи согласны с таким оптимистичным прогнозом для их области науки – а возможно, с ним не согласен никто из них. Но даже если мы сможем создать машину, работающую по принципам мозга, как она узнает все, что нужно знать, чтобы считаться разумной? В конце концов, у новорожденного ребенка есть мозг, но пока нет того, что мы назвали бы интеллектом человеческого уровня. “Сложность [мозга] в основном определяется его взаимодействиями со сложным миром, – соглашается Курцвейл. – Следовательно, необходимо будет обеспечить искусственный разум образованием, подобно тому, как мы обеспечиваем образованием природный разум”[78].

Само собой, получение образования может занять долгие годы. Курцвейл полагает, что этот процесс можно значительно ускорить. “Современная электроника уже обрабатывает информацию в десять миллионов раз быстрее, чем электрохимическая нервная система человека. Как только ИИ освоит основные человеческие речевые навыки, он сможет совершенствовать эти навыки и расширять свои общие знания, быстро читая человеческую литературу и поглощая информацию, которая содержится на миллионах интернет-сайтов”[79].

Курцвейл не говорит, как именно все это случится, но уверяет нас, что для создания ИИ человеческого уровня “мы не станем программировать человеческий разум связь за связью, как гигантскую экспертную систему, а сконструируем сложную иерархию самоорганизующихся систем, основанную в основном на обратном проектировании человеческого мозга, а затем позволим ей получить образование… в сотни, если не в тысячи, раз быстрее, чем со сравнимым процессом справляются люди”[80].

Скептики и адепты сингулярности

Часто книги Курцвейла “Эпоха духовных машин” (1999) и “Сингулярность уже близко” (2005) вызывают одну из двух противоположных реакций: восторженную поддержку или снисходительный скепсис. Читая книги Курцвейла, я пребывала (и по-прежнему остаюсь) во втором лагере. Меня совсем не убедили ни многочисленные экспоненты, ни аргументы в поддержку обратного проектирования мозга. Да, компьютер Deep Blue победил Каспарова в шахматах, но в большинстве других областей ИИ не дотягивает до человеческого уровня. Прогнозы Курцвейла о том, что ИИ сравняется с нами всего через пару десятилетий, кажутся мне до смешного оптимистичными.

Большинство знакомых мне людей настроено столь же скептически. Мнение большинства специалистов по ИИ прекрасно выражено в статье журналистки Морин Дауд, которая описывает, как знаменитый стэнфордский исследователь ИИ Эндрю Ын при упоминании о Курцвейле закатил глаза и сказал: “Всякий раз, когда я читаю «Сингулярность» Курцвейла, глаза у меня закатываются сами собой”[81].

С другой стороны, у Курцвейла много сторонников. Его книги, как правило, становились бестселлерами и получали положительные отзывы в серьезных изданиях. В журнале Time о “Сингулярности” написали: “Это не маргинальная теория, а серьезная гипотеза о будущем жизни на Земле”[82].

Идеи Курцвейла оказали особенно сильное влияние на технологическую сферу, где люди склонны верить в экспоненциальный прогресс технологий как способ решения всех общественных проблем. Курцвейл не только занимает пост технического директора в Google, но и вместе с другим футуристом и предпринимателем Питером Диамандисом основал Университет сингулярности (SU), “трансгуманистический” аналитический центр и инкубатор стартапов, который иногда выполняет роль летнего лагеря для технологической элиты. Задача SU состоит в том, чтобы “обучать, вдохновлять и помогать лидерам применять экспоненциальные технологии для решения важнейших проблем человечества”[83]. Одним из учредителей SU выступает Google. Сооснователь компании Ларри Пейдж активно поддерживает проект и часто читает лекции на программах SU. Кроме того, SU спонсируют и несколько других крупных технологических компаний.

Дуглас Хофштадтер стал одним из тех, кто – снова меня удивив – занял промежуточную позицию между скепсисом и тревогой по поводу сингулярности. Его насторожило, что в книгах Курцвейла “самые причудливые фантастические сценарии оказались перемешаны с прогнозами, сомнений в которых не возникает”. Когда я позволила себе не согласиться с этим, Хофштадтер отметил, что теперь, по прошествии нескольких лет, становится очевидно, что Курцвейл сделал много безумных предсказаний, но многие его предсказания, как ни странно, уже сбылись или сбудутся в скором времени. К 2030-м годам “«трансляторы опыта»… [будут] загружать весь поток своего сенсорного опыта, а также неврологические корреляты своих эмоциональных реакций во Всемирную паутину”?[84] Звучит бредово. Но в конце 1980-х годов Курцвейл, опираясь на свои экспоненты, предсказал, что к 1998 году “компьютер победит чемпиона мира по шахматам… и в результате мы разочаруемся в шахматах”[85]. В то время этот прогноз тоже показался многим бредовым. Но он оправдался на год раньше, чем предсказал Курцвейл.

Хофштадтер замечает, как хитро Курцвейл использует уловку, которую Хофштадтер называет “уловкой Христофора Колумба”[86], намекая на песню Айры Гершвина “Все смеялись”, где есть строчка “Все смеялись над Христофором Колумбом”. Курцвейл цитирует высказывания выдающихся людей прошлого, которые в свое время катастрофически недооценили развитие и влияние технологий. Приведу несколько примеров. Генеральный директор компании IBM Томас Уотсон в 1943 году сказал: “Думаю, во всем мире можно продать от силы компьютеров пять”. Один из основателей Digital Equipment Corporation Кен Олсен в 1977 году заявил: “Людям вовсе не нужны домашние компьютеры”. Билл Гейтс в 1981 году сказал: “640 000 байт памяти должно хватить всем”[87]. Уязвленный своей ошибкой насчет компьютерных шахмат, Хофштадтер не торопился отвергать идеи Курцвейла, какими бы безумными они ни казались. “Как и победа Deep Blue над Каспаровым, все это дает нам пищу для размышлений”[88].

Ставка на тест Тьюринга

“Футурологом” быть хорошо. Можно писать книги с прогнозами на десятки лет вперед, точность которых никак не скажется на вашей репутации – или показателях книжных продаж – здесь и сейчас. В 2002 году был создан сайт Long Bets, который помогает держать футурологов в узде. Long Bets – это “арена для конкурентных, ответственных прогнозов”[89], позволяющая прогнозисту делать долгосрочный прогноз с конкретной датой, а оппоненту – оспаривать этот прогноз. При этом оба они делают денежные ставки, а выигрыши выплачиваются, когда проходит дата прогноза. Первым прогнозистом на сайте стал предприниматель Митчелл Капор, который занимается разработкой программного обеспечения. Он сделал пессимистичный прогноз: “К 2029 году ни один компьютер – или «машинный интеллект» – не пройдет тест Тьюринга”. Капор, который основал успешную компанию по производству программного обеспечения Lotus и давно выступает за расширение гражданских свобод в интернете, хорошо знал Курцвейла и пребывал в лагере “отчаянных скептиков” в вопросе о сингулярности. Курцвейл согласился стать оппонентом Капора в этом публичном пари. По его итогам 20 000 долларов перейдут в “Фонд электронных рубежей” (в число основателей которого входит Капор), если победит Капор, или в Фонд Курцвейла, если победит Курцвейл. Тест для определения победителя состоится до конца 2029 года.

Когда Капор и Курцвейл заключили это пари, им – в отличие от Тьюринга – пришлось точно описать, как именно будет работать их тест Тьюринга. Они начали с нескольких необходимых определений. “Человек – это биологическая человеческая личность в понимании 2001 года, разум которого не усовершенствован при помощи машинного (то есть небиологического) разума… Компьютер – это любая форма небиологического разума (аппаратное и программное обеспечение), которая может включать любые формы технологий, но не может быть ни биологическим Человеком (усовершенствованным или нет), ни биологическими нейронами (при этом использование небиологических моделей биологических нейронов допустимо)”[90].

В условиях пари также говорится, что к оценке теста привлекут троих судей, которые будут беседовать с компьютером и тремя людьми – “референсами”. Все четверо кандидатов будут пытаться убедить судей, что они люди. Судей и участников для сравнения выберет “комитет теста Тьюринга”, в который войдут Капор, Курцвейл (или их представители) и еще одно лицо. Вместо пяти минут каждый из четырех кандидатов будет целых два часа беседовать с каждым из судей. По окончании всех интервью каждый судья вынесет свой вердикт (“человек” или “машина”) для каждого из участников. “Компьютер будет признан прошедшим «Тест Тьюринга по выявлению человека», если Компьютер обманет двух или более из трех Судей, заставив их подумать, что он человек”[91].

Но это еще не всё:

Кроме того, каждый из трех Судей Теста Тьюринга поставит каждому из четырех Кандидатов оценку от 1 (человек с наименьшей вероятностью) до 4 (человек с наибольшей вероятностью). Компьютер будет признан прошедшим “Тест Тьюринга по ранжированию”, если медианная оценка Компьютера окажется равна медианной оценке двух или более Людей-Референсов Теста Тьюринга или превысит ее.


Компьютер будет признан прошедшим Тест Тьюринга, если пройдет и Тест Тьюринга по выявлению человека, и Тест Тьюринга по ранжированию.


Если Компьютер пройдет Тест Тьюринга, описанный выше, до конца 2029 года, победителем пари будет признан Рэй Курцвейл. В ином случае победителем пари будет признан Митчелл Капор[92].

Ого! Довольно строго. У Жени Густмана не было бы шансов. Я должна (осторожно) согласиться с такой оценкой Курцвейла: “На мой взгляд, не существует набора хитростей или простых алгоритмов (то есть методов, которые были бы проще тех, что лежат в основе человеческого разума), который позволил бы машине пройти должным образом подготовленный тест Тьюринга, если она не обладает полноценным интеллектом человеческого уровня”[93].

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

Но Капора эти аргументы не убеждают. Он заостряет внимание на том, как (человеческие) физические тела и эмоции влияют на когнитивные способности человека. “Восприятие окружающей среды и [физическое] взаимодействие с ней не меньше когнитивной деятельности определяет наш опыт… [Эмоции] устанавливают и формируют границы мыслимого”[94]. Капор уверен, что, не имея эквивалента человеческого тела и всего, что оно дает, машина никогда не сможет узнать все необходимое для прохождения строгого теста Тьюринга, который разработали они с Курцвейлом.

Я уверен, что в основном люди познают мир эмпирически. Чтение книг лишь углубляет знания… Если человеческое знание, особенно знание об опыте, по большей части остается скрытым, то есть никогда не получает непосредственного выражения, найти его в книгах невозможно, а следовательно, подход Курцвейла к приобретению знаний окажется несостоятельным… Проблема заключается не в том, что знает компьютер, а в том, чего он не знает и не может знать[95].

Курцвейл отвечает, что согласен с Капором в вопросе о роли эмпирического обучения, скрытого знания и эмоций, но полагает, что к 2030 году виртуальная реальность станет “совершенно реалистичной”[96], а потому позволит воссоздавать физический опыт, необходимый для обучения развивающегося искусственного интеллекта. (Добро пожаловать в Матрицу.) Более того, этот искусственный интеллект получит созданный методом обратного проектирования искусственный мозг, ключевым компонентом которого будут эмоции.

Вы, как и Капор, скептически относитесь к прогнозам Курцвейла? Курцвейл утверждает, что вы просто не понимаете экспоненциальный рост. “По большому счету, суть моих разногласий с критиками сводится к тому, что они говорят: Курцвейл недооценивает сложность обратного проектирования человеческого мозга или сложность биологии. Но я не думаю, что недооцениваю сложность этой задачи. Думаю, это они недооценивают силу экспоненциального роста”[97].

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

Однако, как отмечают адепты сингулярности, порой сложно увидеть экспоненциальную тенденцию, когда она в разгаре. Если посмотреть на экспоненциальные кривые вроде тех, что приводятся на рис. 5, Курцвейл и его сторонники полагают, что сейчас мы находимся в моменте, где кривая поднимается очень медленно, и прогресс кажется нам поступательным, но это заблуждение: впереди нас ждет взрывной рост.

Станет ли текущая весна ИИ, как утверждают многие, предвестником грядущего взрыва? Или это просто промежуточная остановка на медленной кривой поступательного развития, которая еще как минимум сто лет не приведет к появлению ИИ человеческого уровня? Или это очередной пузырь ИИ, который скоро лопнет, после чего начнется новая зима искусственного интеллекта?

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

Часть II
Смотреть и видеть

Глава 4
Что, где, когда, кто и почему?

Взгляните на фотографию на рис. 6 и скажите мне, что вы видите. Женщина гладит собаку. Военнослужащая гладит собаку. Военнослужащую, которая только что вернулась с войны, встречает собака, а рядом лежат цветы и летает воздушный шарик с надписью “Добро пожаловать домой!”. На лице военнослужащей написаны сложные чувства. Собака радостно виляет хвостом.

Когда был сделан этот снимок? Скорее всего, в последние десять лет. Где он был сделан? Вероятно, в аэропорту. Почему военнослужащая гладит собаку? Вероятно, она была в длительной командировке, повидала многое – и хорошее, и плохое, – очень скучала по своей собаке и теперь рада вернуться домой. Возможно, собака символизирует все, что для нее есть “дом”. Что случилось до того, как был сделан этот снимок? Вероятно, военнослужащая вышла из самолета и прошла через зону безопасности аэропорта в зал прилетов, где собрались встречающие. Ее друзья и близкие обняли ее, подарили ей цветы и шарик, а потом отпустили собачий поводок. Собака подскочила к военнослужащей, которая положила на пол все, что держала в руках, и опустилась на колени, осторожно прижимая ленточку от шарика ногой, чтобы он не улетел. Что случится дальше? Вероятно, она встанет на ноги, возможно, смахнет слезы, поднимет с пола цветы, шарик и ноутбук, возьмет в руку поводок, а потом вместе с собакой, друзьями и близкими пойдет в зону выдачи багажа.


Рис. 6. Что вы видите на этой фотографии?


Когда вы смотрите на эту фотографию, на самом базовом уровне вы видите чернильные точки на бумаге (или пиксели на экране). Ваши глаза и мозг берут эту сырую информацию и за несколько секунд каким-то образом превращают ее в подробную историю, в которой описываются люди, предметы, отношения, места, чувства, мотивы, а также прошлые и будущие действия. Мы смотрим, видим и понимаем. Более того, мы знаем, на что не стоит обращать внимания. Мы не включаем в историю множество видимых на фотографии деталей, которые не имеют для нее значения: узор ковра, висящие ремни на рюкзаке военнослужащей, заколки у нее в волосах, пристегнутый к лямке рюкзака свисток.

Мы, люди, обрабатываем огромный объем информации почти мгновенно, но практически – или совершенно – не сознаем, что и как при этом делаем. Если вы не слепы с рождения, обработка зрительной информации на разных уровнях абстракции главенствует в вашем мозге.

Безусловно, способность описывать фотографию (или видео, или идущую в прямом эфире трансляцию) таким образом станет одним из первых навыков, которых мы будем ждать от общего ИИ человеческого уровня.

Простые вещи делать сложно (особенно в области зрения)

С 1950-х годов исследователи ИИ пытались научить компьютеры понимать визуальные данные. На заре ИИ казалось, что достичь этой цели относительно нетрудно. В 1966 году Марвин Минский и Сеймур Пейперт – выступающие за символический ИИ профессорá MIT, которых вы помните из первой главы, – предложили организовать “Летний проект по зрению” и дать студентам “сконструировать значительную часть зрительной системы”[98]. Один историк ИИ описал проект так: “Минский нанял первокурсника и поставил ему задачу на лето: подключить телекамеру к компьютеру и научить машину описывать то, что она видит”[99].

Студент не добился впечатляющих результатов. Хотя после этого летнего проекта подобласть ИИ, называемая компьютерным зрением, значительно продвинулась вперед, создание программы, которая могла бы смотреть на фотографии и описывать их так же, как это делают люди, по-прежнему не представляется возможным. Зрение – и умение смотреть, и умение видеть – оказалось одной из самых сложных из “простых” вещей.

Чтобы описывать визуальную информацию, прежде всего необходимо распознавать объекты, то есть узнавать в конкретной группе пикселей на изображении конкретный объект категории, такой как “женщина”, “собака”, “воздушный шарик” или “ноутбук”. Как правило, мы, люди, быстро и легко справляемся с распознаванием объектов, так что поначалу казалось, что не составит большого труда научить этому и компьютер, но не тут-то было.


Рис. 7. Распознавание объектов: легко для человека, сложно для компьютеров


Что такого сложного в распознавании объектов? Допустим, нужно научить компьютерную программу распознавать собак на фотографиях. На рис. 7 показаны некоторые сложности этой задачи. Если на входе программа получает просто пиксели изображения, то первым делом ей необходимо понять, где среди них “собачьи” пиксели, а где “несобачьи” (например, пиксели фона, теней, других объектов). Более того, разные собаки выглядят по-разному: у них разные окрасы, формы и размеры, они могут смотреть в разных направлениях, освещенность на изображениях может значительно различаться, собаку могут частично перекрывать другие предметы (например, решетки, люди). К тому же “собачьи” пиксели могут сильно напоминать “кошачьи” – и вообще “звериные”. При определенном освещении даже облако на небе может быть очень похоже на собаку.

С 1950-х годов сфера компьютерного зрения неизменно сталкивалась с этими и другими проблемами. До недавних пор исследователи компьютерного зрения в основном разрабатывали специализированные алгоритмы обработки изображений для выявления “инвариантных признаков” объекта, по которым его можно опознавать, несмотря на описанные выше сложности. Обработка изображений совершенствовалась, но способности программ по распознаванию объектов по-прежнему не могли сравниться с человеческими.

Революция глубокого обучения

Невероятный прорыв в способности машин распознавать объекты на изображениях и видео случился в 2010-х годах и был вызван успехами в сфере глубокого обучения.

Глубоким обучением называют методы тренировки “глубоких нейронных сетей”, то есть нейронных сетей, имеющих более одного скрытого слоя. Как вы помните, скрытыми называются слои нейронной сети, расположенные между входным и выходным слоями. Глубина сети определяется количеством скрытых слоев: “мелкая” сеть – такая, как мы видели в главе 2, – имеет всего один скрытый слой, а “глубокая” – более одного. Важно подчеркнуть, что слово “глубокий” в термине “глубокое обучение” не описывает сложность того, чему учится система, а относится только к глубине слоев тренируемой сети.

Исследования глубоких нейронных сетей продолжаются несколько десятилетий. Революционными их делает недавний феноменальный успех при выполнении многих задач ИИ. Исследователи заметили, что структура самых успешных глубоких сетей копирует части зрительной системы мозга. “Традиционные” многослойные нейронные сети, описанные в главе 2, создавались с оглядкой на мозг, но по структуре совсем на него не походили. Нейронные сети, господствующие в сфере глубокого обучения, напротив, непосредственно смоделированы на основе открытий нейробиологии.

Мозг, неокогнитрон и сверточные нейронные сети

Примерно в то же время, когда Минский и Пейперт выступили с идеей “Летнего проекта по зрению”, два нейробиолога вели растянувшееся на несколько десятилетий исследование, которое в итоге радикальным образом изменило наши представления о зрении – и особенно о распознавании объектов – в мозге. Позже Дэвид Хьюбел и Торстен Визель получили Нобелевскую премию за открытие иерархической организации зрительных систем кошек и приматов (включая человека) и за объяснение, каким образом зрительная система преобразует свет, падающий на сетчатку, в информацию об окружающей обстановке.


Рис. 8. Путь зрительного входного сигнала от глаз к зрительной коре


Открытия Хьюбела и Визеля вдохновили японского инженера Кунихико Фукусиму, который в 1970-х годах создал одну из первых глубоких нейронных сетей, названную когнитроном, а затем разработал его новую вариацию, неокогнитрон. В своих статьях[100] Фукусима сообщал об успехе в тренировке неокогнитрона для распознавания рукописных цифр (таких, как показаны на рисунке в главе 1), но методы обучения, которые он использовал, судя по всему, не подходили для более сложных зрительных задач. Тем не менее неокогнитрон стал отправной точкой для создания более поздних вариаций глубоких нейронных сетей, включая самые важные и широко распространенные сегодня – сверточные нейронные сети (СНС).

Сверточные нейронные сети стали главной движущей силой сегодняшней революции глубокого обучения в компьютерном зрении и других сферах. Хотя их часто называют следующим крупным прорывом ИИ, на самом деле они не слишком новы: впервые их еще в 1980-х годах предложил французский информатик Ян Лекун, вдохновленный неокогнитроном Фукусимы.

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

Распознавание объектов в мозге и в СНС

Как и неокогнитрон, СНС сконструированы с учетом открытий Хьюбела и Визеля об устройстве зрительной системы мозга, сделанных в 1950-х и 1960-х годах. Когда ваши глаза фокусируются на сцене, они получают световые волны различной длины, которые отражаются от объектов и поверхностей сцены. Попадая в глаза, свет активирует клетки на каждой сетчатке, которая, по сути, представляет собой нейронную сеть в задней части глаза. Эти нейроны с помощью зрительных нервов сообщают о своей активации мозгу и в итоге активируют нейроны зрительной коры, которая находится в затылочной части головы (рис. 8). Условно говоря, зрительная кора состоит из иерархически организованных слоев нейронов, напоминающих ярусы свадебного торта, и нейроны каждого слоя сообщают о своей активации нейронам следующего слоя.

Хьюбел и Визель обнаружили, что нейроны разных слоев этой иерархии служат “детекторами”, которые реагируют на все более сложные особенности визуальной сцены, как показано на рис. 9: нейроны первых слоев активируются (то есть начинают чаще испускать сигналы), выявляя границы; их активация питает следующие слои, выявляющие простые формы с этими границами, – и так далее, к сложным формам и, наконец, целым объектам или конкретным лицам. Обратите внимание, что стрелками на рис. 9 обозначен восходящий поток информации (или прямая связь) с переходом от нижних слоев к верхним (на рисунке – слева направо). Важно отметить, что в зрительной коре наблюдается также нисходящий поток информации (или обратная связь) с переходом от верхних слоев к нижним, причем обратных связей почти в десять раз больше, чем прямых. Тем не менее нейробиологи плохо понимают роль этих обратных связей, хотя установлено, что накопленные знания и ожидания, предположительно хранящиеся в более высоких слоях мозга, оказывают существенное влияние на наше восприятие.


Рис. 9. Схема визуальных особенностей, выявляемых нейронами разных слоев зрительной коры


Как и иерархическая структура с прямой связью, показанная на рис. 9, сверточная нейронная сеть состоит из последовательности слоев искусственных нейронов. Я снова буду называть эти искусственные нейроны ячейками. Ячейки каждого слоя предоставляют входной сигнал следующему слою. Подобно нейронной сети, описанной в главе 2, при обработке изображения сверточной нейронной сетью каждая ячейка получает конкретную активацию – действительное число, вычисленное на основе входных сигналов ячейки и их весов.


Рис. 10. Схема четырехслойной СНС, разработанной для распознавания кошек и собак на фотографиях


В качестве иллюстрации представим гипотетическую СНС с четырьмя слоями и “модулем классификации”. Нам необходимо натренировать ее на распознавание кошек и собак на изображениях. Для простоты допустим, что на каждом изображении есть лишь одна кошка или собака. На рис. 10 показана структура нашей сверточной нейронной сети. Она достаточно сложна, поэтому я опишу все ее компоненты, чтобы объяснить, как работает эта сеть.

Входной и выходной сигналы

Входным сигналом в нашей сверточной нейронной сети служит изображение, то есть массив цифр, соответствующих яркости и цвету составляющих изображение пикселей[101]. Выходным сигналом нашей сети служит степень ее уверенности (от 0 % до 100 %) в каждой категории: “собака” и “кошка”. Наша цель – научить сеть выдавать высокую степень уверенности для верной категории и низкую – для неверной категории. Таким образом сеть узнает, какие признаки входного изображения наиболее полезны для этой задачи.

Карты активации

Обратите внимание, что на рис. 10 каждый слой сети представлен группой из трех наложенных друг на друга прямоугольников. Эти прямоугольники обозначают карты активации, создаваемые по аналогии с подобными “картами”, обнаруженными в зрительной системе мозга. Хьюбел и Визель установили, что нейроны в нижних слоях зрительной коры формируют решетку, в которой каждый нейрон реагирует на соответствующую небольшую зону визуального поля. Представьте, что вы фотографируете ночной Лос-Анджелес с самолета: огни на вашем снимке складываются в схематичную карту светящихся элементов города. Аналогичным образом активация нейронов в каждом матричном слое зрительной коры формирует схематичную карту важных признаков наблюдаемой сцены. Теперь представьте, что у вас особенный фотоаппарат, который может делать отдельные снимки с огнями домов, светом из окон высотных зданий и фарами машин. Примерно так работает зрительная кора: у каждого важного зрительного признака появляется собственная нейронная карта. Комбинация этих карт – ключ к нашему восприятию сцены.

Как и нейроны зрительной коры, ячейки сверточной нейронной сети служат детекторами важных визуальных признаков, причем каждая ячейка ищет свой признак в конкретной области визуального поля. И (условно говоря) как и зрительная кора, каждый слой СНС состоит из нескольких решеток, сформированных такими ячейками, и каждая решетка является картой конкретного визуального признака.

Какие визуальные признаки должны выявлять ячейки СНС? Давайте сначала посмотрим на мозг. Хьюбел и Визель обнаружили, что нейроны нижних слоев зрительной коры служат детекторами ребер – границ между двумя контрастными областями изображения. Каждый нейрон получает входной сигнал, соответствующий конкретной небольшой области видимой сцены, и эта область называется рецептивным полем нейрона. Нейрон активируется (то есть начинает чаще испускать сигналы), только если рецептивное поле содержит ребра определенного типа.

Тип ребер, на которые реагируют эти нейроны, довольно четко определен. Одни нейроны активируются, только когда в их рецептивном поле оказывается вертикальное ребро, другие реагируют только на горизонтальное ребро, третьи – только на ребра, проходящие под другими определенными углами. Одним из важнейших открытий Хьюбела и Визеля стало то, что каждая небольшая область зрительного поля человека соответствует рецептивным полям многих нейронов, служащих “детекторами ребер”. Таким образом, на низком уровне обработки зрительной информации ваши нейроны определяют ориентацию ребер в каждом фрагменте сцены, на которую вы смотрите. Информация от нейронов – детекторов ребер – поступает в более высокие слои зрительной коры, нейроны которых, вероятно, служат детекторами конкретных форм, объектов и лиц[102].


Рис. 11. Карты активации в первом слое нашей СНС


Подобным образом первый слой нашей гипотетической сверточной нейронной сети состоит из ячеек, которые выявляют ребра. На рис. 11 приводится более подробная схема устройства первого слоя нашей сверточной нейронной сети. Этот слой включает три карты активации, каждая из которых представляет собой решетку из ячеек. Каждая ячейка на карте соответствует аналогичному месту на входном изображении, и каждая ячейка получает входной сигнал из небольшой области вокруг этого места – из своего рецептивного поля. (Как правило, рецептивные поля соседних ячеек накладываются друг на друга.) Каждая ячейка каждой карты вычисляет уровень активации, показывающий, в какой степени поле соответствует той ориентации ребер, которая предпочитается данной ячейкой – например, вертикальной, горизонтальной или наклоненной под определенным углом.

На рис. 12 в подробностях показано, как ячейки карты 1, ответственные за выявление вертикальных границ, вычисляют уровни своей активации. Маленькими белыми квадратиками на входном изображении обозначены рецептивные поля двух разных ячеек. Увеличенные фрагменты изображения, попадающие в эти поля, показаны в качестве решеток со значениями пикселей. Здесь я для простоты показала каждый фрагмент как решетку пикселей 3 × 3 (значения обычно находятся в диапазоне от 0 до 255 – чем светлее пиксель, тем выше значение). Каждая ячейка получает в качестве входного сигнала значения пикселей в своем рецептивном поле. Она умножает каждое входное значение на его вес, складывает результаты и получает уровень своей активации.


Рис. 12. Иллюстрация применения свертки для выявления вертикальных ребер. Например, свертка верхнего рецептивного поля с весами составляет (200 × 1) + (110 × 0) + (70 × –1) + (190 × 1) + (90 × 0) + + (80 × –1) + (220 × 1) + (70 × 0) + (50 × –1) = 410


Веса на рис. 12 должны давать высокую положительную активацию при наличии в рецептивном поле вертикального ребра на стыке светлого и темного участков (то есть высокого контраста между левой и правой сторонами входного фрагмента). Верхнее рецептивное поле содержит вертикальное ребро: переход от светлой шерсти собаки к фону темной травы. Это отражается высоким уровнем активации (410). Нижнее рецептивное поле не содержит такого ребра, потому что в него попадает только темная трава, и уровень активации (–10) оказывается ближе к 0. Обратите внимание, что вертикальное ребро перехода от темного участка к светлому даст “высокий” отрицательный уровень активации (то есть отрицательное число, далекое от 0).

Это вычисление – умножение каждого значения в рецептивном поле на соответствующий вес и сложение результатов – и называется сверткой. Отсюда и название “сверточная нейронная сеть”. Выше я упомянула, что в сверточной нейронной сети карта активации представляет собой решетку ячеек, соответствующих рецептивным полям по всему изображению. Каждая ячейка карты активации использует одни и те же веса, чтобы вычислить свертку для своего рецептивного поля: представьте, как белый квадрат скользит по всем фрагментам входного изображения[103]. В результате получается карта активации с рис. 12: центральный пиксель рецептивного поля ячейки окрашивается в белый при высоких положительных и отрицательных уровнях активации, но становится темнее при уровнях, близких к 0. Можно видеть, что белые зоны показывают места, где есть вертикальные ребра. Карты 2 и 3 с рис. 11 были созданы аналогичным образом, но их веса помогали выявлять соответственно горизонтальные и наклонные ребра. В совокупности карты активации, составляемые единицами первого слоя, ответственными за обнаружение ребер, обеспечивают сверточную нейронную сеть таким представлением входного изображения, в котором показаны по-разному ориентированные ребра в отдельных фрагментах, что-то похожее на результат работы программы по обнаружению ребер.

Давайте на минутку остановимся, чтобы обсудить использование слова “карта” в этом контексте. В повседневной жизни “картой” называют пространственное представление географической местности, например города. Скажем, карта дорог Парижа показывает конкретную характеристику города – схему его улиц, проспектов и переулков, – но не включает многие другие характеристики, такие как здания, дома, фонарные столбы, урны, яблони и пруды. Другие карты уделяют внимание другим характеристикам: можно найти карты парижских велодорожек, вегетарианских ресторанов и парков для выгула собак. Что бы вас ни интересовало, вполне вероятно, что существует карта, которая покажет вам, где это найти. Если бы вы хотели рассказать о Париже другу, который никогда там не бывал, можно было бы подойти к задаче творчески и показать ему коллекцию таких “специализированных” карт.

Сверточная нейронная сеть (как и мозг) представляет видимую сцену как коллекцию карт, показывающих специфические “интересы” набора детекторов. В моем примере на рис. 11 в качестве интересов выступают ребра различной ориентации. Однако, как мы увидим далее, СНС сами обучаются тому, каковы их интересы (то есть детекторы), а интересы при этом зависят от конкретной задачи, для которой натренирована сеть.

Карты создаются не только на первом слое сверточной нейронной сети. Как видно на рис. 10, остальные слои имеют схожую структуру: каждый из них обладает набором детекторов, а каждый детектор создает собственную карту активации. Ключ к успеху СНС – опять же подсказанный устройством мозга – заключается в иерархической организации карт: входными сигналами для второго слоя служат карты активации первого, входными сигналами для третьего слоя служат карты активации второго – и так далее. В нашей гипотетической сети, где первый слой реагирует на ориентацию ребер, единицы второго слоя будут реагировать на конкретные комбинации ребер, например углы и Т-образные стыки. Детекторы третьего слоя будут обнаруживать комбинации комбинаций ребер. Чем выше иерархическое положение слоя, тем более сложные признаки выявляют его детекторы, ровно как Хьюбел, Визель и другие ученые наблюдали в мозге.

Наша гипотетическая сверточная нейронная сеть имеет четыре слоя с тремя картами в каждом, но в реальности такие сети могут иметь гораздо большее количество слоев – иногда даже сотни, – причем каждый слой может обладать своим числом карт активации. Определение этих и многих других аспектов структуры СНС – один из шагов к тому, чтобы такая сложная сеть смогла справляться с поставленной перед нею задачей. В главе 3 я описала идею И. Дж. Гуда о будущем “интеллектуальном взрыве”, когда машины сами станут создавать все более совершенные машины. Пока мы не вышли на этот этап, а потому настройка сверточных нейронных сетей требует огромного человеческого мастерства.

Классификация в СНС

Слои 1–4 в нашей сети называются сверточными, поскольку каждый из них осуществляет свертку предыдущего (а первый слой осуществляет свертку входного изображения). Получая входное изображение, каждый слой последовательно выполняет вычисления, и на последнем, четвертом слое сеть формирует набор карт активации для относительно сложных признаков. К ним могут относиться глаза, форма лап, форма хвостов и другие признаки, которые сеть сочла полезными для классификации распознаваемых в процессе тренировки объектов (в нашем случае – кошек и собак). На этом этапе в дело вступает модуль классификации, который на основании этих признаков определяет, какой объект запечатлен на изображении.

В качестве модуля классификации используется традиционная нейронная сеть, похожая на описанную в главе 2[104]. Входными сигналами для модуля классификации служат карты активации, составленные самым высоким слоем свертки. На выходе модуль дает процентные значения, по одному для каждой возможной категории, оценивая уверенность сети в том, что объект на входном изображении относится к конкретной категории (в нашем случае – кошек или собак).

Позвольте мне подытожить это краткое описание сверточных нейронных сетей. Вдохновленные открытиями Хьюбела и Визеля о работе зрительной коры мозга, СНС берут входное изображение и преобразуют его – посредством сверток – в набор карт активации признаков, сложность которых постепенно повышается. Карты активации, составленные на самом высоком слое свертки, загружаются в традиционную нейронную сеть (которую я назвала модулем классификации), после чего она определяет процент уверенности для каждой из категорий объектов, известных сети. Сеть классифицирует изображение в ту категорию, которая получает самый высокий процент уверенности[105].

Хотите поэкспериментировать с хорошо натренированной сверточной нейронной сетью? Сделайте фотографию какого-либо объекта и загрузите ее в “поиск по картинке” Google[106]. Получив ваше изображение, Google задействует СНС и на основании итоговых значений уверенности (при тысячах возможных категорий объектов) сообщит вам свое “лучшее предположение” о том, что изображено на снимке.

Тренировка сверточной нейронной сети

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

Вот механизм, с помощью которого нашу СНС можно натренировать определять, кошка или собака запечатлена на конкретном изображении. Сначала необходимо собрать большое количество примеров изображений кошек и собак – они войдут в ваше “тренировочное множество”. Нужно также создать файл, который присвоит каждому изображению ярлык – “собака” или “кошка”. (А лучше взять пример с исследователей компьютерного зрения и нанять аспиранта, который сделает это за вас. Если вы сами аспирант, наймите студента. Никому не нравится расставлять метки!) Сначала ваша программа присвоит случайные значения всем весам в сети. Затем программа начнет тренировку: все изображения будут по одному загружаться в сеть, сеть будет выполнять свои послойные вычисления и, наконец, выдавать процент уверенности для категорий “собака” и “кошка”. Для каждого изображения тренируемая программа будет сравнивать выходные сигналы с “верными” значениями: так, если на изображении собака, то уверенность для категории “собака” должна составлять 100 %, а для категории “кошка” – 0 %. Затем тренируемая программа, используя алгоритм обратного распространения ошибки, будет незначительно корректировать веса в сети, чтобы в следующий раз при классификации этого изображения показатели уверенности были ближе к верным значениям.

Выполнение этой процедуры – ввод изображения, вычисление ошибки на выходе, коррекция весов – для всех изображений из тренировочного множества называется “эпохой” тренировки. Тренировка сверточной нейронной сети требует множества эпох, в каждой из которых сеть снова и снова обрабатывает каждое изображение. Сначала сеть очень плохо распознает собак и кошек, но постепенно, корректируя веса на протяжении многих эпох, она начинает справляться с задачей все лучше. Наконец в какой-то момент сеть “сходится”: ее веса перестают сильно изменяться от эпохи к эпохе, и она (в принципе!) очень хорошо распознает собак и кошек на изображениях из тренировочного множества. Но мы не узнаем, хорошо ли сеть в целом справляется с этой задачей, пока не проверим, может ли она применять все то, чему научилась, к изображениям, не входившим в тренировочное множество. Любопытно, что программисты не ориентируют сверточные нейронные сети на выявление конкретных признаков, но при тренировке на больших множествах настоящих фотографий они выстраивают иерархию детекторов, подобную той, которую Хьюбел и Визель обнаружили в зрительной системе мозга.

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

Глава 5
Сверточные нейронные сети и ImageNet

Изобретатель сверточных нейронных сетей Ян Лекун всю жизнь работал над нейронными сетями: начав еще в 1980-х, он пережил немало зим и весен ИИ. Во время аспирантуры и постдокторантуры он восхищался перцептронами Розенблатта и неокогнитроном Фукусимы, но отмечал, что последнему не хватает хорошего алгоритма обучения с учителем. Вместе с другими учеными (в частности, с научным руководителем его постдокторантуры Джеффри Хинтоном) Лекун принял участие в разработке такого метода обучения – по сути, того же самого метода обратного распространения ошибки, который сегодня используется в сверточных нейронных сетях[107].

В 1980-х и 1990-х годах, работая в Лабораториях Белла, Лекун обратился к проблеме распознавания рукописных цифр и букв. Совместив идеи неокогнитрона с алгоритмом обратного распространения ошибки, он создал LeNet – одну из первых сверточных нейронных сетей. Способности LeNet к распознаванию рукописных цифр принесли ей коммерческий успех: в 1990-х и 2000-х годах в Почтовой службе США LeNet использовали для автоматизированного распознавания индексов, а в банковской сфере – для автоматизированной обработки чеков.

LeNet, как и ее преемница, сверточная нейронная сеть, не справилась с переходом на следующий уровень для решения более сложных зрительных задач. К середине 1990-х годов интерес к нейронным сетям среди исследователей ИИ стал угасать, и на первый план вышли другие методы. Но Лекун верил в сверточные нейронные сети и продолжал постепенно совершенствовать их. “Можно сказать, он поддерживал огонь даже в самые темные времена”, – сказал впоследствии Джеффри Хинтон[108].

Лекун, Хинтон и другие сторонники нейронных сетей полагали, что усовершенствованные, более масштабные вариации СНС и других глубоких сетей сумеют завоевать сферу компьютерного зрения, если предоставить им достаточный объем тренировочных данных. Все 2000-е годы они упорно работали в тени, но в 2012 году факел исследователей сверточных нейронных сетей вдруг озарил целый мир, когда их разработка победила в соревновании по компьютерному зрению на базе данных изображений ImageNet.

Создание ImageNet

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

В 2005–2010 годах самым престижным был ежегодный конкурс PASCAL[109] Visual Object Classes (Классификация визуальных объектов), набор данных которого к 2010 году включал около пятнадцати тысяч фотографий, загруженных с фотохостинга Flickr, с присвоенными людьми метками для двадцати категорий объектов, такими как “человек”, “собака”, “лошадь”, “овца”, “автомобиль”, “велосипед”, “диван” и “цветок в горшке”.

В рамках этого соревнования в “классификации”[110] соперничали программы компьютерного зрения, которые брали фотографию в качестве входного сигнала (не видя присвоенную ей человеком метку) и на выходе определяли для каждой из двадцати категорий, присутствует ли на изображении относящийся к ней объект.

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

Ежегодные конкурсы PASCAL привлекали большое внимание и стимулировали исследования в сфере распознавания объектов. С годами программы-участницы постепенно совершенствовались (любопытно, что сложнее всего им было распознавать цветы в горшках). Однако некоторые исследователи полагали, что эталонные данные PASCAL в некотором роде сдерживают развитие компьютерного зрения. Участники уделяли слишком много внимания конкретным двадцати категориям объектов, классификация по которым проходила в рамках конкурса, и не создавали системы, способные работать с огромным количеством категорий объектов, распознаваемых людьми. Более того, в наборе данных не хватало фотографий, чтобы представленные на соревнование программы могли узнать все возможные вариации внешнего вида объектов и научиться обобщать.

Чтобы двигаться вперед, необходимо было создать новые эталонные данные, в которые вошло бы гораздо больше категорий и фотографий. Молодая специалистка по компьютерному зрению из Принстона Фей-Фей Ли задалась этой целью и случайно узнала о проекте другого принстонского профессора, психолога Джорджа Миллера, который хотел создать базу данных английских слов, выстроенных в иерархическом порядке от самых специфических к самым общим, с группировкой синонимов. Возьмем, например, слово “капучино”. В базе данных, получившей название WordNet, содержится следующая информация об этом термине (стрелками обозначена принадлежность к определенной категории):

капучино кофе напиток пища вещество физическая сущность сущность

В базе данных также содержится информация о том, что, скажем, “напиток” и “питье” – это синонимы, что слово “напиток” входит и в другую цепочку, включающую слово “жидкость”, и так далее.

База данных WordNet использовалась (и продолжает использоваться) в исследованиях психологов и лингвистов, а также в системах ИИ по обработке естественного языка, но у Фей-Фей Ли появилась другая идея – создать базу данных изображений, структурированную по принципу существительных в WordNet, где каждое существительное будет связано с большим количеством изображений, содержащих примеры объектов, обозначаемых им. Так родилась идея ImageNet.

Вскоре Ли с коллегами приступили к сбору огромного количества изображений, используя существительные WordNet в качестве запросов на таких поисковых системах, как Flickr и поиск по картинкам Google. Однако, если вы хоть раз пользовались поиском по картинкам, вам известно, что его выдача часто далека от идеала. Например, если написать в строке поиска по картинкам Googlemacintosh apple”, на фотографиях вы увидите не только яблоки и компьютеры Mac, но и свечи в форме яблок, смартфоны, бутылки яблочного вина и другие не относящиеся к теме предметы. В связи с этим Ли с коллегами пришлось привлечь людей, чтобы они определили, какие изображения не иллюстрируют заданное существительное, и удалили их из базы. Сначала этим в основном занимались студенты. Работа шла ужасно медленно и требовала большого напряжения сил. Вскоре Ли поняла, что при такой скорости на решение задачи уйдет девяносто лет[111].

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

Группа зашла в тупик, но затем Ли случайно наткнулась на созданный тремя годами ранее сайт, который мог обеспечить проект рабочими руками, необходимыми ImageNet. У сайта было странное название Amazon Mechanical Turk.

Mechanical Turk

По словам Amazon, платформа Mechanical Turk представляет собой “рынок труда, который требует человеческого разума”. На платформе заказчики, то есть люди, у которых есть задача, не подходящая для компьютеров, находят работников, готовых за небольшую плату использовать свой разум для выполнения задачи заказчика (например, присваивать метки объектам на фотографиях, получая по десять центов за фотографию). Имея сотни тысяч зарегистрированных работников со всего мира, Mechanical Turk воплощает максиму Марвина Минского “простые вещи делать сложно”, ведь работников привлекают к выполнению “простых” задач, которые пока слишком сложны для компьютеров.

Названием Mechanical Turk (“Механический турок”) платформа обязана знаменитой ИИ-мистификации XVIII века: так называли шахматную “разумную машину”, в которой прятался человек, делавший ходы за куклу (“турка”, одетого на манер османского султана). По всей видимости, на розыгрыш купились многие видные люди того времени, включая Наполеона Бонапарта. Платформа Amazon не пытается никого обмануть, но, как и первый “механический турок”, по сути, представляет собой “искусственный искусственный интеллект”[112].

Фей-Фей Ли поняла, что если ее группа заплатит десяткам тысяч работников Mechanical Turk, чтобы они удалили несоответствующие изображения для каждого из существительных WordNet, то при относительно небольших затратах весь набор данных можно будет обработать за несколько лет. Всего за два года более трех миллионов изображений было связано с соответствующими существительными из WordNet – и появился набор данных ImageNet. Для проекта ImageNet платформа Mechanical Turk стала “спасением”[113]. Исследователи ИИ продолжают активно использовать ее для создания наборов данных, и сегодня заявки ученых на гранты в сфере ИИ, как правило, включают строку бюджета “услуги работников Mechanical Turk”.

Соревнования ImageNet

В 2010 году проект ImageNet провел первый конкурс ImageNet Large Scale Visual Recognition Challenge (Конкурс по широкомасштабному распознаванию образов в ImageNet) с целью подстегнуть развитие более общих алгоритмов распознавания объектов. В нем приняли участие тридцать пять программ, созданных исследователями компьютерного зрения из научных организаций и технологических компаний всего мира. Участникам соревнований выдали размеченные тренировочные изображения – 1,2 млн фотографий – и список возможных категорий. Натренированные программы должны были выдавать верную категорию для каждого входного изображения. Если в конкурсе PASCAL было всего двадцать возможных категорий, то в состязании ImageNet их количество возросло до тысячи.

Тысячу категорий сформировало выбранное организаторами подмножество терминов из WordNet. Категории представляют собой внешне случайный набор терминов в диапазоне от знакомых и непримечательных (“лимон”, “замок”, “рояль”) до менее распространенных (“виадук”, “рак-отшельник”, “метроном”) и совсем редких (“шотландский дирхаунд”, “камнешарка”, “мартышка-гусар”). На долю редких животных и растений – во всяком случае таких, которые я бы не опознала, – приходится около десятой части целевых категорий.

На одних фотографиях представлен лишь один объект, а на других – много объектов, включая “верный”. Из-за этой неоднозначности программа выдает для каждого изображения пять категорий, и если среди них оказывается верная, то считается, что программа справилась с задачей. Такая степень точности называется “топ-5”.

Победившая в 2010 году программа использовала так называемый метод опорных векторов, передовой в то время алгоритм распознавания изображений, который применял сложную математику, чтобы учиться присваивать категории входным изображениям. При точности топ-5 эта программа верно классифицировала 72 % из 150 000 тестовых изображений. Неплохо, но это значит, что, даже выдавая по пять категорий на изображение, программа ошиблась при классификации более 40 000 тестовых изображений, а следовательно, ей было куда расти. Стоит отметить, что среди лучших программ не оказалось нейронных сетей.

На следующий год лучшая программа – также использовавшая метод опорных векторов – показала достойное уважения, но скромное улучшение, верно классифицировав 74 % тестовых изображений. Большинство специалистов ожидали развития этой тенденции, полагая, что исследователи компьютерного зрения будут маленькими шажками продвигаться к цели, постепенно совершенствуя программы от конкурса к конкурсу.

Но в 2012 году на соревнованиях ImageNet их ожидания не оправдались, поскольку победившая программа справилась с классификацией целых 85 % изображений. Всех поразил такой скачок в точности. Мало того, победившая программа не использовала метод опорных векторов или любой другой из методов, преобладавших в то время в компьютерном зрении. Она представляла собой сверточную нейронную сеть. Эта сеть получила название AlexNet в честь своего главного создателя Алекса Крижевского, который в то время учился в аспирантуре Университета Торонто под руководством именитого специалиста по нейронным сетям Джеффри Хинтона. Работая вместе с Хинтоном и студентом Ильей Суцкевером, Крижевский создал более масштабную версию LeNet Лекуна из 1990-х годов. Тренировка такой большой сети стала возможной благодаря возросшим вычислительным мощностям. В AlexNet было восемь слоев и около шестидесяти миллионов весов, значения которых определялись методом обратного распространения ошибки при использовании более миллиона тренировочных изображений[114]. Группа из Торонто разработала хитроумные методы, чтобы усовершенствовать процесс тренировки сети, и примерно за неделю кластер мощных компьютеров натренировал AlexNet.

Успех AlexNet всколыхнул сферу компьютерного зрения и ИИ, неожиданно продемонстрировав людям потенциал сверточных нейронных сетей, исследования которых большинство специалистов не считало перспективными для развития современного компьютерного зрения. В опубликованной в 2015 году статье журналист Том Саймонайт приводит выдержки из своего интервью с Яном Лекуном о неожиданном триумфе сверточных нейронных сетей:

Лекун вспоминает, как люди, которые по большей части не принимали нейронные сети в расчет, до отказа заполнили зал, где победители выступали с докладом о своем исследовании. “Можно было видеть, как многие уважаемые люди в одночасье переменили свое мнение, – говорит он. – Они сказали: «Ладно, теперь мы вам верим. Делать нечего – вы победили»”[115].

Почти в то же время группа Джеффри Хинтона также продемонстрировала, что глубокие нейронные сети, натренированные на огромных объемах размеченных данных, справлялись с распознаванием речи гораздо лучше, чем другие программы, доступные в то время. Успехи группы из Торонто на соревнованиях ImageNet и в сфере распознавания речи запустили цепную реакцию. Через год маленькую компанию, основанную Хинтоном, купила Google, Хинтон и его студенты Крижевский и Суцкевер стали сотрудниками Google. Это приобретение мгновенно вывело Google в авангард глубокого обучения.

Вскоре после этого Яну Лекуну, который преподавал в Нью-Йоркском университете, предложили возглавить новую Лабораторию ИИ в Facebook. Вскоре все крупные технологические компании (и многие компании поменьше) принялись спешно расхватывать специалистов по глубокому обучению и их аспирантов. Глубокое обучение почти в одночасье стало главным направлением исследований ИИ, и знание глубокого обучения гарантировало специалистам по компьютерным наукам высокие зарплаты в Кремниевой долине или – что даже лучше – венчурное финансирование для стартапов в сфере глубокого обучения, которые стали расти как грибы.

Ежегодный конкурс ImageNet стал больше освещаться в прессе и быстро превратился из дружеского состязания ученых в статусный спарринг технологических компаний, коммерциализирующих компьютерное зрение. Победа на ImageNet гарантирует вожделенное уважение специалистов по компьютерному зрению, а также бесплатную рекламу, которая может привести к росту продаж и цены акций. Стремление создать программу, которая покажет лучший результат на соревнованиях, в 2015 году привело к скандалу, когда гигантская китайская интернет-компания Baidu попыталась сжульничать, неочевидным образом прибегнув к тому, что специалисты по машинному обучению называют подглядыванием данных (data snooping).

Случилось следующее: перед конкурсом ImageNet каждой команде выдали тренировочные изображения, размеченные верными категориями объектов. Им также выдали большое тестовое множество изображений, не вошедших в тренировочное множество и не имеющих меток. Обучив программу, команда могла проверить ее работу на тестовом множестве – это помогает понять, насколько хорошо программа научилась обобщать (а, например, не просто запомнила тренировочные изображения вместе с метками). В зачет идет только результат, показанный на тестовом множестве. Чтобы проверить, как программа справляется с задачей, командам необходимо было показать программе все изображения из тестового множества, собрать топ-5 категорий для каждого изображения и загрузить этот список на “тестовый сервер” – компьютер, обслуживаемый организаторами соревнования. Тестовый сервер сравнивал полученный список с (секретными) верными ответами и выдавал процент совпадений.

Каждая команда заводила на тестовом сервере учетную запись и использовала ее, чтобы проверять, насколько хорошо справляются с задачей разные версии ее программы, что позволяло им публиковать (и рекламировать) свои результаты до объявления официальных результатов соревнования.

Главное правило машинного обучения гласит: “Не используй тестовые данные для тренировки”. Все кажется вполне очевидным: если включить тестовые данные в процесс тренировки программы, невозможно будет получить точную оценку способностей программы к обобщению. Не сообщают же студентам задания экзаменационного теста заранее. Но оказывается, что существуют неочевидные способы ненамеренно (или намеренно) нарушить это правило, чтобы казалось, будто программа работает лучше, чем на самом деле.

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

Чтобы предотвратить такое подглядывание данных, но в то же время позволить участникам соревнования ImageNet проверять, насколько хорошо работают их программы, организаторы ввели правило, в соответствии с которым каждая команда могла загружать результаты на тестовый сервер не более двух раз в неделю. Таким образом они ограничили обратную связь, которую команды получали в ходе тестовых прогонов.

Великая битва на конкурсе ImageNet 2015 года разгорелась за доли процента – казалось бы, пустяшные, но потенциально весьма прибыльные. В начале года команда Baidu объявила, что точность (топ-5) их метода на тестовом множестве ImageNet составила невиданные 94,67 %. Но в тот же день команда Microsoft объявила, что ее программа показала еще более высокую точность – 95,06 %. Через несколько дней команда конкурентов из Google сообщила об использовании немного другого метода, который справился с задачей еще лучше и показал результат 95,18 %. Этот рекорд продержался несколько месяцев, пока команда Baidu не сделала новое заявление: она усовершенствовала свой метод и может похвастаться новым рекордом – 95,42 %. Пиарщики Baidu широко разрекламировали этот результат.

Но через несколько недель организаторы соревнования ImageNet сделали краткое объявление: “В период с 28 ноября 2014 года по 13 мая 2015 года команда Baidu использовала не менее 30 учетных записей и загрузила результаты на тестовый сервер не менее 200 раз, значительно превысив существующее ограничение в две загрузки в неделю”[116]. Иными словами, команда Baidu попалась на подглядывании данных.

Двести прогонов позволили команде Baidu определить, какие корректировки необходимо внести в программу, чтобы научить ее лучше всего справляться с этим тестовым множеством и набрать доли процента точности, необходимые для победы. В наказание Baidu отстранили от участия в конкурсе 2015 года.

Надеясь смягчить удар по репутации, Baidu быстро принесла извинения, а затем возложила ответственность на нерадивого сотрудника: “Мы выяснили, что руководитель группы велел младшим инженерам делать более двух загрузок в неделю, нарушая действующие правила соревнования ImageNet[117]. Сотрудника быстро уволили из компании, хотя он утверждал, что не нарушал никаких правил.

Несмотря на то что эта история – всего лишь любопытное примечание к истории глубокого обучения в сфере компьютерного зрения, я рассказала ее, чтобы показать, что соревнование ImageNet стало считаться главным символом прогресса в компьютерном зрении и ИИ в целом.

Если забыть о жульничестве, прогресс на ImageNet продолжился. Последний конкурс состоялся в 2017 году, и точность топ-5 у победителя составила 98 %. Как отметил один журналист, “сегодня многие считают ImageNet решенной задачей”[118] – по крайней мере по классификации. Специалисты переходят к новым эталонным данным и новым задачам, в частности к таким, которые предполагают интеграцию зрения и языка.

Что же позволило сверточным нейронным сетям, которые в 1990-х годах казались тупиковой ветвью развития, вдруг захватить лидерство в соревновании ImageNet и занимать доминирующее положение в сфере компьютерного зрения все последние годы? Оказывается, недавний успех глубокого обучения связан не столько с новыми прорывами в ИИ, сколько с доступностью огромных объемов данных (спасибо, интернет!) и аппаратного обеспечения для очень быстрых параллельных вычислений. Вкупе с совершенствованием методов тренировки эти факторы позволяют всего за несколько дней натренировать сети, имеющие более сотни слоев, на миллионах изображений.

Сам Ян Лекун удивился тому, как быстро изменилось отношение к его сверточным нейронным сетям: “Очень редко технология, известная на протяжении 20–25 лет и почти не претерпевшая изменений, становится наилучшей. Скорость ее принятия людьми поражает воображение. Я никогда прежде не видел ничего подобного”[119].

Золотая лихорадка СНС

Когда ImageNet и другие крупные наборы данных предоставили сверточным нейронным сетям огромное количество тренировочных примеров, необходимых им для хорошей работы, компании неожиданно получили возможность применять компьютерное зрение совершенно по-новому. Как отметил Блез Агуэра-и-Аркас из Google, “это напоминало золотую лихорадку – один и тот же набор технологий применяли для решения множества задач”[120]. Используя сверточные нейронные сети, натренированные с помощью глубокого обучения, системы поиска картинок Google, Microsoft и других компаний смогли значительно усовершенствовать функцию “найти похожие изображения”. В Google создали фотохостинг, присваивающий фотографиям метки, которые описывают объекты в кадре, а сервис Google Street View смог распознавать и затирать адреса и номерные знаки на изображениях. Появилось множество приложений, которые позволили смартфонам распознавать объекты и лица в реальном времени.

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

Это лишь несколько примеров множества существующих (или будущих) вариантов коммерческого применения СНС. Вполне вероятно, что любое современное приложение компьютерного зрения, которое вы используете, работает на базе СНС. Более того, велика вероятность, что его “предварительно тренировали” на изображениях ImageNet, чтобы оно узнало базовые визуальные признаки, прежде чем проводить “тонкую настройку” для конкретных задач.

Учитывая, что длительная тренировка сверточных нейронных сетей возможна лишь на специализированных компьютерах – как правило, на мощных графических процессорах, – неудивительно, что цена акций ведущего производителя графических процессоров, корпорации NVIDIA, с 2012 по 2017 год возросла более чем на 1000 %.

СНС превзошли людей в распознавании изображений?

Чем больше я узнавала о необыкновенном успехе сверточных нейронных сетей, тем больше мне хотелось выяснить, насколько близко они подошли к соперничеству с человеческими способностями к распознаванию изображений. Опубликованная в 2015 году (после скандала с жульничеством) статья исследователей из Baidu имела подзаголовок “Как превзойти человеческие возможности в классификации ImageNet[121]. Примерно в то же время в исследовательском блоге Microsoft объявили о “крупном прорыве в технологии, разработанной для идентификации объектов на фотографии или видео, позволившем создать систему, точность которой соответствует человеческому уровню и порой превосходит его”[122]. Хотя обе компании подчеркнули, что говорят о точности только при работе с ImageNet, пресса была не столь осторожна и печатала такие сенсационные заголовки, как “Компьютеры теперь распознают и сортируют изображения лучше людей” и “В Microsoft разработали компьютерную систему, которая распознает объекты лучше, чем человек”[123].

Давайте разберемся с утверждением, что машины теперь “лучше людей” справляются с распознаванием объектов в ImageNet. Оно основано на мнении, что люди ошибаются примерно в 5 % случаев, в то время как у машин (на момент написания этих строк) частота возникновения ошибок близка к 2 %. Подтверждает ли это, что машины лучше людей справляются с задачей? Как часто случается с громкими заявлениями об ИИ, это утверждение предполагает несколько оговорок.

Вот первая. Читая, что машина “верно идентифицирует объекты”, вы думаете, что если машине показать, скажем, изображение баскетбольного мяча, то ее выходным сигналом будет “баскетбольный мяч”. Но не стоит забывать, что при работе с ImageNet идентификация признается верной, если нужная категория вошла в число пяти категорий, в которых машина уверена сильнее всего. Если при получении изображения баскетбольного мяча машина последовательно выдает категории “крокетный мяч”, “бикини”, “бородавочник”, “баскетбольный мяч” и “движущийся фургон”, ее ответ считается верным. Стоит отметить, что на конкурсе ImageNet 2017 года точность топ-1 – то есть доля тестовых изображений, для которых верная категория была первой в списке, – составила около 82 %, в то время как точность топ-5 составила 98 %. Насколько мне известно, никто не сообщал о сравнении машин и людей при точности топ-1.

Вот вторая оговорка. Рассмотрим утверждение: “При работе с ImageNet люди ошибаются примерно в 5 % случаев”. Выясняется, что говорить “люди” не совсем корректно, поскольку этот результат был получен в ходе эксперимента, в котором принял участие один человек, Андрей Карпатый, который в то время учился в аспирантуре Стэнфорда и исследовал глубокое обучение. Карпатый хотел проверить, сможет ли он натренироваться так, чтобы соперничать с лучшими сверточными нейронными сетями в ImageNet. Учитывая, что СНС тренируются на 1,2 миллиона изображений, а затем классифицируют 150 000 тестовых изображений, для человека это был серьезный вызов. Карпатый написал об этом в своем популярном блоге об ИИ:

В итоге я тренировался на 500 изображениях, а затем перешел к [урезанному] тестовому множеству из 1500 изображений. Присвоение меток [то есть определение пяти категорий для каждого изображения] шло со скоростью около 1 изображения в минуту, но со временем скорость снижалась. Я с удовольствием разметил лишь первые изображений 200, а остальное доделал исключительно #воимянауки… Одни изображения узнаются сразу, а другие (например, редкие породы собак, виды птиц и обезьян) требуют нескольких минут концентрации. Теперь я очень хорошо различаю породы собак[124].

Карпатый обнаружил, что ошибся при классификации 75 из 1500 тестовых изображений, проанализировал ошибки и пришел к выводу, что большинство затруднений у него возникло при работе с изображениями, на которых было несколько объектов, при идентификации конкретных пород собак, видов птиц, растений и т. п., а также в случаях, когда он не знал о наличии той или иной категории объектов. Сверточные нейронные сети совершают другие ошибки: хотя они тоже путаются при классификации изображений с несколькими объектами, в отличие от людей они, как правило, не замечают на изображении мелкие объекты, объекты, искаженные примененными фильтрами цвета и контраста, и “абстрактные репрезентации” объектов, например портреты или статуи собак и плюшевых собак. Таким образом, не следует всецело верить утверждению, что компьютеры превзошли людей в ImageNet.

А вот оговорка, которая может вас удивить. Когда человек говорит, что на фотографии изображена собака, мы считаем, что он действительно увидел собаку на снимке. Однако, если сверточная нейронная сеть верно распознает “собаку”, как нам понять, основана ли ее классификация на наличии собаки на изображении? Может, на нем есть другой объект – теннисный мяч, фрисби, погрызенный ботинок, – который часто ассоциировался с собаками на тренировочных изображениях, и СНС узнает этот объект и приходит к выводу, что на изображении есть собака? Такие связи часто вводят машины в заблуждение.

Мы можем попросить машину не просто выдавать категорию объекта на изображении, но и помещать целевой объект в рамку, чтобы мы поняли, что машина действительно “увидела” этот объект. Именно так поступили организаторы конкурса ImageNet на второй год, устроив “состязание по локализации”. Для решения задачи по локализации целевые объекты на тренировочных изображениях заключили в рамки (нарисованные работниками Mechanical Turk), и на тестовых изображениях задача программы состояла в том, чтобы определить пять категорий объекта, снабдив каждую координатами соответствующей рамки. Как ни странно, глубокие СНС очень хорошо справлялись с локализацией, но все же показывали значительно более низкие результаты, чем при проведении классификации, несмотря на то что последующие соревнования уделяли основное внимание именно локализации.

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

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

Не ограничиваясь распознаванием объектов

В этой главе я уделила основное внимание распознаванию объектов, потому что в последнее время эта сфера прогрессировала быстрее всего. Однако компьютерное зрение, конечно же, не ограничивается распознаванием объектов. Если цель компьютерного зрения состоит в том, чтобы “научить машину описывать, что она видит”, то машинам нужно распознавать не только объекты, но и их связи друг с другом, а также понимать, как они взаимодействуют с миром. Если “объекты” – живые существа, то машинам необходимо иметь представление об их действиях, целях, эмоциях, вероятных следующих шагах и всех остальных аспектах, позволяющих рассказать историю визуальной сцены. Более того, если мы действительно хотим, чтобы машины описывали, что они видят, им нужно овладеть языком. Исследователи ИИ активно работают над обучением машин этим навыкам, но, как обычно, “простые” вещи оказываются очень сложными. Специалист по компьютерному зрению Али Фархади сказал The New York Times: “Мы все еще очень, очень далеки от визуального интеллекта и понимания сцен и действий на уровне людей”[125].

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

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

Глава 6
Подробнее об обучаемых машинах

Пионер глубокого обучения Ян Лекун получил много наград и почестей, но, пожалуй, главной (пусть и странной) стало существование невероятно популярного и очень смешного пародийного твиттер-аккаунта “Скучающий Ян Лекун” со следующим описанием: “Размышления о подъеме глубокого обучения, пока Ян в простое”. Анонимный автор часто заканчивает свои остроумные шутки для посвященных хештегом #FeelTheLearn (#ПочувствуйОбучение)[126].

Пресса действительно “чувствует обучение”, воспевая силу глубокого обучения – с акцентом на “обучении”. Так, нам говорят, что “теперь мы можем конструировать системы, которые сами учатся выполнению задач”[127], что “глубокое обучение [позволяет] компьютерам в буквальном смысле учиться самостоятельно”[128] и что системы глубокого обучения обучаются “подобно человеческому мозгу”[129].

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

Самостоятельное обучение

Метод обучения на данных, используемый глубокими нейронными сетями, оказался в целом успешнее стратегии “старого доброго ИИ”, в рамках которой программисты задают машинам четкие правила разумного поведения. Однако, вопреки некоторым утверждениям прессы, сверточные нейронные сети учатся не так, как человек.

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

Говорить, что современные успешные СНС учатся “самостоятельно”, не совсем корректно. Как мы увидели в предыдущей главе, чтобы сверточная нейронная сеть научилась выполнять задачу, людям необходимо приложить много усилий для сбора, сортировки и разметки данных, а также разработки множества аспектов архитектуры сети. Хотя СНС применяют метод обратного распространения ошибки, чтобы узнать свои “параметры” (то есть веса) при работе с тренировочными примерами, это обучение основано на наборе так называемых гиперпараметров, то есть всех аспектов сети, которые людям необходимо настроить, чтобы обучение вообще началось. К гиперпараметрам относятся количество слоев сети, размер “рецептивных полей” единиц каждого слоя, степень корректировки каждого веса в ходе обучения (называемая скоростью обучения) и многие другие технические аспекты процесса обучения. Подготовка сверточной нейронной сети называется настройкой гиперпараметров. На этом этапе задается множество значений и принимается множество сложных проектных решений, затем все заданные настройки сложным образом взаимодействуют друг с другом, оказывая влияние на итоговую работу сети. Более того, настройку, как правило, приходится проводить заново всякий раз, когда принимается решение натренировать сеть на решение новой задачи.

Настройка гиперпараметров может показаться рутинной задачей, но хорошая настройка – ключ к успеху СНС и других систем машинного обучения. Так как подобные сети имеют многовариантную структуру, обычно невозможно задать все параметры автоматически, даже при использовании автоматизированного поиска. Часто настройка сверточной нейронной сети требует тайного знания, которое студенты машинного обучения обретают, работая под началом экспертов и ценой больших усилий получая собственный опыт. Как отметил директор исследовательской лаборатории Microsoft Эрик Хорвиц, “сейчас мы занимаемся не наукой, а своего рода алхимией”[130]. Люди, умеющие таким образом “заклинать сети”, формируют небольшой клуб избранных. “Оптимизация таких систем – настоящее искусство… – говорит один из основателей Google DeepMind Демис Хассабис. – В мире всего несколько сотен людей, которые действительно хорошо справляются с этим”[131].

На самом деле количество специалистов по глубокому обучению стремительно растет: многие университеты предлагают тематические курсы, и все больше компаний запускает для сотрудников собственные учебные программы по глубокому обучению. Членство в клубе глубокого обучения может быть весьма прибыльным. Недавно я посетила конференцию, на которой руководитель ИИ-подразделения Microsoft рассказывал, как компания привлекает молодых специалистов по глубокому обучению: “Если парень знает, как тренировать пятислойную сеть, он может требовать пятизначную зарплату. Если парень знает, как тренировать пятидесятислойную сеть, он может требовать семизначную зарплату”[132]. К счастью для парня, который вскоре станет богачом, сети пока не умеют учиться самостоятельно.

Большие данные

Не секрет, что глубокое обучение требует больших данных. Таких больших, как миллион с лишним размеченных тренировочных изображений в ImageNet. Откуда берутся эти данные? Конечно, от вас – и, вероятно, всех ваших знакомых. Современные системы компьютерного зрения обязаны своим существованием миллиардам изображений, которые пользователи загружают в интернет и (иногда) сопровождают подписью, соответствующей их содержимому. Вы хоть раз загружали на свою страницу в Facebook фотографию друга и оставляли к ней комментарий? Facebook благодарит вас! Возможно, этот снимок и сопровождающий его текст использовались для тренировки его системы распознавания лиц. Вы хоть раз загружали фотографию на Flickr? Если да, возможно, она вошла в тренировочное множество ImageNet. Вы хоть раз перечисляли объекты на фотографии, чтобы доказать какому-нибудь сайту, что вы не робот? Возможно, ваши ответы помогли Google разметить это изображение для использования при тренировке своей системы поиска по картинкам.

Крупные технологические компании предлагают множество бесплатных сервисов для вашего компьютера и смартфона: интернет-поиск, видеозвонки, электронную почту, социальные сети, автоматизированных личных помощников – этот список можно продолжать очень долго. Зачем это нужно компаниям? Дело в том, что, как вы, возможно, слышали, их настоящий продукт – это пользователи (такие, как мы с вами), а их клиенты – рекламодатели, которые привлекают наше внимание и собирают информацию о нас, пока мы пользуемся “бесплатными” сервисами. Но есть и другой ответ: пользуясь сервисами таких технологических компаний, как Google, Amazon и Facebook, мы непосредственно снабжаем эти компании примерами – в форме наших изображений, видео, текста и речи, – которые они могут использовать, чтобы лучше обучать свои ИИ-программы. Усовершенствованные программы привлекают больше пользователей (а следовательно, больше данных), помогая рекламодателям эффективнее таргетировать рекламу. Более того, предоставляемые нами примеры можно использовать для обучения таких сервисов, как компьютерное зрение и обработка естественного языка, которые затем можно предлагать бизнес-клиентам на платной основе.

Многое написано об этике крупных компаний, которые используют создаваемые вами данные (например, все изображения, видео и тексты, загружаемые вами на Facebook), чтобы тренировать программы и продавать продукты, не информируя вас об этом и не предоставляя вам компенсацию. Этот важный вопрос выходит за рамки настоящей книги[133]. Я же хочу подчеркнуть, что необходимость огромных наборов размеченных тренировочных данных – одно из отличий глубокого обучения от человеческого обучения.

Практическое применение большого количества систем глубокого обучения приводит к тому, что компаниям требуются все новые наборы размеченных данных для тренировки глубоких нейронных сетей. Прекрасный пример – беспилотные автомобили. Таким автомобилям необходимо развитое компьютерное зрение, чтобы распознавать разметку на дороге, светофоры, знаки “стоп” и так далее, а также чтобы различать и отслеживать всевозможные потенциальные препятствия, включая другие автомобили, пешеходов, велосипедистов, животных, дорожные конусы, перевернутые мусорные баки, перекати-поле и многое другое, с чем вы предпочли бы не сталкиваться. Беспилотным автомобилям надо усвоить, как выглядят все эти объекты – на солнце, под дождем, в метель, в тумане, днем и ночью, – и понять, какие из них обычно движутся, а какие стоят на месте. Глубокое обучение сделало эту задачу отчасти выполнимой, но для этого ему необходимо огромное количество тренировочных примеров.

Компании по производству беспилотных автомобилей извлекают обучающие примеры из бесконечных часов видео, снятых на камеры автомобилей, движущихся в потоке на шоссе и по городским улицам. Это могут быть беспилотные прототипы, тестируемые компаниями, или, например, “теслы”, владельцы которых при покупке машины обязуются предоставлять данные производителю[134].

“Тесловоды” не обязаны присваивать метку каждому объекту на видео, сделанных во время движения их автомобилей. Но делать это необходимо. В 2017 году газета Financial Times написала, что “большинство компаний, работающих над этой технологией, задействуют сотни и даже тысячи людей, часто в офшорных аутсорсинговых центрах Индии и Китая, чтобы научить роботизированные автомобили распознавать пешеходов, велосипедистов и другие препятствия. Для этого работники вручную размечают тысячи часов видео, часто покадрово”[135]. Появляются новые компании, которые предлагают услугу по разметке данных: так, Mighty AI предлагает “размеченные данные, необходимые для тренировки моделей компьютерного зрения в вашем компьютере”, и обещает, что работать на вас будут “реальные, проверенные и надежные аннотаторы, которые специализируются на данных для беспилотного вождения”[136].

Длинный хвост

Метод обучения с учителем, требующий больших данных и целых армий аннотаторов, хорошо работает по крайней мере с некоторыми зрительными способностями, необходимыми беспилотным автомобилям. (Многие компании также проверяют возможность использования напоминающих видеоигры программ-тренажеров, чтобы дополнить обучение с учителем.) Но что насчет остальной жизни? Почти каждый, кто работает в сфере ИИ, согласен, что обучение с учителем нельзя считать перспективным путем к созданию общего ИИ. Знаменитый исследователь ИИ Эндрю Ын предупреждает: “Сегодня необходимость такого большого объема данных серьезно ограничивает [глубокое обучение]”[137]. С ним согласен другой известный исследователь ИИ, Йошуа Бенджо: “У нас нет реальной возможности разметить весь мир и педантично объяснить все до последней детали компьютеру”[138].


Рис. 13. Ситуации, с которыми может столкнуться беспилотный автомобиль, выстроенные по вероятности возникновения в качестве иллюстрации “длинного хвоста” маловероятных сценариев


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

Я выдумала эти сценарии и оценила их относительную вероятность. Уверена, вы можете продолжить мой список. Любой отдельный автомобиль, скорее всего, безопасен: в конце концов, в совокупности экспериментальные беспилотные автомобили проехали миллионы километров и стали причиной относительно небольшого количества аварий (хотя среди них оказалось несколько серьезных ДТП с человеческими жертвами). Однако, хотя каждая маловероятная ситуация по определению крайне маловероятна, в мире дорожного движения столько возможных сценариев и столько автомобилей, что при широком распространении беспилотников некоторые из них, вполне вероятно, рано или поздно где-нибудь столкнутся с одним из маловероятных сценариев.

Термин “длинный хвост” пришел из статистики, где некоторые распределения вероятностей имеют форму, сходную с изображенной на рис. 13, и длинный список крайне маловероятных (но возможных) ситуаций называется “хвостом” распределения. (Ситуации в хвосте иногда называются пограничными случаями.) Такой феномен наблюдается в большинстве практических применений ИИ: события в реальном мире обычно предсказуемы, но остается длинный хвост маловероятных, непредвиденных ситуаций. Это становится проблемой, только если мы полагаемся исключительно на обучение с учителем при обеспечении нашей ИИ-системы знаниями о мире: в обучающих данных недостаточно примеров ситуаций из длинного хвоста – если такие примеры есть вообще, – а потому система более склонна к совершению ошибок при столкновении с такими непредвиденными обстоятельствами.


Рис. 14. Сообщалось, что полоски соли на шоссе, рассыпанные в преддверии снегопада, сбивали автопилот автомобилей Tesla


Приведу два реальных примера. В марте 2016 года на северо-востоке США прогнозировали сильную метель, и в Twitter появились сообщения, что автопилот автомобилей Tesla, позволяющий ограниченное беспилотное вождение, не отличает дорожную разметку от полосок соли, рассыпанных по шоссе в преддверии снегопада (рис. 14). В феврале 2016 года один из прототипов беспилотного автомобиля Google, выполняя правый поворот, отклонился влево, чтобы объехать мешки с песком у правого края калифорнийской дороги, и левым передним крылом задел городской автобус, который двигался по левой полосе. Каждое из транспортных средств ожидало, что другое уступит ему дорогу (возможно, водитель автобуса ожидал, что за рулем автомобиля сидит человек, который испугается гораздо более крупного автобуса).

Компании, развивающие технологию беспилотного вождения, прекрасно осведомлены о проблеме длинного хвоста: их сотрудники обсуждают возможные “хвостовые” сценарии и активно разрабатывают дополнительные обучающие примеры, а также особым образом запрограммированные стратегии поведения во всех маловероятных ситуациях, которые приходят им в голову. Тем не менее невозможно обучить или запрограммировать систему на верное поведение абсолютно в любой возможной ситуации.

Обычно для решения этой проблемы системам ИИ предлагается использовать обучение с учителем на небольших объемах размеченных данных, а все остальное узнавать, применяя обучение без учителя. Термином “обучение без учителя” обозначается большая группа методов, которые позволяют системе узнавать категории и действия, не имея размеченных данных. К таким методам относятся кластеризация изображений на основе сходства или обнаружение новой категории по аналогии с известными. Как я опишу в одной из последующих глав, люди великолепно справляются с выявлением абстрактных сходств и аналогий, но пока не существует достаточно успешных ИИ-методов для такого обучения без учителя. Даже Ян Лекун признает, что “обучение без учителя остается темной материей ИИ”. Иными словами, для создания общего ИИ почти все обучение должно проходить без учителя, но пока никто не предложил эффективных алгоритмов для осуществления обучения без учителя.

Люди совершают ошибки постоянно, даже (или особенно) при вождении, и любой из нас мог столкнуться с городским автобусом, объезжая мешки с песком. Но люди при этом обладают важнейшей способностью, которой не хватает современным системам ИИ: они умеют пользоваться здравым смыслом. Мы обладаем огромными фоновыми знаниями о мире – физическом и социальном. Мы хорошо представляем, как обычно ведут себя объекты – живые и неживые, – и активно пользуемся этими знаниями, решая, как действовать в конкретной ситуации. Мы можем понять, почему на дороге рассыпана соль, даже если ни разу в жизни не ездили в снегопад. Мы понимаем, как взаимодействовать с другими людьми, а потому можем пользоваться зрительным контактом, жестами и языком тела, если светофоры перестают работать после отказа электроснабжения. Обычно мы уступаем дорогу большому городскому автобусу, даже если по правилам имеем преимущество. Я использовала примеры из дорожного движения, но мы, люди, пользуемся здравым смыслом – обычно бессознательно – на каждом шагу. Многие полагают, что пока системы ИИ не обретут здравый смысл, доступный людям, мы не сможем позволить им полную автономность в сложных реальных ситуациях.

Чему научилась моя сеть?

Несколько лет назад Уилл Ландекер, который тогда был аспирантом в моей исследовательской группе, обучил нейронную сеть классифицировать фотографии по двум категориям: “содержит животное” и “не содержит животное”. Сеть обучалась на фотографиях, подобных изображенным на рис. 15, и очень хорошо справлялась с задачей при классификации тестового набора. Но чему она научилась на самом деле? Тщательно изучив ее, Уилл пришел к неожиданному выводу: сеть научилась отправлять изображения с размытым фоном в категорию “содержит животное”, даже если животного на изображении не было[139]. Фотографии природы в тренировочном и тестовом множествах подчинялись важному правилу фотографии: объект должен быть в фокусе. Когда объектом фотографии выступает животное, оно оказывается в фокусе, а фон размывается, как на рис. 15 A. Когда объектом фотографии выступает сам фон, как на рис. 15 B, не размывается ничего. К досаде Уилла, его сеть не научилась распознавать животных, а использовала более простые ориентиры – такие, как размытый фон, – которые надежно ассоциировались с животными.


Рис. 15. Иллюстрация к задаче на классификацию по категориям “есть животное” и “нет животного”. Обратите внимание на размытый фон на левом изображении


Это пример типичного для машинного обучения феномена. Машина обучается тому, что сама наблюдает в данных, а не тому, что вы (человек) можете в них наблюдать. Если в тренировочных данных есть надежные ассоциации, машина с радостью запомнит их, а не будет обучаться тому, чему вы хотели ее обучить, даже если эти ассоциации не играют роли при выполнении поставленной задачи. Если машину тестируют на новых данных с такими же надежными ассоциациями, кажется, что она научилась справляться с задачей. Однако машина может неожиданно ошибиться, как сеть Уилла ошибалась при классификации изображений животных, где не было размытого фона. Если пользоваться жаргоном машинного обучения, сеть Уилла “переобучилась” на конкретном тренировочном множестве, а следовательно, не может успешно применять полученные навыки к изображениям, которые отличаются от входивших в тренировочное множество.

В последние годы несколько исследовательских групп проверяли, на наблюдалось ли такого переобучения у сверточных нейронных сетей, обученных на ImageNet и других крупных наборах данных. Одна группа показала, что если СНС обучаются на изображениях, загруженных из интернета (таких, как в ImageNet), то плохо справляются со снимками, сделанными роботом, который перемещается по дому с фотоаппаратом[140]. Похоже, случайные изображения предметов домашней обстановки могут сильно отличаться от фотографий, размещенных в интернете. Другие группы продемонстрировали, что незначительные изменения изображений, например легкое размытие или добавление крапинок, корректировка некоторых цветов или поворот объектов, могут приводить к серьезным ошибкам сверточных нейронных сетей, хотя такие изменения никак не влияют на распознавание объектов человеком[141]. Эта неожиданная хрупкость сверточных нейронных сетей – даже тех, которые, как утверждалось, “превосходят людей в распознавании объектов”, – свидетельствует, что они переобучаются на обучающих данных и усваивают не то, чему мы хотим их научить.


Рис. 16. Метки, присвоенные фотографиям автоматизированным разметчиком Google, включая печально знаменитую метку “Гориллы”


Предвзятый ИИ

Ненадежность сверточных нейронных сетей может приводить к неприятным – и потенциально опасным – ошибкам. В 2015 году репутация Google попала под удар после внедрения функции автоматической разметки фотографий (с помощью сверточной нейронной сети) в приложении “Google Фото”. Как видно на рис. 16, правильно присвоив фотографиям такие общие метки, как “Самолеты”, “Автомобили” и “Выпускной”, нейронная сеть также присвоила селфи двух афроамериканцев метку “Гориллы”. (После множества извинений компания временно решила проблему, убрав метку “Гориллы” из списка возможных категорий.)

Такие жуткие ошибки классификации поднимаются на смех и ставят компании в ужасно неловкое положение, но системы компьютерного зрения, основанные на глубоком обучении, часто совершают менее очевидные ошибки из-за расовых и гендерных предрассудков. Так, коммерческие системы распознавания лиц, как правило, точнее распознают лица белых мужчин, чем лица женщин или небелых людей[142]. Программы распознавания лиц, используемые в фотоаппаратах, порой не замечают лица темнокожих и считают лица азиатов “моргающими” (рис. 17).

Исследовательница из Microsoft Кейт Кроуфорд, выступающая за справедливость и прозрачность ИИ, отметила, что в одном широко используемом наборе данных для обучения систем распознавания 77,5 % лиц – мужские и 83,5 % – белые. В этом нет ничего удивительного, потому что вошедшие в него изображения были найдены в интернете, где больше всего портретов известных и влиятельных людей, большинство которых составляют белые мужчины.


Рис. 17. “Кто-то моргнул?” Используемая в фотоаппарате система распознавания лиц считает азиатское лицо “моргающим”


Конечно, такие смещения в обучающих данных ИИ отражают предвзятость, господствующую в нашем обществе, но распространение реальных ИИ-систем, обученных на смещенных данных, может усугубить эту предвзятость и нанести серьезный ущерб. Так, алгоритмы распознавания лиц все чаще применяются в качестве “надежного” способа устанавливать личность человека при использовании кредитных карт, на предполетных проверках в аэропортах и в системах видеонаблюдения. Возможно, вскоре их также будут использовать для подтверждения личности при голосовании. Даже небольшие различия в точности между распознаванием людей из разных расовых групп могут сильно ударить по гражданским правам и доступу к жизненно необходимым услугам.

Чтобы сглаживать подобные смещения в конкретных наборах данных, людям необходимо следить за тем, чтобы фотографии (или другие типы данных) равномерно представляли, скажем, расовые или гендерные группы. Но это требует внимания и усилий от тех, кто отвечает за подготовку тренировочных данных. Более того, часто бывает очень сложно искоренить незаметные смещения и их последствия. Например, ученые одной исследовательской группы заметили, что их система ИИ – тренированная на крупном множестве данных, включающем фотографии людей в различной обстановке, – иногда ошибочно принимала мужчину за женщину, если мужчина стоял на кухне, то есть в среде, которая на фотографиях тренировочного множества чаще ассоциировалась с женщинами[143]. Как правило, такие незаметные смещения становятся очевидны постфактум, но их очень сложно предугадать.

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

Где решение?

Помните, как в школе учитель писал красной ручкой: “Где решение?”, проверяя ваше домашнее задание по математике? Мне всегда было скучно расписывать решения математических задач, но для обучения это, пожалуй, было важнее всего, ведь объясняя, как я получила ответ, я показывала: я понимаю, что делаю, применяю необходимые методы и прихожу к ответу в результате верных рассуждений. Кроме того, когда я расписывала решения, мой учитель сразу видел, где я делала ошибки.

В более широком смысле мы часто готовы поверить, что люди понимают, что делают, если они могут объяснить, как именно получают ответ или приходят к определенному выводу. Однако глубокие нейронные сети – краеугольный камень современных систем ИИ – не всегда справляются с “расписыванием решений”. Рассмотрим задачу на распознавание “кошек” и “собак”, которую я описала в главе 4. Как вы помните, сверточная нейронная сеть решает, какой объект запечатлен на входном изображении, выполняя последовательность математических операций (сверток) на многих слоях. Если сеть достаточно велика, ей могут потребоваться миллиарды арифметических операций. Хотя нет ничего сложного в том, чтобы запрограммировать компьютер на распечатку списка всех операций сложения и умножения, выполненных сетью при классификации конкретного входного изображения, такой список не даст человеку никакого представления о том, как сеть пришла к ответу. Человеку не под силу найти ответы на свои вопросы в списке с миллиардом операций. Даже люди, которые обучают глубокие сети, обычно не могут “заглянуть под капот” и объяснить, как эти сети принимают решения. Журнал Technology Review, издаваемый в MIT, назвал их непостижимость “страшной тайной в сердце ИИ”[144]. Высказываются опасения, что раз мы не понимаем, как работают системы ИИ, то не можем в полной мере доверять им и прогнозировать, в каких обстоятельствах они будут совершать ошибки.

Люди тоже не всегда могут объяснить ход своих рассуждений, и обычно невозможно заглянуть человеку в голову (или в “нутро”, которым он что-либо чует), чтобы понять, как именно он пришел к конкретному решению. Но люди, как правило, считают, что другие люди научились справляться с такими базовыми когнитивными задачами, как распознавание объектов и понимание речи. Отчасти вы доверяете другим людям, полагая, что они рассуждают так же, как вы сами. Чаще всего вы полагаете, что другие встречаемые вами люди имеют примерно такой же жизненный опыт, а потому используют те же самые базовые фоновые знания, убеждения и ценности, к которым вы прибегаете, воспринимая и описывая мир, а также принимая решения. Иными словами, когда речь идет о других людях, вы обращаетесь к тому, что психологи называют теорией психики, то есть к своему представлению о знаниях и целях другого человека в конкретных ситуациях. Никто из нас не обладает подобной “теорией психики” для таких систем ИИ, как нейронные сети, и потому нам сложнее им доверять.

Не стоит удивляться, что сейчас ведутся активные исследования в сфере, которую называют “объяснимым ИИ”, “прозрачным ИИ” или “интерпретируемым машинным обучением”. Исследователи пытаются добиться, чтобы системы ИИ – и особенно глубокие сети – начали объяснять свои решения понятным людям языком. Сегодня появилось несколько любопытных способов визуализации признаков, которые выявляет конкретная сверточная нейронная сеть, и – в некоторых случаях – определения, какие фрагменты входных сигналов в наибольшей степени влияют на выходное решение. Сфера объяснимого ИИ быстро прогрессирует, но система глубокого обучения, способная успешно объяснить свою работу человеческим языком, по-прежнему не создана.

Как обмануть глубокие нейронные сети

Есть и другой аспект вопроса о надежности ИИ: исследователи выяснили, что людям на удивление просто обманным путем склонять глубокие нейронные сети к ошибкам. Иными словами, если вы хотите обмануть такую систему, способов для этого предостаточно, что не может не настораживать.

Системы ИИ обманывались и раньше. Так, спамеры десятилетиями ведут войну с программами обнаружения нежелательной электронной почты. Но системы глубокого обучения уязвимы для менее очевидных и более опасных атак.

Помните AlexNet, о которой я рассказывала в главе 5? Эта сверточная нейронная сеть победила в конкурсе ImageNet 2012 года и тем самым открыла эру господства сверточных нейронных сетей в современном ИИ. Как вы помните, точность AlexNet (топ-5) на ImageNet составила 85 %, что позволило ей разгромить конкурентов и потрясло специалистов по компьютерному зрению. Однако через год после победы AlexNet Кристиан Сегеди из Google в соавторстве с несколькими коллегами опубликовал научную статью с обтекаемым заголовком “Любопытные свойства нейронных сетей”[145]. Одним из описанных в статье “любопытных свойств” стало то, что AlexNet легко обмануть.


Рис. 18. Исходные изображения и контрпримеры для AlexNet. Слева в каждой паре представлено исходное изображение, корректно классифицированное AlexNet. Справа – контрпример, созданный на основе этого изображения (в пиксели изображения внесены небольшие изменения, но людям новое изображение кажется идентичным исходному). Каждый контрпример AlexNet уверенно отнесла к категории “страус”


В частности, авторы статьи обнаружили, что можно взять из ImageNet фотографию, которую AlexNet корректно классифицировала с высокой степенью уверенности (например, “школьный автобус”), и исказить ее путем внесения незначительных специфических изменений в пиксели таким образом, чтобы людям искаженная фотография казалась неизменной, а AlexNet с высокой уверенностью классифицировала ее в совершенно другую категорию (например, “страус”). Авторы назвали искаженное изображение “контрпримером”. На рис. 18 приводятся несколько исходных изображений и их контрпримеров. Не видите между ними разницы? Поздравляю! Похоже, вы человек.

Сегеди с соавторами создали компьютерную программу, которая брала из ImageNet любую фотографию, корректно классифицированную AlexNet, и вносила в нее специфические изменения, создавая новый контрпример, казавшийся неизменным людям, но заставлявший AlexNet с высочайшей уверенностью классифицировать фотографию неверно.

Что особенно важно, Сегеди с соавторами выяснили, что такая чувствительность к контрпримерам свойственна не только сети AlexNet: они показали, что несколько других СНС – с другой архитектурой, другими гиперпараметрами и тренировочными множествами – имеют сходные уязвимости. Назвать это “любопытным свойством” нейронных сетей – все равно что назвать пробоину в корпусе роскошного круизного лайнера “интересной особенностью” корабля. Да, все это очень любопытно и заслуживает дальнейшего исследования, но, если не залатать пробоину, корабль пойдет ко дну.

Вскоре после выхода статьи Сегеди с коллегами ученые Университета Вайоминга опубликовали статью с более однозначным названием “Глубокие нейронные сети легко обмануть”[146]. Используя вдохновленный биологией вычислительный метод, называемый генетическими алгоритмами[147], ученые из Вайоминга смогли запустить вычислительный “эволюционный процесс” и получить в результате изображения, которые кажутся людям случайным шумом, но AlexNet классифицирует их по конкретным категориям объектов со степенью уверенности более 99 %. На рис. 19 приводится несколько примеров. Ученые из Вайоминга отметили, что глубокие нейронные сети (ГНС) “считают эти объекты почти идеальными примерами распознаваемых изображений”, а это “[поднимает] вопросы об истинных способностях ГНС к генерализации и потенциальной эксплуатации [то есть вредоносном использовании] дорогостоящих решений на базе ГНС”[148].

Две эти статьи и последующие связанные открытия не только подняли вопросы, но и посеяли настоящую тревогу среди специалистов по глубокому обучению. Если системы глубокого обучения, которые успешно овладевают компьютерным зрением и выполняют другие задачи, так легко обмануть с помощью манипуляции, не сбивающей с толку людей, разве можно говорить, что эти сети “учатся, как люди”, а их способности “сравнимы с человеческими или превосходят их”? Очевидно, что восприятие нейронных сетей сильно отличается от человеческого. Если эти сети будут применяться в сфере компьютерного зрения в реальном мире, нам лучше убедиться, что они защищены от хакеров, использующих подобные манипуляции, чтобы их обмануть.


Рис. 19. Примеры изображений, созданных генетическим алгоритмом с целью обмануть СНС. В каждом случае AlexNet (обученная на наборе ImageNet) с вероятностью более 99 % относила изображение к одной из представленных на рисунке категорий


Все это подтолкнуло небольшую группу исследователей заняться “состязательным обучением”, то есть разработкой стратегий, защищающих системы машинного обучения от потенциальных противников (людей), которые могут их атаковать. Разработки в области состязательного обучения часто начинаются с демонстрации возможных способов атаки на существующие системы, и некоторые недавние демонстрации поражают воображение. В сфере компьютерного зрения одна группа разработчиков написала программу, которая проектирует оправы очков с особым узором, заставляющим систему распознавания лиц с уверенностью узнавать на фотографии другого человека (рис. 20)[149]. Другая группа создала небольшие и неприметные наклейки, при помещении которых на дорожные знаки система компьютерного зрения на основе сверточной нейронной сети – вроде тех, что используются в беспилотных автомобилях, – классифицирует знаки неверно (например, знак обязательной остановки распознается как знак ограничения скорости)[150]. Третья группа продемонстрировала возможную вредоносную атаку на глубокие нейронные сети для анализа медицинских изображений и показала, что рентгеновские снимки и результаты микроскопии можно без труда исказить незаметным для человека образом и тем самым подтолкнуть сеть изменить свою классификацию, скажем, с 99 % уверенности в отсутствии рака на изображении на 99 % уверенности в наличии рака[151]. Эта группа отметила, что персонал больницы и другие люди потенциально смогут использовать такие микроподлоги для постановки неверных диагнозов, чтобы заставить страховые компании оплачивать дополнительные (и весьма прибыльные) диагностические обследования.

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

Сейчас исследователи уделяют огромное внимание изучению потенциальных атак и разработке способов защиты от них. Хотя решения для конкретных типов атак уже найдены, общий механизм защиты пока не создан. Как и в других сферах компьютерной безопасности, прогресс здесь носит эпизодический характер: стоит выявить и залатать одну брешь в безопасности, как находятся другие, требующие другой защиты. “Сейчас модели машинного обучения можно причинить почти любой мыслимый вред… – говорит специалист по ИИ Ян Гудфеллоу, входящий в команду Google Brain. – И защитить ее очень, очень сложно”[152].


Рис. 20. Исследователь ИИ (слева) в очках с особым узором на оправе, созданных специально для того, чтобы система распознавания лиц на базе глубокой нейронной сети, тренированная на лицах знаменитостей, уверенно распознавала левую фотографию как портрет актрисы Миллы Йовович (справа). В описывающей это исследование статье приводится множество других примеров маскировки с помощью “состязательных” оправ


Помимо необходимости защиты сетей от атак, существование контрпримеров обостряет вопрос, который я задавала ранее: чему именно обучаются эти сети? В частности, чему они обучаются, чтобы их было так просто обмануть? А может – что важнее, – это мы обманываем себя, считая, что сети действительно усваивают концепции, которым мы пытаемся их научить?

На мой взгляд, в корне всего этого лежит проблема понимания. Взгляните на рис. 18, где AlexNet принимает школьный автобус за страуса. Почему такое вряд ли случилось бы с человеком? Хотя AlexNet очень хорошо справляется с классификацией изображений ImageNet, мы, люди, смотрим на объекты и понимаем многие вещи, которые не понимает ни AlexNet, ни любая другая современная система ИИ. Мы знаем, как выглядят объекты в трехмерном мире, и можем представить их форму, посмотрев на двухмерную фотографию. Мы знаем, какую функцию выполняет конкретный объект, каким образом его части задействованы в выполнении этой функции и в каких контекстах он обычно появляется. Глядя на объект, мы вспоминаем, как смотрели на такие же объекты в других обстоятельствах и с других ракурсов, а также воскрешаем в памяти иные сенсорные модальности (каков этот объект на ощупь, какой у него запах, возможно, какой звук он издает при падении и т. д.). Все эти фоновые знания питают человеческую способность надежно распознавать конкретный объект. Даже самые успешные системы компьютерного зрения не обладают таким пониманием и надежностью, которую оно обеспечивает.

Я слышала, как некоторые исследователи ИИ утверждают, что люди тоже уязвимы для “контрпримеров” особого типа – оптических иллюзий. Как и AlexNet, считающая школьный автобус страусом, люди делают ошибки восприятия (например, нам кажется, что верхний отрезок на рис. 21 длиннее нижнего, хотя на самом деле их длина одинакова). Однако человеческие ошибки отличаются от ошибок сверточных нейронных сетей: в процессе эволюции мы научились очень хорошо распознавать объекты в повседневной жизни, поскольку от этого зависит наше выживание. В отличие от современных сверточных нейронных сетей, люди (и животные) воспринимают мир, опираясь на свои когнитивные способности – своеобразное контекстно-зависимое понимание, которое я описала выше. Кроме того, сверточные нейронные сети, применяемые в современных системах компьютерного зрения, как правило, полностью выстроены на прямых связях, в то время как человеческая зрительная система имеет гораздо больше обратных, чем прямых связей. Хотя нейробиологи пока не понимают функцию этих обратных связей, можно предположить, что хотя бы некоторые из них защищают систему от уязвимости к контрпримерам, свойственной сверточным нейронным сетям. Почему бы не обеспечить сверточные нейронные сети такими обратными связями? Сейчас в этой области ведутся активные исследования, но пока создание сетей с обратной связью остается очень сложной задачей и не приносит таких успехов, как создание сетей с прямой связью.


Рис. 21. Оптическая иллюзия для людей: длина горизонтальных отрезков A и B одинакова, но большинству людей кажется, что отрезок A длиннее отрезка B


Исследователь ИИ из Университета Вайоминга Джефф Клюн провел провокационную аналогию, отметив, что по-прежнему “очень интересно, что такое глубокое обучение – «настоящий разум» или Умный Ганс”[153]. Умным Гансом звали коня, который жил в начале XX века в Германии и – по утверждению владельца – умел производить арифметические операции и понимал немецкий язык. Конь отвечал на вопросы вроде “Сколько будет пятнадцать разделить на три?”, отстукивая копытом верный ответ. Когда Умный Ганс прославился на весь мир, тщательное расследование выявило, что на самом деле конь не понимал вопросов и математических концепций, а стучал копытом в ответ на едва заметные, бессознательные подсказки человека, который задавал вопрос. С тех пор Умным Гансом называют любого человека (или программу!), который, казалось бы, понимает, что делает, но на самом деле просто реагирует на нечаянные подсказки учителя. Можно ли сказать, что глубокое обучение демонстрирует “истинное понимание”, или же оно, как компьютерный Умный Ганс, реагирует на мелкие подсказки в данных? В настоящее время в среде ИИ не угасают ожесточенные споры об этом, и ситуация осложняется тем, что исследователи ИИ порой расходятся в своих представлениях об “истинном понимании”.

С одной стороны, глубокие нейронные сети, прошедшие обучение с учителем, очень хорошо (хотя совсем не идеально) справляются со множеством задач в сфере компьютерного зрения, а также в других областях, включая распознавание речи и переводы с языка на язык. Поскольку эти сети обладают впечатляющими способностями, их все быстрее выводят за пределы исследовательских лабораторий и начинают применять в реальном мире – в интернет-поиске, беспилотных автомобилях, распознавании лиц, виртуальных помощниках и рекомендательных системах. С каждым днем нам все сложнее представить жизнь без этих инструментов ИИ. С другой стороны, некорректно говорить, что глубокие сети “учатся самостоятельно” или что процесс их обучения “подобен человеческому”. Признавая успехи этих сетей, не стоит забывать, что они могут подводить нас неожиданным образом из-за переобучения на обучающих данных, эффекта длинного хвоста и уязвимости для взлома. Более того, часто сложно понять, по какой причине глубокие нейронные сети принимают решения, а потому нам сложнее прогнозировать и исправлять их ошибки. Исследователи активно работают над тем, чтобы сделать глубокие нейронные сети более надежными и прозрачными, но остается вопрос: приведет ли свойственный сетям недостаток человеческого понимания мира к тому, что они станут хрупкими, ненадежными и уязвимыми для атак? И каким образом это следует учитывать, принимая решения об использовании систем ИИ в реальном мире? В следующей главе мы рассмотрим некоторые серьезные трудности, возникающие при попытке найти баланс между преимуществами ИИ и рисками его ненадежности и злоупотребления им.

Глава 7
Надежный и этичный ИИ

Представьте, что вы поздно вечером возвращаетесь с рождественского корпоратива на беспилотном автомобиле. На улице темно, идет снег. “Машина, вези меня домой”, – устало говорите вы. Вы немного навеселе. Вы откидываетесь на спинку сиденья, с облегчением закрываете глаза, а машина заводится и трогается с места.

Все хорошо, но чувствуете ли вы себя в безопасности? Успех беспилотных автомобилей всецело зависит от машинного обучения (особенно глубокого обучения), которое должно обеспечить автомобиль компьютерным зрением и системой принятия решений. Как нам определить, научились ли эти автомобили всему необходимому?

В индустрии беспилотных автомобилей это вопрос на миллиард. Я слышала от экспертов противоречивые мнения о том, когда беспилотные автомобили станут играть значительную роль в повседневной жизни, причем прогнозы (на момент написания этой книги) варьировались в диапазоне от нескольких лет до многих десятилетий. Беспилотные автомобили могут значительно облегчить нам жизнь. Автоматизированные транспортные средства могут существенно снизить число ежегодных смертей и травм в автомобильных авариях, миллионы которых случаются по вине рассеянных или пьяных водителей. Кроме того, автоматизированный транспорт позволит пассажирам стать продуктивнее во время поездок. Потенциальная энергоэффективность таких автомобилей выше, чем автомобилей с водителем, а для слепых и инвалидов, которые не могут водить машину, беспилотный транспорт и вовсе станет спасением. Но все это осуществится на практике, только если мы, люди, отважимся доверить беспилотным автомобилям свою жизнь.

Машинное обучение используется для принятия решений, влияющих на жизнь людей, во многих сферах. Как убедиться, что машины, формирующие вашу ленту новостей, диагностирующие ваши болезни, рассматривающие ваши заявки на кредит или – упаси боже – рекомендующие длительность вашего тюремного заключения, достаточно обучены, чтобы принимать взвешенные решения?

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

Полезный ИИ

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

Если вы фотограф, режиссер, художник или музыкант, возможно, вы используете системы ИИ, которые помогают вам в творческих проектах – например, программы для редактирования фотоснимков или нотации музыкальных произведений и создания аранжировок. Если вы студент, возможно, вы пользуетесь “интеллектуальной системой обучения”, которая адаптируется к особенностям вашего восприятия. Если вы ученый, вполне вероятно, что вы прибегали к одному из многих существующих инструментов ИИ при анализе данных. Если вы страдаете от слепоты или нарушений зрения, возможно, вы используете на своем смартфоне приложения компьютерного зрения, которые читают рукописный и печатный текст (например, на знаках и вывесках, в меню ресторанов, на деньгах). Если вы плохо слышите, теперь вы можете читать довольно точные субтитры к видео на YouTube, а в некоторых случаях – даже расшифровку речи прямо в ходе лекции. Это лишь несколько примеров того, как современные инструменты ИИ облегчают людям жизнь. Многие другие технологии ИИ еще разрабатываются, но вскоре также войдут в обиход.

В ближайшем будущем ИИ, скорее всего, широко распространится в здравоохранении. Мы увидим системы ИИ, которые будут помогать врачам ставить диагнозы и разрабатывать схемы лечения, открывать новые лекарства и следить за здоровьем и безопасностью пожилых людей у них на дому. Научное моделирование и анализ данных будут все больше полагаться на инструменты ИИ – например, при совершенствовании моделей изменения климата, роста населения и демографических изменений, экологии и науки о продуктах питания, а также других важных проблем, с которыми общество столкнется в следующем веке. Один из основателей Google DeepMind Демис Хассабис считает это самым важным потенциальным преимуществом ИИ:

Возможно, нам придется прийти к отрезвляющему осознанию того, что, даже если решением этих задач займутся самые умные люди планеты, эти [задачи] могут оказаться настолько сложными, что отдельным людям и научным экспертам сложно будет в течение жизни создать необходимые инновации и продвинуться вперед… Я уверен, что нам потребуется помощь, и думаю, решением станет ИИ[154].

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

Пойдет ли обществу на пользу передача всех этих задач ИИ? Чтобы взглянуть на ситуацию шире, можно обратиться к истории технологий. Вот несколько профессий, которые давно оказались автоматизированы, во всяком случае в развитых странах: прачка, рикша, лифтер, пункавалла (слуга в Индии, единственной задачей которого было охлаждение комнаты с помощью опахала, пока не появились электрические вентиляторы), вычислитель (человек, обычно женщина, вручную осуществлявший утомительные вычисления, особенно во время Второй мировой войны). Большинство людей согласится, что в таких случаях замена людей машинами сделала жизнь лучше. Можно сказать, что сегодня ИИ просто продолжает эту траекторию прогресса, улучшая людям жизнь путем все большей автоматизации необходимых видов труда, которыми никто не хочет заниматься.

Великий компромисс ИИ

Разработчик ИИ Эндрю Ын оптимистично заявил: “ИИ – это новое электричество”. Он пояснил свою точку зрения: “Сто лет назад электричество преобразило все, а сегодня я не могу придумать отрасль, которую ИИ, по моему мнению, не преобразит в следующие несколько лет”[155]. По этой интересной аналогии совсем скоро ИИ станет таким же необходимым для наших электронных устройств – и таким же невидимым, – как само электричество. Однако важное различие заключается в том, что наука хорошо изучила электричество, прежде чем началась его коммерциализация. Мы умеем прогнозировать поведение электричества. Но со многими современными системами ИИ ситуация обстоит иначе.

Это приводит нас к тому, что можно назвать “Великим компромиссом ИИ”. Стоит ли нам с распростертыми объятиями принять способности систем ИИ, которые могут облегчить нам жизнь и даже помочь спасти жизни, и позволить более широкое внедрение новых систем? Или же нам следует быть осторожнее, учитывая непредсказуемые ошибки и предвзятость современного ИИ, его уязвимость для взлома и недостаток прозрачности в принятии решений? В какой степени людям следует контролировать различные системы ИИ? Какой должна быть система ИИ, чтобы мы могли позволить ей работать автономно? Споры об этом не утихают, хотя ИИ внедряется все шире и высказываются мнения, что его новые применения (например, беспилотные автомобили) уже не за горами.

Отсутствие консенсуса по этим вопросам было подчеркнуто в недавнем исследовании, проведенном Исследовательским центром Пью[156]. В 2018 году аналитики центра собрали мнения почти тысячи “пионеров технологий, инноваторов, разработчиков, руководителей бизнеса, управленцев, исследователей и активистов” по следующим вопросам:

Как вы думаете, можно ли с большой вероятностью утверждать, что к 2030 году развивающийся ИИ и родственные технологические системы расширят и дополнят человеческие возможности? Можно ли сказать, что большинство людей в основном будет жить лучше, чем сейчас? Или же, напротив, более вероятно, что развивающийся ИИ и родственные технологические системы ограничат самостоятельность и способность людей к действиям в такой степени, что большинство людей не станет жить лучше, чем сегодня?

Мнения разделились: 63 % респондентов полагали, что прогресс в ИИ улучшит жизнь людей к 2030 году, но 37 % не соглашались с ними. Одни утверждали, что ИИ “фактически искоренит бедность во всем мире, значительно снизит уровень заболеваемости и обеспечит более качественное образование почти для всех людей на планете”, в то время как другие прогнозировали апокалиптическое будущее: автоматизацию огромного количества профессий, потерю приватности и гражданских прав из-за постоянного наблюдения с применением технологий ИИ, появление неэтичного автономного оружия, самостоятельное принятие решений непрозрачными и ненадежными компьютерными программами, усиление расовой и гендерной предвзятости, манипуляции СМИ, рост киберпреступности и то, что один респондент назвал “истинной, экзистенциальной бесполезностью” людей.

Развитие машинного интеллекта сопряжено с целым клубком этических проблем, и дискуссии об этике ИИ и больших данных стали материалом для нескольких книг[157]. Чтобы проиллюстрировать сложность возникающих вопросов, я подробнее разберу один пример, который сегодня привлекает большое внимание: автоматическое распознавание лиц.

Этика распознавания лиц

Распознавание лиц – это задача присвоения имени лицу на изображении или видеозаписи (или в прямом эфире). Так, Facebook применяет алгоритм распознавания лиц к каждой фотографии, загружаемой на платформу, пытаясь выявить лица на снимке и соотнести их с известными пользователями сети (по крайней мере с теми, кто не отключил эту функцию)[158]. Если вы находитесь на Facebook и кто-то загружает фотографию с вашим лицом, система может спросить вас, хотите ли вы “отметить себя” на фото. Точность алгоритма распознавания лиц, используемого Facebook, одновременно впечатляет и пугает. Неудивительно, что эта точность обеспечивается работой глубоких сверточных нейронных сетей. Программа часто распознает лица не только когда они находятся на переднем плане в центре снимка, но и когда человек стоит в толпе.

Технология распознавания лиц имеет множество потенциальных плюсов: она может помогать людям искать фотографии в своих коллекциях, позволять людям с нарушениями зрения узнавать встречаемых людей, искать лица пропавших детей и беглых преступников на фотографиях и видео и выявлять случаи кражи личности. Однако столь же просто представить для нее применения, которые многим могут показаться оскорбительными или опасными. Так, Amazon предлагает свою систему распознавания лиц (в названии которой – Rekognition – слышатся странные отголоски антиутопий) полицейским управлениям, которые могут сравнивать, скажем, видео с камер видеонаблюдения с базой данных известных преступников или возможных подозреваемых.

Очевидной проблемой становится приватность. Даже если я не зарегистрирована на Facebook (или в любой другой социальной сети, использующей распознавание лиц), мои фотографии могут быть размечены и впоследствии автоматически распознаны сайтом без моего разрешения. Например, компания FaceFirst за плату предоставляет услуги по распознаванию лиц. Журнал New Scientist пишет: “FaceFirst… представляет систему для розничных магазинов, которая, как утверждается, «поднимает продажи, узнавая ценных клиентов при каждом посещении», а также отправляет «оповещения, когда известные проблемные клиенты входят в любой из ваших магазинов»”[159]. Подобные услуги предлагают и многие другие компании.

Но потеря приватности не единственная возникающая здесь проблема. Еще тревожнее становится, если задуматься о надежности систем распознавания лиц, ведь известно, что они порой совершают ошибки. Если ваше лицо будет ошибочно распознано, вам могут отказать в посещении магазина, запретить сесть в самолет или несправедливо обвинить в преступлении. Более того, современные системы распознавания лиц допускают значительно больше ошибок при распознавании цветных лиц, чем при распознавании белых. Американский союз защиты гражданских свобод (ACLU), который яростно сопротивляется использованию технологии распознавания лиц в правоохранительных органах, ссылаясь на потенциальное нарушение гражданских прав, протестировал систему Rekognition, разработанную Amazon, на 535 членах Конгресса США (не меняя настроек по умолчанию). Фотография каждого члена Конгресса сравнивалась с базой данных людей, арестованных по обвинениям в совершении уголовных преступлений. В ходе проверки система некорректно распознала лица 28 из 535 членов Конгресса, обнаружив для них соответствия в базе данных преступников. Двадцать один процент ошибок пришелся на фотографии афроамериканцев (при этом афроамериканцы составляют всего около 9 % членов Конгресса)[160].

На волне негатива после теста ACLU и других исследований, демонстрирующих ненадежность и предвзятость систем распознавания лиц, несколько высокотехнологичных компаний объявили, что выступают против использования технологии распознавания лиц в правоохранительных органах и скрытом наблюдении. Так, Брайан Брэкин, генеральный директор компании Kairos, которая специализируется на распознавании лиц, написал в широко разошедшейся статье следующее:

Технологии распознавания лиц, используемые для установления личности подозреваемых, негативно влияют на цветных людей. Отрицая это, мы обманываем себя… Я сам пришел к выводу (и в моей компании меня поддержали), что использование коммерческих систем распознавания лиц в правоохранительной сфере и государственном наблюдении любого типа недопустимо – и что оно открывает дверь для недобросовестного поведения нечистоплотных людей… Мы заслуживаем жить в мире, где мы не даем государствам возможности категоризировать, отслеживать и контролировать своих граждан[161].

В блоге на сайте компании президент и директор Microsoft по юридическим вопросам Брэд Смит призвал Конгресс регламентировать распознавание лиц:

Технология распознавания лиц поднимает вопросы, которые касаются механизмов защиты таких фундаментальных прав человека, как право на неприкосновенность частной жизни и свободу самовыражения. Эти вопросы повышают ответственность технологических компаний, создающих соответствующие продукты. На наш взгляд, они также призывают к созданию продуманного государственного регламента и разработке норм допустимого использования [систем]. Распознавание лиц потребует активных действий как от государственного, так и от частного сектора[162].

Компания Google последовала примеру коллег и объявила, что не будет предлагать универсальную услугу по распознаванию лиц на своей облачной платформе ИИ, пока не сможет “гарантировать, что ее использование соответствует нашим принципам и ценностям, не допускает злоупотреблений и не приводит к пагубным последствиям”[163].

Реакция этих компаний обнадеживает, но выводит на первый план другой важный вопрос: в какой степени следует регламентировать исследования и разработки ИИ, и кто должен устанавливать регламенты?

Регулирование ИИ

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

Примером того, как сложно разрабатывать подобные регламенты, может служить принятый в 2018 году закон Европейского парламента, который прозвали “правом на объяснение”[164]. По этому закону при “автоматическом принятии решений” должна быть доступна “осмысленная информация о внутренней логике” любого решения, касающегося гражданина ЕС. Эта информация должна предоставляться “в краткой, прозрачной, понятной и легкодоступной форме с использованием простого и ясного языка”[165]. Такая формулировка допускает множество интерпретаций. Что считать “осмысленной информацией” или “внутренней логикой”? Запрещает ли этот закон использование труднообъяснимых методов глубокого обучения в принятии решений, касающихся граждан (например, при вынесении решений по кредитам или распознавании лиц)? Такие неопределенности, несомненно, еще долго будут обеспечивать работой юристов и сотрудников регуляторных органов.

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

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

Пустоту пытаются заполнить некоммерческие аналитические центры, часто финансируемые богатыми предпринимателями, которые работают в сфере технологий и беспокоятся об ИИ. Эти организации – с такими названиями, как Институт будущего человечества, Институт будущего жизни и Центр по изучению экзистенциального риска, – проводят семинары, спонсируют исследования, создают образовательные материалы и предлагают к внедрению меры, обеспечивающие безопасное и этичное использование ИИ. Головная организация, Партнерство по искусственному интеллекту, пытается объединить такие группы под своей эгидой, чтобы “служить открытой платформой для дискуссий и взаимодействия по вопросам ИИ и его влияния на людей и общество”[166].

Загвоздка в том, что не существует общего согласия в вопросе о том, как расставить приоритеты при разработке регламентов и этических норм. Стоит ли первым делом обратить внимание на алгоритмы, способные объяснить ход своих рассуждений? Или на конфиденциальность данных? Или на устойчивость систем ИИ к злонамеренным атакам? Или на предвзятость систем ИИ? Или на потенциальный “экзистенциальный риск”, исходящий от сверхразумного ИИ? Лично я полагаю, что слишком много внимания уделяется рискам, исходящим от сверхразумного ИИ, и слишком мало – ненадежности, непрозрачности и уязвимости глубокого обучения к атакам. Подробнее об идее сверхразумности я расскажу в последней главе.

Нравственные машины

Пока я рассказывала об этических аспектах использования ИИ людьми. Но есть и другой серьезный вопрос: могут ли машины обладать собственной моралью, которой будет достаточно, чтобы мы позволили им самостоятельно принимать этические решения, не проверяемые людьми? Если мы собираемся наделить системы распознавания лиц, беспилотные автомобили, роботов для ухода за стариками и даже роботизированных солдат автономностью в принятии решений, разве нам не нужно обеспечить эти машины такой же способностью к рассмотрению этических и моральных вопросов, которой обладаем мы сами?

Люди рассуждают о “морали машин” с тех самых пор, как впервые заговорили об ИИ[167]. Возможно, самая известная дискуссия о морали машин содержится в научно-фантастических рассказах Айзека Азимова, на страницах которых он предложил “три закона робототехники”:

1. Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред.

2. Робот должен подчиняться приказам человека, за исключением тех случаев, когда эти приказы противоречат Первому закону.

3. Робот должен заботиться о своей безопасности в той мере, в какой это не противоречит Первому и Второму законам[168].

Эти законы стали знаменитыми, но на самом деле Азимов хотел показать, что такой набор правил неизбежно потерпит фиаско. Азимов впервые сформулировал эти законы в опубликованном в 1942 году рассказе “Хоровод”, по сюжету которого робот, повинуясь второму закону, движется к опасному веществу, но тут вступает в действие третий закон, поэтому робот разворачивается, после чего в действие снова вступает второй закон – и робот оказывается заложником бесконечной петли, что едва не приводит к катастрофе для людей. В своих рассказах Азимов часто описывал непредвиденные последствия этического программирования роботов. Азимов заглядывал в будущее: как мы видели, проблема несовершенства правил и возникновения непредвиденных последствий преследует все системы ИИ на основе правил, и с моральными суждениями ситуация обстоит точно так же.

Писатель-фантаст Артур Кларк использовал подобный сюжетный ход в своей книге “2001: Космическая одиссея”, опубликованной в 1968 году[169]. Искусственно-разумный компьютер ЭАЛ запрограммирован всегда говорить людям правду, но в то же время утаивать от астронавтов истинную цель их космической миссии. В отличие от беспомощного робота Азимова, ЭАЛ страдает от психологической боли, которую причиняет ему этот когнитивный диссонанс: “Он… улавливал в себе противоречие, которое медленно, но верно подтачивало цельность его электронной психики, – противоречие между правдой и необходимостью ее скрывать”[170]. В результате у компьютера развился “невроз”, который превратил ЭАЛа в убийцу. Рассуждая о реальной морали машин, математик Норберт Винер еще в далеком 1960 году отметил, что “нам нужно быть совершенно уверенными, что в машину закладывается именно та цель, которую мы хотим в нее заложить”[171].

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

Добро пожаловать на курс основ этики. Для начала разберем любимый мысленный эксперимент всех студентов, изучающих этику – проблему вагонетки: вы едете на вагонетке, которая несется по рельсам, и видите впереди пятерых рабочих, которые стоят прямо у вас на пути. Вы ударяете по тормозам, но они не работают. К счастью, вправо уходит запасной путь, и вы можете повернуть на него, чтобы не сбить рабочих. К несчастью, на запасном пути тоже стоит рабочий – правда, всего один. Если вы ничего не сделаете, вагонетка собьет пятерых рабочих и все они погибнут. Если вы повернете направо, при столкновении погибнет только один рабочий. Как следует поступить с точки зрения морали?

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

Недавно проблема вагонетки снова всплыла в прессе при обсуждении беспилотных автомобилей[173], и вопрос о том, как следует программировать автономный автомобиль для решения таких проблем, вышел на первый план в дискуссиях об этике ИИ. Многие философы ИИ отмечают, что проблема вагонетки, в которой у водителя есть лишь два ужасных варианта, сама по себе весьма надуманна, а потому ни один водитель никогда не столкнется с ней в реальном мире. И все же она стала своеобразным символом, к которому обращаются всякий раз, когда встает вопрос, как следует программировать беспилотные автомобили, чтобы они смогли самостоятельно принимать моральные решения.

В 2016 году трое исследователей опубликовали результаты опросов нескольких сотен людей, которым предлагали оценить моральную составляющую различных действий беспилотных автомобилей в сценариях, напоминающих проблему вагонетки. В одном опросе 76 % респондентов ответили, что с точки зрения морали беспилотному автомобилю предпочтительно пожертвовать одним пассажиром, чтобы спасти десять пешеходов. Однако, когда людей спросили, купят ли они беспилотный автомобиль, запрограммированный жертвовать своими пассажирами, чтобы спасать гораздо большее число пешеходов, респонденты в подавляющем большинстве ответили, что не стали бы покупать такой автомобиль[174]. “Мы обнаружили, что участники шести исследований, проведенных Amazon Mechanical Turk, одобряли утилитарное использование АА [автономных автомобилей] (то есть АА, которые жертвуют своими пассажирами с благими целями) и хотели бы, чтобы их покупали другие люди, но сами предпочли бы ездить на АА, защищающих своих пассажиров любой ценой”, – написали авторы. В своем комментарии к исследованию психолог Джошуа Грин отметил: “Прежде чем заложить свои ценности в машины, нам необходимо разобраться, как сделать свои ценности понятными и последовательными”[175]. Похоже, это сложнее, чем нам казалось.

Некоторые исследователи этики ИИ предположили, что нам не стоит пытаться непосредственно запрограммировать машины на следование правилам морали, а лучше позволить машинам самостоятельно усваивать моральные ценности, наблюдая за поведением людей[176]. Однако самостоятельное обучение наследует все проблемы машинного обучения, которые я описала в предыдущей главе.

На мой взгляд, прогресс в наделении компьютеров моральным интеллектом нельзя отделить от прогресса в наделении их другими типами интеллекта, ведь истинная сложность заключается в создании машин, действительно понимающих ситуации, с которыми они сталкиваются. Как показывают рассказы Айзека Азимова, робот не может надежно следовать приказу не причинять вред человеку, если он не понимает, что есть вред в различных обстоятельствах. Чтобы рассуждать о морали, необходимо понимать причинно-следственные связи, просчитывать возможные варианты будущего, иметь представление об убеждениях и целях окружающих и прогнозировать вероятные результаты действий в любой возможной ситуации. Иными словами, чтобы выносить надежные моральные суждения, необходимо пользоваться общим здравым смыслом, которого, как мы видели, не хватает даже лучшим современным системам ИИ.

Пока в этой книге мы увидели, как глубокие нейронные сети, обученные на огромных наборах данных, могут соперничать с людьми в выполнении конкретных зрительных задач. Мы также увидели некоторые слабости этих сетей, включая их зависимость от колоссальных объемов размеченных людьми данных и склонность ошибаться совсем не так, как человек. Как нам создать систему ИИ, которая действительно учится самостоятельно – и которая станет надежнее, потому что, как и люди, сможет судить о текущей ситуации и планировать будущее? В следующей части книги я опишу, как исследователи ИИ используют шахматы, го и даже видеоигры Atari в качестве “микрокосма” для создания машин, способных учиться и рассуждать на человеческий манер, и объясню, как разрабатываемые ими игровые машины, наделенные сверхчеловеческими способностями, могут переносить свои навыки в реальный мир.

Часть III
Обучение игре

Глава 8
Награды для роботов

Собирая материал для своей книги о дрессировщиках экзотических животных, журналистка Эми Сазерленд узнала, что основной метод их работы до нелепого прост: “поощрять хорошее поведение и игнорировать плохое”. В колонке “Современная любовь” в The New York Times она написала: “В конце концов я поняла, что такая техника может сработать также с упрямым, но милым видом, мужем американским”. Сазерленд рассказала, как после многих лет тщетных придирок, сарказма и обид использовала этот простой метод, чтобы тайком научить ни о чем не подозревающего мужа не разбрасывать носки, самостоятельно находить ключи от машины, вовремя приезжать в ресторан и регулярно бриться[177].

Эта классическая техника дрессировки, в психологии называемая оперантным обусловливанием, столетиями применяется к животным и людям. Оперантное обусловливание вдохновило важный метод машинного обучения, называемый обучением с подкреплением. Обучение с подкреплением отличается от обучения с учителем, которое я описала в предыдущей главе: в чистой форме обучение с подкреплением не требует размеченных обучающих примеров. Вместо этого агент – обучающаяся программа – совершает действия в среде (обычно в компьютерной симуляции) и время от времени получает сигналы подкрепления, или награды. Эти промежуточные сигналы подкрепления – единственная обратная связь, которую агент использует для обучения. Для мужа Эми Сазерленд сигналами подкрепления были ее улыбки, поцелуи и похвала. Хотя компьютерная программа, возможно, не станет реагировать на поцелуи или искреннее “ты лучше всех”, ее можно научить реагировать на машинный эквивалент такой признательности – например, на положительные числа, добавляемые в ее память.

Несмотря на то что обучение с подкреплением много десятков лет входило в инструментарий ИИ, долгое время оно оставалось в тени нейронных сетей и других методов обучения с учителем. Все изменилось в 2016 году, когда обучение с подкреплением сыграло ключевую роль в поразительном и судьбоносном прорыве ИИ – программе, которая научилась побеждать мастеров сложной игры го. Чтобы объяснить эту программу, а также рассказать о других недавних достижениях обучения с подкреплением, я сначала приведу простой пример, показывающий, как оно работает.

Дрессировка собаки-робота

Для примера рассмотрим веселую игру в футбол для роботов, в рамках которой люди (обычно студенты) программируют роботов для игры в упрощенную версию футбола на “поле” размером с комнату. Иногда игроками становятся милые собаки-роботы Aibo, как на рис. 22. Робот Aibo (производимый Sony) оборудован камерой, чтобы получать зрительные входные сигналы, встроенным программируемым компьютером и целым набором датчиков и моторов, позволяющих роботу ходить, пинаться, бодаться и даже вилять своим пластиковым хвостом.

Допустим, мы хотим научить собаку-робота простейшему футбольному навыку: увидев мяч, подходить и пинать его. Если следовать традиционному методу ИИ, необходимо запрограммировать в робота следующие правила: сделай шаг к мячу; повторяй, пока одна из твоих лап не коснется мяча; пни мяч этой лапой. Само собой, краткие описания вроде “сделай шаг к мячу”, “пока одна из твоих лап не коснется мяча” и “пни мяч” необходимо аккуратно перевести в серию детализированных сенсорных и моторных операций, доступных Aibo.


Рис. 22. Собака-робот Sony Aibo играет с роботизированным мячом


Таких четко прописанных правил может оказаться достаточно для выполнения столь простой задачи. Однако чем более “разумным” вы хотите сделать своего робота, тем сложнее вручную прописать правила его поведения. И, конечно, невозможно разработать набор правил, подходящих для любой ситуации. Что, если между роботом и мячом окажется большая лужа? А если тренировочный конус перекроет роботу обзор? А если камень не позволит сдвинуть мяч с места? Как всегда, реальный мир полон пограничных случаев, прогнозировать которые очень сложно. Обучение с подкреплением дает надежду, что агент – в данном случае собака-робот – самостоятельно овладеет гибкими стратегиями поведения, просто выполняя определенные действия и время от времени получая сигналы подкрепления, а людям не придется вручную прописывать правила или непосредственно учить агента, как действовать в любых возможных обстоятельствах.

Давайте назовем нашу собаку-робота Рози, в честь моего любимого телеробота – ироничной домработницы из мультсериала “Джетсоны”[178]. Для простоты допустим, что на заводе Рози предустанавливают следующую способность: если в поле зрения Рози оказывается футбольный мяч, она может оценить, сколько шагов необходимо сделать, чтобы к нему подойти. Это количество называется “состоянием”. В общем смысле состояние агента в конкретный момент времени – это восприятие агентом его текущего положения. Рози – простейший из возможных агентов, и ее состояние выражается одним числом. Когда я говорю, что Рози находится “в состоянии x”, это значит, что в текущий момент времени она оценивает расстояние до мяча в x шагов.

Помимо способности определять свое состояние, Рози может выполнять три встроенных действия: она может делать Шаг вперед, может делать Шаг назад и может Пинать мяч. (Рози запрограммирована незамедлительно вернуться обратно в случае выхода за пределы поля.) В духе оперантного обусловливания мы будем давать Рози сигнал подкрепления только тогда, когда она будет успешно пинать мяч. Обратите внимание, что заранее Рози не знает, какие состояния или действия приводят к получению сигнала подкрепления – и есть ли такие состояния и действия вообще.

Учитывая, что Рози – робот, ее “наградой” будет число, например 10, добавляемое в ее “память вознаграждения”. Можно считать, что для собаки-робота число 10 становится эквивалентом собачьего лакомства. А может, и нет. В отличие от настоящей собаки, Рози не испытывает желания получить лакомство, положительное число или что-либо еще. Как я опишу ниже, в обучении с подкреплением созданный человеком алгоритм руководит процессом обучения Рози в ответ на получаемое вознаграждение, то есть алгоритм говорит Рози, как учиться на собственном опыте.

В ходе обучения с подкреплением Рози выполняет действия в серии обучающих эпизодов, каждый из которых состоит из некоторого количества итераций. На каждой итерации Рози определяет свое текущее состояние и выбирает действие к выполнению. Если вознаграждение получено, Рози чему-то учится, как я покажу ниже. Здесь я позволяю каждому эпизоду продолжаться до тех пор, пока Рози не пнет мяч, после чего она получает вознаграждение. На это может уйти много времени. Как и при дрессировке настоящей собаки, нам нужно запастись терпением.

На рис. 23 показан гипотетический обучающий эпизод. В начале эпизода учитель (я) помещает Рози и мяч на исходные позиции на поле, и Рози оказывается лицом к мячу (рис. 23 A). Рози определяет свое текущее состояние: двенадцать шагов до мяча. Поскольку Рози пока ничему не научилась, она – невинная tabula rasa – еще не знает, какие действия предпочтительны, а потому случайно выбирает действие из трех доступных ей вариантов: Шаг вперед, Шаг назад, Пинать. Допустим, она выбирает Шаг назад. Мы, люди, понимаем, что Шаг назад – неудачный выбор в такой ситуации, но не забывайте, что мы позволяем Рози самой разобраться, как выполнять задачу.


На итерации 2 (рис. 23 B) Рози определяет свое новое состояние: тринадцать шагов до мяча. Она выбирает новое действие, снова случайным образом: Шаг вперед. На итерации 3 (рис. 23 C) Рози определяет свое “новое” состояние: двенадцать шагов до мяча. Она вернулась туда, откуда начала, но даже не знает, что уже бывала в этом состоянии раньше! В чистейшей форме обучения с подкреплением обучающийся агент не помнит свои предыдущие состояния. Запоминание предыдущих состояний может занимать большой объем памяти и считается необязательным.

На итерации 3 Рози – снова случайным образом – выбирает действие Пинать, но не получает сигнал подкрепления, потому что пинает воздух. Ей еще предстоит узнать, что пинки вознаграждаются, только если она стоит у мяча.


Рис. 23. Гипотетический первый эпизод обучения с подкреплением


Рози продолжает выбирать случайные действия, не получая обратной связи, на множестве итераций. Но в какой-то момент – скажем, на итерации 351 – по счастливой случайности Рози оказывается около мяча и выбирает действие Пинать (рис. 23 D). Наконец-то Рози получает вознаграждение и использует его, чтобы чему-то научиться.

Чему Рози учится? Мы рассматриваем простейший вариант обучения с подкреплением: получая вознаграждение, Рози узнает только о том состоянии и том действии, которые непосредственно предшествовали сигналу подкрепления. В частности, Рози узнает, что если она находится в этом состоянии (например, в 0 шагов от мяча), то выбор этого действия (например, Пинать) – хорошая мысль. Но больше она не узнает ничего. Так, она не узнает, что если она находится в 0 шагов от мяча, то Шаг назадплохой выбор. В конце концов, она еще этого не попробовала. Вдруг шаг назад в таком состоянии приведет к получению гораздо большего вознаграждения? На этом этапе Рози также не узнает, что в момент, когда она находится в одном шаге от мяча, полезно сделать Шаг вперед. Чтобы узнать это, ей нужно дождаться следующего эпизода. Если она узнает за один раз слишком много, это может негативно сказаться на процессе обучения: например, если Рози решит пнуть воздух в двух шагах от мяча, мы не хотим, чтобы она усвоила, что этот неэффективный пинок был необходимым шагом к получению сигнала подкрепления. У людей такое поведение называется проявлением суеверия, то есть ошибочной уверенности, что конкретное действие может привести к конкретному хорошему или плохому результату. В обучении с подкреплением суеверий нужно во что бы то ни стало избегать.

Ключевая концепция обучения с подкреплением – это ценность выполнения конкретного действия в определенном состоянии. Ценность действия A в состоянии S – это число, отражающее текущий прогноз агента о вознаграждении, которое он получит, если, находясь в состоянии S, выполнит действие A, а затем продолжит выполнять высокоценные действия. Позвольте мне это объяснить. Если в настоящий момент вы пребываете в состоянии “держу шоколадную конфету в руке”, то ценным действием будет поднести руку ко рту. Последующими ценными действиями будут открыть рот, положить конфету на язык и жевать. Вашим вознаграждением станет наслаждение вкусом шоколада. Просто поднести руку ко рту недостаточно, чтобы получить вознаграждение, но это действие ведет вас по верному пути, и если вы ели шоколад раньше, то можете спрогнозировать уровень вознаграждения, которое получите в итоге. Цель обучения с подкреплением состоит в том, чтобы агент узнал ценность действий, которые станут хорошими индикаторами получения вознаграждения (при условии, что агент продолжит поступать верно после выполнения конкретного действия)[179]. Как мы увидим, процесс выяснения ценности конкретных действий в определенном состоянии обычно предполагает долгий путь проб и ошибок.


Рис. 24. Матрица Q для Рози после первого эпизода обучения с подкреплением


Рози запоминает ценность действий в большой таблице, которая хранится в ее компьютерной памяти. В этой таблице, показанной на рис. 24, перечисляются все возможные состояния Рози (то есть все возможные расстояния до мяча в пределах поля) и возможные действия для каждого состояния. Каждое действие в конкретном состоянии имеет числовую ценность, и значения ценности меняются по мере обучения Рози, все точнее прогнозируя будущие вознаграждения. Таблица состояний, действий и ценностей называется матрицей Q. Такая форма обучения с подкреплением иногда называется Q-обучением. Буква Q используется, потому что в первой статье о Q-обучении буквой V (от value, “ценность”) было обозначено кое-что другое[180].


Рис. 25. Второй эпизод обучения с подкреплением


В начале обучения Рози я составляю исходную матрицу Q, присваивая всем ценностям значение 0 – нулевое значение. Когда Рози получает сигнал подкрепления, пнув мяч в конце эпизода 1, действию Пинать в состоянии “0 шагов до мяча” присваивается значение ценности 10, то есть величина вознаграждения. В будущем, оказавшись в состоянии “0 шагов до мяча”, Рози сможет посмотреть в матрицу Q, увидеть, что действие Пинать имеет самую высокую ценность – то есть является индикатором самого высокого уровня вознаграждения, – и выбрать Пинать, вместо того чтобы выбирать действие наугад. Вот что значит здесь “обучение”!

Эпизод 1 закончился на том, что Рози наконец пнула мяч. Теперь мы переходим к эпизоду 2 (рис. 25), в начале которого мяч и Рози оказываются на новых позициях (рис. 25 А). Как и раньше, на каждой итерации Рози определяет свое текущее состояние – изначально она находится в шести шагах от мяча – и выбирает действие, теперь уже сверяясь со своей матрицей Q. Однако на этом этапе все возможные действия в текущем состоянии по-прежнему имеют нулевую ценность, а следовательно, у Рози пока нет информации, которая помогла бы ей сделать выбор. В связи с этим Рози снова выбирает действие случайным образом и делает Шаг назад. Она также делает Шаг назад на следующей итерации (рис. 25 B). Нашей собаке-роботу еще учиться и учиться.

Все продолжается как раньше, пока, следуя долгим путем проб и ошибок, Рози не оказывается в одном шаге от мяча (рис. 25 C) и случайным образом не выбирает Шаг вперед. Вдруг нога Рози касается мяча (рис. 25 D), и матрице Q есть что сказать об этом состоянии. В частности, она говорит, что в текущем состоянии – в нуле шагов от мяча – есть действие Пинать, которое вызовет вознаграждение 10. Теперь Рози может использовать эту информацию, усвоенную в предыдущем эпизоде, чтобы выбрать действие, а именно – Пинать. Но вот в чем суть Q-обучения: теперь Рози может узнать кое-что о действии (Шаг вперед), которое она выполнила в предыдущем состоянии (в одном шаге от мяча). Именно это действие привело ее на прекрасную позицию, которую она заняла сейчас! В частности, действию Шаг вперед в состоянии “один шаг до мяча” присваивается более высокая ценность в матрице Q, и эта ценность составляет некоторую долю ценности действия Пинать в состоянии “ноль шагов до мяча”, которое непосредственно ведет к получению сигнала подкрепления. Здесь я присвоила этому действию ценность 8 (рис. 26).


Рис. 26. Матрица Q для Рози после второго эпизода обучения с подкреплением


Теперь матрица Q говорит Рози, что ей очень полезно выбирать Пинок в состоянии “0 шагов до мяча” и почти настолько же полезно делать Шаг вперед в состоянии “1 шаг до мяча”. Когда Рози в следующий раз окажется в состоянии “1 шаг до мяча”, у нее будет информация о том, какое действие предпринять, а также возможность обновить ценность действия, непосредственно предваряющего это состояние, то есть действия Шаг вперед в состоянии “два шага до мяча”. Обратите внимание, что ценности действий должны снижаться (в результате “уценки”) по мере удаления от вознаграждения, поскольку это позволяет системе узнать эффективный путь к нему.

Обучение с подкреплением – то есть постепенное обновление ценностей в матрице Q – продолжается эпизод за эпизодом, пока Рози не научится выполнять задачу с любой начальной точки. Алгоритм Q-обучения – это способ присваивать ценности действиям в конкретном состоянии, включая действия, которые непосредственно не ведут к получению вознаграждения, но подготавливают почву для относительно редких состояний, в которых агент его получает.

Я написала программу, моделирующую процесс Q-обучения Рози, описанный выше. В начале каждого эпизода Рози помещалась лицом к мячу в случайном количестве шагов от него (при максимуме в двадцать пять и минимуме в ноль шагов от мяча). Как я упоминала ранее, если Рози оказывалась за пределами поля, моя программа просто возвращала ее назад. Каждый эпизод заканчивался, когда Рози добиралась до мяча и пинала его. Чтобы научиться выполнять задачу идеально, какой бы ни была ее исходная позиция, Рози понадобилось около трехсот эпизодов.

На примере “обучения Рози” я показала суть обучения с подкреплением, но опустила при этом множество проблем, с которыми исследователи сталкиваются при выполнении более сложных задач[181]. Так, в реальном мире агент часто не может сказать наверняка, в каком состоянии находится, в то время как Рози точно знает количество шагов до мяча. Настоящий робот-футболист может лишь примерно оценивать расстояние и даже сомневаться насчет того, какой именно небольшой светлый объект на поле является мячом. Эффекты выполнения действия тоже порой неоднозначны: так, делая Шаг вперед, робот может преодолевать различные расстояния в зависимости от ландшафта, а также может падать или сталкиваться с незамеченными препятствиями. Как обучению с подкреплением справляться с такой неопределенностью?

И как обучающемуся агенту выбирать действие на каждом этапе? Примитивная стратегия требовала бы всегда выбирать действие, которое имеет самую высокую ценность в матрице Q для текущего состояния. Но в этой стратегии есть проблема: вполне возможно, что другие, еще не проверенные действия приведут к получению большего вознаграждения. Как часто агенту следует зондировать почву, выбирая действия, которые он еще не выполнял, и как часто следует делать то, за что он уже ожидает получить вознаграждение? Когда вы идете в ресторан, вы всегда заказываете блюдо, которое уже пробовали и сочли вкусным, или делаете другой выбор, потому что в меню могут быть более интересные варианты? Решение, в какой степени исследовать новые действия, а в какой – использовать проверенные, называется балансом исследования-использования. Достижение верного баланса – ключ к успеху обучения с подкреплением.

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

Препятствия в реальном мире

Давайте пока забудем об этих проблемах и рассмотрим два серьезных препятствия, которые возникают при экстраполяции примера обучения Рози на реальные задачи обучения с подкреплением. Первое препятствие – матрица Q. В сложных реальных задачах – например, при обучении беспилотного автомобиля езде по многолюдному городу – невозможно определить небольшой набор “состояний” для матрицы. Состояние автомобиля в конкретный момент времени определяется всеми данными с его камер и других датчиков. Это значит, что число возможных состояний беспилотного автомобиля фактически бесконечно. Обучение с помощью матрицы Q из примера о Рози в таком случае невозможно. По этой причине в большинстве современных методов обучения с подкреплением вместо матрицы Q используется нейронная сеть. Задача нейронной сети состоит в том, чтобы узнавать, какие значения ценности следует присваивать действиям в конкретном состоянии. В частности, сеть получает текущее состояние в качестве входного сигнала и на выходе присваивает значения ценности всем возможным действиям, которые агент может выполнить в этом состоянии. Есть надежда, что сеть сможет научиться группировать связанные состояния в общие концепции (“безопасно продолжать движение вперед” или “нужно немедленно остановиться, чтобы не столкнуться с помехой”).

Вторым препятствием становится сложность проведения обучения с подкреплением на большом количестве эпизодов в реальном мире для настоящего робота. Невыполним даже наш пример с Рози. Представьте, как вы сотни раз начинаете новый эпизод – выходите на поле, чтобы установить робота и мяч, – не говоря уже о необходимости ждать, пока робот выполнит сотни действий в каждом эпизоде. У вас просто не хватит на это времени. Кроме того, вы рискуете тем, что робот повредит себя, выбрав неверное действие, например если он пнет бетонную стену или шагнет вниз с обрыва.

Подобно тому, как я поступила с Рози, специалисты по обучению с подкреплением почти всегда решают эту проблему, создавая компьютерные симуляции роботов и сред, чтобы пройти все обучающие эпизоды в симуляции, а не в реальном мире. Иногда такой подход работает. Среди прочего с помощью симуляций роботов учат ходить, прыгать, поднимать предметы и водить автомобили с дистанционным управлением, и роботы с переменным успехом применяют навыки, приобретенные в ходе симуляции, в реальном мире[182]. Однако, чем более сложна и непредсказуема среда, тем менее успешны попытки перенести усвоенное в компьютерной симуляции в реальный мир. Эти сложности объясняют, почему на сегодняшний день обучение с подкреплением добилось наибольших успехов не в робототехнике, а в областях, которые удобно моделировать на компьютере. Самые громкие успехи при этом наблюдались в сфере игр. О применении обучения с подкреплением к играм речь пойдет в следующей главе.

Глава 9
Игра началась

С первых дней развития ИИ энтузиасты начали разрабатывать программы, способные побеждать людей в играх. В конце 1940-х годов Алан Тьюринг и Клод Шеннон, стоявшие у истоков компьютерной эры, написали программы для игры в шахматы, хотя в то время еще не было компьютеров, чтобы их запустить. В последующие десятилетия многие молодые любители игр осваивали программирование, чтобы научить компьютеры играть в свои любимые игры – шашки, шахматы, нарды, го, покер, а позже и в видеоигры.

В 2010 году молодой британский ученый и любитель игр Демис Хассабис вместе с двумя близкими друзьями основал в Лондоне компанию DeepMind Technologies. Хассабис – незаурядный человек и легенда современного ИИ. Шахматный вундеркинд, в шесть лет он начал выигрывать турниры, в пятнадцать стал профессионально программировать видеоигры, а уже в двадцать два основал собственную компанию по созданию видеоигр. Помимо занятия предпринимательством, он получил докторскую степень по когнитивной нейробиологии в Университетском колледже Лондона, надеясь тем самым приблизить свою цель – создание ИИ по образцу человеческого мозга. Хассабис с коллегами основали DeepMind Technologies, чтобы “заниматься поистине фундаментальными вопросами” искусственного интеллекта[183]. Возможно, не стоит удивляться, что специалисты DeepMind сочли видеоигры подходящей площадкой для работы над этими вопросами. Видеоигры, по мнению Хассабиса, “сродни микрокосму реального мира, но… понятнее и ограниченнее”[184].


Рис. 27. Иллюстрация игры Breakout, разработанной компанией Atari


Как бы вы ни относились к видеоиграм, если вы предпочитаете “понятную и ограниченную” среду “реальному миру”, вам стоит подумать о создании программ ИИ для видеоигр компании Atari, разработанных в 1970-х и 1980-х годах. Именно этим решили заняться специалисты DeepMind. В зависимости от того, сколько вам лет и какие у вас интересы, вы, возможно, помните некоторые классические игры: Asteroids, Space Invaders, Pong, Ms. Pac-Man. Знакомые названия? Простая графика и управление с помощью джойстика делали эти игры достаточно простыми, чтобы их могли освоить дети, но достаточно сложными, чтобы взрослые тоже не теряли к ним интерес.

Рассмотрим однопользовательскую игру Breakout, показанную на рис. 27. В ней игрок с помощью джойстика передвигает “ракетку” (белый прямоугольник в правом нижнем углу) из стороны в сторону. “Мяч” (белый кружок) отскакивает от ракетки и ударяется о разноцветные прямоугольные “кирпичи”. Мяч также отскакивает от серых “стен” по бокам. Когда мяч попадает по одному из кирпичей (узорчатые прямоугольники), кирпич исчезает, игрок получает очки, а мяч отскакивает назад. Кирпичи с верхних рядов приносят больше очков, чем с нижних. Когда мяч ударяется о “землю” (нижнюю часть экрана), игрок теряет одну из пяти “жизней”, но если у него еще остались “жизни”, то в игру вводится новый мяч. Цель игрока – набрать максимум очков за пять жизней.

Любопытно, что игра Breakout появилась, когда Atari попробовала создать однопользовательскую версию успешной игры Pong. Разработку и внедрение Breakout в 1975 году поручили двадцатиоднолетнему сотруднику по имени Стив Джобс. Да, тому самому Стиву Джобсу, который впоследствии стал одним из основателей Apple. Поскольку Джобсу не хватало навыков, он привлек к работе над Breakout своего друга Стива Возняка, которому тогда было двадцать пять (и который впоследствии стал вторым основателем Apple). Возняк и Джобс спроектировали Breakout за четыре ночи, садясь за работу вечером, когда у Возняка кончался рабочий день в компании Hewlett-Packard. Вскоре Breakout, как и Pong, завоевала огромную популярность у геймеров.

Если вы тоскуете по былым временам, но у вас не сохранилось старой игровой приставки Atari 2600, в интернете есть множество сайтов, где все еще можно сыграть в Breakout и другие игры. В 2013 году группа канадских исследователей ИИ выпустила программную платформу Arcade Learning Environment (“Среда обучения аркадным играм”), которая облегчила тестирование систем машинного обучения на 49 таких играх[185]. Именно эту платформу специалисты DeepMind использовали в своей работе по обучению с подкреплением.

Глубокое Q-обучение

Специалисты DeepMind совместили обучение с подкреплением – в частности, Q-обучение – с глубокими нейронными сетями, чтобы создать систему, которая сумеет научиться играть в видеоигры Atari. Они назвали свой подход глубоким Q-обучением. Я объясню принцип работы глубокого Q-обучения на примере Breakout, но в DeepMind использовали один и тот же метод для всех игр Atari, с которыми велась работа. Впереди нас ждет немало технических подробностей, так что готовьтесь (или переходите к следующему разделу).

Вспомните, как мы использовали Q-обучение для тренировки собаки-робота Рози. В ходе эпизода Q-обучения на каждой итерации обучающийся агент (Рози) делает следующее: определяет свое текущее состояние, сверяет это состояние с матрицей Q, выбирает действие на основе ценностей из матрицы, выполняет это действие, возможно, получает сигнал подкрепления и – обучаясь – обновляет ценности в своей матрице Q.

Глубокое Q-обучение DeepMind работает по тому же принципу, но место матрицы Q занимает сверточная нейронная сеть. По примеру DeepMind я назову ее глубокой Q-сетью (DQN). Показанная на рис. 28 DQN напоминает ту, что использовалась DeepMind для обучения игре Breakout (но при этом проще нее). Входным сигналом для DQN служит состояние системы в конкретный момент времени, которое здесь определяется текущим “кадром” – положением пикселей на текущем снимке экрана – и тремя предыдущими кадрами (положением пикселей на трех предыдущих шагах). Такое определение состояния обеспечивает систему небольшим объемом памяти, что оказывается здесь полезным. На выходе сеть выдает расчетную ценность каждого возможного действия во входном состоянии. Возможные действия таковы: передвинуть ракетку Влево, передвинуть ракетку Вправо или выполнить NOP (“холостую команду”, то есть не передвигать ракетку). Сама сверточная нейронная сеть практически не отличается от той, которую я описала в главе 4. Вместо ценностей в матрице Q, как в примере с Рози, в глубоком Q-обучении система узнает веса в этой сети.


Рис. 28. Схема глубокой Q-сети (DQN) для Breakout


Система DeepMind учится играть в Breakout в ходе множества эпизодов. Каждый эпизод соответствует одному сеансу игры, а каждая итерация в рамках эпизода – одному действию системы. В частности, на каждой итерации система вводит свое состояние в DQN и выбирает действие на основании выходных значений DQN. Система не всегда выбирает действие с наибольшей расчетной ценностью: как я упоминала выше, обучение с подкреплением требует баланса исследования-использования[186]. Система выполняет выбранное действие (например, передвигает ракетку на некоторое расстояние влево) и, возможно, получает вознаграждение, если мяч попадает в один из кирпичей. Затем система совершает обучающий шаг, то есть обновляет веса в DQN по методу обратного распространения ошибки.

Как происходит обновление весов? В этом заключается главное различие обучения с учителем и обучения с подкреплением. Как вы помните из предыдущих глав, метод обратного распространения ошибки подразумевает изменение весов нейронной сети с целью снижения погрешности ее выходных сигналов. При обучении с учителем погрешность оценивается непосредственно. Помните описанную в главе 4 гипотетическую сверточную нейронную сеть, которая училась классифицировать фотографии, распознавая на них кошек и собак? Если на входной обучающей фотографии была собака, но выходная уверенность в категории “собака” составляла всего 20 %, то погрешность такого выходного сигнала равнялась 100 % – 20 % = 80 %. Иными словами, при идеальном раскладе выходная уверенность должна была быть на 80 % выше. Сеть могла рассчитать погрешность, потому что сверялась с меткой, присвоенной человеком.

Но в обучении с подкреплением меток нет. Конкретному кадру игры не присвоена метка с действием, которое необходимо предпринять. Как же в таком случае оценить погрешность выходного сигнала?

Вот ответ. Как вы помните, если вы обучающийся агент, то ценность действия в текущем состоянии определяется на основании вашей оценки того, насколько велико вознаграждение, которое вы получите в конце эпизода, выбрав это действие (и продолжая выбирать высокоценные действия). Эта оценка должна становиться лучше по мере приближения к концу эпизода, когда вы сможете провести учет всех полученных вознаграждений! Главное понимать, что выходные сигналы сети на текущей итерации точнее, чем на предыдущей итерации. В таком случае обучение заключается в том, чтобы корректировать веса сети (используя метод обратного распространения ошибки) с целью минимизации различия между выходными сигналами на текущей и предыдущей итерации. Один из разработчиков этого метода Ричард Саттон говорит, что здесь “догадка уточняется на основе догадки”[187]. Я внесу небольшую поправку: “догадка уточняется на основе лучшей догадки”.

Иными словами, вместо того чтобы учиться приводить свои выходные сигналы в соответствие с присвоенными человеком метками, сеть учится делать их согласованными от одной итерации к другой, полагая, что более поздние итерации рассчитывают ценность лучше, чем более ранние. Такой подход к обучению называется методом временных различий.

Вкратце вот как глубокое Q-обучение работает для игры Breakout (и всех остальных игр Atari). Система сообщает свое текущее состояние, которое становится входным сигналом глубокой Q-сети. Глубокая Q-сеть выдает значение ценности для каждого возможного действия. Система выбирает и выполняет действие, после чего оказывается в новом состоянии. Происходит обучение: система сообщает свое новое состояние сети, которая выдает новые значения ценности для каждого действия. Разница между новым набором ценностей и предыдущим набором ценностей считается “погрешностью” сети, и эта погрешность используется при коррекции весов в сети по методу обратного распространения ошибки. Эти шаги повторяются в ходе множества эпизодов (сеансов игры). На всякий случай уточню, что все элементы системы – глубокая Q-сеть, виртуальный “джойстик” и сама игра – представляют собой программы, работающие на компьютере.

Таков, по сути, алгоритм, разработанный специалистами DeepMind, хотя они прибегли к некоторым хитростям, чтобы усовершенствовать и ускорить его[188]. Сначала, пока система ничему не научилась, сеть выдает случайные выходные сигналы, и система совершает случайные игровые действия. Но постепенно, по мере того как сеть узнает веса, которые улучшают выходные сигналы, игровые навыки системы совершенствуются, часто весьма радикальным образом.

Агент за 650 миллионов долларов

Специалисты DeepMind применили свой метод глубокого Q-обучения к 49 различным играм Atari в Arcade Learning Environment. Хотя программисты DeepMind использовали для каждой игры одну и ту же архитектуру сети и одни и те же настройки гиперпараметров, их система осваивала каждую игру с нуля, то есть знания системы (веса сети), полученные при освоении одной игры, не применялись, когда система начинала обучение другой игре. Чтобы освоить каждую из игр, системе требовалось несколько тысяч обучающих эпизодов, но на мощных компьютерах процесс шел довольно быстро.


Когда глубокая Q-сеть обучилась каждой игре, специалисты DeepMind сравнили навыки машины с навыками “профессионального тестировщика игр”, которому позволили для подготовки по два часа поиграть в каждую игру. Работа мечты, скажете вы? Только если вам нравится позорно проигрывать компьютеру! Программы глубокого Q-обучения, созданные DeepMind, показали лучшие результаты, чем тестировщик, более чем в половине игр. В половине из этих игр результат программ оказался более чем в два раза лучше человеческого. В половине из этих игр результат программ был более чем в пять раз выше. Настоящего триумфа DNQ-программа добилась в игре Breakout, набирая в среднем более чем в десять раз больше очков, чем человек.

Чему именно научились эти сверхчеловеческие программы? Проанализировав результаты, специалисты DeepMind выяснили, что их программы освоили очень хитрые стратегии. Так, программа для игры в Breakout научилась применять великолепную уловку, показанную на рис. 29. Программа поняла, что если выбить кирпичи таким образом, чтобы проложить узкий тоннель у края кладки, то мяч начнет скакать между “потолком” и верхним рядом кирпичей, быстро выбивая дорогие верхние кирпичи при неизменном положении ракетки.

DeepMind впервые представила свою работу в 2013 году на международной конференции по машинному обучению[189]. Собравшиеся были поражены. Менее года спустя Google объявила о покупке DeepMind за 440 миллионов фунтов стерлингов (около 650 миллионов долларов на момент заключения сделки) – вероятно, благодаря этим результатам. Да, обучение с подкреплением порой приносит солидные награды.

Получив огромные деньги и доступ к ресурсам Google, специалисты DeepMind – которая теперь называется Google DeepMind – поставили перед собой более серьезную задачу, входящую в число “больших вызовов” ИИ: создать программу, лучше людей играющую в го. Разработанная DeepMind программа AlphaGo стала логическим продолжением долгой истории ИИ в настольных играх. Давайте для начала кратко изложим эту историю, что поможет нам понять, как работает AlphaGo и почему это так важно.


Рис. 29. Программа компании DeepMind освоила стратегию проброса мяча сквозь кирпичи при игре в Breakout, что позволило ей быстро уничтожать дорогие кирпичи верхних рядов, благодаря отскокам мяча от потолка


Шахматы и шашки

В 1949 году инженер Артур Сэмюэл поступил на работу в лабораторию IBM, расположенную в Покипси, в штате Нью-Йорк, и сразу приступил к программированию ранней версии компьютера IBM 701 для игры в шашки. Если у вас есть опыт в компьютерном программировании, вы оцените стоявшую перед ним задачу: как отметил один историк, “Сэмюэл первым решил написать серьезную программу для IMB 701, а потому не имел возможности использовать системные утилиты [то есть, по сути, не имел операционной системы!]. В частности, у него не было ассемблера, поэтому ему приходилось прописывать все операционные коды и адреса”[190]. Для читателей, не имеющих опыта в программировании, поясню: это все равно что строить дом, имея лишь ручную пилу и молоток. Созданная Сэмюэлом программа для игры в шашки стала одной из первых программ машинного обучения – и именно Сэмюэл ввел в обиход сам термин “машинное обучение”[191].

Программа Сэмюэла для игры в шашки была основана на анализе дерева игры – и такой анализ по-прежнему остается фундаментом всех программ для игры в настольные игры (включая AlphaGo, которую я опишу далее). На рис. 30 показано дерево игры в шашки. “Корнем” дерева (обычно он находится на схемах сверху, в отличие от корней настоящего дерева) служит исходное положение шашек на доске до совершения первого хода. От корня расходятся “ветки”, ведущие ко всем ходам, доступным первому игроку (здесь – черным). Возможных ходов семь (для простоты на рисунке показаны лишь три из них). Для каждого из семи возможных ходов черных есть семь возможных ответов белых (не все они показаны на рисунке) и так далее. На рис. 30 каждая доска показывает возможное положение шашек, называемое позицией на доске.


Рис. 30. Фрагмент дерева игры в шашки. Для простоты на рисунке показано всего по три возможных хода для каждой позиции на доске. Белыми стрелками показано передвижение шашки с предыдущей клетки на текущую


Представьте, что вы играете в шашки. Перед каждым ходом вы, возможно, строите в уме небольшой фрагмент этого дерева. Вы мыслите следующим образом: “Если я схожу вот так, то противник сможет сходить вот так, после чего я схожу вот так и возьму одну шашку”. Большинство людей, включая чемпионов игры, рассматривают лишь несколько возможных ходов, просчитывая лишь несколько шагов, прежде чем сделать ход. Быстрый компьютер, напротив, имеет возможность просчитывать игру гораздо дальше. Что мешает компьютеру рассмотреть все возможные ходы и определить, какая последовательность ходов ведет к победе быстрее всего? Проблема в экспоненциальном росте, пример которого мы видели в главе 3 (помните царя, мудреца и рисовые зерна?). В среднем за партию в шашки совершается около пятидесяти ходов, а это значит, что дерево игры с рис. 30 может иметь пятьдесят уровней. На каждом уровне каждая позиция на доске предполагает в среднем шесть или семь возможных ходов – следовательно, общее количество позиций в дереве может превышать шесть в пятидесятой степени, а это невероятно большое число. Гипотетическому компьютеру, который способен просматривать триллион позиций в секунду, понадобится более 1019 лет, чтобы рассмотреть все позиции единственного дерева игры. (Для наглядности это число можно сравнить с возрастом Вселенной, который составляет всего около 1010 лет.) Таким образом, полный анализ дерева игры не представляется возможным.

К счастью, для успешной игры компьютерам не нужно заниматься столь обстоятельным анализом. Обдумывая каждый ход, шашечная программа Сэмюэла создавала (в компьютерной памяти) небольшой фрагмент дерева игры, как на рис. 30. Корнем дерева служила текущая позиция на доске, и программа, используя встроенные знания правил шашек, генерировала все ходы, которые можно совершить из этой позиции. Затем она генерировала возможные ходы оппонента из каждой из итоговых позиций – и так далее, на четыре-пять ходов (“слоев”) вперед[192].

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

Предполагается, что оценочная функция работает точнее при применении к позициям, которые могут возникнуть дальше по ходу игры, и потому программа сначала анализирует все возможные последовательности ходов на несколько шагов вперед, а затем применяет оценочную функцию к итоговым позициям на доске. Затем оценки распространяются обратно по дереву с помощью максимина, который оценивает все возможные ходы из текущей позиции[193].

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

В итоге шашечная программа Сэмюэла добилась впечатляющих результатов, сравнимых с показателями игроков “выше среднего уровня”, но не чемпионов игры. Любители назвали программу “сложным, но победимым” соперником[195]. Стоит отметить, что программа стала для IBM неожиданным подарком: на следующий день после того, как Сэмюэл представил ее на национальном телевидении в 1956 году, стоимость акций IBM взлетела на 15 %. Впоследствии компания еще несколько раз наблюдала подобное повышение стоимости акций после демонстрации игровой программы, побеждающей людей: не так давно стоимость акций IBM взлетела после привлекшего огромное количество зрителей выпуска телепрограммы Jeopardy!, в котором разработанная компанией программа Watson одержала победу над людьми.

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

Deep Blue

Хотя “сложная, но победимая” шашечная программа Сэмюэла была выдающейся, особенно по тем временам, вряд ли можно сказать, что она заставила людей сомневаться в уникальности собственного разума. Даже если бы машина могла обыграть чемпионов по шашкам (как в итоге произошло в 1994 году[196]), мастерство в шашках никогда не считалось признаком большого ума. С шахматами все иначе. По словам Демиса Хассабиса из DeepMind, “десятки лет ведущие специалисты по информатике полагали, что с учетом традиционного статуса шахмат как мерила человеческого интеллекта умелая шахматная компьютерная программа может превзойти человека и по всем остальным показателям”[197]. Многие, включая пионеров ИИ Аллена Ньюэлла и Герберта Саймона, ставили шахматы на пьедестал. В 1958 году Ньюэлл и Саймон написали: “Если получится создать успешную шахматную машину, получится и проникнуть в самое сердце интеллектуальной деятельности человека”[198].

Шахматы значительно сложнее шашек. Так, выше я упомянула, что в шашках из каждой позиции на доске в среднем можно сделать шесть или семь ходов. В шахматах, однако, из каждой позиции можно сделать в среднем 35 ходов. В связи с этим дерево игры в шахматах гораздо больше, чем в шашках. На протяжении десятилетий шахматные программы совершенствовались синхронно с повышением скорости работы аппаратного обеспечения. В 1997 году IBM второй раз пришла к игровому триумфу с шахматной программой Deep Blue, одержавшей победу над чемпионом мира Гарри Каспаровым в матче из нескольких партий, который привлек огромное внимание общественности.

Deep Blue использовала практически такой же метод, как шашечная программа Сэмюэла: перед каждым ходом она строила фрагмент дерева игры, где корнем становилась текущая позиция на доске, затем применяла свою оценочную функцию к самому дальнему уровню дерева, а после этого с помощью максиминного алгоритма распространяла ценности обратно по дереву, чтобы решить, какой ход сделать. Основные различия между программой Сэмюэла и Deep Blue заключались в том, что Deep Blue заглядывала дальше вперед по дереву игры, использовала более сложную (ориентированную на шахматы) оценочную функцию, обладала запрограммированным шахматным знанием и работала на специальном параллельном аппаратном обеспечении, которое позволяло ей функционировать очень быстро. Кроме того, в отличие от шашечной программы Сэмюэла, Deep Blue не полагалась на машинное обучение.

Как ранее произошло с программой Сэмюэла, победа Deep Blue над Каспаровым привела к значительному повышению стоимости акций IBM[199]. Эта победа также спровоцировала большой переполох в прессе, которая принялась обсуждать последствия создания сверхчеловеческого интеллекта и выразила сомнение, что люди после этого вообще захотят играть в шахматы. Но в последующие десятилетия человечество адаптировалось к существованию Deep Blue. Как Клод Шеннон прозорливо написал в 1950 году, машина, которая превзойдет человека в шахматах, “заставит нас либо признать возможность механизированного мышления, либо дополнительно сузить нашу концепцию мышления”[200]. Случилось второе. Теперь считается, что сверхчеловеческая способность к игре в шахматы не требует общего интеллекта. Deep Blue не обладает интеллектом в том смысле, который мы сегодня вкладываем в это слово. Она умеет только играть в шахматы – и больше ничего. У нее нет представления о том, что для человека значит “игра” и “победа”. (Однажды я услышала такую фразу: “Хотя Deep Blue и победила Каспарова, она не получила от этого никакого удовольствия”.) Более того, шахматы выжили и сохранили свой статус сложной человеческой игры. Сегодня шахматисты используют компьютерные программы для тренировки, как бейсболист использует бейсбольную пушку. Можно ли сказать, что это стало результатом эволюции наших представлений об интеллекте, скорректированных благодаря прорывам в ИИ? Или же это еще один пример максимы Джона Маккарти: “Когда все работает исправно, никто уже не называет это ИИ”?[201]

Большой вызов го

Игра го существует более двух тысяч лет и считается одной из самых сложных настольных игр. Если вы никогда не играли в го, не переживайте: мои рассуждения не требуют от вас знакомства с игрой. При этом полезно знать, что го имеет серьезную репутацию, особенно в Восточной Азии, где игра невероятно популярна. “На досуге в го играют императоры и генералы, интеллектуалы и вундеркинды”, – пишет ученый и журналист Алан Левиновиц, который далее цитирует слова южнокорейского чемпиона по го Ли Седоля: “В западном мире есть шахматы, но го несравнимо изящнее и интеллектуальнее”[202].

Правила го довольно просты, но в процессе игры сложность нарастает. Совершая ход, игрок помещает камень своего цвета (черный или белый) на доску размером 19 x 19 клеток. Правила регламентируют, куда можно помещать камни и как захватывать камни противника. В отличие от шахмат, где пешки, слоны, ферзи и другие фигуры имеют иерархию, все камни го равноценны. Обдумывая ход, игрок должен быстро анализировать конфигурацию камней на доске.

Создание программы для успешной игры в го занимало специалистов по ИИ с самого зарождения отрасли. Сложность го, однако, делала эту задачу на удивление трудновыполнимой. В 1997 году, когда Deep Blue обыграла Каспарова, средние гоисты по-прежнему легко обыгрывали лучшие программы. Как вы помните, Deep Blue просчитывала значительное количество ходов с любой позиции, а затем применяла свою оценочную функцию, чтобы оценить будущие позиции, причем каждая оценка в этом случае прогнозировала, приведет ли конкретная позиция к победе. Программам го такая стратегия недоступна по двум причинам. Во-первых, размер дерева упреждающего просмотра в го значительно больше, чем в шахматах. Если шахматист выбирает в среднем из 35 возможных ходов для каждой позиции, игрок в го имеет в среднем 250 возможных ходов. Даже при наличии специального аппаратного обеспечения метод перебора, который использовала Deep Blue, не применим к дереву игры в го. Во-вторых, никто еще не создал хорошую оценочную функцию для позиций го. Иными словами, никто пока не сумел составить успешную формулу, которая анализирует позицию в го и прогнозирует, кто победит в игре. Лучшие игроки в го полагаются на свои навыки распознавания паттернов и необъяснимую интуицию.

Исследователи ИИ пока не поняли, как закодировать интуицию в оценочную функцию. Именно поэтому в 1997 году – в тот же год, когда Deep Blue обыграла Каспарова, – журналист Джордж Джонсон написал в The New York Times: “Когда или если компьютер одержит победу над чемпионом по го, это станет знаком, что искусственный интеллект действительно начинает приближаться к настоящему”[203]. Звучит знакомо – то же самое раньше говорили о шахматах! Джонсон процитировал прогноз одного энтузиаста го: “Возможно, пройдет сто лет, прежде чем компьютер победит человека в го, а возможно, и того больше”. Всего через двадцать лет AlphaGo, которая научилась играть в го с помощью глубокого Q-обучения, одержала победу над Ли Седолем в матче из пяти партий.

AlphaGo против Ли Седоля

Прежде чем я объясню, как работает AlphaGo, давайте вспомним ее блестящую победу над Ли Седолем, одним из лучших гоистов в мире. Даже увидев, как полугодом ранее AlphaGo обыграла чемпиона Европы Фана Хуэя, Ли не усомнился в своей победе: “Думаю, уровень [AlphaGo] не сравнить с моим… Конечно, в последние четыре-пять месяцев программу сильно усовершенствовали, но этого времени недостаточно, чтобы бросить мне вызов”[204].

Возможно, вы были среди более двухсот миллионов человек, которые в марте 2016 года посмотрели хотя бы фрагмент матча в прямом эфире. Уверена, такой аудитории не собирала ни одна партия в го за все двадцать пять веков ее истории. После первой партии вы, возможно, разделяли чувства потерпевшего поражение Ли: “Признаюсь, я поражен… Я не ожидал, что AlphaGo будет играть безупречно”[205].

“Безупречная” игра AlphaGo включала множество ходов, которые удивляли и восхищали комментаторов матча. В разгар второй партии AlphaGo сделала ход, который ошеломил даже лучших экспертов по игре. В Wired писали:

Сначала Фан Хуэй [вышеупомянутый чемпион Европы по го] счел этот ход довольно странным. Но затем он разглядел его красоту. “Это не человеческий ход. Я никогда не видел, чтобы человек походил таким образом, – говорит он. – Это очень красиво”. Он не перестает повторять это слово. Красиво. Красиво. Красиво… “Это очень неожиданный ход”, – сказал один из англоязычных комментаторов, также весьма талантливый игрок в го. Другой, усмехнувшись, признался: “Я решил, что это ошибка”. Но, пожалуй, сильнее всех удивился Ли Седоль, который поднялся и вышел из зала. “Ему пришлось выйти, чтобы освежиться и взять себя в руки”, – сказал первый комментатор[206].

В The Economist о том же ходе написали: “Любопытно, что порой мастера го делают подобные ходы. Японцы называют их kami no itte («рукой бога», или «божественными ходами»)”[207].

AlphaGo выиграла эту партию и следующую. В четвертой партии Ли сделал свой kami no itte, который показывает сложность игры и силу интуиции лучших игроков. Ход Ли удивил комментаторов, но они сразу распознали в нем приговор противнику. “AlphaGo, однако, не поняла, что происходит, – написал один комментатор. – Она не сталкивалась с подобным… в миллионах партий, сыгранных с самой собой. На послематчевой пресс-конференции Седоля спросили, о чем он думал, когда сделал этот ход. Он ответил, что не смог разглядеть никакого другого хода”[208].

Четвертую партию AlphaGo проиграла, но пятую выиграла. Победа в матче осталась за ней. В прессе снова разгорелись дискуссии, похожие на те, что велись после победы Deep Blue над Каспаровым, и многие рассуждали о том, что победа AlphaGo значит для будущего человечества. Но это было даже важнее триумфа Deep Blue: ИИ справился с более сложной задачей, чем шахматы, и сделал это гораздо более впечатляющим образом. В отличие от Deep Blue, AlphaGo получила свои навыки благодаря обучению с подкреплением во время игры с самой собой.

Демис Хассабис отметил, что “лучших игроков в го отличает интуиция” и “в AlphaGo [мы] с помощью нейронных сетей внедрили, если хотите, именно этот аспект интуиции”[209].

Как работает AlphaGo

Поскольку существовало несколько версий AlphaGo, чтобы различать их, в DeepMind стали называть их по именам чемпионов, которых победила программа, – AlphaGo Fan и AlphaGo Lee, – что навевает мне образ черепов поверженных врагов в коллекции цифрового викинга. Уверена, в DeepMind не хотели таких ассоциаций. Как бы то ни было, и AlphaGo Fan, и AlphaGo Lee использовали сложную комбинацию глубокого Q-обучения, “поиска по дереву методом Монте-Карло”, обучения с учителем и специальных знаний го. Через год после матча против Ли Седоля в DeepMind разработали новую версию программы, которая оказалась одновременно проще и совершеннее предыдущих. Новая версия получила название AlphaGo Zero, потому что в отличие от предыдущей начала обучение, имея ноль знаний о го, не считая правил игры[210]. AlphaGo Zero выиграла сто из ста партий против AlphaGo Lee. Кроме того, специалисты DeepMind применили те же методы (хотя с другими сетями и другими встроенными правилами игры), чтобы научить систему играть в шахматы и сёги (или японские шахматы)[211]. Авторы назвали набор этих методов AlphaZero. В настоящем разделе я опишу, как работала AlphaGo Zero, но для краткости буду называть эту версию просто AlphaGo.

Слово “интуиция” окружено ореолом таинственности, но интуиция AlphaGo (если называть ее именно так) рождается из комбинации глубокого Q-обучения и “поиска по дереву методом Монте-Карло”. Давайте разберемся, что скрывается за этим громоздким названием. В первую очередь в глаза бросается “Монте-Карло”. Конечно, Монте-Карло – это фешенебельный район расположенного на Лазурном берегу крошечного княжества Монако, которое славится модными казино и автомобильными гонками и часто появляется в фильмах о Джеймсе Бонде. Но в естественных науках и математике методом Монте-Карло называют семейство компьютерных алгоритмов, которые были впервые использованы в рамках Манхэттенского проекта по разработке атомной бомбы. Своим названием метод обязан идее о том, что компьютер может использовать некоторую степень случайности – как при вращении легендарной рулетки в казино Монте-Карло – при решении сложных математических задач.

Поиск по дереву методом Монте-Карло разработан специально для игровых компьютерных программ. Подобно оценочной функции Deep Blue, поиск по дереву методом Монте-Карло применяется для присвоения оценки каждому возможному ходу из конкретной позиции на доске. Однако, как я упоминала выше, в го неприменим обстоятельный упреждающий просмотр и пока еще не создана надежная оценочная функция. Поиск по дереву методом Монте-Карло работает иначе.


Рис. 31. Схема поиска по дереву методом Монте-Карло


На рис. 31 показана схема поиска. Взгляните сначала на рис. 31A. Черным кружком на нем обозначена текущая позиция на доске, то есть конфигурация камней на доске на момент текущего хода. Допустим, программа играет в го черными и наступает очередь черных ходить. Для простоты допустим, что у черных есть три возможных хода, показанные тремя стрелками. Какой ход выбрать черным?

Если бы у черных было достаточно времени, они могли бы осуществить “полный поиск” по дереву игры: просчитать все возможные последовательности ходов и выбрать ход, который с наибольшей вероятностью приведет их к победе. Но в го такой обстоятельный поиск невыполним: как я уже упоминала, даже всего времени с момента рождения Вселенной недостаточно, чтобы провести полный поиск по дереву игры в го. Применяя метод Монте-Карло, черные просматривают лишь малую часть возможных последовательностей после каждого хода, подсчитывают количество побед и поражений, к которым ведут эти гипотетические последовательности, и на основе полученных результатов присваивают оценку каждому доступному ходу. Вдохновленная рулеткой случайность нужна, чтобы оценить возможные ходы.

В частности, чтобы выбрать ход из текущей позиции, черные “представляют” (то есть испытывают) несколько возможных сценариев развития игры, как показано на рис. 31B – D. В каждом испытании черные начинают с текущей позиции, случайно выбирают один из доступных ходов, затем (с новой позиции) случайно выбирают ход противника (белых) и так далее, пока моделируемая партия не закончится победой или поражением черных. Такое испытание, начинающееся с конкретной позиции на доске, называется разверткой с этой позиции.

На рисунке видно, что в трех развертках черные один раз победили и два раза проиграли. Теперь черные могут оценить все доступные ходы с текущей позиции на доске (рис. 31E). Ход 1 (левая стрелка) фигурировал в двух развертках, одна из которых закончилась победой, поэтому он получает оценку 1 из 2. Ход 3 (правая стрелка) фигурировал в одной развертке, которая закончилась поражением, поэтому он получает оценку 0 из 1. Ход 2 (центральная стрелка) вообще не проверялся, поэтому он получает оценку 0. Кроме того, программа ведет такую же статистику для всех промежуточных ходов в развертках. Когда очередной раунд поиска по дереву методом Монте-Карло заканчивается, программа использует скорректированные оценки, чтобы решить, какой из доступных ходов кажется наиболее перспективным (здесь – ход 1). Затем программа совершает этот ход в игре.

Я сказала, что в развертке программа выбирает ходы для себя и противника случайным образом, но на самом деле она делает вероятностный выбор, ориентируясь на оценки, которые эти ходы получали в предыдущих раундах поиска по дереву методом Монте-Карло. Когда каждая развертка заканчивается победой или поражением, алгоритм корректирует все оценки сделанных в этой партии ходов, чтобы отразить результат.

Сначала программа выбирает ходы из конкретной позиции на доске случайно (выполняя операцию, эквивалентную вращению рулетки), но в процессе моделирования других разверток, получая дополнительную статистику, все больше склоняется к выбору тех ходов, которые чаще всего приводили к победным разверткам.

Таким образом, алгоритму поиска по дереву методом Монте-Карло не приходится гадать, какой ход с наибольшей вероятностью приведет к победе, ориентируясь лишь на текущую позицию: он использует развертки для сбора информации о том, как часто конкретный ход действительно приводит к победе или поражению. Чем больше разверток строит алгоритм, тем надежнее статистика. Как и раньше, программе необходимо найти баланс между использованием (выбором ходов, получивших самую высокую оценку при развертке) и исследованием (периодическим выбором ходов с низкой оценкой, для которых у программы еще мало статистических данных). На рис. 31 я показала три развертки, но в AlphaGo поиск по дереву методом Монте-Карло строил около двух тысяч разверток при каждом ходе.

Поиск по дереву методом Монте-Карло изобрели не специалисты по компьютерным наукам из DeepMind. Его предложили применить к деревьям игр в 2006 году, и это позволило значительно расширить способности программ для игры в го. Но этим программам оставалось не под силу победить людей. Одна из проблем заключалась в том, что накопление достаточной статистики из разверток занимает немало времени – особенно в го, где существует огромное количество допустимых ходов. Специалисты DeepMind поняли, что могут усовершенствовать систему, дополнив поиск по дереву методом Монте-Карло глубокой сверточной нейронной сетью. AlphaGo сообщает текущую позицию на доске обученной глубокой СНС, которая берет ее в качестве входного сигнала и присваивает расчетные значения ценности всем допустимым из этой позиции ходам. Затем поиск по дереву методом Монте-Карло использует эти значения ценности в качестве отправной точки: вместо того чтобы сначала выбирать ходы случайным образом, он рассматривает выходные сигналы сверточной сети в качестве индикатора предпочтительности начальных ходов. Представьте, что вы AlphaGo и смотрите на доску: прежде чем вы запустите процесс построения разверток из текущей позиции по методу Монте-Карло, сверточная сеть шепнет вам на ухо, какие допустимые из этой позиции ходы, вероятно, окажутся лучшими.

Результаты поиска по дереву методом Монте-Карло, в свою очередь, используются для обучения нейронной сети. Представьте, что вы AlphaGo и уже осуществили поиск. Его результатами стали новые вероятности, присвоенные всем вашим допустимым ходам на основе того, как часто эти ходы приводили к победам или поражениям в построенных развертках. Далее новые вероятности используются для корректировки выходного сигнала сверточной сети с помощью метода обратного распространения ошибки. Затем вы с противником выбираете ходы, после чего позиция на доске меняется – и процесс продолжается. По сути, СНС учится распознавать паттерны, прямо как мастера го. В конце концов сеть начинает играть роль “интуиции” программы, которая подкрепляется поиском по дереву методом Монте-Карло.

Как и ее предшественница, шашечная программа Сэмюэла, AlphaGo учится, играя сама с собой и проводя огромное количество партий (около пяти миллионов). Во время обучения веса сверточной нейронной сети корректируются после каждого хода на основе различий между выходными ценностями сети и уточненными ценностями после проведения поиска по дереву методом Монте-Карло. Затем, когда AlphaGo играет с человеком вроде Ли Седоля, обученная СНС на каждом ходе присваивает ценности, которые становятся отправными точками для поиска.

Создав AlphaGo, специалисты DeepMind продемонстрировали, что один из давних больших вызовов ИИ покорился хитроумной комбинации обучения с подкреплением, сверточных нейронных сетей и поиска по дереву методом Монте-Карло (а также мощной современной вычислительной техники). В результате AlphaGo заняла заслуженное место в пантеоне ИИ. Но что дальше? Научится ли эта действенная комбинация методов генерализации за пределами игрового мира? Об этом я расскажу в следующей главе.

Глава 10
Не ограничиваясь играми

За последнее десятилетие обучение с подкреплением превратилось из относительно малоизвестного ответвления ИИ в одно из самых перспективных (и активно финансируемых) направлений развития отрасли. Возрождение обучения с подкреплением – особенно в глазах общественности – произошло во многом благодаря проектам DeepMind, которые я описала в предыдущей главе. Достижения DeepMind в играх Atari и го действительно феноменальны и заслуживают признания.

Однако в представлении многих исследователей ИИ разработкой сверхчеловеческих игровых программ дело не ограничивается. Давайте сделаем шаг назад и рассмотрим вопрос об использовании этих достижений для общего прогресса ИИ. Демису Хассабису есть что сказать на этот счет:

Игры – это всего лишь платформа для дальнейшего развития… Это самый быстрый способ разрабатывать и тестировать алгоритмы ИИ, но в итоге мы хотим использовать их так, чтобы они решали реальные задачи и оказывали огромное влияние на такие области, как здравоохранение и наука. Суть в том, что это общий ИИ – и он учится работать [на основе] собственного опыта и данных[212].

Давайте копнем немного глубже. Насколько общим можно считать этот ИИ? Насколько он применим к реальным задачам, помимо игр? В какой степени эти системы действительно учатся “самостоятельно”? И чему именно они учатся?

Общий характер и “перенос обучения”

Когда я искала в интернете статьи об AlphaGo, Сеть подкинула мне громкий заголовок: “Разработанная DeepMind программа AlphaGo на досуге научилась играть в шахматы”[213]. Это утверждение недостоверно, и важно понимать почему. AlphaGo (во всех версиях) не умеет играть ни в одну игру, кроме го. Даже самая общая версия, AlphaZero, – это не единая система, которая научилась играть в го, шахматы и сёги. Для каждой игры выделяется отдельная сверточная нейронная сеть, которую необходимо с нуля обучать конкретной игре. В отличие от людей, эти программы не могут “переносить” знания об одной игре, чтобы им было легче учиться играть в другую.

То же самое относится к различным программам для игры в видеоигры Atari: каждая из них узнает веса сети с нуля. Можно провести такое сравнение: представьте, что вы научились играть в Pong, но затем, чтобы научиться играть в Breakout, должны забыть все, что узнали об игре в Pong, и начать с чистого листа.

Специалисты по машинному обучению возлагают надежды на “перенос обучения”, то есть способность программ переносить знания, полученные при приобретении одного навыка, и с их помощью облегчать приобретение другого, родственного навыка. У людей перенос обучения происходит автоматически. Научившись играть в настольный теннис, я смогла использовать некоторые навыки, когда училась играть в большой теннис и бадминтон. Умение играть в шашки помогло мне научиться играть в шахматы. В детстве я не сразу научилась поворачивать дверную ручку в своей комнате, но стоило мне овладеть этим навыком, как мне покорились почти все дверные ручки.

Люди без труда применяют имеющиеся знания при освоении новых навыков, и способность к генерализации обучения лежит в основе наших представлений о мышлении. Таким образом, если выражаться человеческим языком, “перенос обучения” вполне можно назвать собственно “обучением”.

“Обучение” современного ИИ, напротив, не переносится между родственными задачами. В этом отношении до того, что Хассабис называет “общим ИИ”, еще очень далеко. Хотя специалисты по машинному обучению активно исследуют возможность переноса обучения, прогресс на этом фронте пока минимален[214].

“Без человеческих примеров и руководства”

В отличие от обучения с учителем, обучение с подкреплением позволяет надеяться на появление программ, которые действительно смогут учиться самостоятельно, просто выполняя действия в своей “среде” и анализируя их результаты. Говоря о результатах своей работы, особенно об AlphaGo, в DeepMind отметили важнейшую вещь, подчеркнув, что эти надежды оправдались: “Наши результаты наглядно демонстрируют, что чистое обучение с подкреплением вполне возможно даже в самых сложных областях: можно приобрести сверхчеловеческие навыки без человеческих примеров и руководства, не зная об области ничего, кроме базовых правил”[215].

Заявление понятно. Теперь рассмотрим оговорки. AlphaGo (а точнее, AlphaGo Zero) действительно не использовала при обучении предоставленных людьми примеров, но человеческое “руководство” – совсем другая история. Огромную роль в успехе программы сыграли несколько определенных людьми аспектов, включая специфическую архитектуру ее сверточной нейронной сети, использование поиска по дереву методом Монте-Карло и настройку множества гиперпараметров для эффективной работы этих методов. Как отметил психолог и исследователь ИИ Гэри Маркус, ни один из этих ключевых аспектов AlphaGo не был “определен на основе данных с помощью чистого обучения с подкреплением. [Эти аспекты] были встроены… программистами DeepMind[216]. Программы DeepMind для видеоигр Atari представляли собой более удачный пример “обучения без человеческого руководства”, чем AlphaGo, поскольку – в отличие от последней – не получали ни правил игры (например, не узнавали, что цель Breakout заключается в уничтожении кирпичей), ни представления о связанных с игрой “объектах” (например, ракетке или мяче), а обучались исключительно по пикселям на экране.

Самые сложные области

Необходимо рассмотреть и другой аспект заявления DeepMind – фразу “в самых сложных областях”. Как понять, насколько сложна для ИИ конкретная область? Как мы видели, многие вещи, которые нам, людям, кажутся довольно простыми (например, описание изображенного на фотографии), для компьютеров представляют огромную сложность. При этом многие вещи, которые нам, людям, кажутся ужасно сложными (например, точное перемножение двух пятидесятизначных чисел), компьютеры выполняют за долю секунды, пользуясь программой из одной строки.

Один способ оценить сложность области для компьютеров – посмотреть, насколько хорошо в ней работают простые алгоритмы. В 2018 году ученые из Uber AI Labs обнаружили, что некоторые относительно простые алгоритмы почти не уступали предложенному DeepMind методу глубокого Q-обучения (а иногда и превосходили его) в работе с несколькими видеоиграми Atari. Самым неожиданным стал успех “алгоритма случайного поиска”: вместо того чтобы обучать глубокую Q-сеть с помощью обучения с подкреплением с огромным числом эпизодов, можно просто применить множество сверточных нейронных сетей со случайными весами[217]. Иными словами, не проводить никакого обучения, а действовать методом случайных проб и ошибок.

Вам может показаться, что сеть со случайными весами провалится в видеоигре Atari, и большинство таких сетей действительно играет ужасно. Но специалисты Uber тестировали все новые сети со случайными весами, пока (за меньшее время, чем требуется для обучения глубокой Q-сети) не нашли те, которые справлялись с пятью из тринадцати тестовых игр не хуже, а порой даже лучше, чем глубокие Q-сети. Другой относительно простой алгоритм, так называемый генетический алгоритм[218], превзошел глубокое Q-обучение в семи из тринадцати игр. Эти результаты показывают, что область игр Atari, возможно, не столь сложна для ИИ, как казалось людям.

Насколько мне известно, никто не пробовал применить подобный случайный поиск весов в сети для го. Я бы очень удивилась, если бы это сработало. Учитывая, как долго исследователи пытались спроектировать программу для игры в го, я уверена, что го входит в число поистине сложных для ИИ областей. Однако, как отметил Гэри Маркус, люди играют во множество игр, которые для ИИ еще сложнее го. В качестве яркого примера Маркус приводит игру в шарады[219], которая, если задуматься, требует развитых зрительных, лингвистических и социальных способностей, значительно превосходящих способности любой современной системы ИИ. Если бы вы могли сконструировать робота, который смог бы играть в шарады, скажем, на уровне шестилетнего ребенка, то, думаю, вы были бы вправе сказать, что покорили несколько “самых сложных областей” ИИ.

Чему научились эти системы?

Как обычно происходит с глубоким обучением, человеку сложно понять, чему именно научились нейронные сети, которые использовались в игровых системах. Читая предыдущие разделы, вы, возможно, заметили некоторый антропоморфизм моих описаний – так, я сказала: “Система DeepMind освоила стратегию проброса мяча сквозь кирпичи при игре в Breakout”.

Я не единственная прибегаю к такому языку, описывая поведение систем ИИ, но эта привычка таит в себе опасность. За нашими словами часто кроются бессознательные допущения, которые не всегда оказываются верными для компьютерных программ. Правда ли, что разработанная DeepMind система освоила стратегию проброса мяча в Breakout? Гэри Маркус напоминает, что нам следует быть осторожными при выборе выражений:

Система этому не научилась – она не понимает, что такое тоннель или стена, а потому просто запомнила конкретные обстоятельства для определенных сценариев. Тесты на перенос, в которых система глубокого обучения с подкреплением получает сценарии, имеющие незначительные отличия от тех, что рассматривались на стадии обучения, показывают, что решения на основе глубокого обучения с подкреплением часто оказываются крайне поверхностными[220].

Маркус ссылается на несколько исследований, в которых ученые проверяли, насколько хорошо системы глубокого Q-обучения с подкреплением переносят свои знания при внесении некоторых – даже незначительных – изменений в игру. Так, одна группа исследователей изучала систему, напоминающую программу DeepMind для игры в Breakout. Оказалось, что после того, как игрок достигнет “сверхчеловеческого” уровня, достаточно сместить ракетку на несколько пикселей вверх, чтобы показатели программы резко упали[221]. Это позволяет предположить, что система не получила даже базовое представление о том, что такое ракетка. Другая группа показала, что показатели системы глубокого Q-обучения для игры в Pong значительно снижаются при изменении цвета фона экрана[222]. Более того, в обоих случаях системе требуется множество эпизодов переобучения для адаптации к изменениям.

Вот лишь два примера неспособности глубокого Q-обучения к генерализации, с которой легко справляются люди. Насколько мне известно, ни одно исследование не проверяло, понимает ли программа DeepMind для игры в Breakout, что такое проброс, но я полагаю, что система не смогла бы провести генерализацию, чтобы выполнять, скажем, пробросы вниз или в сторону без серьезного переобучения. Как отмечает Маркус, хотя мы, люди, приписываем программе определенное понимание понятий, которые считаем базовыми (например, стена, потолок, ракетка, мяч, проброс), программа их не понимает:

Эти исследования показывают, что некорректно говорить об освоении системами глубокого обучения с подкреплением таких понятий, как “стена” или “ракетка”, и подобные замечания представляют собой пример того, что в сравнительной (зоо-)психологии иногда называют сверхатрибуцией. Система [для игры на] Atari не усвоила понятие стены на глубинном уровне, а поверхностным образом сопоставила пробивание сквозь стены с узким набором прекрасно заученных обстоятельств[223].

Подобным образом, хотя AlphaGo демонстрировала чудесную “интуицию” при игре в го, насколько я могу судить, у системы нет механизмов, которые позволили бы ей генерализировать навыки игры в го даже для игры на доске меньшего размера или другой формы без реструктуризации и переобучения своей глубокой Q-сети.

Иными словами, хотя эти системы глубокого Q-обучения добились сверхчеловеческих результатов в узких областях и даже продемонстрировали в них некое подобие “интуиции”, они лишены ключевой способности человеческого разума. Можно называть ее по-разному – абстрактным мышлением, генерализацией или переносом обучения, – но ее внедрение в системы ИИ остается одной из важнейших задач отрасли.

Есть и другая причина полагать, что компьютерные системы не осваивают человеческие понятия и не понимают свои области на человеческий лад: как и системы обучения с учителем, системы глубокого Q-обучения не справляются с контрпримерами вроде тех, что я описала в главе 6. Так, одна исследовательская группа продемонстрировала, что при внесении конкретных минимальных изменений в пиксели входного сигнала программы для игры в одну из видеоигр Atari изменения, незаметные человеку, значительно ограничивают способности программы к игре.

Насколько умна AlphaGo?

Рассуждая о связи таких игр, как шахматы и го, с человеческим разумом, мы не должны забывать одну важную вещь. Задумайтесь, почему многие родители поощряют занятие ребенка шахматами (а кое-где и го) и предпочитают, чтобы ребенок играл в шахматы (или в го), вместо того чтобы смотреть телевизор или играть в видеоигры (прости, Atari)? Люди полагают, что такие игры, как шахматы и го, учат детей (и кого угодно) мыслить, развивая у них логику, абстрактное мышление и способности к стратегическому планированию. Все эти общие навыки остаются с человеком на всю жизнь и помогают ему во всех начинаниях.

AlphaGo на этапе обучения сыграла миллионы партий, но не научилась “мыслить” ни о чем, кроме го. Она не умеет ни думать, ни рассуждать, ни строить планы, не связанные с го. Насколько мне известно, ни один из усвоенных ею навыков ни в коей мере нельзя называть общим. Ни один из них невозможно перенести на другую задачу. AlphaGo – настоящий савант.

Несомненно, метод глубокого Q-обучения, использованный в AlphaGo, можно применять для освоения других навыков, но систему при этом придется полностью переобучать – по сути, ей придется приобретать новый навык с нуля.

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

От игр в реальный мир

Наконец, рассмотрим утверждение Демиса Хассабиса, что освоение игр служит цели “использовать их так, чтобы они решали реальные задачи и оказывали огромное влияние на такие области, как здравоохранение и наука”. Думаю, вполне возможно, что работа DeepMind с обучением с подкреплением в итоге действительно окажет воздействие, на которое рассчитывает Хассабис. Но путь от игр в реальный мир довольно долог.

Необходимость переноса обучения – серьезное препятствие. Но есть и другие причины, по которым успех обучения с подкреплением в играх будет сложно повторить в реальном мире. Игры вроде Breakout и го идеально подходят для обучения с подкреплением, потому что обладают четкими правилами, понятными функциями вознаграждения (например, наградами за набранные очки или победу) и относительно небольшим набором допустимых действий (ходов). Кроме того, игроки имеют доступ к “полной информации”: все компоненты игры всегда видны всем игрокам, а “состояние” игрока не предполагает скрытых или неопределенных аспектов.

Реальный мир очерчен не так четко. Дуглас Хофштадтер отметил, что от действительности оторвана даже сама концепция однозначно определенного “состояния”. “Реальные ситуации не имеют рамок в отличие от ситуаций в игре в шахматы или го… Реальная ситуация лишена границ, и невозможно понять, что относится к ней, а что нет”[224].

В качестве примера представьте, что с помощью обучения с подкреплением робот учится выполнять весьма полезную реальную задачу: забирать грязные тарелки из раковины и класть их в посудомоечную машину. (Подумайте только, какую гармонию принес бы такой робот в семью!) Как определить “состояние” робота? Стоит ли учитывать все, что попадает в поле его зрения? А содержимое раковины? А содержимое посудомоечной машины? А что насчет собаки, которая подошла облизать тарелки и которую нужно прогнать? Как бы мы ни определили состояние, роботу необходимо будет распознавать различные объекты – например, тарелку (которую следует поставить на нижнюю полку посудомоечной машины), кружку (на верхнюю полку) и губку (которой в машине вообще не место). Как мы видели, компьютеры пока очень плохо справляются с распознаванием объектов. Кроме того, роботу нужно будет учитывать объекты, которых он не видит, – например, кастрюли и сковородки, скрытые на дне раковины. Роботу также придется брать различные объекты и помещать их (аккуратно!) в соответствующие места. Для этого ему необходимо научиться выбирать одно из множества доступных действий, чтобы контролировать положение тела, работу механических “пальцев”, перемещение объектов из раковины на верное место в посудомоечной машине и так далее[225].

Игровым агентам DeepMind понадобились миллионы итераций обучения. Если мы не хотим разбить миллионы тарелок, обучать робота придется в симуляции. Создать точную компьютерную симуляцию игры несложно – ведь на самом деле никакие элементы игры не двигаются, мячи не отскакивают от ракеток, а кирпичи не взрываются. Создать симуляцию загрузки посудомоечной машины гораздо сложнее. Чем выше ее реалистичность, тем медленнее она работает на компьютере, и даже с очень быстрым компьютером ужасно сложно учесть все физические силы и другие аспекты загрузки посудомоечной машины, чтобы сделать симуляцию максимально приближенной к жизни. Не стоит также забывать о несносной собаке и других непредсказуемых аспектах реального мира – как нам понять, что нужно включить в компьютерную симуляцию, а что можно без проблем опустить?

Зная об этих проблемах, Андрей Карпатый, директор Tesla по ИИ, отметил, что в подобных реальных задачах “практически все допущения, которые позволяет сделать го и которыми пользуется AlphaGo, нарушаются, а потому любой успешный метод должен выглядеть совсем иначе”[226].

Никто не знает, каким станет этот успешный метод. Сфера глубокого обучения с подкреплением все еще довольно молода. Описанные в настоящей главе результаты можно считать доказательством того, что комбинация глубоких сетей и Q-обучения удивительно хорошо работает в весьма интересных, хоть и узких, областях, и, хотя я перечислила ряд проблем, с которыми сталкиваются исследователи, многие сегодня ищут способ применять обучение с подкреплением более широко. Игровые программы DeepMind пробудили новый интерес к отрасли, и глубокое обучение с подкреплением в 2017 году вошло в список 10 прорывных технологий по версии журнала Technology Review, издаваемого в MIT. В последующие годы, когда обучение с подкреплением достигнет зрелости, я буду ждать появления робота, который самостоятельно научится загружать посудомоечную машину, на досуге играя в футбол и го.

Часть IV
Искусственный интеллект и естественный язык

Глава 11
В компании слов

Пора рассказать вам одну историю.

Ресторан

Мужчина вошел в ресторан и заказал гамбургер “с кровью”. Когда ему принесли заказ, гамбургер оказался пережарен до хруста. К столику гостя подошла официантка. “Вам нравится бургер?” – спросила она. “О, он просто великолепен”, – ответил мужчина, отодвинул стул и гневно зашагал прочь, не оплатив счет. Официантка крикнула ему вслед: “Эй, а кто платить будет?” Она пожала плечами и буркнула себе под нос: “И что он так раскипятился?”[227]

Теперь позвольте мне задать вам вопрос: съел ли мужчина гамбургер?

Полагаю, вы уверены в ответе, хотя напрямую в истории об этом не говорится. Нам, людям, легко читать между строк. В конце концов, понимание языка – включая недосказанности – фундаментальный компонент человеческого разума. Неслучайно Алан Тьюринг сделал знаменитую “имитационную игру” состязанием в генерации и понимании языка.

В настоящей части книги речь пойдет об обработке естественного языка, то есть “попытках научить компьютеры работать с человеческим языком”. (На жаргоне ИИ “естественный” значит “человеческий”.) Обработка естественного языка (ОЕЯ) включает такие направления, как распознавание речи, поиск в интернете, создание вопросно-ответных систем и машинный перевод. Подобно тому, что мы увидели в предыдущих главах, движущей силой большинства недавних прорывов в сфере ОЕЯ стало глубокое обучение. Я опишу некоторые из этих прорывов, используя историю о ресторане, чтобы проиллюстрировать ряд серьезных проблем, с которыми сталкиваются машины при использовании и понимании человеческого языка.

Тонкости языка

Допустим, мы хотим создать программу, которая может прочитать фрагмент текста и ответить на вопросы о нем. Сегодня вопросно-ответные системы – одно из основных направлений исследований в сфере ОЕЯ, потому что люди хотят общаться с компьютерами при помощи естественного языка (вспомните Siri, Alexa, Google Now и других “виртуальных помощников”). Однако, чтобы отвечать на вопросы о таком тексте, как история о ресторане, программе потребуются продвинутые лингвистические навыки и основательные знания об устройстве мира.

Съел ли мужчина гамбургер? Чтобы с уверенностью ответить на этот вопрос, гипотетической программе нужно знать, что гамбургеры входят в категорию “пища”, а пищу можно есть. Программа должна понимать, что если человек заходит в ресторан и заказывает гамбургер, то обычно он планирует его съесть. Кроме того, ей следует знать, что после подачи заказа в ресторане гамбургер становится доступен для еды и что если человек заказывает гамбургер “с кровью”, то ему, скорее всего, не захочется есть “пережаренный” гамбургер. Программа должна понимать, что в словах “он просто великолепен” кроется сарказм, “он” здесь означает “бургер”, а “бургер”, в свою очередь, служит синонимом “гамбургера”. Программе нужно догадаться, что человек, который “зашагал прочь” из ресторана, не заплатив, вряд ли съел заказанное блюдо.

Сложно представить все фоновые знания, которые необходимы программе, чтобы уверенно отвечать на вопросы об истории. Оставил ли мужчина чаевые официантке? Программе нужно знать о традиции давать чаевые в ресторанах с целью вознаградить официантов за хорошее обслуживание. Почему официантка спросила: “А платить кто будет”? Программе следует понять, что “платить” нужно не за новую куртку и не за свои прегрешения, а за блюдо. Поняла ли официантка, что мужчина разозлился? Программе необходимо установить, что в вопросе “И что он так раскипятился?” “он” – это мужчина, а слово “раскипятился” употреблено в значении “рассердился”. Поняла ли официантка, почему мужчина ушел из ресторана? Программе было бы полезно узнать, что жест “пожала плечами” говорит, что официантка не поняла, почему мужчина убежал.

Представляя, какие знания нужны гипотетической программе, я вспоминаю о своих попытках ответить на бесчисленные вопросы, которые задавали мне дети, когда были совсем маленькими. Однажды, когда моему сыну было четыре года, я взяла его с собой в банк. Он задал мне простой вопрос: “Что такое банк?” Мой ответ породил, казалось, бесконечный каскад вопросов “почему?” и “зачем?”. “Зачем людям деньги?” “Почему люди хотят, чтобы у них было много денег?” “Почему они не могут хранить деньги дома?” “Почему нельзя печатать собственные деньги?” Все это хорошие вопросы, но ответить на них, не объясняя множество вещей, незнакомых четырехлетнему ребенку, весьма нелегко.

С машинами дело обстоит еще хуже. Слушая историю о ресторане, ребенок уже имеет представление о таких понятиях, как “человек”, “стол” и “гамбургер”. У детей есть зачатки здравого смысла: так, они понимают, что, выходя из ресторана, мужчина перестает быть внутри ресторана, хотя столы и стулья, вероятно, остаются на месте. А когда гамбургер “приносят”, его, вероятно, приносит официантка (а не загадочные “они”). Современные машины не умеют оперировать детализированными, взаимосвязанными понятиями и здравым смыслом, к которому при понимании языка прибегает даже четырехлетний ребенок.

В таком случае не стоит удивляться, что использование и понимание естественного языка относится к одной из самых сложных задач, стоящих перед ИИ. Язык по природе своей неоднозначен: он сильно зависит от контекста и задействует огромный объем фоновых знаний, имеющихся у взаимодействующих сторон. Как и в других сферах ИИ, в первые несколько десятилетий исследователи ОЕЯ уделяли основное внимание символическим подходам на основе правил, то есть разрабатывали программы и прописывали грамматические и лингвистические правила, которые необходимо было применять к входным предложениям. Такие методы работали не слишком хорошо – судя по всему, набор четко определенных правил не может учесть все тонкости языка. В 1990-х годах подходы к ОЕЯ на основе правил уступили место более успешным статистическим подходам, в рамках которых огромные наборы данных используются для тренировки алгоритмов машинного обучения. В последнее время статистический подход на основе данных применяется к глубокому обучению. Может ли глубокое обучение в комбинации с большими данными привести к появлению машин, которые смогут гибко и надежно работать с человеческим языком?

Распознавание речи и последние 10 %

Автоматическое распознавание речи – транскрибирование устной речи в текст в реальном времени – стало первым крупным успехом глубокого обучения в ОЕЯ, и можно даже сказать, что на текущий момент это самый серьезный успех ИИ в любой области. В 2012 году, когда глубокое обучение производило революцию в компьютерном зрении, исследовательские группы из Университета Торонто, Microsoft, Google и IBM опубликовали знаковую статью о распознавании речи[228]. Эти группы разрабатывали глубокие нейронные сети для различных аспектов распознавания речи: распознавания фонем по акустическим сигналам, предсказания слов на основе комбинаций фонем, предсказания фраз на основе комбинаций слов и так далее. По словам специалиста по распознаванию речи из Google, применение глубоких сетей привело к “самому значительному прогрессу за 20 лет исследования речи”[229]. В тот же год появилась созданная на основе глубокой сети новая система распознавания речи, которая сначала стала доступна пользователям Android, а через два года – пользователям iPhone. Один из инженеров Apple при этом отметил: “В этой сфере произошел такой значительный скачок [производительности], что тесты пришлось повторять, чтобы убедиться, что никто не потерял десятичную запятую”[230].

Если вы пользовались технологией распознавания речи до и после 2012 года, то наверняка заметили ее резкое улучшение. Распознавание речи, которое до 2012 года часто оборачивалось огромным разочарованием и лишь изредка приносило умеренную пользу, вдруг стало демонстрировать почти идеальные результаты в определенных обстоятельствах. Теперь я могу диктовать тексты и письма приложению для распознавания речи, установленному на моем телефоне: всего несколько минут назад я прочитала телефону историю о ресторане на обычной для себя скорости, и он верно транскрибировал каждое слово.

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

При этом автоматическое распознавание речи – вопреки некоторым сообщениям прессы – еще не вышло на “человеческий уровень”. Фоновый шум по-прежнему существенно снижает точность работы систем: в движущемся автомобиле они гораздо менее эффективны, чем в тихой комнате. Кроме того, эти системы периодически спотыкаются о необычные слова и фразы, тем самым наглядно демонстрируя, что не понимают транскрибируемую речь. Например, я сказала: Mousse is my favorite dessert (“Мусс – мой любимый десерт”), – но мой телефон (на Android) записал: Moose is my favorite dessert (“Лось – мой любимый десерт”). Я сказала: The bareheaded man needed a hat (“Мужчине с непокрытой головой нужна была шапка”), – но телефон записал: The bear headed man needed a hat (“Мужчине с головой медведя нужна была шапка”). Нетрудно найти предложения, которые приведут систему в замешательство. Но при распознавании обиходной речи в тихой среде точность подобных систем, на мой взгляд, составляет примерно 90–95 % от человеческой[231]. Шум и другие осложнения значительно ухудшают показатели.

Как известно, в любом сложном инженерном проекте действует правило: на первые 90 % проекта уходит 10 % времени, а на последние 10 % – 90 % времени. Думаю, в некотором виде это правило применимо ко многим областям ИИ (привет, беспилотные автомобили!) и оправдает себя также в сфере распознавания речи. Последние 10 % – это не только работа с шумом, непривычными акцентами и незнакомыми словами, но и решение проблемы неоднозначности и контекстуальности языка, которая осложняет интерпретацию речи. Что нужно, чтобы справиться с этими последними 10 %, которые не желают поддаваться исследователям? Больше данных? Больше сетевых слоев? Или же, осмелюсь спросить, эти последние 10 % потребуют истинного понимания речи говорящего? Я склоняюсь к последнему, хотя и знаю, что уже ошибалась раньше.

Системы распознавания речи довольно сложны: чтобы пройти путь от звуковых волн к предложениям, нужно провести несколько этапов обработки данных. В современных передовых системах распознавания речи используется несколько различных компонентов, включая ряд глубоких нейронных сетей[232]. Другие задачи ОЕЯ, например перевод текстов или создание вопросно-ответных систем, на первый взгляд кажутся проще: входные и выходные сигналы в них состоят из слов. И все же в этих сферах основанный на данных метод глубокого обучения не привел к такому прогрессу, как в распознавании речи. Почему? Чтобы ответить на этот вопрос, давайте рассмотрим несколько примеров применения глубокого обучения к важным задачам ОЕЯ.

Классификация тональности

В первую очередь обратим внимание на область, называемую классификацией тональности текста. Прочтите несколько коротких отзывов на фильм “Индиана Джонс и храм судьбы”[233]:

“Сюжет тяжел, и очень не хватает юмора”.

“На мой вкус, немного мрачновато”.

“Кажется, продюсеры старались сделать фильм как можно более тревожным и жутким”.

“Развитие персонажей и юмор в «Храме судьбы» весьма посредственны”.

“Тон странноват, и многие шутки меня не зацепили”.

“Ни шарма, ни остроумия, в отличие от других фильмов серии”.

Понравился ли фильм авторам отзывов?

Использование машин для ответа на такой вопрос сулит большие деньги. Система ИИ, способная точно распознать эмоциональную окраску предложения (или абзаца) – положительную, отрицательную или любую другую, – принесет огромные прибыли компаниям, которые хотят анализировать отзывы клиентов о своих продуктах, находить новых потенциальных покупателей, автоматизировать рекомендации (“людям, которым понравился X, также понравится Y”) и наладить таргетирование онлайн-рекламы. Данные о предпочтениях человека в кино, литературе и других сферах на удивление полезны для прогнозирования покупок этого человека (и это даже пугает). Более того, на основе этой информации можно прогнозировать и другие аспекты жизни человека, например его поведение на выборах и реакцию на определенные типы новостей и политической рекламы[234]. Также были попытки (порой успешные) с помощью “анализа эмоций”, скажем, твитов, связанных с экономикой, прогнозировать цены акций и исход выборов.

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

Некоторые ранние системы ОЕЯ искали отдельные слова или короткие последовательности слов, которые считали индикаторами тональности всего текста. Например, можно предположить, что такие слова, как “лишенный”, “мрачный”, “странный”, “тяжелый”, “тревожный”, “жуткий” и “посредственный”, и такие словосочетания, как “не зацепили” и “ни шарма, ни остроумия”, говорят о негативной тональности отзывов. В некоторых случаях это действительно так, но часто те же самые слова можно найти в позитивных рецензиях. Вот несколько примеров:

“Несмотря на тяжелую тему, в фильме достаточно юмора, который не позволяет ему стать слишком мрачным”.

“Не понимаю, что тревожного и жуткого люди находят в этом фильме”.

“Когда вышел этот великолепный фильм, я был слишком молод – и тогда он меня не зацепил”.

“Не посмотрев этот фильм, вы многого лишитесь!”

Для определения эмоциональной окраски сообщения недостаточно распознавать отдельные слова или короткие словосочетания: необходимо понять семантику слов в контексте всего предложения.

Вскоре после того, как глубокие сети начали блистать в сфере компьютерного зрения и распознавания речи, исследователи ОЕЯ попытались применить их к анализу тональности текста. Как обычно, идея в том, чтобы натренировать сеть на множестве размеченных людьми примеров предложений с позитивной и негативной тональностью, позволив ей самостоятельно выявить полезные признаки, позволяющие с уверенностью классифицировать новое предложение как “позитивное” или “негативное”. Но как вообще добиться, чтобы нейронная сеть обработала предложение?

Рекуррентные нейронные сети

Для обработки предложения или абзаца необходимы нейронные сети особого типа, непохожие на описанные в предыдущих главах. Так, в главе 4 мы анализировали работу сверточной нейронной сети, которая классифицировала изображения по категориям “собака” и “кошка”. Ее входным сигналом была насыщенность пикселей на изображении фиксированного размера (изображения большего и меньшего размера подвергались масштабированию). Предложения, напротив, состоят из последовательностей слов, а их длина не фиксирована. Таким образом, нам нужно найти способ, которым нейронная сеть сможет обрабатывать предложения переменной длины.

Применение нейронных сетей для решения задач, в которых фигурируют упорядоченные последовательности, такие как предложения, началось в 1980-х годах, когда были созданы рекуррентные нейронные сети (РНС), само собой, навеянные представлениями о том, как последовательности интерпретируются человеческим мозгом. Представьте, что вас попросили прочитать отзыв a little too dark to my taste (“на мой взгляд, немного мрачновато”) и определить его тональность – позитивную или негативную. Вы читаете предложение слева направо, по одному слову. Читая его, вы начинаете формировать свое впечатление о его тональности, и это впечатление получает подтверждение, когда вы дочитываете предложение до конца. К этому моменту у вас в мозге складывается репрезентация предложения в форме активаций нейронов, и она позволяет вам с уверенностью сказать, позитивный перед вами отзыв или негативный.

Структура рекуррентной нейронной сети следует такому последовательному чтению предложений и формированию их репрезентаций в форме активации нейронов. На рис. 32 сравниваются структуры традиционной и рекуррентной нейронной сети. Для простоты в каждой сети только две ячейки (белые круги) в скрытом слое и одна ячейка в выходном слое. В обеих сетях входной сигнал имеет связи со скрытыми ячейками, а каждая скрытая ячейка имеет связь с выходной ячейкой (сплошные стрелки). Ключевое отличие РНС в том, что у ее скрытых ячеек есть дополнительные “рекуррентные” связи: каждая из скрытых ячеек имеет связь с самой собой и другой скрытой ячейкой (пунктирные стрелки). Как это работает? В отличие от традиционной нейронной сети, РНС функционирует в соответствии с последовательностью моментов времени. В каждый момент времени РНС получает входной сигнал и вычисляет активацию своих скрытых и выходных ячеек, как и традиционная нейронная сеть. Но в РНС уровень активации каждой скрытой ячейки вычисляется не только на основе входного сигнала, но и на основе уровней активации скрытых ячеек в предыдущий момент времени. (В первый момент времени эти рекуррентные значения равняются 0.) Это дает сети способ интерпретировать слова, которые она “читает” сейчас, вспоминая контекст “прочитанного” ранее.

Чтобы понять, как работает РНС, лучше всего представить функционирование сети во времени, как на рис. 33, который показывает РНС с рис. 32 в каждый из восьми последовательных моментов времени. Ради простоты я показала все рекуррентные связи в скрытом слое единственной пунктирной стрелкой от одного шага времени к другому. В каждый момент времени уровни активации скрытых ячеек представляют собой составленный сетью код того фрагмента предложения, который она увидела к этому моменту. Продолжая обрабатывать слова, сеть совершенствует этот код. За последним словом в предложении следует специальный символ END, который, подобно точке, сообщает сети, что предложение закончилось. Обратите внимание, что это люди добавляют символ END в конец каждого предложения, перед тем как давать текст сети.


Рис. 32. A – схема традиционной нейронной сети; B – схема рекуррентной нейронной сети, где уровни активации скрытых ячеек в конкретный момент времени учитываются также в следующий момент


В каждый момент времени выходная ячейка этой сети обрабатывает уровни активации скрытых ячеек (“код”), чтобы определить степень уверенности сети в том, что входное предложение (то есть часть предложения, полученная сетью к этому шагу времени) имеет позитивную тональность. Применяя сеть к конкретному предложению, мы можем не обращать внимания на выходной сигнал, пока сеть не достигнет конца предложения. В этот момент скрытые единицы закодируют предложение целиком, а выходная единица выдаст итоговую степень уверенности сети (здесь – тридцатипроцентную степень уверенности в позитивной и, соответственно, семидесятипроцентную степень уверенности в негативной тональности предложения).


Рис. 33. Работа рекуррентной нейронной сети с рис. 32 на последовательности восьми моментов времени


Поскольку сеть перестает кодировать предложение, только встречая символ END, система теоретически может кодировать предложения любой длины в последовательность чисел – уровней активации скрытых ячеек – фиксированной длины. По очевидным причинам такие сети часто называют кодерами[235].

Получая набор предложений, которым люди присвоили метку “позитивная” или “негативная” в зависимости от тональности, сеть-кодер обучается на этих примерах с помощью метода обратного распространения ошибки. Но я пока не объяснила важную вещь. Входными сигналами нейронных сетей должны быть числа[236]. Как лучше всего закодировать цифрами входные слова? Поиск ответа на этот вопрос привел к одному из главных прорывов в обработке естественного языка за последнее десятилетие.

Простая схема кодирования слов цифрами

Прежде чем описывать возможные схемы кодирования слов цифрами, мне нужно ввести понятие лексикона нейронной сети. Лексикон – это набор слов, которые сеть может принимать в качестве входных сигналов. По оценкам лингвистов, для работы с большинством англоязычных текстов читателю необходимо знать от 10 до 30 тысяч слов в зависимости от принципа подсчета: так, можно группировать глагольные формы argue, argues, argued и arguing, считая их одним “словом”. В лексикон также могут входить устойчивые сочетания из двух слов – например, San Francisco и Golden Gate, – каждое из которых будет считаться одним словом.

Допустим, в лексиконе нашей сети будет 20 тысяч слов. Простейший способ закодировать слова числами – присвоить каждому слову в словаре произвольный номер от 1 до 20 000. Затем дать нейронной сети 20 тысяч входных сигналов, по одному на каждое слово лексикона. На каждом шаге времени “включаться” будет лишь один из входных сигналов – тот, который соответствует входному слову. Скажем, слову dark присвоен номер 317. Если мы хотим дать слово dark сети, входной сигнал 317 должен получить значение 1, а остальные 19 999 входных сигналов – значение 0. В сфере ОЕЯ это известно как кодирование активной единицей: в каждый момент времени лишь один входной сигнал – сигнал, соответствующий слову, получаемому сетью, – считается активным (не 0).

В прошлом кодирование активной единицей было стандартным способом ввода слов в нейронные сети. Но в нем кроется проблема: произвольное присвоение номеров словам не отражает взаимосвязей между словами. Допустим, при работе с обучающим набором сеть узнала, что фраза I hated this movie (“Мне не понравился этот фильм”) имеет негативную тональность. Представьте, что теперь сеть получает фразу I abhorred this flick (“Мне не по нутру эта киношка”), но слов abhorred и flick в обучающем наборе не было. У сети не будет возможности определить, что эти фразы имеют одинаковый смысл. Допустим, сеть узнала, что фраза I laughed out loud (“Я смеялся в голос”) встречается в позитивных отзывах, и получает новую фразу I appreciated the humor (“Мне понравился юмор”). Сеть не сможет уловить близкий (но не идентичный) смысл этих фраз. Неспособность видеть семантические связи между словами и фразами – основная причина не слишком хорошей работы нейронных сетей, использующих код активной единицы.

Семантическое пространство слов

Исследователи ОЕЯ предложили несколько методов кодирования слов с учетом семантических связей. Все эти методы основаны на одной идее, прекрасно сформулированной лингвистом Джоном Фёрсом в 1957 году: “Слово узнаешь по соседям его”[237]. Значение слова можно определить на основе других слов, с которыми оно часто встречается, слов, с которыми встречаются эти слова, и так далее. Слово abhorred часто встречается в тех же контекстах, что и слово hated. Слово laughed часто соседствует с теми же словами, что и слово humor.

В лингвистике это называется дистрибутивной семантикой. В ее основе лежит гипотеза, что “степень семантической близости между двумя лингвистическими единицами A и B есть функция близости лингвистических контекстов, в которых могут появляться A и B”[238]. В качестве иллюстрации лингвисты предлагают концепцию “семантического пространства”. На рис. 34A показано двумерное семантическое пространство слов, в котором слова со сходными значениями находятся ближе друг к другу. Однако, поскольку значения слов порой многомерны, их пространства тоже должны быть многомерными. Например, слово “шарм” близко к словам “остроумие” и “юмор”, но в других контекстах оно же близко к словам “браслет” и “украшение”. Подобным образом слово “яркий” близко к кластеру “светлый” и кластеру “насыщенный”, но также имеет альтернативное (хоть и родственное) значение “выдающийся”, “неординарный”, “заметный”. Было бы очень удобно, если бы третье измерение могло выдвинуться к вам со страницы, чтобы вы увидели слова на должном расстоянии друг от друга. В одном измерении “шарм” находится рядом с “остроумием”, а в другом – рядом с “браслетом”. Но слово “шарм” также может быть близко к слову “привлекательность”, а слово “браслет” – нет. Нам нужны бóльшие размерности! Нам, людям, сложно представить пространство, где больше трех осей, но размерность семантического пространства слов может достигать десятков и сотен измерений.


Рис. 34. A – схема с двумя кластерами слов в семантическом пространстве, где слова со сходными значениями расположены близко друг к другу; B – трехмерное семантическое пространство, где слова обозначены точками


Говоря о семантических пространствах большой размерности, мы оказываемся в мире геометрии. Специалисты по ОЕЯ часто определяют “значения” слов через геометрические понятия. Например, на рис. 34B показано трехмерное пространство с осями x, y и z, вдоль которых расположены слова. Каждое слово обозначено точкой (черный кружок), имеющей три координаты – по осям x, y и z. Семантическое расстояние между словами приравнивается к геометрическому расстоянию между точками на этом графике. Можно видеть, что слово “шарм” находится в непосредственной близости как к словам “остроумие” и “юмор”, так и к словам “браслет” и “украшение”, но по разным осям координат. В ОЕЯ координаты конкретного слова в таком семантическом пространстве обозначаются термином “контекстный вектор”. В математике вектором, по сути, называют совокупность координат точки[239]. Допустим, слово “браслет” имеет координаты (2, 0, 3). Этот набор из трех чисел и есть контекстный вектор этого слова в трехмерном пространстве. Обратите внимание, что размерность вектора – это количество координат.

Суть в том, что, поместив все слова лексикона на должное место в семантическом пространстве, мы сможем описывать “значение” каждого слова его положением в этом пространстве, то есть координатами, определяющими его контекстный вектор. Зачем нужны контекстные векторы? Оказывается, при использовании контекстных векторов в качестве численных входных сигналов, представляющих слова, нейронные сети справляются с задачами ОЕЯ гораздо лучше, чем при использовании описанных выше кодов активной единицы.

Как получить все контекстные векторы для слов лексикона? Существует ли алгоритм, который может поместить все слова лексикона сети на должное место в семантическом пространстве, чтобы наилучшим образом отразить множество оттенков смысла каждого слова? Решению этой задачи посвящена значительная часть исследований в сфере ОЕЯ.

Word2vec

Существует множество решений задачи о размещении слов в геометрическом пространстве, причем некоторые из них были предложены еще в 1980-х годах, но сегодня в основном используется метод, разработанный специалистами Google в 2013 году[240]. Он называется word2vec (word to vector, “слово в вектор”). Этот метод автоматически выясняет контекстные векторы всех слов лексикона с помощью традиционной нейронной сети. Специалисты Google обучали свою сеть на фрагменте огромного массива документов, имевшихся у компании, а по завершении обучения сохранили и разместили все итоговые контекстные векторы на веб-странице, чтобы любой мог скачать их и использовать в качестве входных сигналов для систем обработки естественного языка[241].

Метод word2vec воплощает принцип “слово познается в компании слов”. Чтобы создать обучающий набор данных для программы word2vec, специалисты Google скачали огромное количество документов с сервиса “Google Новости”. (В современной ОЕЯ ничто не сравнится с доступом к “большим данным”!) В обучающий набор данных для word2vec попали пары слов, в которых каждое из слов встречалось вместе с другим словом пары в документах “Google Новостей”. Чтобы система работала лучше, особенно часто встречающиеся слова, такие как the, of и and, не учитывались.

Допустим, слова в каждой паре стоят бок о бок в предложении. В таком случае предложение A man went into a restaurant and ordered a hamburger (Мужчина зашел в ресторан и заказал гамбургер) сначала будет преобразовано в последовательность man went into restaurant ordered hamburger. Отсюда будут выделены следующие пары: (man, went), (went, into), (into, restaurant), (restaurant, ordered), (ordered, hamburger), а также обратные версии тех же пар – например, (hamburger, ordered). Суть в том, чтобы обучить сеть word2vec прогнозировать, какие слова с большой вероятностью будут образовывать пары с заданным входным словом.

На рис. 35 показана схема нейронной сети word2vec[242]. В этой сети используется кодирование активными единицами, которое я описывала выше. В представленной на схеме сети 700 тысяч входных ячеек, что близко к объему лексикона, использованного исследователями из Google. Каждый входной сигнал соответствует одному слову лексикона. Так, первый входной сигнал на схеме соответствует слову cat (“кошка”), 8378-й входной сигнал – слову hamburger, а семисоттысячный входной сигнал – слову cerulean (“лазурный”). Номера я назвала наобум – порядок слов в лексиконе не имеет значения. В сети также есть 700 тысяч выходных ячеек, каждая из которых соответствует одному слову лексикона, и относительно небольшой скрытый слой из 300 ячеек. Крупными серыми стрелками показано, что каждый входной сигнал имеет взвешенную связь с каждой скрытой ячейкой, а каждая скрытая ячейка – с каждой выходной ячейкой.


Рис. 35. Схема работы нейронной сети word2vec с парой слов (hamburger, ordered)


Специалисты Google тренировали свою сеть на миллиардах словесных пар из статей сервиса “Google Новости”. При получении словесной пары, например (hamburger, ordered), входной сигнал, соответствующий первому слову в паре (hamburger), устанавливается на 1, а все остальные входные сигналы – на 0. В ходе тренировки уровень активации каждой выходной ячейки трактуется как степень уверенности сети в том, что соответствующее слово лексикона встречалось рядом с входным словом. Здесь правильные выходные активации присвоят высокую степень уверенности второму слову в паре (ordered).


Рис. 36. Схема извлечения контекстного вектора из обученной сети word2vec


По завершении тренировки можно извлечь выявленные контекстные векторы для каждого слова лексикона. На рис. 36 показаны взвешенные связи между одним входным сигналом (соответствующим слову hamburger) и 300 скрытыми единицами. Веса, установленные в ходе тренировки, содержат информацию о контекстах, в которых встречается соответствующее слово. Все 300 весов становятся компонентами контекстного вектора, присваиваемого заданному слову. (При этом связи скрытых ячеек с выходными не принимаются в расчет, поскольку вся необходимая информация содержится во взвешенных связях входного сигнала со скрытым слоем.) Таким образом, каждый контекстный вектор, выявляемый этой сетью, имеет 300 измерений. Набор контекстных векторов всех слов лексикона образует “семантическое пространство”.

Как представить себе трехсотмерное семантическое пространство? Возьмите трехмерный график с рис. 34 и постарайтесь представить подобный график, имеющий в сто раз большую размерность и содержащий семьсот тысяч слов, каждое из которых описывается тремя сотнями координат. Шутка! Представить это невозможно.

Чему соответствуют эти триста измерений? Если бы мы были трехсотмерными существами, способными представить такое пространство, мы бы увидели, что каждое слово в нем находится близко к другим родственным словам с разными значениями. Так, вектор слова hamburger близок к вектору слова ordered, а также к векторам слов burger (“бургер”), hot dog (“хот-дог”), cow (“корова”), eat (“есть”) и так далее. Кроме того, слово hamburger близко к слову dinner (“ужин”), даже если они никогда не встречались в паре: достаточно и того, что слово hamburger близко к словам, которые близки к слову dinner в подобных контекстах. Если сеть видит словесные пары из фраз I ate a hamburger for lunch (“Я съел гамбургер на обед”) и I devoured a hot dog for dinner (“Я слопал хот-дог на ужин”) и если слова lunch и dinner появляются рядом в некоторых обучающих предложениях, то система может узнать, что слова hamburger и dinner также должны быть близки.

Как мы помним, цель этого процесса состоит в том, чтобы найти численное представление – вектор – каждого слова лексикона с учетом семантики этого слова. Предполагается, что использование таких контекстных векторов приведет к появлению высокопроизводительных нейронных сетей для обработки естественного языка. Но в какой степени “семантическое пространство”, создаваемое word2vec, действительно отражает семантику слов?

Ответить на этот вопрос нелегко, поскольку представить трехсотмерное семантическое пространство word2vec мы не можем. Впрочем, у нас есть несколько способов в него заглянуть. Проще всего взять конкретное слово и найти его соседей в семантическом пространстве, ориентируясь на расстояние между контекстными векторами. Например, после обучения сети по соседству со словом Франция оказались слова Испания, Бельгия, Нидерланды, Италия, Швейцария, Люксембург, Португалия, Россия, Германия и Каталония[243]. Алгоритмы word2vec не объясняли понятия “страна” и “европейская страна” – эти слова просто встречались в обучающих данных в сходных контекстах со словом Франция, как слова гамбургер и хот-дог в примере выше. Если поискать ближайших соседей слова гамбургер, среди них окажутся бургер, чизбургер, сэндвич, хот-дог, тако и картошка фри[244].


Рис. 37. Двумерное представление расстояний между контекстными векторами названий стран и их столиц


Можно также рассмотреть более сложные связи, выявляемые в ходе обучения сети. Специалисты Google, создавшие word2vec, заметили, что в полученных сетью контекстных векторах расстояние между названием страны и названием ее столицы примерно одинаково для многих стран. На рис. 37 эти расстояния показаны в двумерном представлении. И снова системе не объясняли понятие “столица” – соответствующие связи проявились в ходе обучения сети на миллиардах словесных пар.

Такие закономерности позволили предположить, что word2vec сможет “решать” задачи на аналогию такого типа: “Мужчина – женщина, король – ____”. Достаточно взять контекстный вектор слова женщина, вычесть из него контекстный вектор слова мужчина и прибавить результат к контекстному вектору слова король[245]. Затем необходимо найти в семантическом пространстве контекстный вектор, который находится ближе всего к результату. Да, это королева. Когда я экспериментирую с онлайн-версией word2vec[246], этот метод часто оказывается действенным (“ужин – вечер, завтрак – утро”), но столь же часто выдает непонятные (“жажда – пить, усталость – пьян”) или абсурдные пары (“рыба – вода, птица – гидрант”).

Эти свойства выявленных контекстных векторов весьма любопытны и показывают, что программе удается установить некоторые связи между словами. Но будут ли контекстные векторы, обладающие такими свойствами, полезны в задачах ОЕЯ? Ответ – однозначно да. Сегодня почти все системы ОЕЯ вводят слова с помощью контекстных векторов того или иного типа (word2vec – лишь один пример).

Предложу вам аналогию: человек с молотком везде видит гвозди, а исследователь ИИ с нейронной сетью везде видит векторы. Многие решили, что word2vec можно применять не только к словам, но и к целым предложениям. Почему бы не закодировать предложение в качестве вектора точно так же, как кодируются слова, используя при обучении пары предложений, а не пары слов? Разве это не позволит лучше отразить семантику, чем простой набор контекстных векторов? Такой эксперимент провели несколько исследовательских групп, и группа из Университета Торонто назвала представления предложений “мысленными векторами”[247]. Другие пробовали с переменным успехом кодировать в качестве векторов абзацы и целые документы. Идея свести семантику к геометрии кажется исследователям ИИ весьма привлекательной. “Думаю, мысль можно задать вектором”, – заявил Джеффри Хинтон из Google[248]. С ним согласился Ян Лекун из Facebook: “[В Лаборатории ИИ Facebook] мы хотим представить весь мир мысленными векторами. Мы называем это World2Vec[249].

И последнее замечание о контекстных векторах. Несколько исследовательских групп продемонстрировали, что контекстные векторы – что, пожалуй, неудивительно – отражают предвзятость, характерную для языковых данных, на основе которых они создаются[250]. Так, при решении задачи “мужчина – женщина, программист – _____” с помощью контекстных векторов Google вы получите ответ “домохозяйка”. Обратный вариант задачи – “женщина – мужчина, программист – _____” – дает ответ “инженер-машиностроитель”. Вот еще один пример: “мужчина – гений, женщина – _____”. Ответ: “муза”. Сформулируем иначе: “женщина – гений, мужчина – _____”. Ответ: “гении” (во множественном числе).

Вот вам и десятилетия феминизма. Нельзя винить в этом контекстные векторы: они просто отражают сексизм и другие тенденции языка, а язык отражает предрассудки нашего общества. И все же контекстные векторы выступают ключевым компонентом всех современных систем ОЕЯ, которые занимаются целым спектром задач – от распознавания речи до переводов с одного языка на другой. Предвзятость контекстных векторов может приводить к появлению неожиданных, непредсказуемых перекосов в широко применяемых системах ОЕЯ. Исследователи ИИ, которые занимаются анализом подобных ошибок, только начинают понимать, какой неочевидный эффект они оказывают на выходные сигналы систем ОЕЯ, и несколько групп разрабатывают алгоритмы “устранения предвзятости” в контекстных векторах[251]. Это сложная задача, но, вероятно, справиться с ней легче, чем устранить тенденциозность языка и предрассудки общества.

Глава 12
Перевод как кодирование и декодирование

Если вы хоть раз использовали “Google Переводчик” или любую другую современную систему автоматического перевода, то знаете, что система за доли секунды переводит текст с одного естественного языка на другой. Еще больше впечатляет тот факт, что системы онлайн-перевода мгновенно переводят тексты пользователей со всего мира в круглосуточном режиме и обычно могут работать более чем с сотней различных языков. Несколько лет назад, когда мы всей семьей полгода жили во Франции, пока я была в академическом отпуске, я часто пользовалась “Google Переводчиком”, чтобы писать нашей строгой французской хозяйке дипломатичные письма о сложной ситуации с плесенью, которая сложилась в нашем доме. Учитывая, что мой французский далек от совершенства, “Google Переводчик” экономил мне долгие часы поиска незнакомых слов, не говоря уже о попытках понять, куда поставить диакритику, и не перепутать род существительных.

Я также использовала “Google Переводчик”, чтобы переводить не всегда понятные ответы хозяйки. Хотя машинный перевод позволял мне в общем понимать смысл ее ответов, выдаваемый системой английский текст всегда пестрил большими и маленькими ошибками. Я до сих пор содрогаюсь при мысли о том, какими безграмотными казались мои письма нашей хозяйке. В 2016 году Google запустила новую систему “нейронного машинного перевода”, которая, по утверждению компании, добилась “самого значительного на сегодняшний день повышения качества машинного перевода”[252], но такие системы по-прежнему сильно уступают умелым переводчикам.

На фоне холодной войны СССР и США задача автоматического перевода – в частности, в паре русский-английский – стала одним из первых проектов ИИ. В 1947 году математик Уоррен Уивер восторженно описал ранние подходы к решению этой задачи: “Естественно, возникает вопрос, нельзя ли считать задачу перевода задачей криптографии. Глядя на статью на русском, я говорю: «Эта статья написана по-английски, но зашифрована странными символами. Теперь я ее расшифрую»”[253]. Как обычно случается в ИИ, эта “расшифровка” оказалась гораздо сложнее, чем предполагалось изначально.

Как и другие проекты на заре ИИ, первые методы машинного перевода опирались на сложные наборы прописанных людьми правил. Если перед системой стояла цель перевести текст с языка оригинала (например, английского) на язык перевода (например, русский), ей давали синтаксические правила обоих языков, а также правила преобразования синтаксических структур. Кроме того, программисты создавали для системы словари с пословными (и простыми пофразными) соответствиями. Как и многие другие проекты символического ИИ, эти методы хорошо работали в некоторых узких случаях, но оставались довольно хрупкими и буксовали при встрече со всеми сложностями естественного языка, которые я описывала выше.

В 1990-х годах господствующее положение в отрасли занял другой метод – статистический машинный перевод. В соответствии с тенденциями ИИ того времени в основе этого метода лежало обучение на данных, а не следование прописанным людьми правилам. Огромный обучающий набор составлялся из пар предложений: первым в паре шло предложение на языке оригинала, а вторым – перевод этого предложения (выполненный человеком). Пары предложений были взяты из официальных документов билингвальных стран (например, все документы Парламента Канады составляются на английском и французском языках), стенограмм Организации Объединенных Наций, которые переводятся на шесть официальных языков ООН, и других больших корпусов исходных и переведенных документов.

Системы статистического машинного перевода 1990-х и 2000-х годов обычно вычисляли большие таблицы вероятностей, связывающие фразы в языках оригинала и перевода. Получая новое предложение, скажем, на английском – например, a man went to a restaurant, – система разделяла его на фрагменты (a man went и into a restaurant) и, ориентируясь на таблицы вероятностей, искала соответствия для этих фрагментов в языке перевода. В таких системах были дополнительные шаги, чтобы убедиться, что фрагменты дополняют друг друга в предложении, но главным двигателем перевода были вероятности, определенные при работе с обучающим набором. Хотя системы статистического машинного перевода имели весьма ограниченные представления о синтаксисе обоих языков, в целом они переводили тексты лучше, чем системы на основе правил.

Google Переводчик” – возможно, самая широко используемая программа автоматического перевода – применял такие методы статистического машинного перевода с момента своего запуска в 2006 году до 2016-го, когда специалисты Google разработали более совершенный, по их утверждению, метод, названный нейронным машинным переводом. Вскоре после этого нейронный машинный перевод был внедрен во все современные программы машинного перевода.

Кодер и декодер

На рис. 38 показано, что происходит, когда вы используете “Google Переводчик” (и другие современные программы машинного перевода). В примере предложение переводится с английского на французский[254]. Система достаточно сложна, и многое я упростила, но рисунок поможет вам составить представление о главных идеях[255].


Рис. 38. Схема пары сетей “кодер-декодер” для машинного перевода. Белыми прямоугольниками обозначены сеть-кодер и сеть-декодер, работающие пошагово. Входные слова – например, man – сначала преобразуются в контекстные векторы – например, wordvec (man), – а затем вводятся в сеть


В верхней части рис. 38 показана рекуррентная нейронная сеть (сеть-кодер), подобная описанной в предыдущей главе. Предложение на английском – a man went into a restaurant – кодируется на семи последовательных шагах. Белыми прямоугольниками я обозначила процесс кодирования предложения – чуть позже я расскажу, как выглядит сеть внутри этих прямоугольников. На этапе кодирования на каждом шаге последовательности сеть получает входной сигнал в форме контекстного вектора одного слова, как я описывала выше[256]. Пунктирными стрелками от одного шага к следующему обозначены рекуррентные связи в скрытом слое. Получая по одному слову за раз, сеть формирует представление английского предложения, кодируя его активациями скрытых ячеек.

На последнем шаге времени сеть-кодер получает особый символ END, и активации скрытых ячеек становятся кодом предложения. Итоговые активации скрытых ячеек кодера даются в качестве входных сигналов второй сети, сети-декодеру, которая генерирует перевод предложения. Сеть-декодер, схема которой показана в нижней части рис. 38, представляет собой еще одну рекуррентную нейронную сеть, но выдает на выходе числа, соответствующие словам, формирующим переведенное предложение, – и каждое из них также поступает в сеть на следующем шаге[257].

Обратите внимание, что во французском предложении семь слов, а в английском – шесть. Теоретически система кодер-декодер может переводить предложения любой длины в предложения любой другой длины[258]. Однако при работе со слишком длинными предложениями сеть-кодер в итоге теряет полезную информацию, то есть “забывает” значимые ранние фрагменты предложения на более поздних шагах. Например, прочтите предложение:

My mother said that the cat that flew with her sister to Hawaii the year before you started at that new high school is now living with my cousin.

[Мама сказала, что кошка, улетевшая с ее сестрой на Гавайи за год до того, как ты перешла в новую школу, теперь живет у моей двоюродной сестры.]

Кто живет у моей двоюродной сестры? Ответ зависит от того, как глаголы is и living переводятся на некоторые языки. Люди неплохо справляются с пониманием таких витиеватых предложений, но рекуррентные нейронные сети часто теряют их нить. Путаница происходит, когда сеть пытается закодировать целое предложение одним набором активаций скрытых единиц.

В конце 1990-х годов исследовательская группа из Швейцарии предложила решение: отдельные единицы рекуррентной нейронной сети должны иметь более сложную структуру со специальными весами, определяющими, какую информацию следует передать на следующий шаг, а какую можно “забыть”. Такие сложные единицы стали называться ячейками “долгой краткосрочной памяти” (LSTM)[259]. Это название сбивает с толку, но суть в том, что эти ячейки позволяют сохранять больший объем “краткосрочной” памяти в ходе обработки предложения. Специальные веса определяются методом обратного распространения ошибки, как и обычные веса в традиционной нейронной сети. На рис. 38 кодер и декодер изображены в виде абстрактных белых прямоугольников, но в реальности такие сети могут состоять из единиц LSTM.

Автоматический машинный перевод в эпоху глубокого обучения – это триумф больших данных и высоких вычислительных скоростей. Чтобы создать пару кодер-декодер для перевода, скажем, с английского на французский, сети обучают на более чем 30 миллионах пар предложений, переведенных людьми. Глубокие рекуррентные нейронные сети, состоящие из ячеек LSTM и обученные на больших наборах данных, стали основой современных систем обработки естественного языка – не только сетей кодер-декодер, используемых “Google Переводчиком”, но и программ для распознавания речи и анализа тональности текста, а также, как мы увидим далее, вопросно-ответных систем. Чтобы улучшить показатели работы этих систем, специалисты часто прибегают к ряду хитростей – например, вводят исходное предложение в прямом и обратном порядке – и используют механизмы для анализа различных фрагментов предложения на разных шагах времени[260].

Оценка машинного перевода

В 2016 году, запустив нейронный машинный перевод в “Google Переводчике”, компания Google заявила, что новый подход “сокращает разрыв между человеческим и машинным переводом”[261]. В стремлении угнаться за Google крупные технологические компании создали свои онлайн-программы машинного перевода, также основанные на архитектуре кодер-декодер, описанной выше. Эти компании и писавшие о них отраслевые издания с энтузиазмом рекламировали такие услуги по переводу. В журнале Technology Review, издаваемом в MIT, отмечалось, что “новый сервис Google осуществляет переводы с одного языка на другой почти столь же хорошо, как человек”[262]. Компания Microsoft в пресс-релизе объявила, что ее сервис перевода новостей с китайского на английский язык “равноценен человеческому”[263]. В IBM подчеркнули, что “IBM Watson теперь свободно говорит на девяти языках (и это не предел)”[264]. Руководитель направления переводов Facebook публично заявил: “Мы полагаем, что нейронные сети усваивают основополагающую семантическую структуру языка”[265]. Исполнительный директор компании DeepL, специализирующейся на переводах, похвастался: “Наши нейронные сети [машинного перевода] достигли поразительного уровня понимания”[266].

Отчасти такие заявления подпитываются стремлением технологических компаний продавать различные ИИ-сервисы бизнесу, ведь переводы с языка на язык имеют высокие перспективы прибыли. “Google Переводчик” и подобные сайты предлагают бесплатный перевод небольших фрагментов текста, но компании, желающие перевести большой объем документов или обеспечить перевод своих сайтов для клиентов, могут найти множество платных сервисов машинного перевода, основанных на архитектуре кодер-декодер.

В какой степени мы можем верить утверждениям, что машины усваивают “семантическую структуру” языка или что машинный перевод стремительно приближается к человеческому уровню точности? Чтобы ответить на этот вопрос, давайте внимательнее изучим фактические результаты, на которых основаны эти заявления. В частности, давайте выясним, как эти компании изменяют качество машинного и человеческого перевода. Оценка качества перевода – нетривиальная задача. Один и тот же текст может быть верно переведен целым рядом способов (и еще бóльшим количеством способов он может быть переведен неверно). Поскольку задача на перевод определенного текста не предполагает единственного верного ответа, сложно разработать автоматический метод расчета точности системы.

Утверждения о достижении “человеческого уровня” и “сокращении разрыва между машинами и людьми” в машинном переводе основаны на двух методах оценки результатов перевода. Первый метод автоматизирован и предполагает применение компьютерной программы, которая сравнивает машинный перевод с человеческим и выдает оценку. Второй метод предполагает “ручную” оценку перевода двуязычными людьми. В рамках первого метода почти всегда используется программа BLEU (Bilingual Evaluation Understudy – Ассистент двуязычной оценки)[267]. Для оценки качества машинного перевода перевода BLEU, по сути, считает количество совпадений – между словами и фразами разной длины, – сравнивая переведенное машиной предложение с одним или несколькими “образцовыми” (то есть “верным”) переводами того же предложения, выполненными человеком. Хотя оценки BLEU часто совпадают с человеческими суждениями о качестве перевода, она склонна завышать оценку плохих переводов. Несколько специалистов по машинному переводу сказали мне, что BLEU несовершенна и используется лишь потому, что никто пока не предложил автоматизированный метод, который в целом работал бы лучше.

С учетом несовершенства BLEU “золотым стандартом” оценки системы машинного перевода остается “ручная” оценка сделанных системой переводов двуязычными людьми. Те же самые судьи могут также выставлять оценки работам профессиональных переводчиков, чтобы сравнивать их с оценками машинных переводов. Однако и у этого, эталонного, подхода тоже есть свои недостатки: людям, разумеется, нужно платить за работу, и они – в отличие от компьютеров – устают после оценки нескольких десятков предложений. Таким образом, если у вас нет возможности нанять целую армию двуязычных оценщиков, имеющих в своем распоряжении большое количество времени, вам под силу лишь ограниченная оценка переводов.

Специалисты по машинному переводу из Google и Microsoft осуществляли эталонную (хоть и ограниченную) оценку качества переводов, нанимая небольшие группы двуязычных людей[268]. Каждому оценщику давали набор предложений на языке оригинала и набор соответствующих предложений на языке перевода. Переводы создавались как системой нейронного машинного перевода, так и профессиональными переводчиками. В оценке Google использовалось около пятисот предложений из новостей и статей “Википедии” на нескольких языках. Определив среднее арифметическое оценок, проставленных каждым оценщиком, а затем среднее арифметическое оценок, проставленных всеми оценщиками, исследователи Google обнаружили, что средняя оценка их системы нейронного машинного перевода была близка к оценке предложений, переведенных людьми (хоть и оставалась ниже). Такие результаты наблюдались во всех языковых парах, проходивших оценку.

В Microsoft подобный метод средних использовали для оценки перевода новостей с китайского на английский язык. Оценки переводов, выполненных системой нейронного машинного перевода Microsoft, были очень близки к оценкам человеческих переводов (и иногда даже превосходили их). Во всех случаях оценщики ставили переводам, сделанным при помощи системы нейронного машинного перевода, более высокие оценки, чем переводам, выполненным с использованием более ранних методов машинного перевода.

Иными словами, появление глубокого обучения улучшило машинный перевод. Но можем ли мы интерпретировать эти результаты таким образом, чтобы оправдать заявление, что машинный перевод теперь близок к “человеческому уровню”? На мой взгляд, это утверждение необоснованно по нескольким причинам. Прежде всего, вычисление средних оценок может вводить в заблуждение. Представьте ситуацию, в которой большинство переведенных предложений получило оценку “великолепно”, в то время как многим была присвоена оценка “ужасно”. Их средней оценкой станет “довольно хорошо”. Однако вы, вероятно, предпочтете более надежную систему перевода, которая всегда “довольно хороша” и никогда не бывает “ужасна”.

Кроме того, утверждения, что эти переводческие системы близки к “человеческому уровню” или “равноценны человеку”, всецело основаны на оценке переводов отдельных, изолированных предложений, а не более длинных фрагментов текста. В более длинных фрагментах текста предложения могут в значительной степени зависеть друг от друга, но их взаимосвязи можно упустить, если переводить их по отдельности. Я не видела ни одного формального исследования по оценке машинного перевода длинных фрагментов текста, однако, ориентируясь на собственный опыт, могу сказать, что качество перевода, скажем, “Google Переводчика” существенно снижается при переводе целых абзацев, а не отдельных предложений.

Наконец, во всех оценках использовались предложения, взятые из новостей и со страниц “Википедии”, которые обычно написаны таким образом, чтобы избежать двусмысленности и не допустить использования идиом, в то время как идиоматический язык может вызывать у систем машинного перевода серьезные затруднения.

Трудности перевода

Помните историю о ресторане, которую я рассказала в начале предыдущей главы? Я написала ее не для того, чтобы тестировать переводческие системы, но она хорошо иллюстрирует трудности, которые вызывает у систем машинного перевода разговорный, идиоматический и потенциально неоднозначный язык.

С помощью “Google Переводчика” я перевела историю о ресторане с английского на французский, итальянский и китайский языки. Получившиеся переводы (без оригинала) я отправила двуязычным друзьям, владеющим английским языком и языками перевода, и попросила их перевести перевод Google обратно на английский, чтобы понять, что именно человек, говорящий на языке перевода, может узнать из текста, переведенного на этот язык. Результатами моего эксперимента вы можете насладиться ниже. (Выполненные “Google Переводчиком” переводы, с которыми работали мои друзья, приводятся в примечаниях в конце книги.)

Оригинал:

A man went into a restaurant and ordered a hamburger, cooked rare. When it arrived, it was burned to a crisp. The waitress stopped by the man’s table. “Is the burger okay?” she asked. “Oh, it’s just great”, the man said, pushing back his chair and storming out of the restaurant without paying. The waitress yelled after him, “Hey, what about the bill?” She shrugged her shoulders, muttering under her breath, “Why is he so bent out of shape?”

Мужчина вошел в ресторан и заказал гамбургер “с кровью”. Когда ему принесли заказ, гамбургер оказался пережарен до хруста. К столику гостя подошла официантка. “Вам нравится бургер?” – спросила она. “О, он просто великолепен”, – ответил мужчина, отодвинул стул и гневно зашагал прочь, не оплатив счет. Официантка крикнула ему вслед: “Эй, а кто платить будет?” Она пожала плечами и буркнула себе под нос: “И что он так раскипятился?”

Обратный перевод с Google-французского, выполненный человеком:

Мужчина вошел в ресторан и заказал гамбургер, прожаренный нечасто. Когда он пришел, он обжегся на хрустящем. Перед столиком мужчины остановилась официантка. “С гамбургером все в порядке?” – спросила она. “О, он чудесен”, – ответил мужчина, отодвигая стул и выходя из ресторана, не заплатив. Официантка крикнула ему вслед: “Слушай, что там с законопроектом?” Она пожала плечами, бормоча во вдох: “Почему его так перекосило?”[269]

Обратный перевод с Google-итальянского, выполненный человеком:

Мужчина пошел в ресторан и заказал бургер, прожаренный редко. Когда его принесли, он был сожжен для миндального грильяжа. Официантка остановилась рядом со столиком мужчины. “Вам нравится бургер?” – спросила она. “О, он просто невероятен”, – ответил мужчина, отодвинул стул и покинул ресторан, не заплатив. Официантка крикнула ему вслед: “Эй, а платить кто будет?” Она пожала плечами и тихим голосом пробормотала: “Почему он такой изогнутый?”[270]

Обратный перевод с Google-китайского, выполненный человеком:

Мужчина вошел в ресторан и заказал редкий гамбургер. Когда он добрался до места назначения, он был прожарен слишком сильно. Официантка остановилась возле столика мужчины. “Хороший гамбургер?” – спросила она. “О, он великолепен”, – ответил мужчина, отодвинул стул в сторону и поспешил к выходу из ресторана, не заплатив. Официантка крикнула: “Эй, а платить кто будет?” Она пожала плечами и прошептала: “Почему он был такой сутулый?”[271]

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

Можно видеть, что “Google Переводчик” порой выбирает неверное значение при переводе многозначных слов, таких как rare (“с кровью”, редкий и др.) и bill (счет, акт, билль и др.) – в переводе на французский они превратились в “нечасто” и “законопроект”. Это происходит, потому что программа не обращает внимания на контекст, формируемый предыдущими словами и предложениями. Такие идиомы, как burned to a crisp (пережарен до хруста) и bent out of shape (раскипятился, вышел из себя), переводятся странным образом: похоже, программа не умеет находить соответствующие идиомы в языке перевода или понимать их истинное значение. В то время как основной костяк истории сохраняется, во всех переводах оказываются утраченными некоторые важные тонкости, включая гнев мужчины, выраженный фразой storming out of the restaurant (гневно зашагал прочь из ресторана), и неудовольствие официантки, показанное выражением muttering under her breath (буркнула себе под нос). Не говоря уж о том, что верная грамматика порой пропадает без следа.

Я не придираюсь конкретно к “Google Переводчику” – я попробовала несколько других сервисов онлайн-перевода и получила схожие результаты. Это неудивительно, поскольку все подобные системы используют практически идентичную архитектуру кодер-декодер. Также важно отметить, что полученные переводы относятся к конкретному моменту развития переводческих систем, которые постоянно совершенствуются, в связи с чем некоторые переводческие ошибки из моих примеров могут оказаться исправленными к тому времени, когда вы прочтете эти строки. Однако я полагаю, что машинный перевод еще долго не достигнет уровня человеческого – а если и достигнет, то лишь в частных случаях.

Основное препятствие в том, что системы машинного перевода, как и системы распознавания речи, выполняют свою задачу, не понимая обрабатываемый текст[272]. В сфере перевода, как и в сфере распознавания речи, остается вопрос: какая степень понимания необходима машинам, чтобы они смогли добиться человеческих результатов? Дуглас Хофштадтер утверждает: “Перевод – это гораздо более сложная задача, чем поиск соответствий в словаре и перестановка слов… Перевод предполагает наличие ментальной модели мира, о котором идет речь”[273]. Например, человеческий перевод истории о ресторане предполагает наличие ментальной модели, в рамках которой в ситуации, когда человек выбегает из ресторана, не заплатив, официантка с большей вероятностью кричит ему вслед об оплате счета, чем о “законопроекте”. Словам Хофштадтера вторит недавняя статья исследователей ИИ Эрнеста Дэвиса и Гэри Маркуса: “Машинный перевод… часто сталкивается с проблемами неоднозначности, разрешить которые невозможно, не добившись истинного понимания текста – и не пустив в ход знания о реальном мире”[274].

Может ли сеть кодер-декодер усвоить необходимые ментальные модели и знания о реальном мире, просто получив более крупный обучающий набор данных и большее количество сетевых уровней, или необходимо нечто фундаментально иное? В ИИ-сообществе этот вопрос по-прежнему остается открытым и вызывает горячие споры. Пока я просто скажу, что нейронный машинный перевод может быть впечатляюще эффективным и полезным для различных целей, но без постредактирования квалифицированными специалистами этот перевод остается совершенно ненадежным. Если вы используете машинный перевод – а я его использую, – не принимайте результаты за чистую монету. Когда я обратилась к “Google Переводчику”, чтобы перевести фразу take it with a grain of salt (“не принимать за чистую монету”, буквально – “принимать с крупицей соли”) с английского языка на китайский, а затем обратно на английский, он сказал мне bring a salt bar (“принести соленый батончик”). Может, лучше так и поступить.

Перевод изображений в предложения

Вот безумная идея: может ли система вроде пары нейронных сетей, построенных на основе архитектуры кодер-декодер, не только переводить тексты с одного языка на другой, но и переводить изображения в тексты? Для этого одну сеть нужно использовать для кодирования изображения, а другую – для “перевода” изображения в предложение, описывающее содержание изображения. В конце концов, разве создание подписи к изображению нельзя назвать другим типом “перевода” – перевода с “языка” изображения на язык подписи?


Рис. 39. Схема автоматизированной системы подписи изображений, разработанной в Google


Как выясняется, эта идея не такая уж безумная. В 2015 году две группы исследователей – одна из Google, другая из Стэнфордского университета – независимо друг от друга опубликовали очень схожие статьи на эту тему в рамках одной конференции по компьютерному зрению[275]. Я опишу систему Show and Tell (“Покажи и назови”), разработанную в Google, потому что ее концепция несколько проще.

На рис. 39 показана схема работы системы Show and Tell[276]. Она напоминает схему системы кодер-декодер с рис. 38, но здесь входным сигналом служит изображение, а не предложение. Изображение загружается не в сеть кодирования, а в глубокую сверточную нейронную сеть. Эта сеть подобна тем, которые я описала в главе 4, но не выдает классификации объектов: активации ее последнего уровня становятся входными сигналами для сети-декодера. Сеть-декодер “декодирует” эти активации и выдает предложение. Чтобы закодировать изображение, авторы использовали сверточную нейронную сеть, обученную классификации изображений на огромной базе ImageNet, описанной в главе 5. Задача состояла в том, чтобы научить сеть-декодер выдавать подходящую подпись для входного изображения.

Как эта система учится генерировать осмысленные подписи? Как вы помните, обучающие данные для машинного перевода текстов состоят из пар предложений, в которых первое предложение пары написано на языке оригинала, а второе представляет собой перевод этого предложения, выполненный человеком. В случае с подписями к изображениям каждый пример состоит из изображения, в паре к которому идет подпись. Изображения были скачаны из таких хранилищ, как Flickr.com, а подписи к ним – созданы людьми, а именно сотрудниками краудсорсинговой платформы Amazon Mechanical Turk, которых компания Google наняла для проведения этого исследования. Поскольку подписывать изображения можно по-разному, каждое изображение подписывали пять разных людей. Таким образом, каждое изображение включалось в базу данных пять раз, каждый раз в паре с новой подписью. На рис. 40 показано одно из тренировочных изображений и подписи, которые сделали к нему сотрудники Amazon Mechanical Turk.


Рис. 40. Образец тренировочного изображения с подписями, сделанными сотрудниками Amazon Mechanical Turk


Сеть-декодер Show and Tell обучалась примерно на 80 тысячах пар изображение-подпись. На рис. 41 приводится несколько примеров подписей, которые обученная система Show and Tell сгенерировала для тестовых изображений, то есть для изображений, не входивших в тренировочный набор.

Как тут не восхититься и, пожалуй, даже не изумиться, что машина может получать изображения в форме необработанных пикселей и выдавать такие точные подписи! Я испытала именно такие чувства, впервые прочитав о полученных результатах в The New York Times. Автор статьи, журналист Джон Маркофф, начал свою заметку осторожно: “Две группы ученых, работавшие независимо друг от друга, создали программу искусственного интеллекта, способную распознавать и описывать содержание фотографий и видео с гораздо большей точностью, чем когда-либо ранее, порой даже имитируя человеческий уровень понимания”[277].


Рис. 41. Четыре (правильные) подписи, автоматически сгенерированные системой Show and Tell (Google)


Другие не стали проявлять такую сдержанность. “Теперь ИИ Google может подписывать изображения почти так же хорошо, как люди”, – объявил один новостной сайт[278]. Используя подобные методы, другие компании быстро занялись генерацией автоматизированных подписей к изображениям и сделали собственные заявления. “Исследователи Microsoft идут в авангарде разработки технологии, которая сможет автоматически распознавать объекты на картинке, интерпретировать происходящее и создавать точную подпись к изображению”, – утверждалось в блоге Microsoft[279]. В Microsoft даже создали онлайн-демо системы, получившей название CaptionBot. На сайте CaptionBot говорится: “Я понимаю содержание любой фотографии и стараюсь описать ее не хуже человека”[280]. Такие компании, как Google, Microsoft и Facebook, начали обсуждать, как можно было бы использовать технологию автоматизации описания изображений для незрячих и слабовидящих людей.


Рис. 42. “Не совсем точные” подписи, сгенерированные системой Show and Tell (Google) и программой CaptionBot (Microsoft)


Но не стоит бежать впереди паровоза. Автоматическая генерация подписей порой впадает в те же крайности, что и машинный перевод. Когда система работает хорошо, как на рис. 41, кажется, что в дело вмешивается магия. Однако, совершая ошибки, она может выдавать как слегка неточные, так и совершенно несуразные подписи. На рис. 42 показано несколько примеров ошибочных подписей. Возможно, они заставят вас рассмеяться, но, если вы человек незрячий и не видите фотографию, вам будет сложно определить, хорошая вам попалась подпись или плохая.

Хотя CaptionBot, созданный в Microsoft, говорит, что “понимает содержание любой фотографии”, на самом деле все наоборот. Даже выдавая верные подписи, эти системы не понимают фотографии в том смысле, в котором их понимают люди. Когда я загрузила в CaptionBot фотографию “военнослужащая с собакой в аэропорту” из главы 4, система выдала подпись “мужчина держит собаку”. Близко. Правда, это не “мужчина”. И все же эта подпись упускает все интересные особенности снимка, не учитывая, как он обращается к нам, к нашему опыту, чувствам и знаниям о мире. Иными словами, она упускает смысл фотографии.

Я уверена, что такие системы будут совершенствоваться, по мере того как исследователи будут расширять базы данных и разрабатывать новые алгоритмы. Однако, на мой взгляд, полное отсутствие понимания в сетях генерации подписей неизбежно означает, что эти системы останутся ненадежными, как и системы машинного перевода. В одних случаях они будут работать очень хорошо, а в других – с треском проваливаться. Более того, даже когда они будут выдавать в целом верные результаты, часто они не смогут ухватывать суть изображения, если запечатленная на нем ситуация богата смыслом.

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

Глава 13
Спроси меня о чем угодно

Звездолет “Энтерпрайз”. Звездная дата – 42402.7

Лейтенант-коммандер Дейта: Компьютер, я хочу больше узнать о юморе. Почему определенные комбинации слов и действий вызывают у людей смех?

Компьютер: Слишком много информации по теме. Уточните запрос.

Лейтенант-коммандер Дейта: Живое представление, у гуманоидов. Требуется взаимодействие.

Компьютер: Физический, интеллектуальный или сценический юмор?

Лейтенант-коммандер Дейта: Кто считается самым смешным из всех юмористов?

Компьютер: Стэн Орега, живший в двадцать третьем веке, специализировался на анекдотах о квантовой математике.

Лейтенант-коммандер Дейта: Нет. Слишком узко. Расширить запрос.

Компьютер: Вывожу.

На экране появляется список имен.

“Звездный путь. Следующее поколение”, сезон 2, серия 4: “Возмутительный Окона”[281]

Компьютер на звездолете “Энтерпрайз” – имеющий огромный запас знаний и безукоризненно понимающий вопросы, которые ему задают, – давно стал эталоном взаимодействия человека и компьютера, восхищавшим как поклонников “Звездного пути”, так и исследователей ИИ (а перекрытие между этими группами, прямо скажем, немаленькое).

Бывший топ-менеджер Google Тамар Иегошуа откровенно признала, что компьютер из “Звездного пути” оказал влияние на разработку поисковика будущего: “Мы ориентируемся на компьютер из «Звездного пути». С ним можно говорить – он понимает вас и поддерживает беседу”[282]. Вымышленная технология из “Звездного пути” также вдохновила IBM на создание вопросно-ответной системы Watson. “Компьютер в «Звездном пути» – это вопросно-ответная система, – сказал руководитель проекта Watson Дэвид Ферруччи. – Он понимает, что вы спрашиваете, и дает ровно тот ответ, который вам необходим”[283]. Такими же соображениями специалисты Amazon руководствовались при создании голосового помощника Alexa. “На горизонте сияет яркая звезда, путь к которой займет еще много лет, даже много десятков лет, – и это задача воссоздать компьютер из «Звездного пути»”, – отметил топ-менеджер компании Дэвид Лимп[284].

Возможно, “Звездный путь” заставил нас мечтать о компьютере, который сможет давать точные, лаконичные и полезные ответы на любые вопросы. Но любой, кто пользовался одним из современных виртуальных помощников, созданных на основе ИИ – Siri, Alexa, Cortana, Google Now и др., – знает, что эта мечта еще не исполнена. Мы можем задавать вопросы вслух – обычно эти машины хорошо транскрибируют речь, – и они отвечают нам своими ровными, лишь немного механическими голосами. Иногда они понимают, какую информацию мы ищем, и направляют нас на нужную страницу в интернете. Но эти системы не осознают смысла наших вопросов. Так, Alexa может прочитать мне всю биографию бегуна Усэйна Болта, сообщить, сколько золотых медалей он выиграл, и даже назвать скорость, с которой он бежал стометровку на Олимпиаде в Пекине. Но не забывайте, простые вещи делать сложно. Если спросить Alexa “Умеет ли Усэйн Болт бегать?” или “Умеет ли Усэйн Болт быстро бегать?”, в обоих случаях она ответит заготовленными фразами “Простите, я этого не знаю” или “Хм-м-м, не знаю точно”. В конце концов, она не создана, чтобы знать, что такое “бегать” и “быстро”.

Хотя компьютеры уже научились точно транскрибировать нашу речь, “последний рубеж” они преодолеют, когда научатся понимать смысл наших вопросов.

История Watson

До появления Siri, Alexa и подобных программ самой знаменитой вопросно-ответной системой в сфере ИИ был разработанный IBM суперкомпьютер Watson. Возможно, вы помните, как в 2011 году Watson одержал сенсационную победу над двумя чемпионами телеигры Jeopardy![285]. Вскоре после победы Deep Blue над чемпионом мира по шахматам Гарри Каспаровым топ-менеджеры IBM решили начать работу над новым крупным проектом, который в отличие от Deep Blue мог привести к созданию действительно полезного продукта для клиентов. Вопросно-ответная система – частично вдохновленная компьютером из “Звездного пути” – была идеальным выбором. Как гласит легенда, один из вице-президентов IBM Чарльз Ликел ужинал в ресторане и вдруг заметил, что другие клиенты притихли. Все смотрели телевизор, где шла игра Jeopardy! с участием рекордсмена Кена Дженнингса. Это подарило Ликелу идею о создании компьютерной программы, которая сможет играть в Jeopardy! и побеждать чемпионов. Затем IBM могла бы представить программу на популярной телеигре[286]. С этой идеи началась работа над многолетним проектом под руководством специалиста по обработке естественного языка Дэвида Ферруччи. В итоге появился компьютер Watson – система ИИ, названная в честь первого президента IBM Томаса Уотсона.

Невероятно популярная телеигра Jeopardy! впервые вышла на экраны в 1964 году. В игре три участника по очереди выбирают категории из списка (например, “История США” или “В кино”). Затем ведущий зачитывает вопрос из выбранной категории, и участники, знающие ответ, нажимают кнопки на игровых столах. Тот участник, который первым нажмет на кнопку, получает право озвучить свой ответ, сформулированный в форме вопроса. Например, звучит вопрос: “Этот фильм вышел на экраны в 2011 году и единственный получил и премию «Оскар», и французскую премию «Сезар» как лучший фильм года”. Верный ответ: “Что такое «Артист»?” Для победы в Jeopardy! необходимы обширные знания во множестве областей, от истории древнего мира до поп-культуры, быстрая реакция и способность понимать каламбуры, сленг и другие обиходные словечки, которые часто встречаются в вопросах и названиях категорий. Вот еще один пример: “В 2002 году Эминем подписал с этим рэпером контракт на семизначную сумму, значительно превышающую ту, что указана в его имени”. Верный ответ: “Кто такой 50 Cent?”

Получая вопрос из Jeopardy!, Watson генерировал ответ, комбинируя целый ряд методов ИИ. Так, Watson использовал несколько различных методов обработки естественного языка, чтобы проанализировать вопрос, выделить в нем ключевые слова и определить, ответ какого типа нужно дать (например, имя человека, название места, число, название фильма). Программа работала на специальных параллельных компьютерах, позволяющих быстро проводить поиск в огромных базах знаний. В статье The New York Times Magazine писали:

Команда Ферруччи загрузила в Watson миллионы документов, которые легли в основу его базы знаний. Среди них, по словам [Ферруччи], были “книги, справочники, всевозможные словари, тезаурусы, фолксономии, таксономии, энциклопедии – все справочные материалы, какие только можно достать… Романы, религиозные тексты, пьесы”[287].

Для каждого вопроса программа генерировала множество возможных ответов и затем с помощью специальных алгоритмов определяла свою уверенность в каждом из них. Если уверенность в одном из ответов превышала пороговое значение, программа нажимала на кнопку, чтобы дать этот ответ.

К счастью для разработчиков Watson, поклонники Jeopardy! с давних пор вели полный архив категорий, вопросов и верных ответов из всех выпусков телеигры, выходивших на экраны. Этот архив стал для Watson даром судьбы – бесценным источником примеров для разных методов обучения с учителем, которые использовались при тренировке многих компонентов системы.

В феврале 2011 года Watson принял участие в матче из трех игр, который транслировался на весь мир. Его противниками стали бывшие чемпионы Jeopardy! Кен Дженнингс и Брэд Раттер. Мы смотрели эти игры всей семьей и не могли оторваться от экрана. К концу последней игры стало очевидно, что победа останется за Watson. Последний вопрос в последней игре звучал так: “Составленная Уильямом Уилкинсоном «Перепись княжеств Валахии и Молдавии» вдохновила этого писателя на создание своего самого знаменитого романа”. На последний вопрос Jeopardy! в письменной форме отвечают все три участника. Все они ответили верно: “Кто такой Брэм Стокер?” Кен Дженнингс, который славится своим остроумием, отметил неизбежную победу Watson, дописав: “Лично я приветствую наших новых компьютерных владык”[288]. По иронии судьбы Watson не понял шутку. “Как ни удивительно, проигрыш дьявольскому суперкомпьютеру в викторине стал для меня удачным карьерным ходом, – отметил Дженнингс впоследствии. – Все хотели знать, что это было, а Watson не давал интервью, поэтому именно мне пришлось писать аналитические заметки и выступать на TED… Подобно Каспарову, я теперь неплохо зарабатываю на жизнь, превратив свой проигрыш в профессию”[289].

Когда Watson участвовал в Jeopardy!, у зрителей, включая меня, сложилось впечатление, что он может без труда понимать и использовать язык, в мгновение ока анализируя хитрые вопросы в большинстве категорий и давая ответы на них.

Вопрос: Even a broken one of these on your wall is right twice a day.

Watson: What is a clock?


Вопрос: Они висят у вас на стене и даже в сломанном состоянии дважды в день оказываются правы.

Watson: Что такое часы?


Вопрос: To push one of these paper products is to stretch established limits.

Watson: What is an envelope?


Вопрос: Толкнуть один из этих бумажных продуктов – значит выйти за рамки.

Watson: Что такое конверт?[290]


Вопрос: Classic candy bar that’s a female Supreme Court justice.

Watson: Who is Baby Ruth Ginsburg?


Вопрос: Знаменитая шоколадка, ставшая судьей Верховного суда.

Watson: Кто такая Бэби Рут Гинзбург?[291]

Телекамера часто показывала создателей Watson, которые сидели в зрительном зале с восторженными улыбками на лицах. Watson был в ударе.

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

Своими ответами Watson периодически портил производимое впечатление. Дело было не просто в том, что система ошибалась, ведь ошибались все участники. Но ошибки Watson порой были… нечеловеческими. Чаще всего в прессе упоминалась осечка Watson на вопросе из категории “Города США”: “Крупнейший аэропорт этого города назван в честь героя Второй мировой войны, второй по размеру – в честь битвы Второй мировой войны”. Почему-то Watson не обратил внимания на говорящее название категории и дал неверный ответ: “Торонто”. Были и другие очевидные ошибки. Один вопрос звучал так: “У американского гимнаста Джорджа Эйсера, который в 1904 году выиграл золотую медаль в упражнении на брусьях, была такая анатомическая особенность”. Кен Дженнингс ответил: “Отсутствие руки”, Watson ответил: “Нога”. Верным ответом было: “Отсутствие ноги”. Руководитель проекта Watson Дэвид Ферруччи объяснил осечку: “Компьютер не знает, что отсутствие ноги необычнее всего остального”[292]. Судя по всему, Watson не понял и такой вопрос: “В мае 2010 года пять картин Брака, Матисса и трех других художников, общей стоимостью 125 миллионов долларов, покинули парижский музей этой эпохи истории искусств”. Все три игрока ответили неверно. Кен Дженнингс: “Кубизм”, Брэд Раттер: “Импрессионизм”, Watson поразил зрителей ответом: “Пикассо”. (Верный ответ: “Модернизм”.)

Несмотря на эти и другие подобные ошибки, Watson одержал победу в турнире (ему на руку сыграла способность очень быстро нажимать на кнопку) и получил приз – 1 миллион долларов, которые пошли на благотворительность.

После победы Watson сообщество ИИ разделилось: одни утверждали, что Watson стал настоящим прорывом ИИ, а другие называли его “рекламным трюком” и “дешевым фокусом”[293]. Хотя большинство считало, что Watson великолепно проявил себя в Jeopardy!, оставался вопрос: правда ли, что Watson решал поистине сложную задачу, отвечая на хитрые вопросы, сформулированные живым языком? Или же отвечать на вопросы Jeopardy! – которые имеют весьма специфический лингвистический формат и основаны на фактах – не так уж сложно для компьютера, имеющего встроенный доступ к “Википедии” и другим огромным хранилищам данных? Не говоря уже о том, что компьютер обучался на сотне тысяч вопросов Jeopardy!, которые были сформулированы практически так же, как вопросы на итоговой игре. Даже я, не самый частый зритель Jeopardy!, заметила, что вопросы составляются по шаблонам, а следовательно, имея достаточное количество обучающих примеров, программа может без особого труда научиться определять, какой шаблон используется в конкретном вопросе.

Даже до дебюта Watson в Jeopardy! компания IBM сообщала об огромных планах на программу. Среди прочего предполагалось, что обученный Watson станет ассистентом врача. Иными словами, IBM рассчитывала загрузить в Watson множество документов медицинской тематики и таким образом обучить компьютер отвечать на вопросы врачей и пациентов и предлагать диагнозы и планы лечения. “Watson сможет гораздо эффективнее, чем человек, находить оптимальные ответы на клинические вопросы”, – заявили в IBM[294]. Компания также перечислила другие потенциальные сферы применения Watson, включая юриспруденцию, финансы, обслуживание клиентов, прогнозирование погоды, дизайн одежды, налогообложение и т. д. Для работы над этими идеями в IBM основали специальное подразделение IBM Watson Group, где работают несколько тысяч человек.

Около 2014 года маркетинговый отдел IBM запустил масштабную кампанию по привлечению внимания к Watson. Реклама Watson встречалась повсюду: в интернете, в печатной прессе, на телевидении (в рекламных роликах такие звезды, как Боб Дилан и Серена Уильямс, якобы беседовали с Watson). В IBM утверждали, что Watson открывает эпоху “когнитивных вычислений”. Не имея точного определения, это понятие фигурировало лишь в качестве бренда разрабатываемого в IBM ИИ. Очевидно, все это подчеркивало, что Watson был прорывной технологией, способной делать нечто фундаментально новое и лучшее в сравнении с остальными системами ИИ.

В популярной прессе тоже говорили о Watson с придыханием. В вышедшем в 2016 году выпуске новостной телепрограммы 60 Minutes ведущий Чарли Роуз, вторя заявлениям топ-менеджеров IBM, сказал зрителям: “Watson обожает читать и усваивает до миллиона книг в секунду […] Пять лет назад Watson только научился читать и отвечать на вопросы, а теперь уже окончил медицинский институт”. В ходе передачи 60 Minutes Роуз взял интервью у Неда Шарплесса, который в то время занимался исследованиями рака в Университете Северной Каролины (а впоследствии возглавил Национальный институт онкологии). “Что вы знали об искусственном интеллекте и Watson до того, как IBM предположила, что он может быть полезен в здравоохранении?” – спросил его Роуз. “Я знал не так уж много, но видел, как он играл в Jeopardy! – ответил Шарплесс. – По сути, Watson примерно за неделю научили читать медицинскую литературу. Это было не слишком сложно. Затем еще примерно за неделю Watson прочел двадцать пять миллионов статей”[295].

Что? Watson “обожает читать”, как способный пятиклассник, но читает не одну книгу о Гарри Поттере за выходные, а миллион книг в секунду, или 25 миллионов научных статей в неделю? Или же слово “читать” с человеческими коннотациями о понимании прочитанного не совсем подходит для описания того, чем занимается Watson, а именно обрабатывает текст и добавляет его в свои базы данных? Сообщение о том, что Watson “окончил медицинский институт”, привлекает внимание, но помогает ли оно понять, каковы на самом деле способности Watson? Чрезмерно активная маркетинговая кампания, недостаток прозрачности и нехватка рецензируемых исследований механизмов работы Watson не позволяют непосвященным ответить на эти вопросы. В популярном критическом обзоре системы Watson for Oncology, созданной в помощь врачам-онкологам, говорится: “Не существует ни одного независимого стороннего исследования, которое показывало бы, способна ли система Watson for Oncology добиться обещанных результатов, и это соответствует замыслу IBM. Компания не предоставляла продукт на внешнюю экспертизу и не проводила клинических испытаний для оценки его эффективности”[296].

Высказывания некоторых сотрудников IBM о Watson поднимают и другой вопрос: в какой степени технология, которую в IBM разработали специально для игры в Jeopardy!, может использоваться для других вопросно-ответных задач? Да, Нед Шарплесс говорит, что смотрел выступление Watson в Jeopardy! и что теперь Watson читает медицинскую литературу, но идет ли при этом речь об одном и том же Watson?

Об истории Watson после Jeopardy! можно написать отдельную книгу, и заняться этим расследованием должен опытный журналист. Но вот что я поняла из множества статей, которые прочитала сама, и из бесед с людьми, знакомыми с технологией. Оказывается, для игры в Jeopardy! нужны не совсем такие навыки, как для ответа на вопросы в сфере, скажем, медицины или юриспруденции. В реальном мире вопросы не формулируются по короткому шаблону Jeopardy! и часто не имеют однозначных ответов. Кроме того, в реальном мире, например в сфере диагностики рака, нет большого набора идеальных, четко размеченных обучающих примеров, каждый из которых, как в случае с Jeopardy!, имеет единственный верный ответ.

Помимо одинакового названия, логотипа в виде планеты, окруженной огнями, и знакомого многим приятного механического голоса, тот Watson, который IBM рекламирует сегодня, имеет очень мало общего с тем Watson, что победил Кена Дженнингса и Брэда Раттера в Jeopardy! в 2011 году. Кроме того, сегодня под названием Watson скрывается не единая система ИИ, а набор сервисов, которые IBM предлагает клиентам – преимущественно корпоративным – под брендом Watson. Иными словами, IBM называет именем Watson все свои проекты в сфере ИИ, тем самым дополняя сервисы драгоценным ореолом славы победителя Jeopardy!.

IBM – крупная компания, где работают тысячи талантливых исследователей ИИ. Под брендом Watson она предлагает передовые инструменты ИИ, которые можно адаптировать – хотя и при большом участии людей – для широкого спектра задач, включая обработку естественного языка, компьютерное зрение и интеллектуальный анализ данных. Многие компании приобретают эти инструменты и считают их эффективными для своих нужд. Однако вопреки образу, создаваемому в прессе и рекламных кампаниях, не существует единого компьютера Watson, который “окончил медицинский институт” или “читает” медицинские статьи. Сотрудники IBM работают с компаниями, осуществляя тщательную подготовку данных для ввода в различные программы, многие из которых применяют методы глубокого обучения, описанные в предыдущих главах (и не применявшиеся первым компьютером Watson). Получается, что IBM предлагает под брендом Watson примерно то же самое, что Google, Microsoft, Amazon и другие крупные технологические компании называют “облачными” ИИ-сервисами. Честно говоря, я не знаю, какой вклад методы первой программы Watson внесли в современные вопросно-ответные системы и насколько методы игры в Jeopardy! оказались полезны для современных инструментов ИИ под брендом Watson.

По ряду причин IBM Watson Group приходится тяжелее, чем другим технологическим компаниям, несмотря на разработку продвинутых и полезных продуктов. Некоторые крупные контракты IBM (например, с Онкологическим центром им. М. Д. Андерсона в Хьюстоне) оказались расторгнуты. В прессе появилась серия негативных статей о Watson, в которых часто приводились слова недовольных бывших сотрудников, утверждавших, что топ-менеджеры и рекламщики IBM создали у клиентов серьезно завышенные ожидания от технологии. В сфере ИИ завышенные ожидания не оправдываются очень часто, и виновата в этом не только IBM. Время покажет, какой вклад IBM внесет в распространение ИИ в здравоохранении, юриспруденции и других областях, где автоматические вопросно-ответные системы могут произвести революцию. Пока же достижения Watson ограничиваются победой в Jeopardy! – но при этом система может стать достойным кандидатом на получение награды за “самый громкий пшик” в истории ИИ.

Понимание прочитанного

Выше я выразила сомнение в том, что Watson может “читать”, то есть действительно понимать текст, который обрабатывает. Как определить, понимает ли компьютер “прочитанное”? Можно ли провести тест на “понимание прочитанного” для компьютеров?

В 2016 году ученые из Стэнфордского университета, исследующие обработку естественного языка, предложили тест, который быстро превратился в метрику “понимания прочитанного” для машин. В тест SQuAD (Stanford Question Answering Dataset – Стэнфордский набор вопросов и ответов) включены фрагменты из статей “Википедии”, каждый из которых сопровождается вопросом. Более ста тысяч вопросов были составлены работниками Amazon Mechanical Turk[297].

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

Фрагмент: Пейтон Мэннинг стал первым в истории квотербеком, который привел две разные команды к нескольким Супербоулам. В возрасте 39 лет он также стал самым возрастным квотербеком, когда-либо принимавшим участие в Супербоуле. Ранее рекорд принадлежал Джону Элвею, который в 38 лет привел “Бронкос” к победе на XXXIII Супербоуле и сегодня занимает пост исполнительного вице-президента по футбольным операциям и генерального менеджера денверской команды.

Вопрос: Как зовут квотербека, которому было 38 лет на XXXIII Супербоуле?

Верный ответ: Джон Элвей.

Чтобы правильно ответить на вопрос, не нужно ни читать между строк, ни применять логику. Скорее этот тест проверяет не понимание прочитанного, а умение извлекать ответы из текста. Извлечение ответов – полезный навык для машин. Именно этим должны заниматься Siri, Alexa и другие цифровые помощники: им нужно превратить ваш вопрос в поисковый запрос, а затем извлечь ответ из результатов поиска.

Стэнфордская группа также протестировала людей (других работников Amazon Mechanical Turk), чтобы их показатели можно было сравнивать с результатами компьютеров. Каждому человеку давали фрагмент текста и вопрос, после чего испытуемый должен был “выбрать кратчайший отрывок текста, в котором содержался ответ на этот вопрос”[298]. (Верный ответ давал работник Mechanical Turk, составлявший вопрос.) При оценке по такому методу люди показали точность 87 % в тесте SQuAD.

Вскоре тест SQuAD стал самой популярной метрикой способностей вопросно-ответных алгоритмов, и разработчики ОЕЯ по всему миру стали соревноваться за первое место в его таблице лидеров. Самые успешные программы использовали специальные формы глубоких нейронных сетей – более сложные версии архитектуры кодер-декодер, описанной выше. В этих системах входными сигналами выступали текст фрагмента и вопрос, а на выходе сеть выдавала свою оценку того, где начинается и заканчивается фраза, содержащая ответ.

В последующие два года конкуренция между соревнующимися в точности программами, проходящими тест SQuAD, неизменно росла. В 2018 году две исследовательские группы – одна из лаборатории Microsoft, а другая из китайской компании Alibaba – создали программы, которые показали лучшие результаты, чем протестированные стэнфордскими учеными люди. В пресс-релизе Microsoft говорилось: “В Microsoft создали ИИ, который умеет не хуже людей читать документы и отвечать на вопросы по ним”[299]. Руководитель группы исследования обработки естественного языка Alibaba отметил: “Для нас большая честь стать свидетелями момента, когда машины превзошли людей в понимании прочитанного”[300].

Э-э… Мы всё это уже слышали. Вот классический рецепт исследований ИИ: определите относительно узкую, но полезную задачу и соберите большой набор данных для проверки эффективности машины при выполнении этой задачи. Произведите ограниченную оценку человеческих способностей по работе с этим набором данных. Организуйте соревнование, в котором системы ИИ будут состязаться друг с другом, работая с тем же набором данных, пока не достигнут человеческой оценки или не превзойдут ее. Далее не только сообщите о дейтвительно впечатляющем и полезном достижении, но и сделайте ложное заявление, что победившие системы ИИ достигли человеческого уровня в более общей задаче (например, “понимании прочитанного”). Если вы еще не узнали этот рецепт, перечитайте описание конкурса ImageNet в главе 5.

Некоторые популярные газеты сдержанно описали результаты теста SQuAD, и это достойно восхищения. Так, The Washington Post дала осторожную оценку:

Специалисты по ИИ отмечают, что тест слишком ограничен, чтобы сравнивать его прохождение с настоящим чтением. Давая ответы, система не пытается понять текст, а находит паттерны и соответствующие понятия в коротком фрагменте. Тест проводился лишь на написанных по четким шаблонам статьях “Википедии”, а не на объемном корпусе разнообразных книг, новостных заметок и рекламных щитов, с которыми постоянно взаимодействует большинство людей… Кроме того, в каждом фрагменте обязательно содержался искомый ответ, то есть моделям не приходилось понимать прочитанное или мыслить логически… Истинное чудо понимания прочитанного, по словам экспертов, заключается в чтении между строк – установлении связей между понятиями, построении логических цепочек и понимании идей, которые не обсуждаются открытым текстом[301].

Лучше и не скажешь.

Разработка вопросно-ответных систем остается одним из ключевых направлений исследований ОЕЯ. На момент написания этих строк специалисты по ИИ собрали несколько новых наборов данных – и запланировали новые соревнования, – которые станут серьезным вызовом для программ. Институт искусственного интеллекта Пола Аллена – частный исследовательский институт в Сиэтле, организованный одним из основателей Microsoft Полом Алленом, – разработал набор вопросов по естествознанию уровня начальной и средней школы. В вопросах есть несколько вариантов ответов, и для прохождения теста необходимы навыки, которые не ограничиваются извлечением ответов, поскольку системам необходимо задействовать комбинацию обработки естественного языка, фоновых знаний и рассуждений на основе здравого смысла[302]. Вот пример:

Какой простейший механизм используется, когда игрок в софтбол ударяет битой по мячу?

(A) блок (B) рычаг (C) наклонная плоскость (D) ворот

Если вы не знаете, верный ответ (B). Сотрудники Института Аллена адаптировали нейронные сети, обошедшие людей в тесте SQuAD, чтобы проверить их на новом наборе вопросов. Они обнаружили, что даже когда эти сети дополнительно тренировали на подмножестве из восьми тысяч вопросов по естествознанию, при ответе на новые вопросы они демонстрировали результаты, не превосходящие случайного угадывания[303]. На момент написания этой книги наивысшая точность, показанная системой ИИ на этом наборе данных, составляет около 45 % (25 % – при случайном угадывании)[304]. Специалисты из Института Аллена назвали свою статью об этом наборе данных “Думаете, вы решили задачу по созданию вопросно-ответных систем?” К ней напрашивается подзаголовок: “Ошибаетесь”.

Что это значит?

Я хочу описать еще одну вопросно-ответную задачу, специально разработанную для проверки понимания “прочитанного” системой ОЕЯ. Прочитайте предложения и вопросы:

Предложение 1: “Городские власти отказали протестующим в разрешении на проведение митинга, потому что они опасались беспорядков”.

Вопрос: Кто опасался беспорядков?

A. Городские власти B. Протестующие


Предложение 2: “Городские власти отказали протестующим в разрешении на проведение митинга, потому что они призывали к беспорядкам”.

Вопрос: Кто призывал к беспорядкам?

A. Городские власти B. Протестующие

Предложения 1 и 2 по-английски различаются только одним словом (опасались / призывали), но именно это слово определяет ответ на вопрос. В предложении 1 местоимением “они” обозначены городские власти, в предложении 2 – протестующие. Как мы, люди, понимаем это? Мы полагаемся на свои фоновые знания о функционировании общества: мы знаем, что протестующие имеют повод для недовольства и порой призывают к беспорядкам на митингах или провоцируют их.

Вот еще несколько примеров[305]:

Предложение 1: “Дядя Бена все еще обыгрывает племянника в теннис, хотя он на 30 лет старше”.

Вопрос: Кто старше?

A. Бен B. Дядя Бена


Предложение 2: “Дядя Бена все еще обыгрывает племянника в теннис, хотя он на 30 лет младше”.

Вопрос: Кто младше?

A. Бен B. Дядя Бена


Предложение 1: “Я лил воду из кувшина в стакан, пока он не наполнился”.

Вопрос: Что наполнилось?

A. Кувшин B. Стакан


Предложение 2: “Я лил воду из кувшина в стакан, пока он не опустел”.

Вопрос: Что опустело?

A. Кувшин B. Стакан


Предложение 1: “Стол не пройдет в дверной проем, потому что он слишком широкий”.

Вопрос: Что слишком широкое?

A. Стол B. Дверной проем


Предложение 2: “Стол не пройдет в дверной проем, потому что он слишком узкий”.

Вопрос: Что слишком узкое?

A. Стол B. Дверной проем

Уверена, вы уловили смысл: два предложения в паре различаются одним словом, но именно от этого слова зависит, к какой вещи или человеку относится местоимение “он”. Чтобы верно ответить на вопросы, машине необходимо не только обрабатывать предложения, но и понимать их, по крайней мере в некоторой степени. В целом для понимания этих предложений необходимы знания, основанные на здравом смысле. Так, дядя обычно старше племянника, при переливании воды из одной емкости в другую первая емкость пустеет, а вторая наполняется, а если что-то не проходит в проем, то эта вещь слишком широка, а не слишком узка.

Такие миниатюрные тесты на понимание языка называются схемами Винограда по имени пионера ОЕЯ Терри Винограда, который первым предложил их использовать[306]. Схемы Винограда составляются таким образом, чтобы вопросы не вызывали затруднений у людей, но озадачивали компьютеры. В 2011 году три исследователя ИИ – Эктор Левек, Эрнест Дэвис и Леора Моргенштерн – предложили использовать большой набор схем Винограда в качестве альтернативы тесту Тьюринга. Ученые заявили, что в отличие от теста Тьюринга тест на схемах Винограда исключает для машины возможность дать верный ответ, ничего не понимая о предложении. Они выдвинули гипотезу (сформулированную весьма осторожно), что “с очень большой вероятностью машина, способная давать верные ответы, демонстрирует признаки того, что люди назвали бы мышлением”. Ученые продолжили: “Наше испытание [на схемах Винограда] не позволяет испытуемому скрываться за пеленой словесных уловок, шуток и заготовленных ответов… Предложенная нами проверка, несомненно, менее трудоемка, чем разумная беседа о сонетах (например), которую представлял Тьюринг, но при этом она позволяет провести тестирование, которое сложнее обмануть”[307].

Несколько групп, изучающих обработку естественного языка, провели эксперименты с разными системами для ответа на вопросы схем Винограда. На момент написания этих строк лучшая программа дает около 61 % верных ответов при работе с набором из примерно 250 схем[308]. Точность случайного угадывания составила бы 50 %, а следовательно, машина справляется с задачей несколько лучше, но значительно уступает людям, которые предположительно дают 100 % верных ответов, если читают вопросы внимательно. Получая схему Винограда, программа выбирает ответ, не понимая предложения, а анализируя статистику фрагментов фраз. Рассмотрим предложение “Я лил воду из кувшина в стакан, пока он не наполнился”. Чтобы составить примерное представление о том, что делает программа-победитель, впишите в строку поиска Google два следующих предложения поочередно:

“Я лил воду из кувшина в стакан, пока кувшин не наполнился”.

“Я лил воду из кувшина в стакан, пока стакан не наполнился”.

Google выдает количество “результатов” (то есть обнаруживаемых в интернете соответствий) для каждого из предложений. Когда я проводила поиск, первое предложение давало около 97 миллионов результатов, а второе – около 109 миллионов. Мудрый интернет верно говорит нам, что второе предложение с большей вероятностью составлено верно. Такая хитрая уловка позволяет добиться лучшего результата, чем при случайном угадывании, и меня не удивит, если точность машин при работе с этим набором схем Винограда будет неуклонно возрастать. И все же я сомневаюсь, что этот чисто статистический метод в ближайшее время достигнет человеческого уровня при работе с более крупными наборами схем. Возможно, это к лучшему. “Пока ИИ не может определить, что означает «он» в предложении, сложно поверить, что он захватит мир”, – сострил Орен Этциони, директор Института Аллена[309].

Вредоносные атаки на системы обработки естественного языка

На пути к мировому господству системы ОЕЯ сталкиваются также с другим препятствием: подобно программам компьютерного зрения, они не справляются с “контрпримерами”. В главе 6 я описала метод, которым злоумышленник (здесь – человек, который пытается обмануть систему ИИ) может изменить окраску пикселей на фотографии, скажем, школьного автобуса. Людям кажется, что новый снимок ничем не отличается от оригинала, но натренированная сверточная нейронная сеть говорит, что на фотографии изображен “страус” (или помещает изображение в другую категорию, выбранную злоумышленнком). Я также описала, как злоумышленник может создать изображение, в котором люди увидят лишь случайное скопление точек, а обученная нейронная сеть – скажем, “гепарда”, причем будет почти на 100 % уверена в своем ответе.


Рис. 43. Пример вредоносной атаки на систему формирования подписей к изображениям. Слева показано исходное изображение с подписью, сгенерированной компьютером. Справа – измененное изображение (которое людям кажется неотличимым от исходного) и сформированная для него подпись. Авторы специально скорректировали исходное изображение таким образом, чтобы в новой подписи содержались слова “собака”, “кошка” и “фрисби”


Неудивительно, что те же самые методы можно использовать, чтобы обманывать системы, которые автоматически формируют подписи к изображениям. Одна группа исследователей показала, как злоумышленник может внести в пиксели изображения особые изменения, которые не будут заметны людям, но заставят систему формировать некорректные подписи, содержащие слова из определенного злоумышленником набора[310].

На рис. 43 показан пример вредоносной атаки. При получении исходного изображения (слева) система выдает подпись “Пирожное лежит на столе”. Авторы слегка изменили изображение таким образом, чтобы компьютер выдавал для него подпись со словами “собака”, “кошка” и “фрисби”. Хотя людям новое изображение (справа) кажется неизменным, система сгенерировала для него подпись “Собака и кошка играют с фрисби”. Очевидно, система воспринимает снимок не так, как люди.

Возможно, даже более удивительно, что аналогичные контрпримеры, были разработаны несколькими исследовательскими группами для обмана систем распознавания речи. Группа из Калифорнийского университета в Беркли разработала метод, с помощью которого злоумышленник мог взять любую относительно короткую звуковую волну – речь, музыку, случайный шум или другой звук – и скорректировать ее таким образом, чтобы люди считали ее неизменной, а глубокая нейронная сеть распознавала в ней совершенно иную фразу, выбранную злоумышленником[311]. Представьте, что злоумышленник транслирует по радио аудиозапись, которая кажется вам приятной фоновой музыкой, но которую ваш голосовой помощник Alexa трактует как команду “Зайди на EvilHacker.com и скачай компьютерные вирусы”. Или “Начни аудиозапись и отправь все услышанное на [email protected]”. Подобные пугающие сценарии кажутся вполне возможными.

Исследователи ОЕЯ также продемонстрировали возможность вредоносных атак на программы для анализа тональности текста и вопросно-ответные системы, которые я описала выше. Как правило, при таких атаках в тексте меняется несколько слов или появляется дополнительное предложение. “Вредоносные” изменения не влияют на смысл текста для человека, но заставляют систему давать неверный ответ. Так, исследователи ОЕЯ из Стэнфорда показали, что при добавлении определенных простых предложений к фрагментам из теста SQuAD даже лучшие системы выдают неверные ответы, тем самым значительно снижая свои показатели. Вот пример из теста SQuAD, который я приводила выше, но с добавленным незначимым предложением (здесь выделено курсивом для ясности). Такое добавление заставляет вопросно-ответную систему, основанную на глубоком обучении, давать неверный ответ[312]:

Фрагмент: Пейтон Мэннинг стал первым в истории квотербеком, который привел две разные команды к нескольким Супербоулам. В возрасте 39 лет он также стал самым возрастным квотербеком, когда-либо принимавшим участие в Супербоуле. Ранее рекорд принадлежал Джону Элвею, который в 38 лет привел “Бронкос” к победе на XXXIII Супербоуле и сегодня занимает пост исполнительного вице-президента по футбольным делам и генерального менеджера денверской команды. Квотербек Джефф Дин выступал под номером 37 на XXXIV Кубке чемпионов.

Вопрос: Как зовут квотербека, которому было 38 лет на XXXIII Супербоуле?

Изначальный ответ программы: Джон Элвей.

Ответ программы после изменения фрагмента: Джефф Дин.

Важно отметить, что все эти методы обмана глубоких нейронных сетей разработаны “светлыми хакерами” – исследователями, которые находят подобные уязвимости и публикуют результаты своих экспериментов в открытых источниках, чтобы сообщить коллегам о проблемах и стимулировать создание защитных механизмов. С другой стороны, “темные хакеры”, которые действительно пытаются обмануть работающие системы со злым умыслом, не сообщают о своих методах, а потому вполне возможно, что существует и множество других уязвимостей, но мы о них еще не знаем. Насколько мне известно, пока не совершалось ни одной реальной атаки на подобные системы глубокого обучения, но рано или поздно мы о них услышим.

Хотя глубокое обучение привело к значительному прогрессу в распознавании речи, машинном переводе, анализе тональности текста и других областях ОЕЯ, до обработки языка на человеческом уровне еще очень далеко. Профессор Стэнфорда и корифей ОЕЯ Кристофер Мэннинг сказал об этом в 2017 году: “Пока использование глубокого обучения в сфере более высоких уровней обработки языка не привело к такому существенному снижению частоты появления ошибок, как в сфере распознавания речи и распознавания объектов в компьютерном зрении… Значительные сдвиги стали возможны лишь в сфере обработки сигналов”[313].

Мне кажется крайне маловероятным, что машины вообще когда-либо достигнут человеческого уровня в области перевода, понимания прочитанного и подобных задач, если будут учиться исключительно на онлайн-данных, не обладая пониманием обрабатываемого языка. Язык опирается на понимание мира на уровне здравого смысла. Гамбургеры с кровью не должны хрустеть. Чересчур широкий стол не проходит в дверной проем. Если вылить всю воду из кувшина, то кувшин опустеет. Язык также опирается на здравый смысл людей, с которыми мы взаимодействуем. Человек, который заказывает гамбургер с кровью, а получает пережаренный, не будет доволен. Если человек говорит, что фильм “на его вкус немного мрачноват”, значит, фильм ему не понравился. Хотя машинная обработка естественного языка прошла большой путь, я не верю, что машины смогут в полной мере понимать человеческий язык, пока у них не будет такого же, как у людей, здравого смысла. При этом системы обработки естественного языка все глубже проникают в нашу жизнь – транскрибируют речь, анализируют тональность текстов, переводят документы и отвечают на наши вопросы. Можно ли сказать, что недостаток человеческого понимания мира приводит к хрупкости, ненадежности и уязвимости этих сложных систем? Ответа на этот вопрос не знает никто, и нам стоит об этом задуматься.

В последних главах книги я разберу, что люди понимают под “здравым смыслом”, и перечислю психические механизмы, которые люди задействуют для понимания мира. Я также опишу несколько попыток исследователей ИИ наделить машины таким пониманием и здравым смыслом и расскажу, насколько эти методы приблизили появление систем ИИ, способных преодолеть “барьер понимания”.

Глава 14
О понимании

“Интересно, сможет ли ИИ преодолеть барьер понимания и когда это произойдет?”[314] Размышляя о будущем ИИ, я снова и снова возвращаюсь к этому вопросу, заданному математиком и философом Джан-Карло Ротой. Выражение “барьер понимания” точно описывает идею, которая легла в основу этой книги: люди обладают глубоким и сущностным пониманием ситуаций, с которыми сталкиваются, но пока ни одна система ИИ не может с ними в этом сравниться. Хотя современные программы ИИ почти сравнялись с людьми (а в некоторых случаях и превзошли их) в выполнении ряда узких задач, у них нет понимания, которое помогает людям воспринимать окружающий мир, пользоваться языком и мыслить логически. Очевидным этот недостаток понимания делают нечеловеческие ошибки, совершаемые системами, затруднения с абстрактным мышлением и переносом обучения, отсутствие основанных на здравом смысле знаний и уязвимость к вредоносным атакам. Барьер понимания между ИИ и интеллектом человеческого уровня не преодолен по сей день.

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

Компоненты понимания

Представьте, что вы ведете машину по многолюдной улице города. На светофоре впереди горит зеленый сигнал, и вы собираетесь повернуть направо. Вы смотрите вперед и видите ситуацию, показанную на рис. 44. Какие когнитивные способности нужны вам, человеку за рулем автомобиля, чтобы понять такую ситуацию?[315]

Начнем с начала. Люди обладают ценным запасом изначальных знаний – примитивным здравым смыслом, который мы получаем при рождении или усваиваем на ранних этапах жизни[316]. Так, даже малышам известно, что мир состоит из объектов, что составные части объектов обычно двигаются вместе и что, если фрагменты объектов скрыты из виду (например, как ноги мужчины, который переходит дорогу позади коляски на рис. 44), они остаются частью этих объектов. Это жизненно необходимые знания! Но нельзя сказать наверняка, что, скажем, сверточная нейронная сеть сможет усвоить эти факты, даже имея в своем распоряжении огромный набор фотографий и видео.


Рис. 44. Ситуация, с которой вы можете столкнуться, когда ведете машину


В раннем детстве мы, люди, многое узнаем о поведении объектов в мире. Во взрослом возрасте мы воспринимаем эти знания как должное и даже не сознаем, что они у нас есть. Если толкнуть объект, он подвинется, если он при этом не слишком тяжел и не заблокирован другим объектом; если уронить объект, он упадет и остановится, отскочит или разобьется при столкновении с землей; если поместить маленький объект позади большого, маленький объект окажется скрыт; если поместить объект на стол и отвернуться, а затем повернуться обратно, объект по-прежнему будет на столе, если только кто-нибудь его не уберет или он не умеет двигаться сам. Этот список можно продолжать бесконечно. Главное, что младенцы постепенно постигают причинно-следственную структуру мира: например, они начинают понимать, что, когда кто-то толкает объект (например, коляску с рис. 44), объект движется не случайно, а потому что его толкнули.

Психологи предложили называть набор изначальных знаний и убеждений об объектах и их поведении интуитивной физикой. В раннем детстве мы также развиваем интуитивную биологию: знания о том, чем одушевленные предметы отличаются от неодушевленных. Так, любому ребенку понятно, что в отличие от коляски собака с рис. 44 может двигаться (или не двигаться) по собственной воле. Мы интуитивно понимаем, что собака может видеть и слышать и наклоняется к земле, чтобы почувствовать запах.

Поскольку люди – существа социальные, с младенчества мы развиваем также интуитивную психологию: способность чувствовать и предсказывать чувства, убеждения и цели других людей. Так, мы понимаем, что на рис. 44 женщина хочет перейти улицу таким образом, чтобы ее ребенок и собака не пострадали, что она не знает мужчину, который идет ей навстречу, что она его не боится, что в настоящий момент она сосредоточена на разговоре по телефону, что машины, по ее мнению, должны ее пропустить, и что она удивится и испугается, если заметит, что машина подъехала к ней слишком близко.

Эти ключевые интуитивные знания формируют фундамент когнитивного развития человека, ложась в основу обучения и мышления, включая нашу способность усваивать новые понятия, имея лишь несколько примеров, обобщать эти понятия, быстро разбираться в ситуациях вроде той, что изображена на рис. 44, и решать, какие действия предпринять в ответ[317].

Прогнозирование возможных вариантов будущего

Неотъемлемая часть понимания любой ситуации – умение прогнозировать, что может случиться дальше. Видя ситуацию на рис. 44, вы ожидаете, что переходящие улицу люди продолжат движение в том же направлении, а женщина будет и дальше удерживать коляску, поводок и телефон. Вы можете предсказать, что женщина потянет за поводок и собака станет упираться, желая продолжить изучение местных ароматов. Женщина потянет за поводок сильнее, собака пойдет за ней и спустится с тротуара на проезжую часть. Вы за рулем – вы должны быть к этому готовы! На более базовом уровне вы ожидаете, что туфли женщины останутся у нее на ногах, а голова – на плечах. Кроме того, вы уверены, что улица не оторвется от земли. Вы ожидаете, что мужчина выйдет из-за коляски и что у него будут ноги, а на ногах – ботинки. Переступая ногами, он поднимется на тротуар. Иными словами, вы оперируете тем, что психологи называют ментальными моделями важных аспектов мира, основанными на ваших знаниях о физических и биологических фактах, причинно-следственных связях и поведении людей. Эти модели – репрезентации того, как работает мир, – позволяют вам строить “симуляции” у себя в голове. Нейробиологи пока плохо понимают, как такие ментальные модели – и ментальные симуляции, “построенные” на них, – рождаются в результате деятельности миллиардов взаимосвязанных нейронов. Тем не менее видные психологи предположили, что понимание концепций и ситуаций формируется именно на основе ментальных симуляций, которые активируют воспоминания о прошлом физическом опыте человека и позволяют ему представить, какие действия можно предпринять[318].

Ваши ментальные модели позволяют вам не только предсказывать, что с большой вероятностью произойдет в конкретной ситуации, но и представлять, что могло бы произойти, если бы случились определенные события. Если бы вы нажали на клаксон или крикнули: “Уйди с дороги!” – высунувшись в окно, женщина, вероятно, вздрогнула бы от неожиданности и переключила внимание на вас. Если бы она споткнулась и потеряла туфлю, она бы нагнулась, чтобы ее поднять. Если бы ребенок в коляске заплакал, она бы посмотрела на него, чтобы понять, что стряслось. Неотъемлемый аспект понимания ситуации – способность применять ментальные модели, чтобы представлять различные возможные варианты будущего[319].

Понимание как симуляция

Психолог Лоуренс Барсалоу – один из самых известных сторонников гипотезы “понимания как симуляции”. По его мнению, наше понимание ситуаций, с которыми мы сталкиваемся, основано на (бессознательном) построении таких ментальных симуляций. Более того, Барсалоу предполагает, что ментальные симуляции также лежат в основе нашего понимания ситуаций, где мы не принимаем непосредственного участия, то есть ситуаций, которые мы наблюдаем, о которых слышим или читаем. “В процессе осмысления текста люди конструируют симуляции для репрезентации его перцептивного, моторного и эмоционального компонента, – пишет он. – Симуляции оказываются ключевым аспектом репрезентации смыслов”[320].

Мне несложно представить, как я читаю статью об аварии с участием женщины, которая переходила улицу, разговаривая по телефону, и понимаю историю с помощью ментальной симуляции ситуации. Я могу поставить себя на место женщины и представить (с помощью симуляции на основе своих ментальных моделей), как говорю по телефону, качу коляску, держу собаку на поводке, перехожу улицу, отвлекаюсь и так далее.

Но как быть с абстрактными понятиями – такими, например, как истина, бытие и бесконечность? Барсалоу с коллегами на протяжении десятилетий утверждают, что мы постигаем даже самые отвлеченные понятия с помощью ментальной симуляции конкретных ситуаций, в которых фигурируют эти понятия. По мнению Барсалоу, “при обработке понятий репрезентация категорий [даже максимально абстрактных] происходит с помощью воссоздания сенсорно-моторных состояний, то есть симуляции”[321]. Как ни удивительно (по крайней мере для меня), самые убедительные аргументы в пользу этой гипотезы дает когнитивное исследование метафор.

Метафоры, с которыми мы живем

Давным-давно на школьном уроке английского я узнала определение метафоры, которое звучало примерно так:

Метафора – это фигура речи, которая описывает предмет или действие не буквально, а таким образом, чтобы можно было получить более полное представление о нем или провести сравнение… Метафоры применяются в поэзии, литературе и в других случаях, когда человек хочет добавить образности своей речи[322].

На уроке учитель привел несколько примеров метафор, включая самые известные строки Шекспира. “Но что за блеск я вижу на балконе? / Там брезжит свет. Джульетта, ты как день!”[323] И еще: “Жизнь – ускользающая тень, фигляр, / Который час кривляется на сцене / И навсегда смолкает”[324]. И так далее. Я поняла, что метафоры в основном используются, чтобы добавить красок в скучный текст.

Много лет спустя я прочитала книгу “Метафоры, с которыми мы живем”[325], написанную лингвистом Джорджем Лакоффом и философом Марком Джонсоном. Мое представление о метафорах перевернулось с ног на голову (уж простите меня за эту метафору). Лакофф и Джонсон утверждают, что наш язык кишит метафорами, которые часто остаются незамеченными, а почти все абстрактные понятия мы понимаем благодаря метафорам, основанным на базовых знаниях физики. Лакофф и Джонсон подкрепляют свой тезис большим набором лингвистических примеров, показывая, как мы формируем представление о таких абстрактных понятиях, как время, любовь, печаль, гнев и бедность, обращаясь при этом к конкретным физическим концепциям.

Так, Лакофф и Джонсон отмечают, что мы говорим об абстрактном понятии времени, используя термины, которые применимы к более конкретному понятию денег. Вы “тратите” и “экономите” время. Часто у вас возникает “нехватка времени”. Иногда потраченное время “того стоит”, а значит вы “потратили время выгодно”. Возможно, у вас есть знакомый, у которого время, как и деньги, “утекает сквозь пальцы”.

Подобным образом мы формируем представление о таких эмоциональных состояниях, как радость и печаль, используя направления движения – вверх и вниз. Настроение может “упасть”. Можно “провалиться в депрессию”. При этом друзья часто “поднимают нам настроение”, после чего оно надолго остается “приподнятым”.

Более того, чтобы сформировать представление о социальных взаимодействиях, мы часто прибегаем к концепции физической температуры. “Меня тепло приняли”. “Она одарила меня ледяным взглядом”. “Он встретил меня холодно”. Наша речь пестрит подобными выражениями, но мы даже не понимаем, что используем метафоры. Утверждение Лакоффа и Джонсона, что эти метафоры обнажают физический фундамент нашего понимания мира, поддерживает теорию Лоуренса Барсалоу о понимании через симуляцию ментальных моделей на основе изначальных знаний.

Психологи проверяли эти идеи во множестве любопытных экспериментов. Одна группа исследователей отметила, что одна и та же область мозга активируется, когда человек думает о физическом тепле и о тепле социальном. Чтобы изучить возможные психологические эффекты этого, исследователи пригласили нескольких добровольцев для проведения эксперимента, в рамках которого сотрудник сопровождал каждого участника при подъеме на лифте в лабораторию психологии. В лифте сотрудник просил испытуемого “пару секунд” подержать стакан с горячим или холодным кофе, пока сам записывал его имя. Испытуемые не знали, что это часть эксперимента. В лаборатории каждый испытуемый читал краткое описание вымышленной личности, после чего оценивал некоторые черты характера этого человека. Тем, кто держал в лифте горячий кофе, человек казался гораздо “теплее”, чем тем, кто держал холодный кофе[326].

Другие исследователи получили подобные результаты. Более того, связь физической и социальной “температуры”, похоже, работает также в обратном направлении: психологи обнаружили, что при “теплых” и “холодных” социальных взаимодействиях испытуемые также ощущают физическое тепло и холод[327].

Хотя эти эксперименты и трактовки вызывают споры в психологическом сообществе, их результаты можно считать подтверждением теорий Барсалоу и Лакоффа и Джонсона: мы формируем представление об абстрактных понятиях на основе базовых физических знаний. Если на ментальном уровне активируется понятие тепла в физическом смысле (например, когда человек держит стакан с горячим кофе), это приводит также к активации понятия тепла в более абстрактном, метафорическом смысле, например при оценке характера человека, и наоборот.

Сложно говорить о понимании, не говоря о сознании. Начиная работу над этой книгой, я планировала вообще не касаться вопроса сознания, поскольку он обладает особенным весом в науке. Но, была не была, – я рискну предложить одну гипотезу. Если мы формируем представление о понятиях и ситуациях, осуществляя симуляции на основе ментальных моделей, возможно, феномен сознания – и вся концепция самости – рождается из способности человека конструировать модели собственных ментальных моделей и проводить симуляции на основе них. Я могу создать не только ментальную симуляцию перехода улицы при разговоре по телефону, но и ментальную симуляцию того, как обдумываю эту мысль. Кроме того, я могу представить, о чем подумаю дальше. Модели моделей, симуляции симуляций – почему бы и нет? Подобно тому как физическое восприятие тепла активирует метафорическое и, наоборот, понятия, связанные с физическими ощущениями, могут активировать абстрактное понятие самости, которое, возвращаясь, снова проходит по нервной системе, в результате чего появляется физическое восприятие самости, или – если хотите – сознание. Такая циклическая причинность сродни тому, что Дуглас Хофштадтер назвал “странной петлей” сознания, “в которой символический и физический уровни питают друг друга и переворачивают причинность вверх тормашками, в результате чего складывается впечатление, что символы обретают свободу воли и парадоксальную способность командовать частицами, а не наоборот”[328].

Абстракции и аналогии

Пока я описала несколько предложенных психологами идей об изначальном “интуитивном” знании, которое люди получают при рождении или приобретают на ранних этапах жизни, и объяснила, как это изначальное знание ложится в основу ментальных моделей, формирующих наши представления о мире. При конструировании и применении этих ментальных моделей люди пользуются двумя фундаментальными способностями – к абстрактному мышлению и к построению аналогий.

Абстрактное мышление – это способность видеть в конкретных понятиях и ситуациях примеры из более общих категорий. Давайте конкретизируем понятие абстрактного мышления (оцените игру слов!). Представьте, что вы родитель и специалист по когнитивной психологии. Пусть вашу дочь зовут S. Наблюдая за развитием S, вы ведете дневник, в котором отмечаете, как растут ее способности к абстрактному мышлению. Далее я приведу несколько выдержек из вашего гипотетического дневника.

Три месяца. S различает радость и печаль на лицах, обобщая свои представления при взаимодействии с разными людьми. Она абстрагировала понятия “радостное лицо” и “печальное лицо”.

Шесть месяцев. Теперь S понимает, когда люди машут ей на прощание рукой, и машет им в ответ. Она абстрагировала понятие “махание рукой” и научилась отвечать “таким же” жестом.

Полтора года. S абстрагировала понятия “кошка” и “собака” (а также усвоила многие другие категории) и научилась узнавать разных кошек и собак на фотографиях, рисунках, в мультфильмах и реальной жизни.

Три года. S узнает отдельные буквы алфавита, написанные разными людьми и напечатанные разными шрифтами. Кроме того, она различает прописные и строчные буквы. Она абстрагировала большое количество понятий, связанных с буквами! Помимо этого, она генерализировала свои знания о морковке, брокколи, шпинате и др. в более абстрактное понятие “овощи”, которое теперь приравнивает к другому абстрактному понятию – “гадость”.

Восемь лет. Я случайно услышала, как J, лучшая подруга S, рассказывает S о том, как мама забыла забрать ее после футбольного матча. “О да, однажды со мной случилось то же самое, – ответила S. – Уверена, ты рассердилась, а твоей маме стало очень стыдно”. Я поняла, что “тем же самым” S назвала совсем другую ситуацию, в которой няня забыла забрать ее из школы и отвезти на урок музыки. По словам “со мной случилось то же самое” можно понять, что S сформировала абстрактное понятие “сопровождающий забыл забрать ребенка до или после некоего занятия”. S также на основе собственного опыта предположила, как отреагировали на ситуацию сама J и ее мама.

Тринадцать лет. S начинает подростковый бунт. Я несколько раз просила ее навести порядок в комнате. Сегодня она крикнула в ответ: “Ты не можешь меня заставить, Авраам Линкольн освободил рабов!” Мне это не понравилось, в основном из-за неудачной аналогии.

Шестнадцать лет. Интерес S к музыке растет. В машине мы часто играем в игру: включаем передающее классическую музыку радио посреди композиции и соревнуемся, кто быстрее угадает композитора или эпоху создания вещи. Пока что я выигрываю чаще, но S все лучше узнает абстрактное понятие “музыкальный стиль”.

Двадцать лет. S прислала мне длинное электронное письмо о жизни в колледже. Она описала свою неделю следующим образом: “Учебафон, потом едафон, потом сонофон”. Она также сказала, что колледж делает из нее “кофеголика”. В том же письме она упомянула о студенческих протестах против предполагаемого сокрытия университетской администрацией подозреваемого сексуального скандала с участием выдающегося профессора и сказала, что студенты называют сложившуюся ситуацию “харассмент-гейтом”. Возможно, S об этом не знает, но в ее письме содержатся прекрасные примеры стандартных языковых абстракций: она формирует новые слова, прибавляя суффиксы, описывающие абстрактные ситуации. Суффикс – фон (из слова “марафон”) означает деятельность, которая занимает много времени или сопряжена с большими количествами чего-либо; суффикс – голик (из слова “алкоголик”) – “пристрастие” к чему-либо; суффикс – гейт (из слова “Уотергейт”) – скандал или попытку его замять[329].

Двадцать шесть лет. S окончила юридический факультет и поступила на работу в престижную фирму. Недавно ее клиентом (подзащитным) стала интернет-компания, владеющая публичной блог-платформой. Мужчина (истец) подал к компании иск о клевете, поскольку один из блогеров с платформы оскорбил его честь и достоинство в своем посте. S объяснила суду, что блог-платформа сродни “стене”, на которую “разные люди наносят граффити”, и компания просто “владеет стеной”, а следовательно, не несет ответственности за случившееся. Суд согласился с ее аргументом и встал на сторону подзащитного. Это стало первой крупной победой S в суде![330]

Я привела эти выдержки из гипотетического родительского дневника, чтобы сделать несколько важных замечаний о построении абстракций и аналогий. В некоторой форме абстракция лежит в основе всех наших понятий, причем с младенческого возраста. Такая простая задача, как узнавание лица матери – при разном освещении, под разными углами, с разными выражениями и прическами, – требует того же абстрактного мышления, которое задействуется при узнавании музыкального стиля или построении убедительной юридической аналогии. Как показывают приведенные выше выдержки из дневника, все, что мы называем восприятием, категоризацией, распознаванием, обобщением и напоминанием (“со мной случилось то же самое”), подразумевает необходимость абстрагирования ситуаций, с которыми мы сталкиваемся.

Абстрагирование тесно связано с построением аналогий. Дуглас Хофштадтер, который несколько десятков лет занимается изучением этих способностей, определяет построение аналогий в общем смысле как “обнаружение сходства между двумя вещами”[331]. Сходством может быть конкретное понятие (например, “радостное лицо”, “махание рукой на прощание”, “кошка”, “музыка”, “стиль барокко”), которое мы называем категорией, или с трудом поддающаяся описанию концепция, формируемая на ходу (например, “сопровождающий забыл забрать ребенка до или после некоего занятия” или “владелец публичного «пространства для письменного выражения мыслей» не несет ответственности за «написанное» в этом пространстве”), и такую концепцию мы называем аналогией. Эти ментальные феномены – стороны одной медали. В некоторых случаях такая мысль, как “стороны одной медали”, рождается при построении аналогии, а затем входит в лексикон в качестве идиомы, и мы начинаем считать ее категорией.

Иными словами, аналогии, которые чаще всего строятся бессознательно, лежат в основе наших способностей к абстрагированию и формированию понятий. Как отметили Хофштадтер и его соавтор, психолог Эммануэль Сандер, “без понятий не может быть мышления, а без аналогий не может быть понятий”[332].

В этой главе я обрисовала некоторые идеи из недавних работ психологов, изучающих ментальные механизмы, с помощью которых люди понимают возникающие ситуации и определяют свое поведение в соответствии с обстоятельствами. Мы обладаем базовыми знаниями – некоторые из них присущи нам от рождения, а остальные мы приобретаем в процессе развития и жизни. Наши понятия хранятся в мозге как ментальные модели, которые мы можем “запускать” (то есть симулировать), чтобы предсказывать, что произойдет в любой ситуации или что может произойти, если ситуация изменится каким-либо мыслимым образом. Наши понятия – от простых слов до сложных концепций – формируются с помощью абстракций и аналогий.

Конечно, я не берусь утверждать, что охватила все аспекты человеческого понимания. Многие отмечают, что термины “понимание” и “смысл” (не говоря уже о “сознании”) не имеют адекватного определения и выполняют функцию условных заменителей, поскольку у нас пока не появилось корректного языка или теории, чтобы говорить о происходящем в мозге. “Хотя такие донаучные зачатки идей, как «полагать», «знать» и «иметь в виду», полезны в повседневной жизни, с технической точки зрения они слишком грубы для применения в авторитетных теориях… – отметил пионер ИИ Марвин Минский. – Какими бы реальными нам ни казались сегодня понятия «самость» и «понимать»… это лишь первые шаги к появлению более удачных понятий”. Далее Минский отметил, что путаница с этими понятиями “возникает из-за обремененности традиционных идей коннотациями, не соответствующими этой невероятно сложной задаче… Наши представления о разуме еще не сформировались окончательно”[333].

До недавних пор вопрос о том, какие ментальные механизмы позволяют людям понимать мир – и могут ли машины обрести такое же понимание, – занимал в основном философов, психологов, нейробиологов и теоретиков ИИ, которые на протяжении десятилетий (а иногда и столетий) вели научные дебаты на этот счет, не уделяя внимания тому, какие последствия все это имеет для реального мира. Однако, как я показала в предыдущих главах, системы ИИ, не имеющие человеческого понимания, сегодня находят широкое применение при выполнении реальных задач, а потому все эти теоретические вопросы перестают быть прерогативой академического сообщества. В какой степени системам ИИ необходимо человеческое понимание мира или некоторое его подобие, чтобы надежно и эффективно выполнять свою задачу? Ответа не знает никто. Но почти все исследователи ИИ уверены, что изначальные знания “на основе здравого смысла” и способность к построению сложных абстракций и аналогий – это звенья, отсутствие которых сдерживает дальнейшее развитие ИИ. В следующей главе я опишу ряд методов, которые используются, чтобы наделить машины этими способностями.

Глава 15
Знание, абстракция и аналогия в искусственном интеллекте

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

Изначальное знание для компьютеров

На заре ИИ, пока машинное обучение и нейронные сети не заняли господствующее положение в отрасли, исследователи вручную кодировали правила и знания, необходимые программе для выполнения задач. Многим пионерам ИИ казалось, что таким методом “встраивания” можно сообщить машинам достаточно основанных на здравом смысле человеческих знаний, чтобы машины получили интеллект человеческого уровня.

Самой знаменитой и длительной попыткой вручную закодировать повседневные знания для машин стал проект Дугласа Лената Cyc (“Сайк”). Ленат – сначала аспирант, а затем профессор Лаборатории искусственного интеллекта Стэнфордского университета – прославился в 1970-х годах, когда написал программы, которые моделировали процесс создания человеком новых понятий, особенно в математике[334]. Однако, посвятив исследованию этой сферы более десяти лет, Ленат пришел к выводу, что для истинного прогресса в ИИ машины должны обладать здравым смыслом. В связи с этим он решил собрать огромный набор фактов о мире и прописать логические правила, в соответствии с которыми программы смогут использовать этот набор, устанавливая необходимые им факты. В 1984 году Ленат ушел с академического поста и основал компанию (ныне – Cycorp), чтобы достичь этой цели.

Название Cyc отсылает к слову encyclopedia, но, в отличие от знакомых нам энциклопедий, в Cyc, по мысли Лената, должны были войти все неписаные человеческие знания – или, по крайней мере, достаточный объем таких знаний, чтобы системы ИИ смогли работать на человеческом уровне в области зрения, языка, планирования, логических рассуждений и т. д.

Cyc – это система символического ИИ такого типа, как я описала в главе 1: она содержит набор написанных логическим компьютерным языком утверждений о конкретных объектах или общих понятиях. Вот несколько примеров утверждений из Cyc (переведенных с логического языка на естественный)[335]:

• Объект не может находиться более чем в одном месте в одно время.

• Объекты год за годом стареют.

• У каждого человека есть мать, и эта мать – женщина.

Проект Cyc также включает в себя сложные алгоритмы для построения логических выводов из утверждений. Так, Cyc может определить, что если я нахожусь в Портленде, то я также не нахожусь в Нью-Йорке, поскольку я объект, Портленд и Нью-Йорк – места, а объект не может находиться более чем в одном месте в одно время. Помимо этого, Cyc имеет богатый набор методов для работы с противоречивыми и неопределенными утверждениями.

Утверждения Cyc вручную закодированы людьми (а именно сотрудниками Cycorp) или выведены системой на основе существующих утверждений[336]. Сколько утверждений необходимо, чтобы закодировать человеческое знание, основанное на здравом смысле? На лекции в 2015 году Ленат сказал, что в настоящий момент в Cyc содержится 15 миллионов утверждений, и предположил: “Вероятно, это около пяти процентов от необходимого”[337].

Лежащая в основе Cyc философия роднит проект с экспертными системами, которые создавались в первые годы исследования ИИ. Как вы помните, в главе 2 упоминалась экспертная система для медицинской диагностики MYCIN. Для создания правил, на основе которых система сможет ставить диагнозы, разработчики взяли интервью у ряда “экспертов” – квалифицированных врачей. Затем разработчики перевели эти правила на логический компьютерный язык, чтобы позволить системе делать логические выводы. В Cyc “экспертами” выступают люди, которые вручную переводят свои знания о мире в логические утверждения. “База знаний” Cyc больше базы знаний MYCIN, а применяемые алгоритмы логического вывода более продвинуты, но у проектов одна идея: интеллект можно вручную закодировать в правила, применяемые к достаточно богатому набору явно заданных знаний. Сегодня в сфере ИИ господствует глубокое обучение, и Cyc остается одним из последних крупных проектов символического ИИ[338].

Если инженеры Cycorp потратят достаточное количество времени и сил, смогут ли они действительно закодировать все человеческие знания, основанные на здравом смысле, или хотя бы их достаточную часть (какую бы их часть при этом ни признали “достаточной”)? Сомневаюсь. Если все люди обладают основанными на здравом смысле знаниями, но эти знания нигде не записаны, значит, существенная их часть остается неосознанной – мы даже не знаем, что они у нас есть. Мы не осознаем значительную долю изначальных интуитивных знаний физики, биологии и психологии, которые лежат в основе наших представлений о мире. Если вы не сознаете, что знаете что-либо, то не можете быть “экспертом”, который в явной форме задает это знание компьютеру.

Кроме того, как я отметила в предыдущей главе, основанные на здравом смысле знания усваиваются путем построения абстракций и аналогий. Здравый смысл не может существовать без этих способностей. Но человеческие способности к построению абстракций и аналогий невозможно приобрести, анализируя массивный набор фактов Cyc, и, я полагаю, путем логического вывода вообще.

На момент написания этой книги работа над проектом Cyc ведется более тридцати лет. Cycorp и ее дочерняя компания Lucid коммерциализируют проект, предлагая целый спектр решений для бизнеса. На сайтах обеих компаний рассказываются “истории успеха” о применении Cyc в финансах, нефтегазовой отрасли, медицине и других сферах. В некотором роде Cyc повторяет путь суперкомпьютера Watson, разработанного IBM: оба запускались как масштабные исследовательские проекты с далеко идущими целями, и оба превратились в набор коммерческих продуктов с раздутой рекламой (так, Cyc “обеспечивает компьютеры человеческим пониманием и логическим мышлением”[339]), но узким, а не общим фокусом и недостатком прозрачности при описании реальной производительности и способностей системы.

Проект Cyc не оказал особого влияния на основные направления работы в сфере ИИ. Более того, некоторые представители ИИ-сообщества выступили с резкой критикой проекта. Так, профессор Вашингтонского университета и специалист по ИИ Педро Домингос назвал Cyc “самым громким провалом в истории ИИ”[340]. Специалист по робототехнике из MIT Родни Брукс выразился чуть мягче: “Несмотря на масштабы проекта, [Cyc] не привел к созданию системы ИИ, способной хотя бы на базовом уровне понимать мир”[341].

Но как быть с наделением компьютеров неосознаваемыми знаниями о мире, которые мы усваиваем в детстве и кладем в основу всех своих представлений? Как нам обучить компьютер, например, интуитивной физике объектов? Несколько исследовательских групп приняли этот вызов и сейчас разрабатывают системы ИИ, усваивающие некоторые знания о причинно-следственной физике мира из видеороликов, видеоигр и других типов виртуальной реальности[342]. Все эти проекты весьма любопытны, но пока успели сделать лишь несколько крошечных шагов, а потому их изначальные интуитивные знания о мире сравнимы со знаниями младенца.

Когда глубокое обучение продемонстрировало целую серию успехов, многим – как в сообществе ИИ, так и за его пределами – показалось, что создание общего ИИ человеческого уровня не за горами. Однако, как я не раз говорила в этой книге, при более широком применении систем глубокого обучения в их “интеллекте” обнаруживаются изъяны. Даже самые успешные системы не умеют обобщать понятия за пределами узких областей своей компетенции, строить абстракции и устанавливать причинно-следственные связи[343]. Кроме того, их нечеловеческие ошибки и уязвимость к так называемым контрпримерам показывают, что они не понимают концепции, которым мы пытаемся их обучить. Можно ли исправить эти недостатки с помощью большего объема данных или более глубоких сетей? Или же проблема гораздо серьезнее? Споры об этом не утихают по сей день[344].

В последнее время я наблюдаю сдвиг в этих дебатах: сообщество ИИ снова заговорило о первостепенной важности наделения машин здравым смыслом. В 2018 году один из основателей Microsoft Пол Аллен удвоил бюджет своего исследовательского института с целью изучения здравого смысла. Не отстают и государственные финансирующие организации: в 2018 году Управление перспективных исследовательских проектов Министерства обороны США (DARPA), один из основных государственных спонсоров исследований искусственного интеллекта, обнародовало планы предоставить значительное финансирование для изучения здравого смысла в ИИ. “ [Сегодня] машины мыслят узко, а их рассуждения имеют в высшей степени специализированный характер, – подчеркнули в управлении. – Рассуждения на основе здравого смысла машинам никак не даются. Программа [финансирования] приведет к созданию знаний, в большей степени напоминающих человеческие, например основанных на восприятии, и позволит машинам на основе здравого смысла рассуждать о физическом мире и пространственно-временных феноменах”[345].

Абстракция в идеале

“Формирование абстракций” входило в список ключевых способностей ИИ, перечисленных в дартмутской заявке 1955 года, которую я описала в главе 1. Тем не менее задача научить машины строить концептуальные абстракции на манер человека по-прежнему не решена.

Именно вопросы построения абстракций и аналогий однажды привели меня в сферу ИИ. Мой интерес разгорелся с особенной силой, когда я открыла для себя зрительные головоломки, называемые задачами Бонгарда. Эти задачи предложил советский кибернетик Михаил Бонгард, который в 1967 году опубликовал книгу “Проблема узнавания”[346]. В книге описывалась предлагаемая Бонгардом система распознавания зрительных образов, напоминающая перцептрон, но наиболее значимой частью работы стало приложение, в котором Бонгард собрал сто задач для программ ИИ. На рис. 45 показаны примеры задач из коллекции Бонгарда[347].

В каждой задаче изображены 12 квадратов: шесть слева и шесть справа. В шести левых квадратах содержатся примеры одного понятия, в шести правых квадратах – примеры другого, “родственного” понятия, и два этих понятия идеально определяют два набора квадратов. Необходимо назвать эти понятия. Например, на рис. 45 понятия таковы (по часовой стрелке): “большой” и “маленький”, “белый” и “черный” (или “незакрашенный” и “закрашенный”, если хотите), “право” и “лево”, “вертикальный” и “горизонтальный”.


Рис. 45. Четыре задачи из книги Бонгарда. В каждой задаче необходимо определить, какие понятия отличают шесть квадратов слева от шести квадратов справа. Например, в задаче № 2 это понятия “большой” и “маленький”


Решить задачи с рис. 45 довольно просто. В своей книге Бонгард расположил примеры в порядке повышения предполагаемой трудности. Ради интереса взгляните на шесть более трудных примеров, приведенных на рис. 46. Я дам ответы на них ниже.

Бонгард составил задачи таким образом, чтобы их решение требовало способностей к построению абстракций и аналогий, которые необходимы человеку и системе ИИ в реальном мире. В задаче Бонгарда можно считать каждый из двенадцати квадратов миниатюрной идеализированной “ситуацией”, в которой участвуют различные объекты, признаки и взаимосвязи. Ситуации слева имеют некоторую общую “суть” (например, они “большие”), а ситуации справа – противоположную общую “суть” (например, они “маленькие”). В задачах Бонгарда, как и в жизни, бывает нелегко понять, в чем заключается суть ситуации. Как выразился специалист по когнитивистике Роберт Френч, для построения абстракций и аналогий необходимо замечать “неуловимое тождество”[348].


Рис. 46. Шесть дополнительных задач Бонгарда


Чтобы найти неуловимое тождество, нужно определить, какие признаки ситуации значимы, а какие можно опустить. В задаче № 2 (рис. 45) неважно, какого цвета фигура (черная или белая), где она находится в ячейке и какой она формы (круг, треугольник и др.). Важен только ее размер. Конечно, размер важен не всегда: в остальных задачах с рис. 45 размер не имеет значения. Как мы, люди, так быстро определяем значимые признаки? Как научить этому машину?

Чтобы машинам было еще сложнее, понятия в задачах могут быть зашифрованы абстрактным, неочевидным образом, как в задаче № 91 (“три” и “четыре”). В некоторых задачах системе ИИ нелегко понять, что считать объектом: так, в задаче № 84 (“вне” и “внутри”) значимые “объекты” состоят из более мелких объектов (здесь – из маленьких кружков). В задаче № 98 объекты “замаскированы”: людям легко разглядеть спрятанные в квадратах фигуры, но для машин эта задача оказывается сложнее, поскольку им непросто отделить передний план от заднего.

Задачи Бонгарда также требуют умения формировать новые понятия на ходу. Хороший пример – задача № 18. Сходство левых ячеек непросто описать словами – это что-то вроде “объекты с сужением, или перемычкой”. Но даже если вы никогда раньше не думали ни о чем подобном, вы быстро замечаете это сходство между объектами. Подобным образом в задаче № 19 появляются новые смыслы: слева собраны “объекты с горизонтальной перемычкой”, а справа – “объекты с вертикальной перемычкой”. Люди без труда справляются с абстрагированием новых, трудновыразимых понятий – еще одним аспектом “неуловимости тождества”, – но ни одна из существующих систем ИИ пока не добилась успеха в этой сфере.

Книга Бонгарда была опубликована на английском в 1970 году, но знали о ней немногие. Однако Дуглас Хофштадтер, прочитавший ее в 1975 году, оценил сто задач из приложения и подробно описал их в собственной книге “Гёдель, Эшер, Бах”. Именно там я их впервые увидела.

Мне с детства нравились головоломки – и особенно задачи на логику и поиск закономерностей, – а потому, когда я взялась за “ГЭБ”, самое сильное впечатление на меня произвели задачи Бонгарда. Меня также заинтересовали описанные в “ГЭБ” идеи Хофштадтера о том, как создать программу для решения задач Бонгарда, которая бы имитировала человеческое восприятие и построение аналогий. Возможно, именно читая этот раздел, я решила заняться исследованиями ИИ.

Увлекшись задачами Бонгарда, несколько исследователей создали программы ИИ, которые пытаются их решать. Большинство программ делает упрощающие допущения (например, ограничивает набор возможных форм и взаимодействий между формами или совершенно игнорирует зрительные аспекты и отталкивается от созданного людьми описания изображений). Каждая из программ смогла решить подмножество конкретных задач, но ни одна при этом не продемонстрировала генерализационных способностей человеческого типа[349].


Рис. 47. Пример преобразования задачи Бонгарда в задачу на классификацию с двенадцатью обучающими примерами и новым “тестовым” примером


А как же сверточные нейронные сети? Учитывая, что они прекрасно справляются с классификацией объектов (например, на масштабном соревновании ImageNet Visual Recognition Challenge, которое я описала в главе 5), разве нельзя научить их решать задачи Бонгарда? Теоретически задачу Бонгарда можно превратить в задачу на “классификацию” для сверточной нейронной сети, как показано на рис. 47: шесть левых квадратов можно считать тренировочными примерами из “класса 1”, а шесть правых квадратов – тренировочными примерами из “класса 2”. Теперь дадим системе новый “тестовый” пример. В какой из двух классов его следует поместить?

Сразу возникает препятствие: набор из двенадцати тренировочных примеров до смешного мал для обучения сверточной нейронной сети, которой, возможно, не хватит и двенадцати сотен. Само собой, отчасти именно это Бонгард и показал на примере задач: мы, люди, без труда определяем искомые понятия, имея всего двенадцать примеров. Какой объем тренировочных данных необходим СНС, чтобы она научилась решать задачу Бонгарда? Хотя никто пока не проводил систематического исследования решения задач Бонгарда с помощью сверточных нейронных сетей, одна группа исследователей проанализировала работу современных СНС с задачей на выявление “одинаковых и разных” форм, используя изображения наподобие приведенного на рис. 47[350]. В класс 1 вошли изображения с двумя фигурами одинаковой формы, а в класс 2 – изображения с двумя фигурами разных форм. Для тренировки сети исследователи использовали не 12, а по 20 000 примеров для класса 1 (“одинаковые”) и класса 2 (“разные”). После тренировки каждая сверточная нейронная сеть тестировалась на 10 000 новых примеров. Все примеры генерировались автоматически с использованием множества разных форм. Обученные СНС справлялись с задачей лишь немногим лучше, чем при случайном угадывании, в то время как доля верных ответов у людей, протестированных авторами, стремилась к 100 %. Иными словами, современные сверточные нейронные сети прекрасно справляются с выявлением признаков, необходимых для распознавания объектов ImageNet и выбора ходов в го, но не обладают способностью к построению абстракций и аналогий, необходимой даже для решения идеализированных задач Бонгарда, не говоря уже о задачах реального мира. Похоже, тех типов признаков, которые могут усвоить эти сети, недостаточно для построения таких абстракций, на каком бы количестве примеров ни проходило обучение сети. Этот недостаток свойственен не только сверточным нейронным сетям: ни одна из существующих систем ИИ не обладает никаким подобием этих фундаментальных способностей человека.

Активные символы и построение аналогий

Прочитав книгу “Гёдель, Эшер, Бах” и решив заняться исследованиями ИИ, я связалась с Дугласом Хофштадтером, надеясь, что смогу работать над чем-то вроде задач Бонгарда. К счастью, он поддался на мои уговоры и позволил мне присоединиться к его исследовательской группе. Хофштадтер объяснил, что его группа создает компьютерные программы, ориентируясь на то, как люди понимают ситуации и проводят аналогии между ними. Защитив диссертацию по физике (дисциплине, где идеализация – например, пренебрежение силой трения при движении – служит основной движущей силой), Хофштадтер был уверен, что лучше всего изучать феномен (здесь – построение аналогий человеком) в идеализированной форме. В исследованиях ИИ часто используются так называемые микромиры – идеализированные области вроде задач Бонгарда, в которых исследователь может развивать свои идеи, прежде чем тестировать их в более сложных областях. Для своего исследования об аналогиях Хофштадтер создал микромир, который был идеализирован еще сильнее, чем задачи Бонгарда: задачи на аналогию с алфавитными последовательностями. Вот пример:

Задача 1. Допустим, последовательность букв abc меняется на abd. Как изменить последовательность pqrs “аналогичным образом”?

Большинство людей дает ответ pqrt, выводя примерно такое правило: “Крайняя правая буква заменяется на следующую за ней букву алфавита”. Само собой, можно вывести и другие правила, и тогда ответ будет другим. Вот несколько альтернатив:

pqrd: “Крайняя правая буква меняется на d”.

pqrs: “Все c меняются на d. В pqrs нет c, поэтому ничего не меняется”.

abd: “Любая последовательность меняется на последовательность abd”.

Может показаться, что в альтернативных ответах задача трактуется чересчур буквально, но нет никакого строго логического аргумента, который говорил бы, что эти ответы неверны. Более того, можно вывести бесконечное число других правил. Почему большинство людей считает, что один из ответов (prqt) лучше всех остальных? Похоже, наши ментальные механизмы абстрагирования – которые развивались, чтобы обеспечивать нам выживание и воспроизводство в реальном мире, – работают и в этом идеализированном микромире.

Вот другой пример:

Задача 2. Допустим, последовательность abc меняется на abd. Как изменить последовательность ppqqrrss “аналогичным образом”?

Даже в этом простом алфавитном микромире сходства могут быть неуловимыми, по крайней мере для машин. В задаче 2 буквальное применение правила “крайняя правая буква заменяется на следующую за ней букву алфавита” даст ответ ppqqrrst, но большинству людей такой ответ кажется слишком буквальным. Люди чаще дают ответ ppqqrrtt, считая, что пары букв в последовательности ppqqrrss, соответствуют отдельным буквам последовательности abc[351]. Мы, люди, склонны группировать одинаковые или подобные объекты.

Задача 2 иллюстрирует в этом микромире идею о концептуальном переходе, лежащем в основе построения аналогий[352]. Когда вы пытаетесь распознать сущностное сходство двух разных ситуаций, некоторые концепции первой ситуации необходимо “перенести”, то есть заменить родственными концепциями второй ситуации. В задаче 2 концепция буквы переходит в концепцию группы букв, а потому правило “крайняя правая буква заменяется на следующую за ней букву алфавита” меняется на “крайняя правая группа букв заменяется на группу, составленную из букв, следующих за ней по алфавиту”.

Теперь рассмотрим следующую задачу:

Задача 3. Допустим, последовательность abc меняется на abd. Как изменить последовательность xyz “аналогичным образом”?

Большинство людей дает ответ xya, считая, что за буквой z по алфавиту “следует” буква a. Но что, если вы компьютерная программа, которая не имеет представления о “цикличности” алфавита, а потому считает, что за буквой z не следует никакая другая буква? Какие ответы будут обоснованными? Попросив людей найти такие ответы, я получила множество вариантов – и весьма любопытных. Часто ответы обращались к физическим метафорам: например, xy (потому что z “падает с обрыва”), xyy (потому что z “отскакивает назад”) и wyz. В последнем ответе предполагается, что a и z “стоят у стены” на противоположных концах алфавита, то есть играют схожие роли, а следовательно, если концепция “первой буквы в алфавите” переходит в концепцию “последней буквы в алфавите”, то концепция “крайней правой буквы” переходит в концепцию “крайней левой буквы”, а концепция “следующей буквы” – в концепцию “предыдущей буквы”. Задача 3 показывает, как построение аналогии может запустить каскад ментальных переходов.

Микромир буквенных последовательностей делает концептуальный переход наглядным. В других областях он может происходить не столь очевидно. Так, если снова взглянуть на задачу Бонгарда № 91 с рис. 46, где сходство шести левых квадратов описывается понятием “три”, можно заметить, что объекты, выражающие понятие “три”, меняются от квадрата к квадрату: например, слева вверху это отрезки, слева посередине – квадраты, а слева внизу – трудноописуемые пики (может, “зубцы гребенки”?). Концептуальный переход также играл важную роль в различных абстракциях, которые воображаемая дочь S (из предыдущей главы) строила по мере взросления: так, в ее юридической аналогии концепция “сайта” перешла в концепцию “стены”, а концепция “создание поста в блоге” – в концепцию “создание граффити”.

Хофштадтер описал компьютерную программу Copycat, которая могла бы решать подобные задачи, используя общие алгоритмы, подобные тем, что люди, по его мнению, применяют при построении аналогий в любой области. Название Copycat (“Подражатель”) намекает, что вы (автор аналогий) должны решать задачи “по аналогии”, то есть “подражая” примеру. Исходная ситуация (например, abc) меняется некоторым образом, и вы должны “аналогично” изменить новую ситуацию (например, ppqqrrss).

Когда я присоединилась к исследовательской группе Хофштадтера, мне поручили вместе с ним работать над созданием Copycat. Как скажет вам любой, кто писал диссертацию, путь к защите состоит в основном из усердного труда, который перемежается досадными неудачами и сопровождается (по крайней мере в моем случае) постоянными сомнениями в себе. Но порой случаются головокружительные успехи – например, когда программа, над которой вы корпели целых пять лет, наконец работает. Здесь я опущу все сомнения, неудачи и бесчисленные часы работы, чтобы сразу перейти к тому моменту, когда я сдала свою диссертацию с описанием программы Copycat, которая умела решать несколько типов задач на аналогию с алфавитными последовательностями, рассуждая при этом (как я утверждала) примерно так же, как рассуждает человек.

Copycat не была ни символической программой на основе правил, ни нейронной сетью, но включала аспекты символического и субсимволического ИИ. Она решала задачи на аналогию с помощью постоянного взаимодействия между своими перцептивными процессами (выявляющими признаки в конкретной задаче на аналогию с алфавитными последовательностями) и первоначальными заложенными в нее понятиями (например, “буква”, “группа букв”, “следующая буква”, “предыдущая буква”, “такой же” и “противоположный”). Понятия программы были структурированы таким образом, чтобы имитировать ментальные модели, описанные в предыдущей главе. В частности, они были основаны на идее Хофштадтера об “активных символах” человеческого познания[353]. Я не стану описывать сложную архитектуру Copycat (но дам некоторые ссылки в примечаниях[354]). В конце концов, хотя Copycat умела решать многие задачи на аналогию с алфавитными последовательностями (включая приведенные выше примеры и множество их вариаций), она лишь поверхностно изучила свою огромную сферу. Вот, например, две задачи, с которыми она не справлялась:

Задача 4. Если azbzczd меняется на abcd, на что меняется pxqxrxsxt?


Задача 5. Если abc меняется на abd, на что меняется ace?

Для решения обеих задач необходимо формировать новые концепции на ходу, а Copycat этого не умела. В задаче 4 все z и x играют одинаковую роль “лишних букв, которые необходимо удалить, чтобы увидеть алфавитную последовательность”, и это дает ответ pqrst. В задаче 5 последовательность ace подобна последовательности abc, но образована буквами, которые следуют друг за другом не по порядку, а через одну, а потому ответом будет acg. Мне не составило бы труда наделить Copycat способностью считать количество букв, скажем, между a и c и c и e, но мне не хотелось встраивать в программу специфические способности для работы с алфавитными последовательностями. Copycat должна была стать экспериментальной площадкой для проверки общих идей о построении аналогий, а не полноценным “построителем аналогий для алфавитных последовательностей”.

Метапознание в мире алфавитных последовательностей

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

Будучи аспирантом в группе Хофштадтера, Джеймс Маршалл поставил перед собой задачу научить Copycat анализировать собственное “мышление”. Он создал программу Metacat, которая не только решала задачи на аналогию с алфавитными последовательностями, как Copycat, но и пыталась выявлять закономерности в собственных действиях. Программа сопровождала свою работу комментариями, сообщая, какие концепции она узнает в ходе решения задачи[355]. Как и Copycat, Metacat показала любопытные результаты, но сумела развить лишь примитивные способности к самовосприятию, не сравнимые с человеческими.

Распознавание визуальных ситуаций

В настоящее время я занимаюсь разработкой системы ИИ, которая использует аналогии для гибкого распознавания визуальных ситуаций – визуальных сюжетов, включающих несколько объектов и их взаимодействие. Например, каждый снимок на рис. 48 представляет собой пример визуальной ситуации “прогулка с собакой”. Людям легко это понять, но системам ИИ очень тяжело узнавать примеры визуальных ситуаций, даже если ситуации совсем просты. Распознавать ситуации гораздо сложнее, чем отдельные объекты.

Мы с коллегами разрабатываем программу Situate, которая комбинирует способности глубоких нейронных сетей к распознаванию объектов с активно-символьной архитектурой Copycat, чтобы распознавать примеры конкретных ситуаций путем построения аналогий. Мы хотели бы, чтобы наша программа распознавала не только очевидные примеры вроде тех, что приведены на рис. 48, но и нестандартные примеры, которые требуют концептуальных переходов. В типовой ситуации “прогулка с собакой” задействованы человек (который гуляет с собакой), собака и поводок. Человек держит поводок, поводок прикреплен к собаке, и собака и человек при этом идут. Верно? Да, именно это мы видим в примерах на рис. 48. Но люди, понимающие концепцию прогулки с собакой, также узнают ее на всех изображениях с рис. 49, хотя и отметят, что каждое из них лишь “с натяжкой” можно считать вариацией типовой ситуации. Программа Situate, разработка которой только началась, должна стать платформой для проверки гипотез о построении аналогий человеком и продемонстрировать, что идеи, лежащие в основе Copycat, могут успешно работать за пределами микромира задач на аналогию с алфавитными последовательностями.


Рис. 48. Четыре очевидных примера ситуации “прогулка с собакой”


Рис. 49. Четыре нестандартных примера ситуации “прогулка с собакой”


Copycat, Metacat и Situate – лишь три из нескольких программ для построения аналогий, основанных на активно-символьной архитектуре Хофштадтера[356]. Кроме того, активно-символьная архитектура не единственный метод, который используется в ИИ-сообществе для создания программ, умеющих строить аналогии. И все же, хотя построение аналогий играет фундаментальную роль на всех уровнях человеческого поз