Александр Дьяконов
Машинное обучение
Акт третий
О курсе
Основная задача программы – ознакомить студентов с теоретическими основами и основными принципами машинного обучения: с классами моделей (линейные, логические, нейросетевые), метриками качествами и подходами к подготовке данных.
Особое внимание в курсе уделяется вопросам предобработки и подготовки данных, генерации и селекции признаков, разведочному анализу данных. В курсе много примеров и практических советов. Кроме классических тем, уделяется время анализу сложных сетей, методам интерпретации данных и моделей.
Команда курса
Александр Дьяконов
Лектор
Филипп Никитин
Семинарист
Анастасия Белозерова
Семинарист
Программа курса
Вводная лекция
Обзор DL

Нейронные сети
  1. Простейшая нейросеть – 1 нейрон.
  2. Функции активации (линейная, пороговая, сигмоида, гиперболический тангенс, softmax, LeakyReLU, ELU, Maxout).
  3. Функциональная выразимость нейрона.
  4. Теорема об универсальной аппроксимации.
  5. Сеть прямого распространения.
  6. Обучение.
  7. Функции ошибки.
  8. Производные на компьютере.
  9. Проблема затухания градиента.
  10. Обратное распространение градиента.
Борьба с переобучением в нейронных сетях
  1. Борьба с переобучением в нейронных сетях.
  2. Нормировки (Normalization of Data).
  3. Инициализация весов (Xavier initialization).
  4. Верификация – ранний останов (Early Stopping).
  5. Мини-батчи (mini-batches) / Batch-обучение.
  6. Продвинутая оптимизация (стохастический градиент с моментом (momentum), метод Нестерова, Adagrad, RMSprop, Adam, AdaDelta).
  7. Зашумление.
  8. Регуляризация + Weight Decay. Max-norm-регуляризация.
  9. Оптимизаторы.
  10. Dropout. Inverted Dropout. DropConnect.
  11. Обрезка градиентов (Gradient clipping). Батч-нормализация (Batch normalization).
  12. Расширение обучающего множества (Data Augmentation). Аугментация: Mixup.
  13. Ансамбль нейросетей.
  14. Диагностика проблем с НС.
  15. Кривые ошибок.
  16. Настройка темпа обучения.
  17. Transfer Learning.
  18. Упрощение НС (Pruning).
  19. Layer Normalization.
  20. Оптимизация гиперпараметров.
  21. Практические советы
Свёрточные нейронные сети
  1. Что такое изображение.
  2. Линейный подход к классификации на несколько классов.
  3. Свёрточные нейронные сети (ConvNet, CNN).
  4. Что такое свёртка (Convolution).
  5. Отступ (Padding).
  6. Шаг (stride).
  7. Реализация свёртки.
  8. Разреженные взаимодействия (sparse interactions).
  9. Pooling (агрегация, субдискретизация / subsampling).
  10. Устройство слоя свёрточной НС, мотивация.
  11. Перевод тензора в тензор.
  12. Смысл свёрток 1×1.
  13. Какие бывают свёртки: Group Convolutions.
  14. Какие бывают свёртки: Depth-wise separable convolution
Архитектуры свёрточный нейронных сетей
Основные архитектуры свёрточных сетей:
  • LeNet,
  • AlexNet,
  • VGG,
  • GoogLeNet,
  • ResNet,
  • Inception-v4,
  • SENet,
  • Network in Network (NiN),
  • Deep Networks with Stochastic Depth,
  • FractalNet,
  • Fractal of FractalNet DenseNets,
  • SqueezeNet,
  • ResNeXt,
  • HyperNets,
  • MobileNet,
  • EfficientNet,
  • SqueezeNet,
  • ShuffleNet,
  • WideResNets.
  • Применение CNN.
  • ResNet: почему работает.
Детектирование объектов на изображениях
Задачи с изображениями:
  • Классификация,
  • Локализация,
  • Детектирование,
  • Сегментация,
  • Преобразование изображений,
  • Восстановление объектов.

