Учимся играть в нарды (проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 17:52, 20 ноября 2015; Gusakov (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Ментор Алексей Гусаков
Учебный семестр Весна 2016
Учебный курс 1-й курс
Проект можно развивать на летней практике
Максимальное количество студентов, выбравших проект: 10



Что это за проект?

Проект заключается в том, чтобы научить компьютер играть в нарды. Делать мы это будем с помощью машинного обучения, причём все знания, которые мы передаём алгоритму минимальные - он знает, какие ходы возможны из какой позиции, а в конце игры узнаёт результат. Оказывается, что за несколько тысяч игр компьютер учится неплохо играть, а при более тщательном подходе обыгрывает человека.

Чему вы научитесь?

Основы машинного обучения, методы линейной регрессии, понятие о нейросетях, temporal-difference learning.

Какие начальные требования?

Интерес к машинному обучению, желание экспериментировать и упорно работать.

Какие будут использоваться технологии?

c++, gtest scikit-learn

Темы вводных занятий

Направления развития

Можно совершенствовать алгоритм машинного обучения, находя/генерируя автоматически факторы. Ещё одним развитием проекта является хорошая визуализация игры.

Критерии оценки

4 балл: Написан класс, описывающий позицию, реализованы правила, по которым делаются ходы. + балл (итого 5): Класс хорошо покрыт тестами. + балл (итого 6): Реализован механизм сравнения разных алгоритмов, есть несколько базовых реализаций алгоритма. + балл (итого 7): Реализован алгоритм, основанный на линейной модели, который побеждает все базовые подходы. + 2 балла (итого 9): То же самое, но на основе более глубокой нейоронной сети. + балл (итого 10): Как-то реализована визуализация, в результате чего можно и человеку сразиться с программой.

Также между алгоритмами будет проведён турнир на спецприз от ментора :)

Ориентировочное расписание занятий

В идеале - вечер пятницы или утро субботы.