Обратная связь
По результатам курса вы научитесь применять нейронные сети для многих практических задач, а также оценивать целесообразность их применения. Вы получите опыт подбора архитектуры нейронных сетей и ее быстрой реализации на PyTorch.
Каждое занятие (кроме зачетных) состоит из двух частей: лекции и семинара. На лекции разбирается новый материал, а на семинаре полученные знания закрепляются на практических примерах. К каждому семинарскому занятию выдается шаблон кода, который необходимо дополнить реализацией рассмотренного алгоритма. Такие задания оцениваются в 3 балла. Также в середине и конце семестра будут проведены два рубежных контроля, оцениваемые в 15 баллов каждый. На коллоквиумах проверяются теоретические знания слушателей. Помимо рубежных контролей и семинаров в курсе предусмотрен исследовательский проект (оценивается в 30 баллов). В течение семестра слушатели в командах 2-4 человека проводят исследование на выбранную тему: от анализа литературы до проведения экспериментов и написания отчета.
По сумме баллов выставляется итоговая оценка: 50+ баллов — "удовлетворительно", 70+ баллов — "хорошо", 80+ баллов — "отлично".
Цель курса — изучение используемых в различных отраслях нейросетевых алгоритмов, а также отработка всех изученных методов на практических задачах.
Нейронные сети являются лидирующим подходом в распознавании изображений, речи и текстов. В данном курсе вы познакомитесь как с классическими, так и с недавно предложенными, но уже зарекомендовавшими себя нейросетевыми алгоритмами. Так как курс ориентирован на практику, вы получите опыт реализации классификаторов изображений, системы переноса стиля и генерации изображений при помощи GAN. Студенты получат навык реализации нейронных сетей как "с нуля", так и на библиотеке PyTorch. В курсе вы реализуете своего чат-бота, обучите нейросеть играть в компьютерную игру и генерировать человеческие лица. Вы также получите опыт чтения научных статей и самостоятельного проведения научного исследования.
От студентов требуется уверенное владение аппаратом линейной алгебры, математического анализа и теории вероятностей. Для подготовки к курсу слушателям рекомендуется повторить следующие темы:
Высшая математика:
- Градиент функции многих переменных
- Матричные и векторные производные: производная вектора по вектору, матрицы по числу и т.д.
- Градиентный спуск для оптимизации функции многих переменных
- Градиентный спуск для оптимизации функции многих переменных
Машинное обучение:
- Обучение с учителем и без учителя
- Задачи регрессии и классификации
- Линейная и логистическая регрессии
- Валидация модели: отложенная выборка, k-Fold
Рекомендуемая литература:
1. Neural networks and deep learning - http://neuralnetworksanddeeplearning.com
2. Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron Courville - http://www.deeplearningbook.org
3. Pattern Recognition and Machine Learning, Bishop - http://www.springer.com/gp/book/9780387310732
4. K. Murphy, Machine learning: a probabilistic perspective. - https://mitpress.mit.edu/books/machine-learning-0
Смешанное занятие №1
Лекция:
Нейронные сети. Базовые блоки полносвязных нейронных сетей. Алгоритм обратного распространения ошибки. (Слайды - https://drive.google.com/file/d/0B-w1hxabUvIaQ3ZzbTlmRUFzZkE/view?usp=sharing, видео - https://youtu.be/Am82yvUSwRE)
Семинар:
Матричное дифференцирование. Обучение линейной и логистической регрессий. Реализация полносвязной нейронной сети. (Задание - https://drive.google.com/file/d/0B-w1hxabUvIaTFNDRTZxd1FoWjA)
4 часа 2 часа СР
Смешанное занятие №2
Детали обучения нейронных сетей
Лекция:
Алгоритм обратного распространения ошибки для ветвящихся структур. Проблемы обучения нейронных сетей. Предобработка данных, аугментация, регуляризация. Стохастический градиентный спуск. Подготовка данных при помощи PyTorch. (Слайды - https://drive.google.com/open?id=0B-w1hxabUvIaN3hXMWZtLUpOLW8, видео - https://youtu.be/AecF1N3e30o)
Семинар:
Сравнение различных архитектур нейроннх сетей для задачи распознавания цифр (Задание - https://drive.google.com/file/d/0B-w1hxabUvIaSWt4ektuS1dnb1E)
4 часа 2 часа СР
Смешанное занятие №3
Библиотеки для глубинного обучения
Лекция:
Графы вычислений в PyTorch. Операции с тензорами. Автоматическое дифференцирование. Полносвязные сети. Ветвящиеся архитектуры. Поведение сети при обучении и предсказании: флаги volatile и requires_grad. Сохранение и загрузка модели. (Слайды - https://drive.google.com/open?id=0B-ERLYosMq_cU0h4RVV6bDcyaUE, видео - https://www.youtube.com/watch?v=6gcAZ-uHSQY)
Семинар:
Реализация простейших сетей в библиотеке Pytorch. (Задание - https://drive.google.com/open?id=0B-ERLYosMq_ccElRaVdUcndvR1k)
4 часа 2 часа СР
Смешанное занятие №4
Лекция:
Свертка. Пулинг. Светрочные нейронные сети. Примеры использования сверточных сетей. Интерпретация обученных моделей. (Слайды - https://drive.google.com/open?id=0B-w1hxabUvIaRnBoYUZlcnhES28, видео - https://youtu.be/w8hO0Qp3PDg)
Семинар:
Реализация операций свертки и пулинга, обучение сверточной нейронной сети при помощи библиотеки PyTorch. (Задание - https://drive.google.com/file/d/0B-w1hxabUvIabC1HXzdObll6bU0)
4 часа 2 часа СР
Смешанное занятие №5
Лекция:
Инициализация весов: He, Xavier. Регуляризация: Dropout, DropConnect. Нормализация: batch normalization. (Слайды - https://drive.google.com/open?id=0B-w1hxabUvIaeTZRd0QxN21FSUU, видео - https://youtu.be/PjS2y8LBMLc)
Семинар:
Эксперименты с dropout и batch normalization для сверточной нейронной сети. (Задание - https://drive.google.com/open?id=0B-w1hxabUvIadEhOYTNzUW9NVHc)
4 часа 2 часа СР
Смешанное занятие №6
Лекция:
Современные архитектуры сверточных сетей. Сети Inception и ResNet. Transfer learning. Применение нейронных сетей для задач сегментации и локализации. (Слайды - https://drive.google.com/open?id=0B-ERLYosMq_cU19sQzJ3dDMwTFE, видео - https://youtu.be/jYdVCH26CUQ)
Семинар:
Transfer learning для задачи классификации изображений. (Задание - https://drive.google.com/open?id=0B-ERLYosMq_cOS1tblo3MktybEk)
4 часа 2 часа СР
Смешанное занятие №7
Лекция:
Задача оптимизации. SGD, Momentum, NAG, Adagrad, Adadelta, Adam. (Слайды - https://drive.google.com/file/d/0B-w1hxabUvIac0JnQU5valE2bXM, видео - https://www.youtube.com/watch?v=USV-uNgUXz8)
Семинар:
Реализация рассмотренных методов и их сравнение. (Задание - https://drive.google.com/open?id=0B-w1hxabUvIadm9ndTNZYy1hUmc)
4 часа 2 часа СР
Смешанное занятие №8
Нейронные сети для снижения размерности
Лекция:
Задача снижения размерности. MDS, Isomap. Метод главных компонент (PCA). Вывод главных компонент и доказательство метода множетелей Лагранжа. Автокодировщики. Denoising и разреженные автокодировщики (Слайды - https://drive.google.com/open?id=0B-w1hxabUvIaRzR2RVdLVXNwbWM, видео - https://youtu.be/W5JLSKcuaQo).
Семинар:
Сравнение PCA и автокодировщика (Задание - https://drive.google.com/open?id=0B-w1hxabUvIaSzhfQm5lajVESkk)
4 часа 2 часа СР
Смешанное занятие №9
Лекция:
Рекуррентные сети. Обратное распространение ошибки сквозь время. LSTM сети. GRU сети. Многослойные рекуррентные архитектуры. Модификация dropout и батч-нормализации для рекуррентных сетей. (Слайды - https://drive.google.com/open?id=1YinUpG_fyhVTZfST55yBo_mZNd-yCqmd, видео - https://youtu.be/MiXzBce-9zI)
Семинар:
Реализация модуля LSTM. Сравнение написанной реализации с реализацией из PyTorch (Задание - https://drive.google.com/open?id=1xC4AUps6Ps5P7quldgZObOyDF0VuL-ac)
4 часа 2 часа СР
Рубежный контроль №1
Вопросы коллоквиума состоят из двух секций: теоретического минимума и билетов. В билете два вопроса. При подготовке можно пользоваться любыми материалами, в том числе и электронными. После подготовки вы сначала отвечаете теоретический минимум. Если вы не отвечаете на любой вопрос из этой секции, вы отправляетесь на пересдачу. В случае успешного ответа на теоретический минимум, вы рассказываете билет и отвечаете на доп. вопросы.
Коллоквиум оценивается в 15 баллов. Сдача коллоквиума не на 0 является необходимым условием сдачи курса.
Вопросы:
Теоретический минимум
- Функции потерь для классификации и регрессии
- Проблемы обучения глубинных нейронных сетей
- Граф вычислений
- Задачи на подсчет матричных производных
- Операция свертки
- Операция пулинга
- Постановка задачи оптимизации
- Постановка задачи регрессии
- Постановка задачи классификации
- Способы валидации модели
- Особенности работы с изображениями
- Идея transfer learning
Билеты
- Алгоритм обратного распространения ошибки для графов вычислений
- Модель линейной регрессии и ее решение
- Сверточные нейронные сети
- Dropout, Batch normalization
- GD, SGD, Momentum, NAG
- Adagrad, RMSprop, Adadelta, Adam
- Инициализация сетей: Xavier, He, ортогональная инициализация
- ResNet
- VGG, Network in Network
- Inception
4 часа
Смешанное занятие №10
Нейронные сети для обработки естественного языка
Лекция:
Примеры задач. Обучение представлений: Word2Vec. Ускорение пары linear+softmax: hierarchical softmax, differentiated softmax. Генерация предложений. Модель Seq2Seq. Beam search для поиска лучшего ответа. Приемы для повышения разнообразности ответов. (Слайды - https://drive.google.com/open?id=1WLHz1Q_Kr3GXrRyedJB3InJUMQQae8Y2)
Семинар:
Обучение Seq2Seq на субтитрах фильмов. (Задание - https://drive.google.com/open?id=1DmFFxbrRXeJJNAowDB1GQz0y99KwDsKu)
4 часа 2 часа СР
Смешанное занятие №11
Лекция:
Генеративные и дискриминативные модели. Равновесие Нэша. Генеративные конкурирующие сети (GAN). Генеративные автокодировщики (AAE). Техника domain adaptation. Domain adaptation для перевода изображений между доменами. Wasserstein GAN. (Слайды - https://drive.google.com/open?id=1mu-GHlHINENGNOukmrD9R1B7VRbM8sjB)
Семинар:
Реализация архитектуры GAN для генерации лиц. (Семинар - https://drive.google.com/open?id=1d8EjC5xnQq82aScAzhb1orJi2QaHzUHm)
4 часа 2 часа СР
Смешанное занятие №12
Вариационные автокодировщики (VAE) и Artistic Style
Лекция:
Модель вариационного автокодировщика (VAE). Интерпретация обученных моделей: Deep Dream. Перенос стиля: Artistic style. Ускорение стилизации. (Слайды - https://drive.google.com/open?id=1EWNWRG6dqAnCQJ5jPMaadD379oWtkBvG)
Семинар:
Реализация Deep Dream и Artistic style. (Ноутбук - https://drive.google.com/open?id=1qYDG35EdK5FnML7lAqGiMfgWLzJk-d_U)
4 часа 2 часа СР
Смешанное занятие №13
Обучение с подкреплением часть 1
Лекция:
Основные понятия обучения с подкреплением: агент, среда, стратегия, награда. Value function и Q-function. Уравнения Беллмана. Алгоритм Policy iteration. (Слайды - https://drive.google.com/open?id=1_lA6BOJJj4Kd9ntFOoNrgJn___-u6a0O)
Семинар:
Реализация агента для прохождения игры. (Семинар - https://drive.google.com/open?id=1lI5tEWe9u2D1TaW5DYcKUvtU0jd87-3N)
4 часа 2 часа СР
Смешанное занятие №14
Обучение с подкреплением, часть 2
Лекция:
Алгоритм Q-learning. Модельные подходы. Алгоритм DQN. Alpha Go. (Слайды - https://drive.google.com/open?id=1ngG3gO2JYGFIfFUEa11gBfF5tBvYXoHy, видео - https://www.youtube.com/watch?v=Q5TCPPi-MWA)
Семинар:
Реализация Q-learning и DQN (Задание - https://drive.google.com/open?id=1F2A1q9mU1oalbnl_B3qfH53cgF14OJ9F)
4 часа 2 часа СР
Рубежный контроль №2
Вопросы коллоквиума состоят из двух секций: теоретического минимума и билетов. В билете два вопроса. При подготовке можно пользоваться любыми материалами, в том числе и электронными. После подготовки вы сначала отвечаете теоретический минимум. Если вы не отвечаете на любой вопрос из этой секции, вы отправляетесь на пересдачу. В случае успешного ответа на теоретический минимум, вы рассказываете билет и отвечаете на доп. вопросы.
Коллоквиум оценивается в 15 баллов. Сдача коллоквиума не на 0 является необходимым условием сдачи курса.
Вопросы:
Теоретический минимум
- Задача оптимизации в методе главных компонент
- Архитектура LSTM ячейки
- Идея соперничающих сетей
- KL дивергенция
- Основные понятия обучения с подкреплением: агент, среда, стратегия, награда
- Уравнения Беллмана
- Обратное распространение ошибки сквозь время
Билеты
- Метод главных компонент
- Рекуррентные сети. Проблемы с прохождением градиента. Обратное распространение ошибки сквозь время
- LSTM и GRU сети
- Word2Vec: CBOW и Skip-gram
- Иерархический и дифференцированный софтмакс
- Задача обучения языковой модели. Seq2Seq
- Соперничающие сети и генеративные автокодировщики
- Вариационный автокодировщик. Вариационная нижняя оценка
- Интерпретация обученных сетей. Saliency map. Deep dream и artistic style
- Задача обучения с подкреплением. Алгоритм Policy iteration
- Q-learning. Deep Q-learning.
- Multi-armed bandits
- MCTS
- Alpha go
4 часа
Рубежный контроль №3
Защита исследовательского проекта
Защита исследовательского проекта
4 часа 2 часа СР