Кафедра термогидромеханики океана МФТИ
преподаватель: Криницкий Михаил Алексеевич, кандидат технических наук
Цель курса
Сформировать базовые знания о математических основах и общих принципах современных методов машинного обучения в применении к задачам наук о Земле; разобрать общепринятые методики применения методов машинного обучения.
Задачи курса
- изучить общие математические принципы современных методов машинного обучения;
- научить студентов самостоятельно формулировать задачу, планировать численный эксперимент, выбирать подходящий метод решения и эффективно его реализовывать в виде программы, а также анализировать результаты и оценивать качество получаемых моделей;
- выработать навыки эффективного применения методов машинного обучения с использованием доступных языков программирования и сред исполнения программного кода;
- выработать навык адаптации существующих методов машинного обучения с учётом специфики задач и с использованием результатов новейших публикаций;
- научиться визуально представлять данные, промежуточные и конечные результаты исследования.
Содержание курса, структурированное по темам (разделам)
- Введение
- Машинное обучение и искусственный интеллект. Исторический обзор, начальные определения, взаимосвязь понятий. Обзор языков программирования и инструментов для проведения исследований с применением методом машинного обучения.
- Обзор современных приложений в академической науке и в технике.
- Машинное обучение как способ выявления неявных закономерностей в данных.
- Машинное обучение как способ решения задач на основе натурных данных.
- Машинное обучение как способ аппроксимации распределения данных.
- Классификация задач и методов машинного обучения
- Типы задач машинного обучения: «обучение с учителем», «обучение без учителя», «обучение с частичным привлечением учителя» и др. Задачи классификации и регрессии. Примеры в задачах наук о Земле.
- Краткий обзор методов обучения «с учителем». Линейная регрессия, логистическая регрессия, наивный байесовский классификатор, метод Kближайших соседей, решающие деревья, композиционные методы, метод опорных векторов, искусственные нейронные сети. Примеры в задачах наук о Земле.
- Краткий обзор методов обучения «без учителя». Метод главных компонент и другие методы сокращения размерности. Методы кластеризации: метод К средних; метод моделирования гауссовой смеси; агломеративная и дивизивная иерархическая кластеризация; DBSCAN и HDBSCAN. Методы обнаружения аномалий. Нейросетевые автокодировщики. Генеративные состязательные сети. Примеры в задачах наук о Земле.
- Технические средства анализа данных
- Python как язык программирования для анализа данных. Динамическая типизация и полная интроспекция. Парадигмы программирования, реализованные в Python. Особенности многопотоковой обработки данных. Библиотеки обработки данных и библиотеки визуализации данных. Специальные библиотеки для задач наук о Земле Basemap и NetCDF4. Библиотека анализа двумерных данных OpenCV.
- Инструментарий для обработки, визуализации и анализа данных с использованием Python.
- Интерактивная среда разработки JetBrainsPyCharm. Клиент-серверная интерактивная cреда исполнения кода и визуализации Jupyter. Особенности исполнения программ в среде Jupyter. Построение документов в среде Jupyter с применением разметки и LaTeX.
- Линейная регрессия и принципы машинного обучения
- Вероятностная постановка задачи обучения по прецедентам. Статистические основы модели линейной регрессии. Варианты решения задачи линейной регрессии. Ограничения линейной регрессии. Проблема мультиколлинеарности признаков. Генерация и отбор признаков, спрямляющие пространства. Однослойный перцептрон.
- Принципы машинного обучения в примерах. Принцип близости похожих событий в пространстве представлений. Принцип оптимизации функционала потерь. Регуляризация моделей. Разделимость и отделимость событий в задачах классификации. Интерпретируемость моделей машинного обучения. Принцип композиции алгоритмов.
- Общая схема решения задач машинного обучения
- Определение типа задачи и постановка задачи. Исследование или/и формирование массива исходных данных, визуализация данных. Адаптация алгоритмов машинного обучения и алгоритмов их настройки под сформулированную задачу. Предобработка данных для выбранных алгоритмов. Оптимизация (обучение) моделей. Оценка качества и оптимизация гиперпараметров. Применение модели и построение выводов по результатам.
- Задачи классификации и логистическая регрессия
- Примеры задач классификации в науках о Земле. Статистические основы модели логистической регрессии. Формулировка модели логистической регрессии и логистическая функция ошибки. Обучение модели логистической регрессии. Ограничения логистической регрессии. Проблема мультиколлинеарности признаков, генерация и отбор признаков, спрямляющие пространства. Однослойный перцептрон с произвольной функцией активации. Виды функции активации.
- Оптимизация моделей машинного обучения и настройка гиперпараметров
- Формулировка задачи оптимизации. Примеры оптимизационных задач. Задача выпуклого программирования. Общая задача нелинейного программирования. Понятие ландшафта функции потерь. Проблемы невыпуклого ландшафта функции потерь и методы оптимизации, решающие эту проблему. Градиентные методы оптимизации первого и второго порядка. Модификации градиентных методов оптимизации первого порядка.
- Явление переобучения и недообучения моделей. Понятие VC-размерности, сложность модели. Баланс между смещением и разбросом. Настройка гиперпараметров модели. Подход скользящего контроля. Стратегии скользящего контроля.
- Метод опорных векторов
- Линейно разделимая выборка и разделяющая гиперплоскость. Геометрическая интерпретация задачи. Модель линейного метода опорных векторов. Функция потерь метода опорных векторов. Варианты оптимизация моделей в методе опорных векторов. Проблема неразделимости выборки. Ядра и спрямляющие пространства. Примеры ядер. Метод опорных векторов как двуслойный перцептрон.
- Метод опорных векторов в задачах восстановления регрессии.
- Деревья решений.
- Взаимная информация, информационная энтропия, кросс-энтропия, дивергенция Кульбака-Лейблера и принцип оптимизации правдоподобия. Метод наименьших квадратов в задачах линейной регрессии как частный случай принципа максимизации правдоподобия.
- Алгоритмы построения решающих деревьев ID3 и С4.5. Решающие деревья в задачах классификации и восстановления регрессии.
- Композиции и ансамбли
- Комитеты и композиции алгоритмов. Бутстрэп и бэггинг. Случайные леса.
- Градиентные метаалгоритмы. Бустинг над произвольным семейством алгоритмов. AdaBoost. XGBoost, LightGBM и CatBoostв задачах классификации и регрессии.
- Искусственные нейронные сети
- Исторический обзор развития искусственного интеллекта. «Восходящее» и «нисходящее» направления. Коннективизм и принцип ассоциативности.
- Перцептрон. Варианты однослойного перцептрона. Способы обучения перцептрона. Искусственная нейронная сеть как универсальный аппроксиматор. Многослойный перцептрон.
- Алгоритмы обучения ИНС. Алгоритм обратного распространения ошибки. Ландшафт функции потерь. Сходимость обучения ИНС. Регуляризации и эвристики оптимизации ИНС. Пакетная нормализация. Прореживание.
- Переобучение, недообучение и обобщающая способность ИНС.
- Технические средства конструирования и обучения ИНС
- Обзор средств и библиотек для программной реализации искусственных нейронных сетей. Numpy, Keras, Tensorflow, Theano, PyTorch.
- Реализация многослойного перцептрона и процедуры оптимизации. Особенности вычислений на графических сопроцессорах. Организация порождения обучающих данных и цепи вычислений процесса оптимизации ИНС.
- Сверточные нейронные сети
- Краткий исторический обзор. Когнитрон и неокогнитрон, LeNet и более поздние архитектуры. Характерные задачи, решаемые СНС.
- Принцип локальности признаков. Принцип оценки корреляции с шаблоном. Принцип общих параметров. Математические основы сверточных нейронных сетей. Обратное распространение градиента функции потерь. Рецептивное поле. Субдискретизация. Соединения быстрого доступа.
- Свойства СНС.
- Виды задач, решаемые с применением ИНС и СНС. Современные архитектуры СНС.
- Рекуррентные нейронные сети
- Краткий исторический обзор. Принцип локальности признаков. Кодирование последовательностей. One-hot, Word2Vec, GloVe, fastText.
- Рекуррентные нейронные сети: основные принципы. LSTM, двунаправленный LSTM, GRU.
- Типы задач, решаемые РНС. Классификация и регрессия, порождение последовательности на базе последовательности.
- Задачи типа «обучение без учителя»
- Задача сокращения размерности. Метод главных компонент. t-SNE. Самообучающиеся карты Кохонена. Нейросетевой автокодировщик и его разновидности.
- Задача кластеризации. Постановка задачи. Мера близости событий и проклятие размерности в задачах кластеризации.
- Виды алгоритмов кластеризации. Графовые и эвристические алгоритмы. DBSCAN и HDBSCAN. Статистические алгоритмы. Метод разделения гауссовой смеси, метод K средних. Иерархические алгоритмы. Метод Ланса-Уильямса. Вариации метода Ланса-Уильямса. Свойства иерархических алгоритмов.
- Нейросетевые генеративные модели. Принцип и статистические основы генеративных состязательных сетей. DCGAN, LSGAN, WGAN.
Основная литература
- Флах П.«Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных.» / Флах П. М.: ДМК Пресс, 2015. 400 c.
- Гудфеллоу Я., Бенджио И., Курвилль А. «Глубокое обучение.» / М.: ДМК Пресс, 2017. 652 c.
- Николенко С. И., Кадурин А. А., Архангельская Е. О.«Глубокое обучение.» / СПб.: Питер. 2019. 480 с.
Учебно-методические материалы для самостоятельной работы
- Воронцов К.В.«Математические методы обучения по прецедентам. Теория обучения машин.» (курс лекций).
- Местецкий Л.М.«Математические методы распознавания образов. Курс лекций».
Дополнительная литература
- Hastie T., Tibshirani R., Friedman J.«The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition» / T. Hastie, R. Tibshirani, J. Friedman, 2-е изд., New York: Springer-Verlag, 2009.
- Bishop C. «Pattern Recognition and Machine Learning» / C. Bishop, New York: Springer-Verlag, 2006.
Перечень ресурсов, необходимых для освоения дисциплины
- http://lib.mipt.ru/ – электронная библиотека Физтеха
- http://benran.ru – библиотека по естественным наукам Российской академии наук
- http://ml4es.ru - веб-сайт автора курса, посвященный этому курсу
Необходимое программное обеспечение
- Интерактивная среда разработки программ PyCharm(производитель JetBrains, версия classroom)
- Язык программирования Python 3, клиент-серверная среда исполнения кода Jupyter