Нейронные сети и их применение в научных исследованиях
КУРС ПРИ ПОДДЕРЖКЕ НЕКОММЕРЧЕСКОГО ФОНДА РАЗВИТИЯ НАУКИ И ОБРАЗОВАНИЯ «ИНТЕЛЛЕКТ»
Нейронные сети и их применение в научных исследованиях
КУРС ПРИ ПОДДЕРЖКЕ НЕКОММЕРЧЕСКОГО ФОНДА РАЗВИТИЯ НАУКИ И ОБРАЗОВАНИЯ «ИНТЕЛЛЕКТ»
О курсе
Курс «Нейронные сети и их применение в научных исследованиях» ориентирован на освоение инструментов работы с нейронными сетями и сопутствующих современных программных средств.

Цель курса — предоставить аспирантам разных факультетов МГУ имени М. В. Ломоносова, имеющих базовые знания программирования и математики, возможность использовать методы искусственных нейронных сетей для анализа больших данных в их научных исследованиях.

Курс будет полезен для начинающих ученых и технических, и гуманитарных факультетов: физиков и филологов, химиков и медиков, математиков и социологов.

Итогом учебы будет подготовленный аспирант, который написал программу и получил качественный результат, успешно примененный в его диссертации, и подготовил научную публикацию об этом.

Инструментарий:

Язык программирования: Python 3
Библиотека: PyTorch
Среда разработки: Colab


Программа курса (осенний семестр):
Лекция №1.
Вводная


Machine Learning (ML), Deep Learning (DL) и Artificial Intelligence (AI) в Computer Science. Связь DL с наукой. Примеры применений DL в робототехнике, безопасности, науке и прочих отраслях. Причины успехов технологий, базирующихся на DL. Иcпользование ML в научных исследованиях. Применение методов машинного обучения к табличным данным, обзор и применение основных инструментов. Виды связанности данных, обработка изображений. Алгоритм k-nearest neighbours.
Лекция №2.
Линейный классификатор
Ограничения алгоритма k-nearest neighbours. Переобучение, параметры и гиперпараметры, кросс-валидация. Линейный классификатор. Математическая запись. Линейная регрессия и геометрическая интерпретация. Функция потерь SVM-loss. Обновление параметров методом градиентного спуска: аналитический и численный расчёты, выбор гиперпараметров и регуляризация. Использование SoftMax для предсказания вероятностей.
Лекция №3. Классическое машинное обучение
Экспертные системы. Классическое и глубокое машинное обучение. Деревья решений — принцип работы и недостатки алгоритма. Bias-variance tradeoff, irreducible error. Бутстрэп и доверительные интервалы. Ансамблевые методы. Случайный лес. Adaptive Boosting. Gradient boosting. Модификации градиентного бустинга: XGBoost, LightGBM, CatBoost. Блендинг. Стекинг. Применение нейронных сетей к табличным данным.
Лекция №4.
Генерация и отбор признаков
Генерация признаков. Типы признаков. Преобразования различных признаков. Данные, требующие предобработки. Отбор признаков. Полный перебор. Одномерный отбор признаков. Жадный отбор признаков. Задача понижения размерности. Метод главных компонент (PCA). Kernel PCA. tSNE. UMAP. Сравнение tSNE и UMAP.
Лекция №5. Искусственные нейронные сети
Ограничения линейного классификатора. Перцептрон и его обучение. Ограничения перцептрона. Многослойные нейронные сети. Функции потерь. Функции активации. Процесс работы нейронной сети. Прямое распространение. Параметры нейронной сети. Метод обратного распространения ошибки. Граф вычислений. Преимущества и недостатки метода обратного распространения ошибки.
Лекция №6. Свёрточные нейронные сети
Проблемы применения полносвязанной нейронной сети к изображениям. Свёртка. Классические фильтры. Свёрточный слой нейронной сети. Обработка многоканальных изображений. Использование нескольких фильтров. Расширение. Общая структура свёрточной нейронной сети. Шаг свёртки. Субдискретизация. Свёртка фильтром 1×1. Визуализация весов и карт активаций свёрточной нейронной сети.
Лекция №7. Пакетная нормализация
Затухание сигмоиды. Затухание градиента. Методы инициализации весов. Инициализации: Ксавьера, Хи и ортогональная. Регуляризации L1 и L2. Dropout. DropConnect. DropBlock. Нормализация входных данных. Ковариантный сдвиг. Пакетная нормализация. Рекомендации по использованию пакетной нормализации. Различные методы оптимизации нейронных сетей. Ранняя остановка. Затухание скорости обучения. WarmUp нейронной сети.
Лекция №8. Рекуррентные нейронные сети
Особенности рекуррентных нейронных сетей. Базовый блок RNN. Обработка временного ряда. Посимвольная генерация текстов — подготовка данных, обучение модели. LSTM. Предсказание временного ряда. GRU. Sequence-to-Sequence. Машинный перевод. Attention. Проблема attention. Key, query, value. Attention Layer. Self-Attention Layer. Multihead Self-Attention Layer. Transformer. BERT. GPT.
Лекция №9. Архитектуры CNN
ImageNet Large Scale Visual Recognition Challenge. AlexNet, история создания и параметры модели. ZFnet. VGGNet. Оценка использования ресурсов при работе нейронной сети. GoogLeNet: inception module, stem network, global average pooling. ResNet: resudial connection, bottleneck layer. ResNeXt. DenseNet. SENet. MobileNet. Neural Architecture Search. EfficientNet. Visual Transformer. MLP-Mixer. Практические аспекты работы с размерностью данных.
Лекция №10. Explainability
Поиск ошибок. Explainability и Interpretability. Оценка важности признаков. Permutation importance. Drop-column importance. SHAP. Объяснение перевода. LIME. Объяснение классификации статей. Boruta и другие библиотеки. Объяснение предсказания цены дома. Обобщение текста. Объяснение предсказания ResNet18 с помощью LIME, SHAP и gradient ascent.
Лекция №11.
Обучение на реальных данных
Проблема малого количества данных. Работа с несбалансированным набором данных. Аугментация различных видов данных: изображений, аудиозаписей и текстов. Совмещение аугментаций. Случайные аугментации. Transfer Learning - структурные компоненты процесса. Few-shot learning. One-shot learning. Triplet loss. Contrastive loss. Few-shot learning в GPT. Оптимизация гиперпараметров.
Лекция №12.
Задачи компьютерного зрения
Набор данных COCO и структура записей. Семантическая сегментация. Автокодировщик. U-Net. Мультиклассовая сегментация. FCN. DeepLabv3. Детектирование. Развитие первых детекторов: от R-CNN до Faster R-CNN. Двухэтапные и одноэтапные детекторы. SSD. Focal loss. Feature pyramyd network. Семейство моделей YOLO. YOLOv5. Нard example mining. Instance Segmentation. Оценка качества детекции. mAP. Precision & recall. IoU. COCO mAP. DINO. Сегментация изображений и видео с DINO. Кластеризация изображений.
Лекция №13. Генеративно-состязательные нейронные сети
Задача генерации. Latent space, выбор гиперпараметров. Дискриминатор. GAN. Преимущества и недостатки GAN. DCGAN. Получение изображений из шума. Методы повышения размерности. cGAN. WGAN. Wasserstein metric. Wasserstein loss. GANs от исследователей NVIDIA: ProGAN, StyleGAN, StyleGAN 2, StyleGAN 3. Краткое описание примечательных моделей GAN. Семантическая генерация. Перенос стиля.
Лекция №14.
Автоэнкодеры
Unsupervised learning, Representation learning. Понижение размерности. Сжатие информации и сопутствующие потери. Manifold assumption. Аналогия между AE и PCA. Очищение изображения от шумов. Разреженный автоэнкодер. Вариационные автоэнкодеры. Kullback-Leibler divergence. Автоэнкодеры с условием. CVAE. Состязательные автокодировщики. Разделение стиля и метки. Semisupervised AAE.
Лекция №15.
Обучение с подкреплением
Различные виды обучения. Терминология обучения с подкреплением: агент, среда и функция награды. Особенности обучения с подкреплением и области его применения. Марковский процесс принятия решений. Награда в MDP, дисконтирование. Постановка задачи обучения с подкреплением. Уравнение Беллмана. Q-Learning. Deep Q-Learning. Проигрывание опыта. Различные улучшения DQN. AI Gym. Задача CartPole.