Обновления в изучении временных различий
Я читал о программе TD-Gammon от Tesauro и хотел бы реализовать ее для Tic Tac Toe, но почти вся информация недоступна для меня, как старшеклассника, потому что я не знаю терминологию.
Первое уравнение здесь, http://www.stanford.edu/group/pdplab/pdphandbook/handbookch10.html
дает "общую парадигму обучения под наблюдением". Это говорит о том, что w sub t в левой части уравнения является вектором параметров на шаге времени t. Что именно означает "шаг по времени"? В рамках нейронной сети типа "крестики-нолики", предназначенной для вывода значения состояния доски, будет ли временной шаг соответствовать количеству сыгранных фигур в данной игре? Например, доска, представленная строкой "xoxoxoxox", будет на этапе 9 времени, а доска "xoxoxoxo " будет на этапе 8 времени? Или временной шаг относится к количеству времени, прошедшего с начала обучения?
Поскольку w sub t является вектором веса для данного временного шага, означает ли это, что каждый временной шаг имеет свою собственную функцию оценки (нейронная сеть)? Таким образом, чтобы оценить состояние доски всего одним ходом, вам нужно будет ввести другой NN, чем вы бы кормили состояние доски двумя ходами? Я думаю, что я здесь что-то неправильно истолковываю, потому что, насколько я знаю, Tesauro использовал только один NN для оценки всех состояний платы (хотя трудно найти достоверную информацию о TD-Gammon).
Как получается, что градиент выходного сигнала берется относительно w, а не w sub t?
Заранее спасибо за разъяснение этих идей. Буду признателен за любые советы относительно моего проекта или предложения по доступным материалам для чтения.
1 ответ
TD занимается обучением в рамках Марковского процесса принятия решений. То есть вы начинаете в каком-то состоянии st, выполняете действие at, получаете вознаграждение rt и заканчиваете в другом состоянии - st + 1. Начальное состояние называется s0. Индекс называется временем.
Агент TD начинает не знать, какие награды он получит за то, за какие действия или в каких других состояниях он совершает эти действия. Его цель - узнать, какие действия максимизируют долгосрочное общее вознаграждение.
Государство может представлять состояние платы крестики-нолики. Таким образом, s0 в вашем случае будет чистой доской: "---------", s1 может быть "-o-------", s2 может быть "-o--" x ---- "и т. д. Действие может быть индексом ячейки для отметки. С этим представлением у вас будет 39= 19 683 возможных состояний и 9 возможных действий. После изучения игры у вас будет таблица, в которой будет указано, какую ячейку отмечать на каждой возможной доске.
Такое же прямое представление не будет хорошо работать для нардов, потому что существует слишком много возможных состояний. То, что делает TD-Gammon, это приблизительные состояния с использованием нейронной сети. Веса сети рассматриваются как вектор состояния, и вознаграждение всегда равно 0, за исключением выигрыша.
Сложность в том, что состояние, которое изучает алгоритм TD-Gammon, - это состояние нейронной сети, используемой для оценки позиций платы, а не состояние платы. Таким образом, при t=0 вы не играли ни в одну игру, и сеть находится в исходном состоянии. Каждый раз, когда вам нужно сделать ход, вы используете сеть для выбора наилучшего из возможных, а затем обновляете вес сети в зависимости от того, привел ли этот шаг к победе или нет. Перед выполнением перемещения сеть имеет весовые коэффициенты wt, а затем весовые коэффициенты wt + 1. Сыграв сотни тысяч игр, вы узнаете весовые коэффициенты, которые позволяют нейронной сети достаточно точно оценивать позиции доски.
Я надеюсь, что это проясняет ситуацию.