Комментарии 13
Если вкратце, то существуют 3 парадигмы в машинном обучении: обучение с учителем (supervised learning), обучение без учителя (unsupervised learning) и обучение с подкреплением (reinforcement learning). Последнее используется в случаях, когда обучение ИИ по тем или иным причинам должно идти методом, во многом подобным методу проб и ошибок, когда за каждое выполненное действие агент (тот, кто выполняет действия и обучается) получает определенное вознаграждение. Например, у людей на разных полюсах шкалы вознаграждений находятся боль (низкий уровень вознаграждения) и наслаждение (высокий уровень). Конечная цель агента — максимизация суммарно полученного вознаграждения. В данной статье речь идет как раз о таком методе. Он же используется в Alpha GO, Giraffe и многих других приложениях, где агент познает «мир вокруг себя» самостоятельно и так же самостоятельно учится взаимодействовать с ним с максимальной выгодой для себя.
А эта Universe от open.ai — она сама рисует для агента шкалу вознаграждений, или надо изначально предусмотреть?
В играх помимо основной цели есть еще и различного рода вторичные, есть пасхальные яйца. Как понять, какой ИИ получил больше вознаграждения, тот который прошел Witcher 3 за 8 часов, или тот который выполнил все побочные концовки и открыл все карты за 80?
Опять же, за что вознаграждают машину? За приобретаемый опыт (хорошие выстрелы, минимум столкновений машин), или за достижение заложенных в нее целей?
Судя по тому, что фреймворк является оберткой над кучей разных игр, то скорей всего reward для каждой из игр нужно задавать руками.
В играх помимо основной цели есть еще и различного рода вторичные, есть пасхальные яйца. Как понять, какой ИИ получил больше вознаграждения, тот который прошел Witcher 3 за 8 часов, или тот который выполнил все побочные концовки и открыл все карты за 80?
RL — он скорее о тренировке "рефлексов", необходимых для победы в игре, а не о глубоком понимании самой игры. Т.е. агент скорей обучится совершать какие-то регулярные действия для повышения reward, чем "искать пасхалки".
Опять же, за что вознаграждают машину?
За то-же, за что и игрока. Reward функция, как правило, используется игровая (т.е. очки, жизни и тд и тп), т.е. сделал какое-то действие — получил очков и сеть запомнила такую последовательность действий и тд и тп.
А что мешает сделать наградой — собранный объем информации с игры? Создаем хранилище, наполняемое по определенным правилам, чтобы агент изучал окружающий его мир. При чем делаем множество разделов: это и изучение механики действий в игре (например, собрать инструкцию о том, как быть самым добрым в Масс Эффекте*), игровых мест (изучение биомов игры). Эдакий реверс-инженер. Идеальный бета-тестер, кстати.
* очень интересно, как поступит добрый натренированный бот в выборе между убийстве людей или сената
Интересно, если задавать reward руками, то универсальность сразу теряется. У них вроде как смысл в том, чтобы агенты играли во множество игр сразу.
Я вероятно не корректно выразился, у них есть не конкретное рапсределение этой функции, а только его значения в некоторых точках пространства. И суть RL как раз в том, чтобы восстановить это распределение. Ну а как эта обратная связь реализована — это все таки часть специфичная для конкретной игры. Без обратной связи Q-Learning не работает.
А что мешает сделать наградой — собранный объем информации с игры?
А как считать эту меру информации?
Оценить обстановку — повертел мышкой — ага, вид от первого лица. Диалог? — водит мышкой, ага, можно выбирать, попробуем это. И параллельно те же самые действия совершает множество агентов. Ага, 90% агентов пошли этим путем, но зачем пошли остальные? Надо изучить. Ага, наш средний результат в этом заезде три минуты на круг, но лидеры рейтинга почему-то используют совсем отличную стратегию от среднячков, давайте изучим
Но это наверное относится уже к сильному ИИ и просто не реализуемо на такого рода платформах?
Представляя миллион таких агентов, удаляющих те или иные свои «копии» за недостаточность награды, не посчитают ли они, что люди вообще к этой награде не стремятся и мешают?)))
Про миллион агентов — вы сами того не ведая примерно описали генетические методы обучения. Что касается морали ботов — если вы ее не заложите, то ее и не будет, т.е. если бот посчитает, что ему выгоднее заниматься тимкиллом и это разрешено правилами, то он будет заниматься тимкиллом. Если я правильно понял ваш вопрос.
Вознаграждение — это не какая-то абстракция, а конкретная скалярная величина. Т.е. у кого больше это число, тот и получил большее суммарное вознаграждение, выраженное данным числом.
За что вознаграждают — зависит от использованного алгоритма. В некоторых играх, чаще всего аркадных, это число набранных очков в каждый определенный момент времени. Соответственно, мы можем посчитать разность очков в разные моменты времени. В других играх используются функции-оценщики, оценивающие текущий расклад в некоторых попугаях. Например, если взять шахматы, в каждый момент игры вы как игрок находитесь в определенном состоянии, которое можно оценить по куче разных критериев: есть ли у вас ферзь, скольким фигурам вы угрожаете, объявили ли вы шах и т.д. (у хороших функций оценки это сотни параметров), вы делаете ход и ваше состояние меняется — вознаграждением за ход будет разность между оценками состояний до хода и после. Есть алгоритмы, которые не пользуются такими функциями вообще. Если для оценки хода вы пользуетесь какой-то вариацией алгоритма minimax, то обязательно будут состояния, в которые вы никогда не будете попадать, особенно если вы не можете просчитать все возможные варианты развития событий, т.к. это слишком дорого по времени, и ограничиваете minimax по глубине или каким-то другим способом, но в них попадать все же желательно, т.к. это может дать вам преимущество в будущем, которое вы не просчитали. Т.е. существует проблема баланса между исследованием и использованием того, в чем вы уверены точно: синица в руках или журавль в небе. Т.е. может быть когда-нибудь бот узнает о том, что открывать все локации и проходить все добавочные задания в итоге выгоднее. Но для этого он должен делать исследовательские ходы, которые имеют более низкую предсказанную оценку, нежели уже какие-то известные.
В общем, это обширная тема. И если она вас интересует, я рекомендую для начала почитать книгу «Reinforcement Learning: An Introduction», Richard S. Sutton and Andrew G. Barto — она есть в свободном доступе.
OpenAI Universe. Открытая платформа для тренировки сильного ИИ