Неделя 1: «Введение»
Цели занятий: Узнать основные понятия о том, что такое нейронные сети. В каких
случаях их применяют, и какие требования к ученикам.
Урок 1. Введение
1. Что такое нейронные сети?
2. Какие задачи решают с помощью нейронных сетей?
3. Что необходимо знать, чтобы понимать принципы работы нейронных сетей?
Урок 2. Первая нейронная сеть
1. Абстрактное деление на типы слоёв в любой нейронной сети
2. Особенности входных и выходных слоёв
3. Простейшая архитектура с одним нейроном
4. Вычислительный процесс на одном нейроне
5. Что такое функция активации
Неделя 2: «Прямое распространение»
Цели занятий: Узнать, что такое прямое распространение в нейронной сети. Какая
теория стоит за прямым распространением. Начнём создание своего класса на языке
программирования Python для реализации нейронной сети с прямым
распространением.
Урок 3. Прямое распространение. Теория.
1. Полносвязная нейронная сеть.
2. Чем отличается «глубокое обучение» от просто «обучения»
3. Прямое распространение. Что происходит от слоя к слою. Формулы расчётов
Урок 4. Прямое распространение. Практика
1. Зачем разрабатывать то, что уже и так реализовано в библиотеках?
2. Написание класса на Python для нейронной сети
3. Реализация процесса прямого распространения (без произвольных функций
активации).
Неделя 3: «Обратное распространение. Теория»
Цели занятий: Узнать, каким же образом нейронные сети обучаются, что за теория стоит
за всем этим.
Урок 5. Обратное распространение. Теория 1
1. Функция потерь
2. Градиентный спуск
3. Что такое обратное распространение?
Урок 6. Обратное распространение. Теория 2
1. Теория обратного распространения
2. Алгоритм обратного распространения
Неделя 4: «Обратное распространение. Практика»
Цели занятий: Закрепить полученные знания практикой, дополнив разработанный класс
методом обратного распространения
Урок 7. Обратное распространение. Практика 1
1. Реализация процесса обратного распространения (без произвольных функций
активации).
Урок 8. Обратное распространение. Практика 2
1. Реализация метода стохастического градиентного спуска
2. Практическое применение разработанной нейронной сети
Неделя 5: «Библиотеки для работы с нейронными сетями. Знакомство с библиотекой Keras»
Цели занятий: Узнать основной функционал библиотеки Keras, её назначение. Практика
работы с библиотекой.
Урок 9. Основы Keras
1. Основные известные библиотеки для создания нейронных сетей
2. Keras, как обёртка над более низкоуровневыми библиотеками. Для чего она?
3. Построение первой архитектуры нейронной сети на Keras. Аналогия с
разработанной до этого моделью.
Урок 10. Описание элементов Keras
1. Элементы Keras
2. Особенности применения элементов, что на что влияет
Неделя 6: «Особенности обучения нейронных сетей»
Цели занятий: Изучить ряд особенностей при инициализации весов. Узнать, что такое
переобучение, и как регуляризация помогает в решении этой проблемы.
Урок 11. Кросс-энтропия
1. Сходимость, в зависимости от начальных значений весов
2. Кросс-энтропия. Значение кросс-энтропии
3. Обучение на нескольких выходах. Функция софтмакс.
Урок 12. Переобучение и регуляризация
1. Что такое переобучение модели?
2. Формула регуляризации. Её роль и особенности.
Неделя 7: «Практика по разработке своей нейронной сети. Функции активации»
Цели занятий: Дополнить разработанный класс для обучения нейронной сети методами
инициализации весов, регуляризации и кросс-энтропии. Какие ещё функции активации
существуют, и для чего они.
Урок 13. Практикум по доработке нейронной сети.
1. Создание классов для функций потерь
2. Разработка методов инициализации весов
3. Реализация регуляризации
4. Проверка работы нейронной сети
Урок 14. Функции активации
1. Основные виды функций активации
2. Как они применяются в моделях
3. Для чего нужно такое разнообразие и в как часто их необходимо применять в
скрытых слоях
Неделя 8: «Сложности обучения нейронных сетей»
Цели занятий: Узнаете, что мешает благополучному обучению нейронных сетей, и как
это можно исправить. Переносимость и дообучение нейросетевых моделей на другие
задачи
Урок 15. Сложности обучения нейронной сети
1. Затухающий градиент
2. Что вызывает затухание градиента?
3. Взрывающийся градиент
4. Способы исправления
Урок 16. Переносимость моделей
1. Что такое переносимость моделей?
2. Какие преимущества этого свойства у нейронных сетей
3. Где это применяется, и каким образом это можно сделать?
4. Практический пример применения переносимости моделей.
Неделя 9: «Изображения и сверточные нейронные сети»
Цели занятий: Узнаете особенности архитектуры сверточных нейронных сетей, их
сходства с полносвязными сетями. Увидите примеры применения.
Урок 17. Сверточные нейронные сети. Теория 1
1. Линейные фильтры в обработке изображений
2. Что из себя представляют сверточные нейронные сети.
3. Что происходит внутри? Смысл применения сверточных нейронных сетей в
работе с изображениями.
Урок 18. Сверточные нейронные сети. Теория 2
1. Операция свертки.
2. Pooling и их виды.
3. Dropout. Как метод борьбы с переобучением.
4. Готовые архитектуры, их применимость для решения локальных задач
5. Применение сверточных нейронных сетей в анализе текстов
Неделя 10: «Практика обучения сверточной нейронной сети на Keras и Pytorch.»
Цели занятий: Обучим свою сверточную нейронную сеть для работы с изображениями.
Примените предобученную нейронную сеть для решения локальных задач
классификации изображений.
Урок 19. Практика обучения сверточной сети. Часть 1
1. Обучение на CPU и на GPU в Keras.
2. Работа с датасетом изображений
3. Построение архитектуры в Keras
4. Обучение модели. Валидация результатов
Урок 20. Практика обучения сверточной сети. Часть 2
1. Обучение на CPU и на GPU в Pytorch
2. Работа с датасетом изображений
3. Применение готовых архитектур для работы с изображениями
4. Построение архитектуры в Pytorch
5. Обучение модели. Валидация результатов
Неделя 11: «Реккурентные нейронные сети. Практика реккурентных нейронных сетей.»
Цели занятий: Узнаете, как обрабатывать последовательности с помощью реккурентных
нейронных сетей и какие их виды есть. Отработать на практике и закрепить знания о
реккурентных сетях.
Урок 21. Реккурентные сети
1. Общая архитектура реккурентных сетей.
2. Особенности применения, преимущества и недостатки
3. Развитие реккурентных сетей в LSTM и GRU
Урок 22. Практикум применения реккурентных нейронных сетей
1. Более детальное знакомство с PyTorch
2. Построение модели генерации имён с помощью реккурентных нейронных сетей
Неделя 12: «Реккурентные сети в задаче обучения временных рядов.»
Цели занятий: Узнать, что такое временные ряды, и как они связанны с нейронными
сетями. Попрактикуетесь в построении комбинации реккурентных сетей и полносвязных
для задачи классификации текста.
Урок 23. Практикум временных рядов
1. Знакомство с временными рядами. Что это и где мы их видели?
2. Построение модели прогнозирования значений временного ряда с помощью
реккурентных нейронных сетей
Урок 24. Классификация текстов
1. Работа с данных
2. Построение модели классификации текстов в PyTorch.
3. Обучение модели. Валидация результатов.
Неделя 13: «Более сложные архитектуры нейронных сетей»
Цели занятий: Узнать более сложные архитектуры, и какие преимущества они несут.
Практическая работа в обучении seq2seq-модели для восстановления единого формата
данных.
Урок 25. Сложные архитектуры нейронных сетей
1. Автоэнкодеры и декодеры
2. Seq2seq модели. Особенности применения на примере машинного перевода.
Урок 26. Практика seq2seq.
1. Практика обучения модели восстановления единого формата текста.
Неделя 14: «Продвинутые решения в мире нейронных сетей. Часть 1»
Цели занятий: Узнать, как работают трансформеры. Те самые архитектуры, которые
лежат в основе GPT-моделей и многих других.
Урок 27. Трансформеры
1. Трансформеры, как ядро современных языковых нейросетевых моделей.
2. Механизм Self-attention. Принцип работы.
Урок 28. Применение трансформеров.
1. Какие известные модели содержат в себе трансформеры и что они нам дали?
2. Практический пример применения BERT для локальных задач по работе с
текстами
Неделя 15: «Продвинутые решения в мире нейронных сетей. Часть 2»
Цели занятий: Узнаете про генеративно-состязательные сети, и их популярная сфера
применения. Познакомитесь со Stable Diffusion. С подходом, который осуществил
прорыв в генерации изображений.
Урок 29. Генеративно-состязательные модели (GAN). Stable Diffusion.
1. Что такое GAN, и где они проявили себя?
2. Общий принцип их работы и обучения подобных моделей
3. Как устроен Stable Diffusion. Подход, осуществи
Урок 30. Практика обучения простой GAN
1. Построение модели GAN.
2. Обучение на нескольких итерациях, предварительная оценка результатов.
Неделя 16: «Выводы. Итоговая практическая работа. Экзамен»
Цели занятий: Проверить полученные знания и оценить учащихся
Урок 31. Итог
1. Итоговая практическая работа
2. Экзамен по теоретической части
3. Результаты
4. Ориентирование в дальнейшем развитии