Машинное обучение - одна из самых быстрорастущих областей знаний. Инвестиции в машинное обучение вырастут в 5 раз в течение ближайших 3 лет. И Deep Learning - это передний край данной индустрии.
Вы сможете пройти этот курс, если у вас есть базовое понимание машинного обучения и знание языка Python. В рамках курса вы пройдете полный путь от аренды GPU-сервера, который подходит для Deep Learning, вплоть до создания полноценной рабочей модели для компьютерного зрения, анализа естественного языка и рекомендательных систем.
Курс познакомит с основными библиотеками для Deep Learning, такими как TensorFlow, Keras и другими.
Модуль 1. Введение в искусственные нейронные сети
- Современное применение нейронных сетей. Основные задачи: компьютерное зрение, Natural Language Processing, Self-Driving Agents, GAN, Reinforcement Learning и другие области
- Виды нейронных сетей: прямого распроcтранения, сверточные, рекуррентные, генеративные и другие архитектуры
- Обучение нейронных сетей
- Среда для работы: GoogleColab
Практика:
Сравниваем модели классического машинного обучения (линейную модель, boosting) и нейронную сеть прямого распространения для распознавания рукописных цифр датасета MNIST на Python
Модуль 2. Фреймворки для глубокого обучения (Keras, TensorFlow)
- Введение в фреймворк TensorFlow
- Графы вычислений
- Операции с тензорами
- Цепное правило
- Оптимизация в TensorFlow
- Логирование для TensorBoard
- Работа с TensorFlow в Google.Colab
Практика: Создаем модель распознавания изображений на базе датасета FashionMNIST и фреймворка Keras
Модуль 3. Сверточные нейронные сети
- Введение в сверточные нейронные сети
- Операция свертки
- Простой сверточный слой
- Усложнение сверточного слоя
- Пулинг слой
- Архитектура первой сверточной сети
- Современные архитектуры
- Inception V3
Практика: Распознаем изображения в датасете CIFAR-10 с помощью сверточной нейронной сети
Модуль 4. Оптимизация нейронной сети
- Пути оптимизации нейронной сети
- Функции активации
- Инициализация весов
- Влияние learning rate на сходимость
- Batch нормализация
- Dropout регуляризация
- Стохастический градиентный спуск
- Adam: Adaptive Moment Estimation
- Матричные операции
Практика: Улучшаем скорость и производительность сетей для кейса предыдущего модуля
Модуль 5. Transfer learning & Fine-tuning
- Transfer learning
- Архитектура сети ImageNET
- Оптимизация сети при помощи back propagation
- Автокодировщики: понятия encoder и decoder
- Архитектура автокодировщика
Практика: Дообучение нейронной сети для решения задачи классификации изображений на kaggle
Модуль 6. Обработка естественного языка (NLP)
- Задачи Natural Language Processing (NLP)
- Векторизация текстовых данных
- Сравнение сетей прямого распространения и рекуррентных нейросетей
- Архитектура рекуррентной нейросети. Unfolding
- Продвинутые рекурренты. LSTM (Long Short-Term Memory), GRU (Gated Recurrent Unit)
- Обработки последовательностей: Many-to-One, One-to-Many, Many-to-Many
- Many-to-One в классификации текстов, анализе временных рядов и отображении текста в картинку
- One-to-Many в генерации текстов. Языковая модель
- SEQ 2 SEQ: Encoder-Decoder
- Механизм внимания (Attention). Вычисление весов. Отказ от рекуррентов
- Архитектура TRANSFORMER
Практика: Создаем нейросеть для работы с естественным языком и участвуем в соревновании на kaggle
Модуль 7. Сегментация и Детектирование объектов
- Практические применения сегментации
- Классическая сегментация и сегментация на базе нейросетей
- Методы улучшения производительности модели
- Дилатационная свертка
- Введение в детектирование объектов
- Задача локализации
- Регрессия, классификация и локализация в детектировании объектов
- Region proposals: selective search, edge boxes
- Методы R-CNN и FAST R-CNN
- Методы SSD / YOLO
- Сравнение методов детекции
Практика: Решаем задачу по детекции ядер клеток и по сегментации людей на фотографии
Модуль 8. Reinforcement learning (обучение с подкреплением)
- Классы задач: обучение с учителем, без учителя, обучение с подкреплением
- Применение: игровые агенты, self-driving агенты, робототехника
- Состояния, действия, награды
- Понятие оптимальной политики
- Оценка состояния и действий. Оптимальная Q-функция
- Q-Learning. Уравнение Беллмана
- Exploration vs. Exploitation: исследование и эксплуатация оптимальной стратегии
- Deep Q-Learning (DQN)
- Другие методы RL: Policy Gradients, Actor-Critiс
Практика: Создаем агента для игры на основе DQN алгоритма.
Модуль 9. What's next?
- Другие области применения нейронных сетей
- Self-driving и AI
- GAN: Generative Adversarial Networks
- Перспективы развития области
- Советы по профессиональному развитию
Практика: Генерируем изображение с помощью GAN
Андрей Зимовнов
Ведущий преподаватель специализации, старший разработчик в Яндекс.Дзен
Дмитрий Коробченко
Deep Learning R&D Engineer, NVIDIA