Практической основой курса выбран фреймворк PyTorch, с помощью которого выполняется построение и обучение нейронных сетей. Почему именно PyTorch? В действительности, единственный конкурент ему другой аналогичный фреймворк Keras/Tensorflow. Однако PyTorch имеет более удобный функционал проектирования сетей самой разной архитектуры. В то время как Keras/Tensorflow больше зарекомендовал себя в коммерческих приложениях (в продакшене) благодаря несколько более высокой скорости обучения НС. Но различия по скорости работы между этими двумя фреймворками не так существенны, а иногда и вовсе незаметны, чтобы отказываться от удобства PyTorch в пользу Keras/Tensorflow. К тому же, изучив PyTorch, вы легко сможете перейти на Keras/Tensorflow, если в этом возникнет необходимость. Программа курса Введение в нейросети. Тензоры PyTorch Начало Структура и принцип работы полносвязных нейронных сетей Установка PyTorch совместно с CUDA Создание тензоров. Конвертирование в NumPy Тензоры. Автозаполнение, изменение формы Тензоры. Индексирование и срезы Тензоры. Базовые математические операции Тензоры. Тригонометрические и статистические функции Тензоры. Векторно-матричные операции Использование CPU и GPU на примере простой НС Персептрон - возможности классификации образов Создание и обучение моделей полносвязных нейронных сетей Идея обучения НС градиентным алгоритмом Алгоритм back propagation Функции активации и потерь в PyTorch Автоматическое дифференцирование Оптимизаторы. Реализация SGD на PyTorch Классы nn.Linear и nn.Module Форматы выборок. Сбалансированность и репрезентативность Классы Dataset и Dataloader Применение классов Dataset и Dataloader Классификация изображений цифр БД MNIST Трансформации transform. Класс ImageFolder Сохранение и загрузка моделей нейронных сетей Переобучение (overfitting). Критерии останова обучения L2-регуляризатор и Dropout Алгоритм Batch Normalization Классы Sequential, ModuleList и ModuleDict Сверточные нейронные сети Введение в сверточные нейронные сети (CNN) Классы Conv2d и MaxPool2d Пример реализации сверточной нейронной сети Сверточные нейронные сети VGG-16 и VGG-19 Теория стилизации изображений (Neural Style Transfer) Делаем стилизацию изображений на PyTorch Остаточные нейронные сети (residual networks - ResNet) Архитектуры ResNet-18 и ResNet-50 Использование ResNet моделей. Их связь с Dropout и бустингом Transfer Learning (трансферное обучение) Архитектура сети U-Net. Семантическая сегментация изображений Реализация U-Net для семантической сегментации изображений Рекуррентные нейронные сети Введение в рекуррентные нейронные сети Класс nn.RNN рекуррентного слоя Рекуррентная сеть для прогноза символов Понятие эмбеддинга. Embedding слов Прогноз слов рекуррентной нейронной сетью Функции активации в RNN. Двунаправленные RNN Двунаправленные RNN в PyTorch. Сентимент-анализ фраз LSTM - долгая краткосрочная память Рекуррентный блок GRU Автоэнкодеры. Генеративные сети Введение в автоэнкодеры Вариационные автоэнкодеры (VAE) Реализация вариационного автоэнкодера (VAE) Генеративно-состязательные сети (GAN) Реализация GAN на PyTorch