Мені б хотілося скористатися навчанням підкріплення, щоб покращити двигун, граючи проти себе. Я читав про цю тему, але все ще сильно розгублений.
Будьте попереджені: Підсилення навчання - це великий складний предмет. Хоча це може зайняти вас в дорозі від ігрових ботів, можливо, ви захочете вивчити основи RL. Хорошим місцем для початку є навчання зміцнення Саттона та Барто : вступ
Яка ще нагорода є в грі, яка є виграш-виграш (1 або 0)?
Залежно від вашої гри, зазвичай це. Насправді для гри на виграш / нічию / програш як шахи, тоді винагорода від кожної дії дорівнює 0, крім виграшу (+1) або програшу (-1) наприкінці. У грі з нульовою сумою це добре підходить до мінімаксу, обрізки алфавітою тощо.
Навчання підсиленням призначене для вирішення навколишнього середовища із затримкою винагород. Додавання «помічницьких» винагород для тимчасових нецілей зазвичай є контрпродуктивним.
Якщо я використовую інші винагороди, як, наприклад, результат з функції оцінки на кожному кроці, як я можу це реалізувати?
Зазвичай ви цього не робите. Що застосовуватиме самостійний гра RL - це дізнатися функцію повернення (іноді її називають утилітою ), яка прогнозує очікування вашої загальної + 1/0 / -1 нагороди до кінця гри. Ви б використали це замість вашого поточного евристичного для пошуку в мінімаксі. Або, можливо, ви могли б налаштувати свою поточну евристичну функцію для виведення в одному діапазоні і використовувати RL для оптимізації її ваг, щоб зробити найкраще наближення до справжньої оптимальної функції повернення відтворення (що, ймовірно, занадто складно, щоб точно обчислити).
Як змінити функцію оцінювання для кращої ітерації нагород після ітерації?
Ось до чого всі спроби зробити різні RL, існує безліч різних вирішувачів. Немає короткого способу пояснити це. Ви можете почати з простого методу, такого як Q-навчання . Q-навчання вивчає оцінки Q (s, a) (називається значенням дії), яка є очікуваною віддачею в стані s та вживанні заходів a, а потім після оптимальної політики. Зробити довільну здогадку для початку та уточнити її ближче до справжнього значення з кожним кроком, зробленим у навчальному середовищі. Прості табличні Q-студенти роблять це вдосконалення, просто зберігаючи велику таблицю всіх станів і дій з найкращою оцінкою досі справжнього значення і усереднюючи кожну нову оцінку, як вона переживається.
Також можливо поєднувати метод евристики RL з пошуком в міні-максі вперед - саме це робив оригінальний AlphaGo і те, що робить AlphaGo Zero під час тренувань. Це потужний підхід, оскільки пошук у minimax буде працювати для подвійної перевірки евристики, породженої RL. Хоча для досить простих ігор RL може вивчити ідеальну евристику, і вам знадобиться лише локальний пошук (яким повинен бути наступний крок).
Якщо ваша гра не дуже проста (всі можливі стани помістилися б у пам'яті), вам знадобиться якийсь аппроксиматор функції всередині алгоритму RL. Нейронні мережі - це стандартний вибір. Мати щось для цієї частини неминуче - хоча інший вдалий вибір - визначити купу проксі-функцій (які ви можете використати для побудови евристики вручну) та використовувати лінійний апроксиматор - просто зважена сума всіх функцій. Це може працювати досить добре, і це було використано, наприклад, у шашках (чернетках) гравців, тренованих за допомогою РЛ.
Насправді, за умови, що ваша власна евристична функція не надто незвичайна, ви, ймовірно, можете поводитись з нею як лінійний наближувач і використовувати RL, щоб дізнатися найкращі ваги для неї.