Модуль 6
36,00ч

Глубокое обучение и его практические применения

Дисциплина знакомит слушателей с основными понятиями глубокого обучения. Обсуждаются наиболее популярные и эффективные для решения прикладных задач архитектуры современных нейронных сетей, в том числе многослойные сверточные и рекуррентные нейронные сети. Рассматривается применение методов глубокого обучения для решения прикладных задач в области компьютерного зрения и автоматического обработки текстов.
Часов в программе
12,00 часов
лекции
12,00 часов
практика
8,00 часов
самостоятельная
4,00 часа
промежуточная аттестация
36,00 часов
всего
Материально-технические условия реализации программы:
Вид занятий: Просмотр онлайн лекций
Требуемое ПО:
Web-браузер - любой из перечисленных:
Chrome, Safari, Internet Explorer
Для работы с текстовыми материалами Adobe Acrobat Reader DC
Вид занятий: Участие в вебинаре
Требуемое ПО:
Операционная система:
Windows - 64-битная x86, 32-битная x86; MacOS - 64-битная x86; Linux - 64-битная x86, 64-битная Power8 / Power9
online.ifmo.ru - облачный сервис, предоставляющий возможность работы с хранилищами данных
https://online.ifmo.ru/pls/apex - Oracle Apex
https://online.ifmo.ru/mongo/ - MongoDb
https://online.ifmo.ru/cassandra/ - Apach Cassandra
https://online.ifmo.ru/pgadmin4/ - PostgreSQL
Альтернативное программное обеспечение доступно по ссылкам:
https://sandbox.neo4j.com - Neo4j
https://www.postgresql.org/download/windows/ - PostgreSQL
https://www.oracle.com/database/technologies/xe-downloads.html - Oracle Express
https://redis.io/download - Redis
https://www.mongodb.com/try/download - MongoDb
https://cassandra.apache.org/download/ - Cassandra
https://neo4j.com/download/ - Neo4j
https://colab.research.google.com — облачная среда для работы с кодом Python в браузере.
http://www.numpy.org — библиотека на языке программирования Python, добавляющая поддержку больших многомерных массивов и матриц.
https://pandas.pydata.org — библиотека на языке программирования Python для обработки и анализа данных.
https://matplotlib.org — библиотека на языке программирования Python для построения графиков.
https://scikit-learn.org — библиотека машинного обучения на языке программирования Python.
Вид занятий: Выполнение практических заданий
Требуемое ПО:
Операционная система:
Windows - 64-битная x86, 32-битная x86; MacOS - 64-битная x86; Linux - 64-битная x86, 64-битная Power8 / Power9
online.ifmo.ru - облачный сервис, предоставляющий возможность работы с хранилищами данных
https://online.ifmo.ru/pls/apex - Oracle Apex
https://online.ifmo.ru/mongo/ - MongoDb
https://online.ifmo.ru/cassandra/ - Apach Cassandra
https://online.ifmo.ru/pgadmin4/ - PostgreSQL
Альтернативное программное обеспечение доступно по ссылкам:
https://sandbox.neo4j.com - Neo4j
https://www.postgresql.org/download/windows/ - PostgreSQL
https://www.oracle.com/database/technologies/xe-downloads.html - Oracle Express
https://redis.io/download - Redis
https://www.mongodb.com/try/download - MongoDb
https://cassandra.apache.org/download/ - Cassandra
https://neo4j.com/download/ - Neo4j
https://colab.research.google.com — облачная среда для работы с кодом Python в браузере.
http://www.numpy.org — библиотека на языке программирования Python, добавляющая поддержку больших многомерных массивов и матриц.
https://pandas.pydata.org — библиотека на языке программирования Python для обработки и анализа данных.
https://matplotlib.org — библиотека на языке программирования Python для построения графиков.
https://scikit-learn.org — библиотека машинного обучения на языке программирования Python.
Вид занятий: Самостоятельная работа
Требуемое ПО:
Операционная система:
Windows - 64-битная x86, 32-битная x86; MacOS - 64-битная x86; Linux - 64-битная x86, 64-битная Power8 / Power9
online.ifmo.ru - облачный сервис, предоставляющий возможность работы с хранилищами данных
https://online.ifmo.ru/pls/apex - Oracle Apex
https://online.ifmo.ru/mongo/ - MongoDb
https://online.ifmo.ru/cassandra/ - Apach Cassandra
https://online.ifmo.ru/pgadmin4/ - PostgreSQL
Альтернативное программное обеспечение доступно по ссылкам:
https://sandbox.neo4j.com - Neo4j
https://www.postgresql.org/download/windows/ - PostgreSQL
https://www.oracle.com/database/technologies/xe-downloads.html - Oracle Express
https://redis.io/download - Redis
https://www.mongodb.com/try/download - MongoDb
https://cassandra.apache.org/download/ - Cassandra
https://neo4j.com/download/ - Neo4j
https://colab.research.google.com — облачная среда для работы с кодом Python в браузере.
http://www.numpy.org — библиотека на языке программирования Python, добавляющая поддержку больших многомерных массивов и матриц.
https://pandas.pydata.org — библиотека на языке программирования Python для обработки и анализа данных.
https://matplotlib.org — библиотека на языке программирования Python для построения графиков.
https://scikit-learn.org — библиотека машинного обучения на языке программирования Python.
Информационные ресуры
Сергей Николенко, А. Кадурин, Екатерина Архангельская − Глубокое обучение. Погружение в мир нейронных сетей, 2018 г.

https://colab.research.google.com — облачная среда для работы с кодом Python в браузере.
https://www.tensorflow.org/
https://learn.microsoft.com/en-us/cognitive-toolkit/
https://keras.io/
Образовательные ресуры
http://www.machinelearning.ru/ — Профессиональный информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных.

https://cloud.yandex.ru/services/datasphere - сервис для ML-разработки, предоставляющий все необходимые инструменты и динамически масштабируемые ресурсы для полного цикла разработки машинного обучения

Учебник по машинному обучению от Яндекса
https://academy.yandex.ru/handbook/ml

Учебно-методические материалы

Методы, формы и технологии

Обучение происходит в смешанном формате. Модуль реализуется с помощью :
- онлайн лекций на платформе https://dc-edu.itmo.ru/,
- установочных лекций через видеоконференции Zoom,
- практических заданий с автоматизированной системой проверки,
- мастер-классов и консультаций через видеоконференции Zoom,
- проверочной работы, выполняемой с системой прокторинга.
Послу установочной лекции слушатели изучают материалы онлайн курса, выполняют обучающие и проверочные задания. Регулярно устраиваются мастер-классы и консультации по материалам модуля.

Методические разработки

Обучающие материалы модуля представлены в виде видеолекций, текстовых материалов, обучающих инструкций, размещенных на платформе https://dc-edu.itmo.ru/

Материалы курса

видео-лекции
текстовые материалы лекций
инструкции для выполнения заданий
обучающие задания с автоматизированой системой проверки и подсказками
проверочные задания с автоматизированой системой проверки

Учебная литература

1. Статья. Stable Diffusion. Самая впечатляющая нейросеть
https://vc.ru/future/506283-stable-diffusion-samaya-vpechatlyayushchaya-neyroset-kak-polzovatsya-novym-instrumentom-ii
2. Гудфеллоу Я., Бенджио И., Курвилль А. − Глубокое обучение, 2017 г.
3. Франсуа Шолле − Глубокое обучение на Python, 2018 г.

Темы

Понятие полносвязной сети Инструменты построения и обучения нейронных сетей, оптимизаторы. Сверточные нейронные сети Рекуррентные нейронные сети
Лекции
3,00ч
Практические занятия
3,00ч
Самостоятельная работа
2,00ч
Всего
8,00ч
Лекции
3,00ч
Практические занятия
3,00ч
Самостоятельная работа
2,00ч
Всего
8,00ч
Лекции
3,00ч
Практические занятия
3,00ч
Самостоятельная работа
2,00ч
Всего
8,00ч
Лекции
3,00ч
Практические занятия
3,00ч
Самостоятельная работа
2,00ч
Всего
8,00ч
Промежуточная аттестация 4,00 часа
Пример задания:
В данной работе предлагается применить рекуррентные сети к задаче предсказания цены акций компании Microsoft.
В приложенном блокноте можно найти частично готовый к применению код, некоторые элементы которого пропущены и вместо них написан текст: "<ENTER YOUR CODE HERE>". Это означает, что в этом месте необходимо написать собственный код, решающий какую-то конкретную подзадачу. Детали можно найти в комментариях около каждого из таких мест:
Вместе с ноутбуком можно найти файл MSFT_corrupted.csv. Прочитайте и запишите его в фрейм.
Судя по названию файла, в нем могут присутствовать проблемы с данными. Проверьте данные на наличие NaN и каким-либо образом восстановите пропущенные значения.
В данной работе ставится задача предсказывать стоимость акции на момент закрытия дня (колонка 'close'). Постройте график этой колонки.
Задайте глобальные константы - количества эпох, дней и коэффициент деления массива.
С помощью MinMaxScaler'а приведите данные к значениям на отрезке [0, 1].
Создайте тренировочный набор данных. Набор будет выглядеть следующим образом: необходимо брать данные за последние X дней и формировать из этого вектор X, а вектор Y будет являться значением стоимости акции на следующий день.
Создайте модель для предсказания. Первым слоем модели должен являться рекуррентный слой с соответствующей формой входного тензора, последним - полносвязный слой с единственным нейроном для предсказания результата.
Для тестирования модели аналогичным образом сформируйте тестовый датасет.
Получите предсказания и визуализируйте результаты.
В качестве бейзлайна (т.е. базовой просто модели для сравнения) выберите step-1 модель. Данная модель для дня i просто берет значение дня i-1. Реализуйте такую модель и в массив prediction_step запишите ее результаты для тех же данных.
В процессе анализа стоимости акций важным параметром является Moving Average - средняя стоимость акций за последние N дней. Вам необходимо вычислить MA за последние 7, 14 и 28 дней и добавить их как отдельные столбцы к тренировочным данным. После чего - натренировать новую нейронную сеть, которая будет получать MA 7, 14, 28 как входные данные и пытаться предсказывать их значения.
Сравните полученный результат с step-1 моделью и попробуйте построить предсказания из единственной точки. Сможет ли Moving Average исправить проблемы тренда за счет более гладких и усредненных результатов?