• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2019/2020

Обучение представлений и глубокое обучение

Статус: Курс по выбору (Науки о данных)
Направление: 01.04.02. Прикладная математика и информатика
Когда читается: 2-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Прогр. обучения: Науки о данных
Язык: русский
Кредиты: 8
Контактные часы: 56

Программа дисциплины

Аннотация

"Курс посвящен ""глубинному обучению"", т.е. новому поколению методов, основанному на многослойных нейронных сетях и позволившему радикально улучшить работу систем распознавания образов и искусственного интеллекта. В начале курса мы рассмотрим основы глубокого обучения (и, отчасти, ""крупномасштабного"" машинного обучения вообще). Следующие четыре лекции будут посвящены детальному рассмотрению сверточных нейросетей и их применениям в области компьютерного зрения (на данный момент сверточные нейросети в компьютерном зрении —— самый бесспорный и громкий успех глубокого обучения). Затем мы рассмотрим рекуррентные нейросети и то, как они применяются в задачах, связанных с естественным языком, а также совсем недавно появившиеся модели, направленные на моделирование более универсального искусственного интеллекта и делающие первые шаги в этом направлении."
Цель освоения дисциплины

Цель освоения дисциплины

  • Ознакомление с основными принципами и методологией глубинного обучения, приобретение навыков применения глубинного обучения для решения практических задач.
Планируемые результаты обучения

