TwiddleLab / Искусственный интеллект / Обучение с наградой
Учимся играть в игры
Что ты узнаешь
- Игра с собой: агент учится игре, играя против своей копии.
- После каждой партии позиции победителя получают оценку чуть выше, а проигравшего чуть ниже.
- В больших играх сеть ценности угадывает, насколько хороша позиция. Так AlphaGo Zero выучила го.
Как идёт урок
В 2016 году программа обыграла одного из лучших игроков в го. Её преемница училась, только играя сама с собой.
Как учиться у партнёра, который знает так же мало? Попробуй на маленькой игре.
Сыграй в палочки против бота, который ходит наугад.
Бери 1, 2 или 3. Кто возьмёт последнюю палочку, тот выиграл.
Теперь пусть бот играет сам с собой.
Каждый столбик это догадка бота, что тот, кому ходить из этой кучки, выиграет. Смотри, как они меняются.
Это игра с собой.
Таблица ценностей это то, что выучил бот. Правило четвёрки ему никто не говорил.
Будь правилом обучения для одной партии.
Сдвинь каждый задетый столбик к результату: 1 для кучек победителя, 0 для кучек проигравшего.
Обыграй обученного бота. Его ценности тебе видны.
Он всегда оставляет тебе кучку, которую считает проигрышной для тебя. Переверни это.
Собери цикл игры с собой на Python.
play_one_game возвращает, какие кучки были у победителя и какие у проигравшего.
Каждая партия: сыграть её, потом пройти по кучкам победителя и подвинуть их к 1, потом кучки проигравшего к 0. Внешний цикл повторяет это 1000 раз.
Из каких кучек тот, кому ходить, проигрывает?
Считай, что соперник никогда не ошибается.
Из числа, кратного 4, сколько ни возьми (от 1 до 3), соперник может взять столько, чтобы пара в сумме дала 4, и оставить следующее кратное 4, и так до 0.
Как AlphaGo Zero (2017) научилась играть в го?
AlphaGo Zero получила только правила. Она сыграла сама с собой миллионы раз, и нейросеть по этим партиям научилась оценивать позиции и предлагать ходы. Потом она обыграла прежнюю AlphaGo со счётом 100:0.
Турнир: обыгрывает ли каждая версия предыдущую?
Выбери две версии бота и дай им сыграть 100 партий.
Предыдущий урок: Взлом награды · Следующий урок: RL в чат-ботах · Часть курса: Обучение с наградой
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.