Skip to content

new-okaerinasai/backgammon_project

Repository files navigation

backgammon_project

Backgammon

http://wiki.cs.hse.ru/%D0%A3%D1%87%D0%B8%D0%BC%D1%81%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BD%D0%B0%D1%80%D0%B4%D1%8B_%28%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%29

Здесь будет появляться код по проекту. Что нужно сделать ко 2 контрольной точке:

Реализовать стратегию, которая бьёт рандом в 90% случаев

Сравнить стратегию, обученную при помощи линейной регресии и градиентного спуска

К 3 контрольной точке:

+1 Реализовать визуализацию (частично готово)

+1 Сбор датасета и прогон на нейронных сетях (готово)

+1 Реализация стратегии time-difference learning и нейронных сетей (готово).

+1 реализовать и сравнить несколько вариантов количество скрытых слоёв в нейросети (готово).

+1 Релизовать стратегию с нейронными сетями, которая бьёт уже существующую с линейной регрессией (винрейт <50%) (готово)

#Что готово:

+Линейная модель с 78% винрейта

+Градиентный спуск, который бьёт рандом в 79% случаев.

Вывод: сравнивая эти стратегии, получили, что метод градиентного спуска опережает линейную регрессию. При этом на сбор датасета для обучения линейной регресии ушло около 12 часов, тогда как для градиентного спуска хватило и 10 минут.

+Стратегия с нейронной сетью "из коробки" (использовалась библиотека PyBrain) и теми же факторами. При этом винрейт в сравнении с рандомом оказался равен 81%.

Таким образом, можно утверждать, что нейронная сеть опережает линейную модель.

+Градиентный спуск+нейронные сети.

+Полученная стратегия побеждает линейную регрессию в 52% случаев, что опять доказывает утверждение выше.

+Была также запущена нейронная сеть из sklearn (MLPRegressor) с 1 и 2 слоями. Винрейт против рандома 86%.

+Реализована простейшая визуализация.

+Сравнивая нейронку с 2 слоями с градиентным спуском, убеждаемся, что количество слоёв решает.

#По итогам проекта

Я ознакомился (в теории и на практике) с основами машинного обучения и нейронных сетей

Получен бесценный опыт работы над нетривиальным и довольно громоздким проектом

Получен некоторый минимальный опыт работы с библиотеками PyBrain, sklearn, numpy, scipy, openNN

Значительно улучшены навыки программирования

Releases

No releases published

Packages

No packages published

Languages