Планируемые результаты обучения

  • владеть однтм из нейросетевых фреймворков keras и tensorflow или pytorch
  • знать метод обратного распространения ошибки
  • знать основные функции активации, их достоинства и границы применимости
  • уметь определять наличие переобучения, предлагать способы борьбы с ним;
  • знать важнейшие компоненты архитектуры нейронных сетей, такие как: полносвязные слои, свёрточные слои, рекуррентные архитектуры, skip connections;
  • уметь выбрать модель глубинного обучения для решения поставленной задачи;
  • Работа с последовательностями и проекты
  • знать основные принципы глубинного обучения
  • уметь оценить качество полученной модели, предложить способы её улучшения;
  • владеть навыками использования стандартных (в том числе предобученных) архитектур и примене-ния их для решения практических задач.
  • владеть навыками обработки и интерпретации результатов эксперимента
  • уметь обучить выбранную модель с использованием модификаций метода стохастического гради-ентного спуска;
  • уметь обучать глубинные порождающие модели
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение. Основные абстракции глубинное обучение. Обучение представлений.
    Данная тема посвящена закреплению знаний студентов о линейных моделях, введению в глубокое обучение, основным абстракциям и базовым приёмам, необходимым для решения простых задач при помощи нейросетей. К теоретическому материалу прилагается знакомство с фреймворками, используемыми во всех дальнейших заданиях, и решению задачи на классификацию распадов (HiggsML) из Физики Высоких Энергий. 1. Напоминание про линейные модели классификации и регрессии. Модели, функции потерь, алгоритмы обучения, регуляризация. Ограничения линейных моделей. 2. Обучение признаков без учителя (unsupervised feature learning). Метод главных компо-нент (PCA), Ограниченные Машины Больцмана(RBM) (без подробного описания CD). DBM и DBN. 3. Использование RBM для классификации лиц (openml-faces). Преимущества и недостатки обучения признаков без учителя. 4. Многослойный персептрон. Абстракция слоя. Полносвязный слой. Нелинейности. Backpropagation (и почему chain rule). Регуляризация (L1-L2; Dropout). Адаптивные стоха-стические методы оптимизации. 5. Знакомство с theano и lasagne. Описание простой логистической регрессии в Theano. Раз-работка архитектуры глубокой сети для решения задачи HiggsML. Обе практические работы из этого раздела являются обязательными для сдачи курса.
  • Основные сферы применения глубинного обучения.
    "Данный раздел знакомит студентов с классами задач и тем, как их решать при помощи глу-бокого обучения. После ознакомления со всеми областями студентам предлагается опреде-литься с задачей на проект. Попутно объясняются базовые принципы работы свёрточных сетей для изображений и тек-стов. В данное теме намеренно не рассматриваются подробно рекуррентные сети для тек-стов, поскольку их объяснение заняло бы непозволительно много времени. 1. Задачи машинного зрения. Классификация, сегментация, генерация изображений. Свёр-точные сети, Pooling, Batch Normalization. Стандартный пайплайн решения задачи при помо-щи нейронных сетей. 2. Решение задачи классификации NotMnist при помощи свёрточных сетей, или, быть может, любых других методов, которыми студент попытается улучшить точность. 3. Задачи автоматической обработки текстов. Классификация, тэгирование, языковыемоде-ли, машинный перевод, диалоговые системы, тематическое моделирование. Word Embeddings (w2v, glove, trained embedding), текстовые свёрточные сети. 4. Решение задачи классификации нежелательного контента в объявлениях Avito.ru при по-мощи свёрточных сетей над обучаемым словарём word embeddings. 5. Другие сферы приложения. Распознавание и синтез речи. Поиск по текстам и изображени-ям (Information Retrieval, Object Retrieval) Оптимизация стратегии поведения в робототехни-ке. Задачи на стыках сфер (естественно-языковое описание объектов на изображении) 6. Мини-семинар про Inceptionism и попытки понять, что же прячется в чёрной коробке, и почему нейронка приняла своё решение в той или иной ситуации. 7. Дедлайн выбора тем проектных задач и формирования команд (if any). После выбора за-дачи, студенты должны проанализировать несколько статей на данную тему. Обе домашние задачи из данной темы являются обязательными. "
  • Практические задачи компьютерного зрения
    1. Сегментация изображений. Раскрашивание. Предсказание bounding box. Полносвёрточ-ные сети. Deconvolution. Maxout и прочие хитрые нелинейности. Fine-tuning и дообучение сетей. Net2net. 2. Использование сети VGG19, предобученной на ImageNet, для классификации объектов на небольшой выборке изображений. 3. Генеративные сети. Generative adversarial networks (GAN). Gradient reversal trick. Lap- GAN, DC-GAN. Domain adaptation via gradient reversal. 4. Art Style Transfer — применение «фильтра Ван Гога» к изображению при помощи всё той же VGG19. 5. Автокодировщики. Sparse autoencoders, denoizing autoencoders. Вариационные автокоди-ровщики (VAE). Использование автокодировщиков для изменения изображения. Прочие применения автокодировщиков. Common Semantic Space Embedding. 6. Имплементация VAE, обучение на лицах. Image Morphing, добавление улыбки. Обязательным условием сдачи курса является решение хотя бы одного д/з из этого блока или демонстрация результатов работы над схожей задачей.
  • Работа с последовательностями и проекты
    "1. Рекуррентные нейронные сети. Backpropagation through time. GRU, LSTM. Gradient clipping. Применение для Language Modelling. 2. Character Level RNN для генерации статей законодательной системы РФ. 3. Encoder-decoder. Машинный перевод и диалоговые системы. Character level Vs word level. Hierarchical softmax & Negative sampling. Pairwise learning functions. Attention. DRAW. Аль-тернативные структуры рекуррентных сетей. 4. [промежуточный дедлайн по базовому решению проектных задач] 5. Задачи распознавания и синтеза речи 6. Архитектуры с долгосрочной памятью. Stack/List augmented RNN. Neural Turing Ma-chines. RAM-machines. Neural programmer-interpreter. Немногие практические юз-кейсы. 7. Реализация GRU и Stack-Augmented RNN, сравнение эффективности на простых задачах. Обязательным минимумом является выполнение хотя бы одной задачи из этого или среду-ющего раздела (reinforcement learning). "
  • Deep Reinforcement Learning
    1.Формализм MDP. POMDP. Классические способы решения. Проблемы классических спо-собов. Deep Q-learning. Авторорреляции и другие проблемы DQN и способы их нивелиро-вать. Experience Replay и асинхронность. 2. Реализация Deep Recurrent Q-learning для игры в Atari. По умолчанию предлагается ис-пользовать yandexdataschool.AgentNet + OpenAI.Gym. 3. Advantage Actor-Critic.. Континуальное пространство действий в POMDP. DDPG. Сферы применения. 4. Обучение сети оптимальному управлению роботом-манипулятором при помощи DDPG. По умолчанию предлагается использовать yandexdataschool.AgentNet + OpenAI .Gym.MujoCo. Обязательным минимумом является выполнение хотя бы одной задачи из этого или преды-дущего раздела (работа с последовательностями).
  • Оптимизация обученной сети, финал проектной работы
    1. Оптимизация структуры сети. Optimal Brain Damage. Разложения матриц весов. Soft- targets. Битовая магия и float8. Имплементация в железе и BinaryNet. 2. Финальные презентации решений проектных задач студентов. Обсуждение результатов. Ко всем проектам должен прилагаться код, который воспроизводит его результаты.
Элементы контроля

Элементы контроля

  • неблокирующий Домашняя работа 1
  • неблокирующий Домашняя работа 2
  • неблокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.3 * Домашняя работа 1 + 0.3 * Домашняя работа 2 + 0.4 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Decentralized Scheduling for Cooperative Localization With Deep Reinforcement Learning. (2019). IEEE Transactions on Vehicular Technology, (5), 4295. https://doi.org/10.1109/TVT.2019.2913695

Рекомендуемая дополнительная литература

  • Anwar, A., & Raychowdhury, A. (2019). Autonomous Navigation via Deep Reinforcement Learning for Resource Constraint Edge Nodes using Transfer Learning. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsarx&AN=edsarx.1910.05547
  • YU LEI, & WENJIE LI. (2019). Interactive Recommendation with User-Specific Deep Reinforcement Learning. ACM Transactions on Knowledge Discovery from Data, 13(6), 1–15. https://doi.org/10.1145/3359554