Рендзю (проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 19:19, 18 октября 2017; GalinaKaleeva (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Семинар проекта можно найти здесь.

Ментор Симагин Денис
Учебный семестр Осень 2016
Учебный курс 2-й курс
Проект можно развивать на летней практике
Максимальное количество студентов, выбравших проект: 4-5


Внимание! Данный проект находится в архиве и реализован не будет.

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

Cочетание reinforcement learning и deep learning является "горячей" темой на сегодняшний день. К примеру, изучите статью Playing atari with deep reinforcement learning. Также вы, наверняка, слышали о AlpaGo, программе, которая впервые победила человека, профессионально играющего в Go. Подробнее об этом здесь. Данный проект заключается в изучении подходов, использующихся в AlphaGo, и их реализации при создание собственного алгоритма для игры в рендзю.

Проект будет устроен следующим образом:

  1. Будут еженедельные семинары, на которых мы разберем всю необходимую теорию.
  2. На одном из семинаров вы проведете разбор статьи (англ.), которую изучили самостоятельно.
  3. Будет набор упражнений для закрепления материала.
  4. Ревью кода коллег по проекту.
  5. Между вашими моделями будет устроено соревнование.

Важно. Проект требует много времени. Подразумевается большое количество вычислений и самостоятельные исследования.

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

  1. Основы машинного обучения
  2. Альфа-бета отсечения
  3. Метод Монте-Карло для поиска в дереве
  4. Глубинные нейронные сети

В дополнение к этому:

  1. Поучаствуете в процессе ревью по обе стороны баррикад
  2. Научитесь читать английские статьи

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

  1. Наличие машины с UNIX-подобной ОС, владение командной оболочкой
  2. Вы должны писать на Python 3
  3. Необходимы знания Git, однако я всегда помогу в сложной ситуации
  4. Желательны базовые знания о машинном обучении

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

  1. В качестве основного языка будет Python 3.
  2. Нейронные сети мы будем обучать скорее всего с помощью Theano.
  3. Так же вы можете проводить вычисления на ресурсах aws или воспользоваться google cloud.

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

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

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

  1. Совершенствование модели
  2. Масштабирование модели на большие вычислительные мощности

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

Оценка складывается из пунктов:

  • 3 балла - регулярное посещение занятий, есть некоторая реализация идей, рассказанных на семинаре
  • 1 балл - вы пишете качественный код
  • 1 балл - разбор статьи на семинаре
  • 2 балла - ваш алгоритм играет конкурентно с человеком

Остается еще 3 балла, эта часть оценки будет определена тем, на сколько силен ваш алгоритм по сравнению с решениями коллег. Необходимо понимать, что для получения "зачета" вы должны предоставить работающую программу, пусть и не играющую феерично.

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

Семинары будут проходить в стенах Яндекса каждую неделю в фиксированный день (вторник, среда или четверг). Если будет желание, то можно несколько раз в выходные провести своеобразные хакатоны: собираемся вместе на целый день, работаем, общаемся и трескаем пиццу.