Рендзю (семинар) — различия между версиями
Строка 80: | Строка 80: | ||
# Dyna-Q и Dyna-Q+ | # Dyna-Q и Dyna-Q+ | ||
# Prioritized sweeping | # Prioritized sweeping | ||
+ | |||
+ | ===S11.02=== | ||
+ | Посвятили семинар обсуждения игры крестиков и ноликов на основе алгоритма DT(0). | ||
===S01.02=== | ===S01.02=== |
Версия 16:01, 5 марта 2017
Описание проекта, последний семинар.
Содержание
Правила игры
- Ментор: Симагин Денис.
- Место: офис Яндекса (место встречи)
- Время: c 19:00, каждую среду.
Общение с ментором вне занятий приветствуется. Можно задавать вопросы, в том числе философские. Но перед тем, как написать, попробуйте спросить это у Яндекса. Также не обижайтесь, если в ответ вам пришла ссылка на документацию или какую-то статью.
Ключевые точки
Сверху нам спущены ключевые точки выполнения проекта. Для нас они скорее явлются формальными, тем не менее мы должны их соблюдать.
- 12-17 декабря - все включились в работу
- 20-25 марта - реализован объем работ, необходимый для зачета
- 30 мая - 3 июня - окончание проектной работы, вы готовы, как пионеры.
- начало июня - конкурс проектов.
Правило 2Х
У вас есть право на одну ошибку. Следующая - я отказываюсь с вами работать.
Репозитории
Студенты хранят свой код в следующих репозиториях
Разбор статьи
В рамках проекта студент должен разобрать интересную для него статью и доложить ее на общем семинаре.
Студент | Статья | Дата |
---|---|---|
Харламов | http://web.stanford.edu/~takapoui/linear_bandits.pdf | - |
Сопов | https://papers.nips.cc/paper/6068-learning-feed-forward-one-shot-learners.pdf | - |
Гринберг | https://arxiv.org/pdf/1611.01626.pdf | - |
Баранов | https://arxiv.org/pdf/1611.01224.pdf | - |
Стороженко | https://arxiv.org/pdf/1511.06581v3.pdf | 19 марта |
Лабораторные
Лабораторные проводятся для практического закрепления материала. Их выполнение учитывается в итоговой оценке.
- Результатом работы является jupyter notebook, где сохранен вывод вашего кода, графики и т.п. А так же его импорт в формат .py. Для автоматизации процесса можно настроить jupyter.
- Когда сроки выполнения лабораторной завершены, вы выкладываете ее на ревью, создавая соответствующее задание и запрос на объединение ветки с мастером (не забудьте добавить проверяющего).
- Ваш коллега проводит ревью кода и может оставлять замечания, как в виде комментариев к заданию, так и в файле .py. Оно предполагает проверку стиля и правильность кода, а также конструктивные замечания по производительности. Однако не стремитесь сразу оптимизировать код. Добейтесь лучше того, чтобы все работало правильно.
- Когда ревью завершено, влейтесь в мастер и закройте задание.
Результаты
Текущие результаты можно найти здесь. Оценка складывается из нескольких частей:
- Работа на семинаре
- Доклад статьи
- Итоговое качество игры
Семинары
S01.03
- Освежили подход TD(0): SARSA, Q-learning и Expected SARSA
- Double Q-learning
- n-step TD и n-step tree backup
- Поговорил про Monte Carlo tree search
Дополнительное чтение. Не говорил на семинаре, но можно почитать:
- Sample ratio для TD(0) подхода
- Dyna-Q и Dyna-Q+
- Prioritized sweeping
S11.02
Посвятили семинар обсуждения игры крестиков и ноликов на основе алгоритма DT(0).
S01.02
Обсудили будущее. Всю дальнейшую теорию будем рассматривать сразу в рамках игры рендзю. Также согласовали формат данных для партии.
Формат данных
- Каждая партия представляет собой строку в файле (в качестве разделителя используем '\n').
- В начале строки записан результат {black, white, draw, unknown}.
- Далее через пробельный разделитель перечислены ходы игроков в формате столбец-строка.
- Столбцы пронумерованы строчными буквами латинского алфавита .
- Строки пронумерованы арабскими цифрами, начиная с 1.
- Начало координатной сетки в левом нижнем углу.
- Предполагается, что первый ход делают черные.
Пример: unknown h8 g9 ...
Скрипт для справедливого распределения заданий по подготовке данных для обучения можно найти здесь.
S25.01
- Поговорили на тему многоруких бандитов.
- Начали осваивать reinforcment learning.
Полезная книга может быть найдена здесь.
L4
Ревьюер | Разработчик | Оценка |
---|---|---|
Сопов | Харламов | - |
Гринберг | Сопов | - |
Баранов | Гринберг | - |
Стороженко | Баранов | - |
Харламов | Стороженко | - |
Появилась очередная лабораторная работа L4.
Cроки:
- Начало ревью: 11 февраля, 00:00.
- Окончание: 16 февраля, 23:59.
S18.01
В связи с болезнью ментора занятие отменено.
H11.01
Произвели разбор L3. Описание модели победителя можно найти [здесь], а baseline доступен здесь.
Доклады мне не очень понравились. Постараюсь написать общие замечания.
- Прежде всего у докладчика должна быть хорошая речь.
- Нужно выделить то, что действительно важно и интересно для слушателя.
- Делать на доске четкие и простые рисунки и записи, убедиться, что аудитория тебя понимает.
- Не прыгать с темы на тему, а идти в соответсвии с логическим планом.
S14.12
Начали разбирать нашу статью. Есть пара источников на русском:
H11.12
Занятие было посвящено выполнению второй лабораторной. Интересный ноутбук скоро появится [здесь].
S08.12
1. Известные архитектуры сверточных сетей
2. Поговорили:
- На что активируются нейроны в зависимости от слоя
- Генерация 'похожих картинок'
- Послойное обучение сети
- Переобучение или дообучение уже готовой сети
3. Изучили примеры для библиотеки Keras
- Полносвязанная сеть
- Сверточная сеть
- Переобучение сверточной сети
L3
Студент | CPU | RAM | GPU |
---|---|---|---|
Пример | 6 core, 3,5 GHz | 64GB | NVIDIA TITAN X |
Харламов | 4 core, 3,6 GHz | 16GB | NVIDIA GTX 960m 2GB |
Сопов | 4 core, 2,7 GHz | 8GB | NVIDIA GTX 940m |
Гринберг | 4 core, 3,6 GHz | 16 GB | NVIDIA GTX 1070 8GB |
Баранов | 4 core, 3,5GHz | 8GB | NVIDIA GTX 960m 2GB |
Стороженко | 6 core 3.0 GHz | 16 GB | NVIDIA GTX 1060 6GB |
Победить в конкурсе классификации, срок 3 января, 23:59.
Для этого вам понадобится
- Установить Tensorflow
- Установить Keras
- Запастись терпением
S01.12
1. Полносвязанные сети:
- Подсчитаны производные для Backpropagation, обсуждены тонкости реализации.
- Различные виды нелинейности: ReLu, PReLu, Sigmoid.
- Обучение сетей при помощи Autoencoder.
2. Сверточные сети:
- Cтруктура CNN.
- Затронуты: Convolution, Pooling.
- Влияние различных ядер свертки на структуру сети.
- Feature maps.
- Разобрана архитектура Alexnet.
- Сочетание из Convolutional и Dense слоев.
S24.11
1. Регуляризация:
- Разобрали L1 и L2 регуляризаторы, можно найти здесь.
- Используйте простые классификаторы
- Раняя остановка (смотрим качество на отложенном множестве)
- Добавление шума
- Комбинирование классификаторов
2. Полносвязанные сети:
- Множественная классификация и softmax.
- Метод обратного распространения ошибки, проблема при обучении.
- Инициализация весов: и xavier и другие вариации.
- Кратко о dropout.
L2
Задание можно найти здесь, срок 23:59 11 декабря.
S02.11
- Признаки и какие они бывают. Об отборе признаков, кратко тут. Может помочь на конкурсе.
- Задача бинарной классификации.
- Градиентный спуск.
- Стохастический градиентный спуск. На английской вике больше интересной информации.
Для дополнительного чтения:
- Что полезно знать о машинном обучении.
- Английская вика про признаки
- Отбор признаков.
- Мощная теоретическая работа про стохастический градиентный спуск.
L1
Ревьюер | Разработчик | Оценка |
---|---|---|
Харламов | Сопов | 9 |
Сопов | Гринберг | 10 |
Гринберг | Баранов | 8 |
Баранов | Стороженко | 10 |
Стороженко | Харламов | 8 |
Для первой лабораторной работы вам потребуется:
- Настроить себе pip для Python3
- Освоить Jupyter notebook
- Установить пакеты scipy: numpy, scipy, matplotlib