Не ограничиваясь играми
За последнее десятилетие обучение с подкреплением превратилось из относительно малоизвестного ответвления ИИ в одно из самых перспективных (и активно финансируемых) направлений развития отрасли. Возрождение обучения с подкреплением – особенно в глазах общественности – произошло во многом благодаря проектам 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. В последующие годы, когда обучение с подкреплением достигнет зрелости, я буду ждать появления робота, который самостоятельно научится загружать посудомоечную машину, на досуге играя в футбол и го.