Шрифт:
Интервал:
Закладка:
Давайте назовем нашу собаку-робота Рози, в честь моего любимого телеробота – ироничной домработницы из мультсериала “Джетсоны”[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]. Как мы увидим, процесс выяснения ценности конкретных действий в определенном состоянии обычно предполагает долгий путь проб и ошибок.