Оценки неопределенности в ML: как понять, что система ошибается или не уверена в предсказании?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

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

Есть два основных источника неопределенности: неопределенность данных (алеаторическая) и неопределенность знаний (эпистемическая).

Неопределенность данных измеряет «сложность» задачи и может быть вызвана шумной зависимостью таргета от факторов или пересекающимися классами. Важно: эта неопределенность не может быть уменьшена путем сбора большего количества обучающих данных.

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

Если наша цель — обнаружить ошибки модели, то нет необходимости разделять эти две неопределенности. Но если мы хотим использовать активное обучение, нам поможет неопределенность знаний.

Как же можно оценить неопределенности данных и знаний? Рассмотрим на примере алгоритма CatBoost. Он основан на градиентном бустинге над решающими деревьями, хорошо работает с табличными данными и широко применяется в различных практических задачах.

В классической задаче регрессии часто оптимизируется функция потерь RMSE (Root Mean Squared Error). В CatBoost есть и другая функция потерь — RMSEWithUncertainty. Она предсказывает и ожидаемое значение таргета, и его дисперсию. Эта дисперсия и есть неопределенность данных.

А что же делать с неопределенностью знаний? Чтобы ее измерить, можно использовать ансамбль моделей. Обучим несколько CatBoost-моделей и посмотрим, согласуются ли их предсказания для заданного входа. Если предсказания согласуются — неопределенность знаний будет низкой, если же модели дают разные предсказания — высокой. Формально в качестве неопределенности знаний можно взять дисперсию средних значений нескольких независимых моделей.

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

Подробнее о неопределенности в градиентом бустинге можно почитать в нашей статье, которая будет представлена на ICLR 2021: https://arxiv.org/pdf/2006.10562.pdf

А здесь вы найдете туториал с примерами расчета неопределенности в CatBoost для задач регрессии: https://towardsdatascience.com/tutorial-uncertainty-estimation-with-catboost-255805ff217e


Источник: towardsdatascience.com

Комментарии: