УДК 004

Методика блендинга результатов работы моделей машинного обучения

Маркеев Максим Валерьевич – независимый исследователь (г. Нижний Новгород).

Аннотация: В данной статье предлагается методика блендинга (смешивания результатов или сочетание) результатов работы моделей машинного обучения с разными весами для каждой модели с целью повышения суммарной точности работы. Проблема заключается в том, что перебирать модели и их веса простым перебором может быть очень затратно по вычислениям. Особенность методики заключается в том, что она позволяет сочетать между собой практически любое количество любых моделей машинного обучения, при этом работает значительно быстрее простых переборов и нетребовательна к вычислительным ресурсам, а суммарный результат получается лучше, чем у каждой отдельной модели. Дополнительно, с помощью методики можно сочетать между собой не отдельные модели, а различные наборы из моделей(ансамбли), что в свою очередь, также повышает итоговый результат. Результат работы методики показан в статье на конкретном примере.

Ключевые слова: нейронные сети, блендинг, энсемблинг, машинное обучение, искусственный интеллект, TensorFlow, Keras.

Введение

В современном мире все более часто и широко используются различные модели машинного обучения в том числе нейросети. Любой банк, онлайн-магазин, любой ритейлер используют множество различных моделей, позволяющих находить закономерности в данных, предсказывать покупки клиентов, бороться с мошенническими транзакциями, бороться со спамом, прогнозировать погоду, находить патологии на медицинских снимках и так далее. При этом очень важно, насколько точно и качественно эти модели работают. Например, если крупная страховая компания сможет составить такую модель или ансамбль из разных моделей, который позволить повысить точность предсказания наступления страхового случая, то это потенциально существенно повысит ее доходы. Поэтому, в последние годы наблюдается повышенный спрос на дата-саентистов(людей работающих с данными и способными извлечь из них полезную информацию), что выражается в их высоких заработных платах.

Для повышения точности работы как правило используют не одну модель, а несколько, объединяя их в наборы (ансамбли). Обычно, их общий результат работы будет лучше, чем у каждой конкретной модели в отдельности. Это связано с тем, что разные модели основаны на разных алгоритмах и каждый такой алгоритм имеет свои сильные и слабые стороны. Каждый новый алгоритм вносит диверсификацию, что делает их общую работу более устойчивой, скрывая слабые стороны и подчеркивая сильные (как у музыкантов в оркестре). Задача энсемблинга [1] моделей (составления ансамбля из разных моделей) заключается в нахождении и выборе оптимальной комбинации(комбинаций) моделей, а также алгоритма последующей обработки результатов работы этих моделей, например, пропуская результаты этих моделей через другие модели, для получения наилучшего результата по заданной метрике.

В данной статье описан один из вариантов составления такого ансамбля их моделей – блендинг.

1

Рисунок 1. Пример блендинга для 3-х моделей.

Блендинг моделей

Если у нас есть имеется только одна модель, то тут все понятно – мы получаем тот результат, который эта модель выдает. Но если моделей 2, то можно сделать простой перебор параметра K:

Результат = K * Модель_1 + (1 - K) * Модель_2    (1)

Например, в формуле выше можно просто перебрать значения от 0 до 1 с желаемым шагом, например, 0.01, чтобы найти то значение параметра K, при котором результат будет наилучшим по нужной нам метрике. Таким образом, для подбора одного коэффициента для 2-х моделей с шагом 0.01 нужно сделать 101 вычисление, что очень просто для современных компьютеров. Но если модели 3, то формула станет такой:

Результат = K1 * Модель_1 + K2 * Модель_2 + (1- K1- K2) * Модель_3    (2)

Здесь нужно подобрать 2 коэффициента, для этого придется сделать 1012 вычислений, что также не проблема для современных компьютеров. Но что, если моделей 100 или 1000 или 10000. Сложность таких вычислений становиться такой:

Сложность = (1/шаг + 1) (Количество Моделей - 1)    (3)

При шаге перебора 0.01 и 1000 моделей формула становится такой:

Сложность = 101999    (4)

