Я зараз читаю про машинне навчання і цікавився, як застосувати його до гри Connect Four .
Моя поточна спроба - це простий багатокласовий класифікатор, що використовує модель сигмоїдної функції та метод один проти всіх.
На мою думку, вхідними функціями має бути стан (диск програвача 1, диск програвача 2, порожній) 7x6 = 42 полів сітки.
Виходом буде номер рядка, в який потрібно вставити диск. Оскільки це дискретне число від 1 до 7, я думаю, що це може трактуватися як багатокласова класифікаційна проблема.
Але як я можу генерувати приклади навчання, які можна використовувати під контрольним навчанням?
Основна мета - виграти гру, але результат, очевидно, не відомий при виконанні кожного, але в останню чергу. Якщо я просто дозволю двом гравцям, які вирішують випадковим чином, що потрібно грати один проти одного тисячі разів, чи буде достатньо просто взяти всі кроки, зроблені переможцем кожного ігрового раунду, як навчальні приклади? Або я повинен робити це зовсім іншим способом?
Редагувати: Як було запропоновано в коментарях, я трохи прочитав про навчання підкріплення. З того, що я знаю, я розумію, що Q-Learning повинен зробити трюк, тобто я повинен наблизити функцію Q поточного стану, а дію зробити максимальною сукупною нагородою, починаючи з цього стану. Тоді кожним кроком було б вибрати дію, що призводить до максимального значення Q. Однак у цій грі є занадто багато станів, щоб зробити це, наприклад, як таблицю пошуку. Отже, який ефективний спосіб моделювати цю Q-функцію?