Классификация изображений – почему нетривиальная задача, решение, проблемы.

Детектирование объектов:
  • R-CNN, Spatial Pyramid Pooling (SPP-net),
  • Fast R-CNN,
  • Faster R-CNN,
  • YOLO,
  • SSD.
  • Selective Search.

Метрики качества.

Non Maximum Suppression (NMS).

Сегментация объектов:
  • Mask R-CNN.
  • Feature Pyramid Networks (FPN).

Детектирование объектов: R-FCN.

FCOS: Fully Convolutional One-Stage Object Detection.
Сегментация изображений
  1. Семантическая сегментация.
  2. Elastic Transform.
  3. Классические методы сегментации.
  4. Полностью свёрточная сеть – Fully Convolutional Network (FCN).
  5. FCN: восстановление изображения, обратные операции. U-Net.
  6. «Тирамису» = DenseNet + U-Net.
  7. TernausNet.
  8. PSP-Net = Pyramid Scene Parsing Network.
  9. Расширенные свёртки (Dilated convolutions / Atrous Convolutions), DeepLabv1/2/3. SharpMask: Top to Down Refinement.
  10. Сегментация объектов (Instance segmentation). Mask R-CNN.
  11. Panoptic Feature Pyramid Networks.
  12. RetinaNet. V-Net.
  13. Модели для сегментации. UNet + FPN. BlendMask: SOTA 2020.

Визуализация нейронных сетей и генерация изображений
  1. Зачем наблюдать?
  2. За чем можно наблюдать в NN?
  3. Стандартные средства в признаковых пространствах.
  4. Анализ активации нейронов.
  5. Чувствительность к удалению (Occlusion sensitivity).
  6. «Saliency maps» – градиенты по входу.
  7. «guided back-propagation» ~ градиенты по входу.
  8. Анализ отдельных нейронов.
  9. Анализ отдельных нейронов: оптимизационный подход.
  10. Генерация изображений: восстановление из признаков.
  11. Генерация текстур.
  12. Генерация пейзажей.
  13. Стилизация изображений.
  14. Быстрая стилизация.
  15. Причина шахматных сеток на изображениях.
  16. Дистилляция данных.
  17. Мягкая дистилляция данных.
Рекуррентные нейронные сети
  1. RNN (базовый блок).
  2. RNN: обучение.
  3. RNN: как решать задачи классификации.
  4. LSTM.
  5. Забывающий гейт (Forget Gate).
  6. Входной гейт (Input Gate).
  7. Обновление состояния (Cell update).
  8. Выходной гейт (Output Gate).
  9. Gated Recurrent Unit (GRU).
  10. Метод форсирования учителя (teacher forcing).
  11. Scheduled sampling.
  12. Двунаправленные (Bidirectional) RNN.
  13. Глубокие (Deep) RNN.
  14. Глубокие двунаправленные RNN.
  15. Многонаправленные RNN.
  16. Пиксельные RNN.
  17. Рекурсивные (Recursive Neural Networks) НС.
  18. Exploding / Vanishing gradients.
  19. Особенности регуляризации в RNN: Dropout.
  20. Особенности регуляризации в RNN: Batchnorm.
  21. MI (Multiplicative Integration).
  22. Интерпретация LSTM: Sentiment neuron.
  23. Применение RNN.
Трансформер
  1. attention / self- attention – матричная запись.
  2. Transformer: Основная идея «Parallelized Attention».
  3. Transformer: виды внимания.
  4. Особенности обучения трансформера.
  5. BERT = Bidirectional Encoder Representations from Transformers.
  6. RoBERTa: A Robustly Optimized BERT Pretraining Approach.
  7. SpanBERT. ALBERT = A Lite BERT.
  8. T5: Text-To-Text Transfer Transformer.
  9. ELECTRA = Efficiently Learning an Encoder that Classifies Token Replacements Accurately.
Обучение без учителя
  1. Автокодировщики (Auto-encoders).
  2. Глубокие автокодировщики. Denoising Autoencoder.
  3. Сокращающие автокодировщики – Contractive Autoencoders (CAE).
  4. Предобучение с помощью автокодировщика (раньше так делали).
  5. Sparse Coding.
  6. Context Encoders.
  7. Использование RBM.
  8. Глубокие RBM (Deep Boltzmann Machines).
  9. SOM – Самоорганизующиеся карты Кохонена.
  10. Сжатие.
  11. Генеративная модель.
  12. Проблема оценки плотности.
  13. Решения для оценки плотности.
  14. Авторегрессионные модели.
  15. Masked Autoencoder for Distribution Estimation (MADE).
  16. Masked Temporal (1D) Convolution. Masked Spatial (2D) Convolution: PixelCNN, PIXELCNN++, PixelSNAIL, PixelRNN. Masked Attention + Convolution. Поток (Glow): real NVP, Glow.
  17. Авторегрессионные потоки (Autoregressive Flows)
Вариационный автокодировщик
  1. Генеративная модель.
  2. Variational Autoencoders (VAE).
  3. Variational Bayesian Inference.
  4. Reparametrizaton trick.
  5. Векторная арифметика.
  6. Conditional VAE (CVAE).
  7. Ladder Variational Autoencoders.
  8. Bidirectional-Inference Variational Autoencoder (BIVA).
  9. Vector Quantised-Variational AutoEncoder (VQ-VAE).
  10. VQ-VAE-2. VAE: Image Colorization.
  11. VAE: Forecasting from Static Images.
  12. Adversarial Autoencoder.
Генеративные состязательные сети
  1. Generative Adversarial Networks (GAN).
  2. Генератор и дискриминатор.
  3. Что могут GAN.
  4. GAN: обучение – min-max-игра.
  5. Настройка GAN.
  6. Least Square GAN.
  7. Wasserstein GAN (WGAN).
  8. WGAN-GP.
  9. Energy-Based GAN (EBGAN).
  10. Deep Convolutional Generative Adversarial Networks (DCGAN).
  11. Условные состязательные сети (сGAN).
  12. Pix2pix c условными состязательными сетями (сGAN).
  13. Проблема отсутствия выборки - CycleGAN.
  14. BiGAN (Bidirectional).
  15. BigGAN: Генерация изображений / интерполяция.
  16. SAGAN (Self-Attention Generative Adversarial Networks).
  17. CAN: Creative Adversarial Networks. ProGAN (NVIDIA).
  18. InfoGAN.
  19. Условные GANы (Conditional GANs).
  20. Coupled GANs.
  21. Как оценивать качество (сгенерированные картинки).
Самообучение
  1. Self-Supervised Learning: pretext task, downstream task.
  2. Predicting (spatial) context.
  3. Predicting image rotation.
  4. Exemplar.
  5. Головоломка (Jigsaw).
  6. Кластеризация (DeepCluster).
  7. Контекстные кодировщики (Context Encoder) / image inpainting.
  8. Раскраска изображений (image colorization).
  9. Расщеплённые автокодировщики (Split-brain autoencoders).
  10. Сегментация, порождённая движением (motion segmentation prediction).
  11. Разметка окружающими звуками (ambient sounds).
  12. Подсчёт примитивов (counting visual primitives).
  13. Multi-task Self-Supervised Visual Learning.
  14. Augmented Multiscale Deep InfoMax (AMDIM).
  15. Deep InfoMax (DIM).
  16. Invariant Information Clustering (IIC).
  17. Contrastive Predictive Coding.
  18. CPCv2 - Large Scale CPC on ImageNet.
  19. Momentum Contrast (MoCo).
  20. SimCLR.
  21. Исследование архитектур для самообучения.
Поиск изображений
  • Поиск изображений: Сиамские сети, Triplet Loss.
  • Сиамские сети: Person Re-Identification.
  • Сиамские сети: Street-View to Overhead-View Image Matching.
  • Сиамские сети: Intermediate merging.
  • Сиамские сети: for viewpoint invariance.
  • Сиамские сети: for cross-modal embedding. FaceNet.