Ask me (семинар)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Описание проекта, последнее занятие.

Правила игры

Общение с ментором вне занятий приветствуется. Можно задавать вопросы, в том числе философские. Но перед тем, как написать, попробуйте спросить это у Яндекса. Также не обижайтесь, если в ответ вам пришла ссылка на документацию или какую-то статью.

Ключевые точки

Сверху нам спущены ключевые точки выполнения проекта. Для нас они скорее явлются формальными, тем не менее мы должны их соблюдать.

  1. 12-17 декабря - все включились в работу
  2. 20-25 марта - реализован объем работ, необходимый для зачета
  3. 30 мая - 3 июня - окончание проектной работы, вы готовы, как пионеры.
  4. начало июня - конкурс проектов.

Правило 2Х

У вас есть право на одну ошибку. Следующая - я отказываюсь с вами работать.

Репозитории

Студенты хранят свой код в следующих репозиториях

Ментор https://github.com/dasimagin/askme
Когтенков https://github.com/aakogtenkov/Ask-me-if-you-can
Остяков https://github.com/PavelOstyakov/askme
Рябинин https://github.com/mryab/askme
Попов https://github.com/Akiiino/Ask-Me-Anything
Ширин https://github.com/shirinnikita/ask_me

Разбор статьи

В рамках проекта студент должен разобрать интересную для него статью и доложить ее на общем семинаре.

Студент Статья Дата
Когтенков Deep Knowledge Tracing 9 апреля
Остяков A Context-aware Attention Network for Interactive Question Answering 19 марта
Рябинин Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation 2 апреля
Попов Deep Memory Networks for Attitude Identification 26 марта
Ширин Context-Sensitive Generation of Conversational Responses 16 апреля

Лабораторные

Лабораторные проводятся для практического закрепления материала. Их выполнение учитывается в итоговой оценке.

  1. Результатом работы является jupyter notebook, где сохранен вывод вашего кода, графики и т.п. А так же его импорт в формат .py. Для автоматизации процесса можно настроить jupyter.
  2. Когда сроки выполнения лабораторной завершены, вы выкладываете ее на ревью, создавая соответствующее задание и запрос на объединение ветки с мастером (не забудьте добавить проверяющего).
  3. Ваш коллега проводит ревью кода и может оставлять замечания, как в виде комментариев к заданию, так и в файле .py. Оно предполагает проверку стиля и правильность кода, а также конструктивные замечания по производительности. Однако не стремитесь сразу оптимизировать код. Добейтесь лучше того, чтобы все работало правильно.
  4. Когда ревью завершено, влейтесь в мастер и закройте задание.

Результаты

Текущие результаты можно найти здесь. Оценка складывается из нескольких частей:

  1. Работа на семинаре
  2. Доклад статьи
  3. Итоговый результат

Семинары

S02.03

Разбирали результаты L4, начали говорить на тему проекта.

L5

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

S19.02

  1. Доразбирали вычисление градиента для рекуррентных сетей.
  2. Еще раз поговорили о затухании и взрыве градиента.

Литература для чтения:

  • Прекрасный блог, где можно прочитать про рекуррентные сети, вот первая статья, в начале есть ссылки на продолжение.
  • Про LSTM с картинками.
  • Tensorflow и рекурретные сети.
  • Как работать с последовательностями, пример tensorflow.

S02.02

Начали говорить о рекуррентных сетях, я обещал подробнее описать математику обучения.

  1. Поговорили о рекурретных сетях в общем
  2. Архитектура LSTM сети
  3. Архитектура GRU сети

S29.01

Еще раз вернулись к теме word embedding в контексте нейросетей, список затронутых статей:

  1. Первая сеть, предсказывающая следующее слово.
  2. Статья, где заменяется softmax
  3. Статья Миколова про word2vec.

L4

Лабораторную работу можно найти здесь.

Срок сдачи:

  • Начало ревью: 24 февраля 23:59
  • Окончание ревью: 8 марта 23:59
Ревьюер Разработчик Оценка
Попов Рябинин -
Остяков Попов -
Когтенков Остяков -
Ширин Когтенков -
Рябинин Ширин -

H11.01

Произвели разбор L3. Описание модели победителя можно найти, а baseline доступен здесь.

Доклады мне не очень понравились. Постараюсь написать общие замечания.

  1. Прежде всего у докладчика должна быть хорошая речь.
  2. Нужно выделить то, что действительно важно и интересно для слушателя.
  3. Делать на доске четкие и простые рисунки и записи, убедиться, что аудитория тебя понимает.
  4. Не прыгать с темы на тему, а идти в соответсвии с логическим планом.

S15.12

Поговорили про векторное представление слов, word2vec и другие сверточные сети для работы с естественными языками.

H11.12

Занятие было посвящено выполнению второй лабораторной. Интересный ноутбук скоро появится [здесь].

S08.12

1. Известные архитектуры сверточных сетей

2. Поговорили:

  • На что активируются нейроны в зависимости от слоя
  • Генерация 'похожих картинок'
  • Послойное обучение сети
  • Переобучение или дообучение уже готовой сети

3. Изучили примеры для библиотеки Keras

L3

Студент CPU RAM GPU
Пример 6 core, 3,5 GHz 64GB NVIDIA TITAN X
Рябинин 4 core, 3.5 GHz 16 GB Nvidia GeForce GTX 1070
Попов 4 core, 3.2 GHz 8 GB GeForce GTX 750 Ti
Остяков 8 core, 2,6 GHz 50 GB -
Когтенков 2 core, 1.4 GHz 4 GB -
Ширин 2 core, 1.9 GHz 8 GB -

Победить в конкурсе классификации, срок 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. Полносвязанные сети:

L2

Задание можно найти здесь, срок 23:59 11 декабря.

S03.11

  1. Признаки и какие они бывают. Об отборе признаков, кратко тут. Может помочь на конкурсе.
  2. Задача бинарной классификации.
  3. Градиентный спуск.
  4. Стохастический градиентный спуск. На английской вике больше интересной информации.

Для дополнительного чтения:

  1. Что полезно знать о машинном обучении.
  2. Английская вика про признаки
  3. Отбор признаков.
  4. Мощная теоретическая работа про стохастический градиентный спуск.

L1

Ревьюер Разработчик Оценка
Рябинин Попов 10
Попов Остяков 10
Остяков Когтенков 10
Когтенков Ширин 9.7
Ширин Рябинин 10

Для первой лабораторной работы вам потребуется:

  1. Настроить себе pip для Python3
  2. Освоить Jupyter notebook
  3. Установить пакеты scipy: numpy, scipy, matplotlib