Здесь уже даже современные компьютеры не справятся. Да и столько моделей просто не нужно так как внесение некоторых моделей будет ухудшать общий результат.

Методика выбора моделей для блендинга

Прежде чем выбирать модели для добавления в ансамбль, следуем сделать оговорку о том, что мы можем сравнивать только результаты работы моделей предсказания на данных, которые ни одна другая модель не использовала для обучения. Например:

2

Рисунок 2. Пример кросс-валидации при разбиении данных на 5 частей.

Сначала данные разбиваются на несколько частей (фолдов). Например 5. Далее, на шаге 1 модель обучается на данных (1-4) и делает предсказание для данных (5). На шаге 2 модель обучается на данных (1,2,3,5) и делает предсказание для данных (4) и так далее. Таким образом, после 5-ти шагов у нас будут результаты предсказаний для всех данных в датасете. Этот процесс называется кросс-валидация [2]. Именно эти предсказанные данные в оранжевых прямоугольниках используются для оценки качества работы моделей. Они сохраняются в отдельные файлы для дальнейшей обработки.

Модели, объединяемые в ансамбль могут обучаться на разных данных, например, если есть несколько датасетов, но ни одна из моделей добавляемых в ансамбль не должна была обучаться на тех данных, для которых другие модели делают предсказание. В противном случае результат будет слишком хорошим и нереалистичным. Это проблема классического подглядывания в ответы приводит к бесполезности составления таких ансамблей.

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

Суть методики заключается в следующем:

  1. Выбираем 1-ю модель для добавления в ансамбль и добавляем ее с весом 1. Для 1-го ансамбля рекомендуется добавить модель с лучшим результатом по нужно метрике
  2. Устанавливаем минимальное пороговое значение для добавления в ансамбль
  3. Перебираем все остальные модели с весами от 0 до 1 с нужным шагом (например, 0.01), пытаясь добавить каждую из них к первой модели и оставляем самую лучшую попытку
  4. Если результат такого добавления улучшает нужную метрику на значение больше, чем заданное пороговое значение, то выполняем алгоритм дальше, если нет, то цикл окончен
  5. Перебрав все модели, получаем модель 2 и ее вес для добавления в ансамбль к 1-й модели
  6. Добавляем модель 2 к ансамблю с нужным весом, меняя также вес предыдущих моделей, чтобы веса в сумме были равны 1
  7. Повторяем пункты 3-6 пока не сработает условие выхода в пункте 4

В этой методике количество моделей будет уже не в степени, а в множителе, что существенно снижает вычисления.

Сложность = (1/шаг + 1) * Количество Моделей    (5)

Для добавления одной модели в ансамбль, при шаге перебора 0.01 и общем количестве моделей 1000:

Сложность = 101 * 1000    (6)

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

Далее методика предлагает не останавливаться на одном ансамбле. Особенно если имеется очень много моделей, а в один ансамбль обычно попадает 5-10 моделей. Можно создавать другие ансамбли моделей, задавая 1-ю модель отличающуюся от 1-й модели в других ансамблях. Или выбирать такую 1-ю модель, которая еще не была задействована ни в одном из найденных ансамблей. А далее уже по предложенной методике сочетать ансамбли как модели. Или использовать любой другой математический метод подбора параметров для блендинга ансамблей.

Пояснение на примере

Для примера выбран датасет «Классификация болезней листьев маниоки» состоящий из 21418 фотографий листьев маниоки с 5-ю разными типами заболевания в соревновании на платформе Kaggle (URL: https://www.kaggle.com/competitions/cassava-leaf-disease-classification/data)

3

Рисунок 3. Количество фотографий с каждым классом болезни в датасете.

Данные были разбиты на 5 частей(фолдов) с равномерным количеством каждого класса в каждой части (StratifiedKFold) [3] и были обучены 3 модели из Keras Applications [4]:

Таблица 1. Обученные модели, параметры обучения и точность.

Модель

Высота

Ширина

Точность

EfficientNetB3 [5]

300

300

0.86629

EfficientNetV2S [6]

300

300

0.87727

ConvNeXtSmall [7]

224

224

0.86740

В качестве метрики используется простая точность:

Точность = Количество Правильно предсказанных изображений / Общее число изображений

Далее, каждая из этих моделей делала предсказания для разных значений высоты и ширины, а также для зеркально отображенных изображений. Вот откуда могут получится тысячи вариантов. Все результаты сохранены в отдельные файлы и далее мы работаем только с этими файлами (OOF Out-of Fold) [8].

Считаем точность по всем результатам, а их получилось около 1700 вариантов. Лучший результат 0.880778 у модели EfficientNetV2S на разрешении 390 x 390. Устанавливаем порог улучшения точности для добавления в ансамбль 0.0001

Шаг 1: добавляем эту модель первой в ансамбль с весом 1.

Шаг 2: находим лучшую модель и вес для добавления к ансамблю

Шаг 3: добавляем ее, пересчитываем веса и повторяем пункт 2, пока добавление новой модели в ансамбль увеличивает точность более, чем на 0.0001(0.1 %)

Таблица 2. Пример работы методики. Нахождение ансамбля из 5-ти моделей.

Шаг

Модель

Высота

Ширина

Зеркальное отображение

Вклад в ансамбль

Вес

Время выполнения, с

1

EfficientNetV2S

390

390

нет

0.88077

0.310067

320

2

EfficientNetB3

625

715

да

0.00593

0.378971

318

3

ConvNeXtSmall

224

224

да

0.00214

0.183162

317

4

EfficientNetB3

300

285

нет

0.00079

0.107800

312

5

EfficientNetB3

420

625

нет

0.00028

0.02

312

Итого Ансамбль

0.88993

1

1579

На процессоре Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz поиск модели и ее веса для добавления в ансамбль занимает 320 секунд. А на весь ансамбль, состоящий из 5-ти моделей около 26 минут. Каждая новая модель привносит все меньший вклад. После того как не удается добавить модель, так чтобы вклад был больше 0.0001(0.1 %) поиск заканчивается. Далее рекомендуется найти несколько ансамблей и сочетать их между собой по той же методике. Итого, точность ансамбля получилась 0.88993, что почти на 1 процент лучше, чем самая лучшая модель в этом ансамбле (0.88077).

Заключение

Чтобы повысить качество работы модели машинного обучения зачастую следует применять не одну модель, а несколько, объединяя их в группы (ансамбли). Обычно, их общий результат работы будет лучше, чем у каждой конкретной модели в отдельности. Каждый новый алгоритм вносит диверсификацию, что делает их общую работу более устойчивой. Предложенная методика последовательного добавления моделей в ансамбль позволяет сочетать практически неограниченное количество моделей. Лучший результат получится, если создать несколько ансамблей, а потом уже сочетать между собой эти ансамбли как модели по той же методике.

Список литературы

  1. Sagi O., Rokach L. Ensemble learning: A survey //Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery. – 2018. – Т. 8. – №. 4. – С. e1249.
  2. Refaeilzadeh P., Tang L., Liu H. Cross-validation //Encyclopedia of
  3. database systems. – 2009. – Т. 5. – С. 532-538.
  4. Zeng X., Martinez T. R. Distribution-balanced stratified cross-validation for accuracy estimation //Journal of Experimental & Theoretical Artificial Intelligence. – 2000. – Т. 12. – №. 1. – С. 1-12.
  5. Gulli A., Pal S. Deep learning with Keras. – Packt Publishing Ltd, 2017.
  6. Tan M., Le Q. Efficientnet: Rethinking model scaling for convolutional neural networks //International conference on machine learning. – PMLR, 2019. – С. 6105-6114.
  7. Tan M., Le Q. Efficientnetv2: Smaller models and faster training //International Conference on Machine Learning. – PMLR, 2021. – С. 10096-10106.
  8. Liu Z. et al. A convnet for the 2020s //Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. – 2022. – С. 11976-11986.
  9. Pierre E. A. Methodology in the fold and the irruption of transgressive data //International journal of qualitative studies in education. – 1997. – Т. 10. – №. 2. – С. 175-189.

Интересная статья? Поделись ей с другими: