Инновации — наша работа! Введение в машинное обучение Практическое применение методов машинного обучения на объектах подземного хранения газа (ПХГ) Гришин Никита Александрович Инженер-программист Профессиональная переподготовка «Специалист по подземному хранения газа» План лекции Содержание: 2 1 Типы задач машинного обучения Обучение с учителем 5 Полносвязная нейронная сеть для классификации Скрытые слои Последний слой 2 Обучение моделей 6 Обучение нейронных сетей Loss function Back Propagation 3 Линейная регрессия и переобучение 7 Разбор BackProp для полносвязного слоя 4 Модель нейрона 8 Применение методов машинного обучения в газовой отрасли Лекция: Введение в машинное обучение Три основных области исследований в ML (Machine learning) 3 1 CV (Computer Vision) 2 NLP (Natural Language Processing) 3 RL (Reinforcement Learning) Лекция: Введение в машинное обучение Практическое задание Решим другую задачу Решим задачу Сколько минут в 3 часах? Мальчик на санках едет с горки. Масса мальчика вместе с санками составляет 40 кг, угол наклона горы 30. Найти ускорение, с которым съезжает мальчик, если коэффициент трения скольжения равен 0,2. f(x) = 60 * x f(3) = 60 * 3 = 180 4 Лекция: Введение в машинное обучение Проблема А что если? Система или процесс сложнее? (Статистика) Нет представления о логике процесса? Нет понимания, как параметры в системе влияют друг на друга? Пример данных на вход Пример задачи на выход Задача распознавания (Статистика) 5 Лекция: Введение в машинное обучение Где начало истории До 1800-х 6 1800-1900 1900-1940 1940-1960 1960 Лекция: Введение в машинное обучение 1970 1980 1990 2000 2010 2024 Почему востребовано Направление – Автономные системы Беспилотные летательные аппараты (БПЛА) 7 Автономные подводные необитаемые аппараты (АНПА) Лекция: Введение в машинное обучение Автономные автомобили и роботы Почему востребовано Задачи – Семантический анализ подстилающей поверхности 8 Лекция: Введение в машинное обучение 8 Типы задач обучения алгоритмов — обучение по размеченным данным (Supervised Learning / SL) – обучающая выборка состоит из пар (x, y), где x – описание объекта, у – его метка, и необходимо обучить модель y=f(x), которая по описаниям получает метки. — обучение с частично размеченными данными (SemiSupervised Learning / SSL) – обучающая выборка состоит из данных с метками и без меток (последних, как правило, существенно больше), необходимо также обучить модель y=f(x), но здесь может помочь информация о том, как объекты располагаются в пространстве описаний, см. рис. 1. — обучение по неразмеченным данным (Unsupervised Learning / UL) – даны только объекты (без меток), необходимо эффективно описать, как они располагаются в пространстве описаний.* 9 Лекция: Введение в машинное обучение https://arxiv.org/pdf/2002.08721.pdf 9 Обучение с учителем 10 Лекция: Введение в машинное обучение Обучение с учителем (supervised learning) X - множество объектов Y - множество ответов - истинная зависимость. Обучающий датасет - множество наборов из фичей и значений целевой переменной. Мы обозначим его . 11 Лекция: Введение в машинное обучение 11 Обучение с учителем (supervised learning) Типы признаков (features): ● ● ● Числовые (Numerical) Категориальные (Categorical) Порядковые (Ordinal) Типы задач: ● Классификация (Classification) ● Регрессия (Regression) ● Ранжирование (Ranking) (числа упорядочены) 12 Лекция: Введение в машинное обучение 12 Примеры задач (Ирисы Фишера) Какая это задача? Какие есть признаки? 13 Лекция: Введение в машинное обучение 13 Примеры задач (Ирисы Фишера) Какая это задача? . Задача классификации. Какие есть признаки? . Есть только числовые признаки. 14 Лекция: Введение в машинное обучение 14 Примеры задач (Цена дома) Какая это задача? Нужно предсказать стоимость дома. Есть обучающий датасет со следующими признаками: ● Удаленность от метро. ● Оценка состояния дома (плохое, среднее, хорошее, отличное). ● Количество комнат. ● Площадь. ● Год строительства. ● Название района, в котором находится дом. 15 Лекция: Введение в машинное обучение Какие есть признаки? 15 Примеры задач (Цена дома) Какая это задача? . Задача регрессии. Нужно предсказать стоимость дома. Есть обучающий датасет со следующими признаками: ● Удаленность от метро. ● Оценка состояния дома (плохое, среднее, хорошее, отличное). ● Количество комнат. ● Площадь. ● Год строительства. ● Название района, в котором находится дом. 16 Лекция: Введение в машинное обучение Какие есть признаки? Числовые, порядковые, категориальные. 16 Примеры задач (Поисковая выдача) Какая это задача? Получив запрос от пользователя нужно найти наиболее полезные документы из некоторой базы. Что нам известно: ● Запрос пользователя. ● Текст документа. ● Какие ключевые слова есть в каждом документе. ● Насколько каждый документ популярен. 17 Лекция: Введение в машинное обучение Какие есть признаки? 17 Примеры задач (Поисковая выдача) Какая это задача? (числа упорядочены) Задача ранжирования. Получив запрос от пользователя нужно найти наиболее полезные документы из некоторой базы. Что нам известно: ● Запрос пользователя. ● Текст документа. ● Какие ключевые слова есть в каждом документе. ● Насколько каждый документ популярен. 18 Лекция: Введение в машинное обучение Какие есть признаки? Данные намного сложнее и требуют предобработки. 18 Обучение моделей 19 Лекция: Введение в машинное обучение Обучение с учителем (supervised learning) Наша задача - найти функцию хорошо приближающую реальную зависимость . Назовем такое решение (эта функция должна быть вычислима на компьютере). Обычно мы выбираем решение из некоторого параметризованного семейства. множество параметров. 20 Лекция: Введение в машинное обучение 20 Обучение с учителем (supervised learning) Обучение -- процесс выбора параметра , которому соответствует наиболее подходящее нам решение задачи 21 Лекция: Введение в машинное обучение . 21 Пример семейства моделей (функции порога) Задача: определить, можно ли ребенку пройти на аттракцион? Причем мы знаем его рост и возраст. Множество, в котором мы будем искать решения состоит из функций вида: Параметр в данном случае параметра . 22 . А множество возможных значений Лекция: Введение в машинное обучение 22 Как обучать алгоритм (подбирать оптимальные параметры)? 23 Лекция: Введение в машинное обучение 23 Обучение с учителем (supervised learning) Функция потерь (loss): Определим функцию , ее значение показывает насколько сильно наше предсказание отличается от реального значения. Пример: Задача предсказания цены дома из предыдущих примеров. Возможные функции потерь: --- квадратичная функция потерь --- абсолютная функция потерь 24 Лекция: Введение в машинное обучение 24 Обучение с учителем (supervised learning) Эмпирический риск: Определим эмпирический риск как среднее значение функции потерь на обучающем датасете. Часто функцию эмпирического риска также называют лоссом. Обучение: 25 (Это просто математическое определение. Конкретный алгоритм получения лучшего параметра для каждой модели свой.) Лекция: Введение в машинное обучение 25 Линейная регрессия и переобучение 26 Лекция: Введение в машинное обучение Переобучение для линейной регрессии Вспомним как выглядит линейная регрессия: Обучение линейной регрессии: Классически в качестве лосса берут Mean Squared Error (среднее квадратов ошибок) 27 Лекция: Введение в машинное обучение 27 Переобучение для линейной регрессии Вспомним как выглядит линейная регрессия: Polynomial Regression: Пусть у нас изначально есть только один признак x. Создадим новые: Тогда линейная регрессия от таких признаков называется полиномиальной: 28 Лекция: Введение в машинное обучение 28 Переобучение для линейной регрессии 29 Лекция: Введение в машинное обучение 29 Разделение на Train/Validation/Test ● ● ● Train - данные для обучения. Validation - данные для итеративной оценки качества. Test - данные для финальной оценки качества. Часто можно опустить test часть. В этом случае название validation dataset и test dataset значат одно и то же. 30 Лекция: Введение в машинное обучение 30 Разделение на Train/Validation/Test Переобучение - ситуация, когда качество модели на train данных значительно лучше, чем на validation/test. -точка из test датасета -точка из train датасета 31 Лекция: Введение в машинное обучение 31 Cross-validation Выполняем обучение для каждого из 5 сплитов. Итоговая оценка качества 32 Лекция: Введение в машинное обучение 32 Применение методов ML 33 Лекция: Введение в машинное обучение Решение задачи 34 Лекция: Введение в машинное обучение 34 Полносвязная нейронная сеть 35 Лекция: Введение в машинное обучение 35 Задача: распознавание рукописных цифр ● ● ● Дано: чёрно-белые изображения 8x8 Определить: какая из 10 цифр нарисована (10 классов) Имеется: обучающая выборка размеченных изображений ○ 36 Несколько тысяч изображений с известными классами Лекция: Введение в машинное обучение Состав модели Описание модели 37 Лекция: Введение в машинное обучение Обучение модели Состав модели Описание модели 38 Лекция: Введение в машинное обучение Обучение модели Модель нейрона 39 Лекция: Введение в машинное обучение Модель нейрона входы нейрона: 40 Лекция: Введение в машинное обучение Модель нейрона входы нейрона: веса нейрона: 41 Лекция: Введение в машинное обучение Модель нейрона входы нейрона: веса нейрона: скалярное произведение векторов x, w: 42 Лекция: Введение в машинное обучение Модель нейрона функция активации входы нейрона: f(t) f(12.3) веса нейрона: скалярное произведение векторов x, w: 43 Лекция: Введение в машинное обучение Функция сигмоиды 44 Лекция: Введение в машинное обучение Многослойный перцептрон ● ● ● 45 Многослойный перцептрон — простейшая архитектура нейронной сети Каждый слой нейронов связан со всем нейронами с предыдущего слоя Десять выходных нейронов соответствуют классам изображений Лекция: Введение в машинное обучение Многослойный перцептрон wi — вектор весов 46 Лекция: Введение в машинное обучение i-ого нейрона bi — свободный член Преобразование вектора в перцептроне линейное преобразование вектора x 47 Лекция: Введение в машинное обучение Параметры нейронной сети ● (W1, W2, W3, b1, b2, b3) — совокупность параметров нейронной сети W1 48 Лекция: Введение в машинное обучение W2 W3 Последний слой в задаче классификации ● ● 49 Что происходит на выходном слое перцептрона? Как выходы нейронов преобразуются в вероятности классов? Лекция: Введение в машинное обучение Последний слой в задаче классификации ● ● ● ● 50 Решаем задачу классификации на 10 классов Предпоследний слой содержит 10 линейных нейронов — меры принадлежности объекта каждому классу Пусть — выходы предпоследнего слоя На последнем слое применяется softmaxпреобразование: Лекция: Введение в машинное обучение Последний слой в задаче классификации ● Числа ○ ○ ● : Положительны В сумме дают 1 Их можно интерпретировать как вероятности принадлежности соответствующим классам W1 51 Лекция: Введение в машинное обучение W2 W3 Состав модели Описание модели 52 Лекция: Введение в машинное обучение Обучение модели Обучение перцептрона ● ● ● Проходимся по элементам обучающей выборки Имеется размеченное изображение цифры “4” На последнем слое нейронной сети сформировались вероятности W1 W2 53 Лекция: Введение в машинное обучение W3 Обучение перцептрона ● ● ● ● 54 Хотим сделать p4 как можно больше Аналогично для всех картинок Цель: подобрать матрицы W1, W2, W3 так, чтобы максимизировать произведение вероятностей правильной классификации по всем элементам обучающей выборки W1 W2 W3 Имеем сложную задачу численной оптимизации Лекция: Введение в машинное обучение Оптимизация функции потерь ● 55 Пусть (x, y) — элемент обучающей выборки, вектор параметров нейросети Лекция: Введение в машинное обучение — Оптимизация функции потерь ● ● 56 Пусть (x, y) — элемент обучающей выборки, — вектор параметров нейросети На последнем слое нейронной сети — вероятности классов Лекция: Введение в машинное обучение Оптимизация функции потерь ● ● ● 57 Пусть (x, y) — элемент обучающей выборки, — вектор параметров нейросети На последнем слое нейронной сети — вероятности классов Как и в случае логистической регрессии, оптимизируем logloss(y, p): Лекция: Введение в машинное обучение Оптимизация функции потерь ● ● 58 Пусть (x, y) — элемент обучающей выборки, — вектор параметров нейросети На последнем слое нейронной сети — вероятности классов ● Как и в случае логистической регрессии, оптимизируем logloss(y, p): ● Итоговая задача оптимизации: Лекция: Введение в машинное обучение Методы машинного обучения для решения задач с объектами ПХГ Содержание: 59 1 Постановка задачи 5 Результаты численного моделирования. Закачка 2 Состав выборки 6 Результаты верификации 3 Алгоритм отбора и закачки 7 Программный интерфейс 4 Результаты численного моделирования. Отбор 8 Демонстрация работы программного интерфейса Лекция: Введение в машинное обучение Постановка задачи Требуется построить следующие функции: 1. f1(x|t) = y1 2. f2(x,y1|t) = y2 Объект – Касимов Ограничения и приближения Входные данные •общий накопленный объёма газа (x) [число] • шаг дискретизации примерно 56 млн •продолжительность в сут. (сколько длится режим) (t1) [число] • время режима от 120 до 180, шаг 10 •начальное пластовое давление (t2) [число] • режим закачки условно ограничиваем начальным пластовым давлением от 43 до 77 кгс/см2, шаг 1 • режим отбора пластовым давлением от 78 до 115 кгс/см2, шаг 1 •суммарный объём газа (t3) [число] • максимально в данный объект можно закачать и отобрать 12 млрд м3, шаг 0,2 млрд •режим работы: закачка, отбор (t4) [категория] Выходные данные •производительность (y1) [число] • не более 170 млн для отбора, не более 90 для казачки • каждое значение должно быть не более максимальной производительности в заданной точке •время добычи (y2) [число] 60 Лекция: Введение в машинное обучение f2(x,y1|t) = y2 f1(x|t) = y1 Аналитическое решение для отбора газа 60 Состав выборки Ограничения данных в выборке • Режим – отбор, закачка • Количество дней – от 140 до 170 • Объем газа – от 8000 до 11000 млрд м3 • Начальное давление – от 90 до 110 кгс/см2 • Предельное давление – 43 кгс/см2 • Количество скважин – 331 шт. Алгоритм формирования выборки – аналитическое решение Критерий корректного решения – кривая режима отбора ниже предельного уровня Фрагмент кода аналитического решения Объем выборки для обучения – 4000 шт. Объем выборки для тестирования –100 шт. Аналитическое решение Решение подбирается итерационным способом. Оценка производится экспертным путём следующим образом: 1.Выбираем режим (закачка или отбор) 2.Выставляем временной интервал 3.Выбираем начальное давление в пласте 4.Выбираем объем 5.Подбираем кривые по полкам так, чтобы совпало выбранное количество газа 6.Переносим результаты и подбираем красную кривую. Если не сошлось, то идем в пп.3-5 61 Лекция: Введение в машинное обучение Демонстрация аналитического решения с ошибкой 61 Алгоритм отбора и закачки Параметры модели давления (net G) • Количество параметров обучения – 226 тыс. шт. • Количество слоев – 2 шт. • Состав слоя – Линейный слой, Нормализация, Активация ReLu Параметры модели режима отбора/закачки (net G) • Количество параметров обучения – 272 тыс. шт. • Количество слоев – 2 шт. • Состав слоя – Линейный слой, Нормализация, Активация ReLu Параметры обучения • Алгоритм оптимизации – Стохастический градиентный спуск • Коэффициент регуляризации – 1e-3 • Шаг оптимизации – 1e-3 • Количество эпох обучения – 30 • Состав обучающей выборки – 2000 шт. • Алгоритм регуляризации – Кросс-валидация • Функция ошибки: Блок-схема алгоритма обучения модели расчета режима отбора на основе полносвязной нейронной сети 62 Лекция: Введение в машинное обучение 62 Результаты численного моделирования. Отбор Объем выборки для тестирования –100 шт. 91 шт. – аналитическое решение 9 шт. – фактическое решение (2014-2023 гг.) Критерий корректного решения – кривая режима отбора ниже предельного уровня. Метрика точности – доля решений отбора ниже предельного уровня Ограничения данных в выборке • Режим – отбор • Количество дней – от 120 до 180 • Объем газа – от 7000 до 12000 млрд м3 • Начальное давление – от 78 до 115 кгс/см2 • Предельное давление – 43 кгс/см2 • Количество скважин – 331 шт. 63 Выборка Результат вычисленного моделью режима отбора (объем 9000 млрд м3, 140 дней, начальное давление 95 кгс/см2, пластовое давление 43 кгс/см2) Точность, % Аналитическое решение 87 Фактические измерения 100 Лекция: Введение в машинное обучение Результат вычисленного моделью режима отбора (объем 10000 млрд м3, 160 дней, начальное давление 100 кгс/см2, пластовое давление 43 кгс/см2) 63 Результаты численного моделирования. Закачка Объем выборки для тестирования –100 шт. 91 шт. – аналитическое решение 9 шт. – фактическое решение (2014-2023 гг.) Критерий корректного решения – кривая режима закачки ниже предельного уровня. Метрика точности – доля решений отбора ниже предельного уровня Ограничения данных в выборке • Режим – закачка • Количество дней – от 120 до 180 • Объем газа – от 7000 до 12000 млрд м3 • Начальное давление – от 43 до 77 кгс/см2 • Предельное давление – 43 кгс/см2 • Количество скважин – 331 шт. 64 Выборка Результат вычисленного моделью режима закачки (объем 10000 млрд м3, 150 дней, начальное давление 95 кгс/см2б пластовое давление 43 кгс/см2) Точность, % Аналитическое решение 96 Фактические измерения 100 Лекция: Введение в машинное обучение Результат вычисленного моделью режима закачки (объем 7000 млрд м3, 140 дней, начальное давление 82 кгс/см2, пластовое давление 43 кгс/см2) 64 Результаты верификации Результат верификации закачки фактического режима и вычисленного моделью машинного обучения: фактический режим отбора – 2022-2023 гг.; объем 10000 млрд м3, 187 дней, начальное давление 101 кгс/см2, пластовое давление 43 кгс/см2; RMSE = 0,1 65 Лекция: Введение в машинное обучение Результат верификации отбора фактического режима и вычисленного моделью машинного обучения: фактический режим отбора – 2021-2022 гг.; объем 11000 млрд м3, 160 дней, начальное давление 101 кгс/см2, пластовое давление 43 кгс/см2; RMSE = 9,6 65 Программный интерфейс Функциональные возможности 1. Отображение результатов расчета 2. Ввод параметров для расчета • объект работы (Касимов, без выбора) • режим работы (отбор, закачка) • количество скважин (331, без выбора) • время работы на режиме (от 120 до 180 с шагом 10) • давление в пласте (от 43 до 115 кгс/см2) с шагом в 1 кгс/см2 • объём газа. 3. Отображение результата расчета • график по оси у - производительность • график по оси х - нарастающий объем газа • график по оси х - количество дней работы 4. Загрузка аналитического решения 5. Скачивание результатов расчета 66 Лекция: Введение в машинное обучение Внешний вид программного интерфейса 66 Демонстрация работы программного интерфейса Видеодемонстрация режимов работы программного интерфейса численного расчета режимов отбора и закачки 67 Лекция: Введение в машинное обучение 67 Выводы Сформулирована математическая постановка численного моделирования производительности отбора и закачки. При этом учтены следующие ограничения и приближения: 1. 2. 3. 4. 5. 6. пластовое давление изменяется в диапазоне от 43 до 115 кгс/см2; режим закачки условно ограничиваем начальным пластовым давлением от 43 до 77; режим отбора пластовым давлением от 78 до 115; максимальный объем отбора и закачки – 12 млрд м3; Ограничение по суточному отбору (при работе всех 331 скв): режим закачки: 90 000 000 м3/сут, режим отбора: 170 000 000 м3/сут; Время режима от 120 до 180 дней. Сформирована обучающая выборка • • обучающая выборка составлена из аналитического решения в объеме 4000 шт.; тестовая выборка (фактические измеренная производительность с 2014 по 2023 гг.). Разработан алгоритм численного решения на основе НС с применением состязательного обучения. • • показано, что результаты численного моделирования производительности удовлетворяют ограничениям в 87% и 96% для режимов отбора и закачки соответственно; проведены верификация и показано, что ошибка моделирования производительности по метрике RMSE в среднем составляет 10,2 млрд м3 и 0,01 млрд м3 для режимов отбора и закачки соответственно. Разработан программный интерфейс численного расчета производительности отбора и закачки. Перспективными являются следующие направления работ: - расширение выборки с учетом расширения ограничений и приближений; - расширение количества объектов ПХГ. 68 Лекция: Введение в машинное обучение 68 Заключение 69 • Рассмотрены типы задач машинного обучения • Приведен разбор процесса обучения моделей на примере задачи линейной регрессии • Изучена модель полносвязной нейронной сети для классификации и ее обучение • Приведены промежуточные результаты применения методов машинного обучения на объектах ПХГ Лекция: Введение в машинное обучение 69 СПАСИБО ЗА ВНИМАНИЕ! Гришин Никита Александрович Инженер-программист