Давайте пока забудем об этих проблемах и рассмотрим два серьезных препятствия, которые возникают при экстраполяции примера обучения Рози на реальные задачи обучения с подкреплением. Первое препятствие – матрица Q. В сложных реальных задачах – например, при обучении беспилотного автомобиля езде по многолюдному городу – невозможно определить небольшой набор “состояний” для матрицы. Состояние автомобиля в конкретный момент времени определяется всеми данными с его камер и других датчиков. Это значит, что число возможных состояний беспилотного автомобиля фактически бесконечно. Обучение с помощью матрицы Q из примера о Рози в таком случае невозможно. По этой причине в большинстве современных методов обучения с подкреплением вместо матрицы Q используется нейронная сеть. Задача нейронной сети состоит в том, чтобы узнавать, какие значения ценности следует присваивать действиям в конкретном состоянии. В частности, сеть получает текущее состояние в качестве входного сигнала и на выходе присваивает значения ценности всем возможным действиям, которые агент может выполнить в этом состоянии. Есть надежда, что сеть сможет научиться группировать связанные состояния в общие концепции (“безопасно продолжать движение вперед” или “нужно немедленно остановиться, чтобы не столкнуться с помехой”).
Вторым препятствием становится сложность проведения обучения с подкреплением на большом количестве эпизодов в реальном мире для настоящего робота. Невыполним даже наш пример с Рози. Представьте, как вы сотни раз начинаете новый эпизод – выходите на поле, чтобы установить робота и мяч, – не говоря уже о необходимости ждать, пока робот выполнит сотни действий в каждом эпизоде. У вас просто не хватит на это времени. Кроме того, вы рискуете тем, что робот повредит себя, выбрав неверное действие, например если он пнет бетонную стену или шагнет вниз с обрыва.
Подобно тому, как я поступила с Рози, специалисты по обучению с подкреплением почти всегда решают эту проблему, создавая компьютерные симуляции роботов и сред, чтобы пройти все обучающие эпизоды в симуляции, а не в реальном мире. Иногда такой подход работает. Среди прочего с помощью симуляций роботов учат ходить, прыгать, поднимать предметы и водить автомобили с дистанционным управлением, и роботы с переменным успехом применяют навыки, приобретенные в ходе симуляции, в реальном мире[182]
. Однако, чем более сложна и непредсказуема среда, тем менее успешны попытки перенести усвоенное в компьютерной симуляции в реальный мир. Эти сложности объясняют, почему на сегодняшний день обучение с подкреплением добилось наибольших успехов не в робототехнике, а в областях, которые удобно моделировать на компьютере. Самые громкие успехи при этом наблюдались в сфере игр. О применении обучения с подкреплением к играм речь пойдет в следующей главе.Глава 9
Игра началась
С первых дней развития ИИ энтузиасты начали разрабатывать программы, способные побеждать людей в играх. В конце 1940-х годов Алан Тьюринг и Клод Шеннон, стоявшие у истоков компьютерной эры, написали программы для игры в шахматы, хотя в то время еще не было компьютеров, чтобы их запустить. В последующие десятилетия многие молодые любители игр осваивали программирование, чтобы научить компьютеры играть в свои любимые игры – шашки, шахматы, нарды, го, покер, а позже и в видеоигры.
В 2010 году молодой британский ученый и любитель игр Демис Хассабис вместе с двумя близкими друзьями основал в Лондоне компанию
Рис. 27. Иллюстрация игры