Идиот или гений? Как работает и на что способен искусственный интеллект — страница 10 из 19

Обучение игре

Глава 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