Курс: Нейронные сети. Компьютерное зрение и библиотека PyTorch
Продолжительность курса: 24 ак. ч.
Описание курса:
Нейронные сети – технология, революционно изменившая мир компьютерного зрения, переведя решение многих задач от традиционного логического подхода к эффективным data-driven решениям. Мы уже успели привыкнуть к разблокировке мобильных устройств «по лицу», к распознаванию текста на фото и понемногу начинаем привыкать к сгенерированным нейросетями изображениям.
В рамках данного курса слушатели познакомятся с популярнейшей библиотекой PyTorch и решениями в области компьютерного зрения и компьютерной графики на ее базе. Помимо этого, слушатели изучат теоретические основы нейросетей, попробуют себя в качестве создателей сетей «с нуля», а также с различными способами переноса обучения уже готовых «нейронок». Слушателям будет предложено пройти весь путь от разметки данных до создания прототипа приложения.
Обучение проходит либо в облачной среде Google Colab, либо на компьютерах с установленным GPU.
Аудитория:
• Программисты Python
• ИТ-специалисты
Необходимая подготовка:
• Успешное окончание курса «Python для машинного обучения», или эквивалентная подготовка.
• Успешное окончание курса «Программирование на Python. Уровень 4. Анализ и визуализация данных: Pandas, Numpy, Matplotlib», или эквивалентная подготовка.
Программа курса:
Модуль 1. Введение в Pytorch и подготовку изображений
• Введение в курс: технические требования, облачные решения.
• Введение в нейронные сети: область применения, история, современность.
• Что такое PyTorch?
• Что такое тензоры, операции с тензорами.
• Графические изображения как тензоры.
• Предварительная обработка графических изображений: PIL и OpenCV.
• Практикум: загрузка, подготовка и вывод изображений в Jupyter Notebook.
Модуль 2. Полносвязная нейросеть
• Теория нейронных сетей: функции активации и потерь, градиенты, метрики.
• Создание сети в PyTorch: «многослойный персептрон» (MLP).
• Использование PyTorch при работе с векторами и табличными данными.
• Визуализация процесса обучения: matplotlib и tensorboard.
• Обучающий и валидационный датасет, мини-батчи: стратегии формирования.
• Настройка гиперпараметров сети (функция активации, кол-во весов).
• Оптимизация процесса обучения (выбор кол-ва эпох, размеров батчей, скорости обучения и т.д.).
• Инструменты регуляризации нейронной сети (dropout).
• Практикум на датасетах «рукописные цифры» и MNIST.
Модуль 3. Cверточная нейросеть
• Операция «свертка» на примере детектора краев Собеля.
• Обучение простейшей сверточной нейронной сети в PyTorch (LeNetV5).
• Элементы сверточных сетей: слои max-pooling и др.
• Подбор параметров сверточной нейронной сети.
• Практикум на датасете MNIST.
Модуль 4. Перенос обучения и задача классификации
• Генераторы данных для изображений в PyTorch.
• Подготовка датасетов изображений для обучения классификатора.
• Создание сверточной нейронной сети для классификации изображений.
• Аугментация данных: использование преобразователей Torchvision.
• Загрузка моделей из различных источников.
• Перенос обучения на примере модели архитектуры ResNet50.
• Оптимизация скорости обучения при переносе.
• Практикум на датасете «кошки против собак».
Модуль 5. Распознавание объектов на изображении
• Задача сегментации изображений: современные решения.
• Подход YOLO (You Only Look Once).
• Нейронные сети YOLOv5, Detectron2.
• Средства для разметки данных, подходы к разметке.
• Перенос обучения сети YOLOv5.
• Преобразования обнаруженных объектов.
• Практикум на различных датасетах, курсовая работа «распознавание объектов».
Модуль 6. Эмбеддинги, поиск по фото и генеративные модели
• Выделение эмебеддингов изображений.
• Поиск похожих изображений на базе эмбеддингов и алгоритма kNN.
• Кластеризация изображений.
• Эмбеддинги и скрытые (latent) пространства, автокодировщики (VAE).
• Другие генеративные алгоритмы: GAN, StableDiffusion.
• Практика
Модуль 7. Демонстрация работы моделей
• Создание демонстрационного приложения на базе библиотеки Gradio.
Окончательная цена указывается в договоре на обучение.
Записаться на курс