Сведение к минимуму конкретных случаев в двоичной классификации, таких как ложноотрицательные или ложные срабатывания, становится все более важным, поскольку мы внедряем больше машинного обучения в текущие продукты. Одной из таких областей является здравоохранение, где минимизация ложных отрицательных результатов намного больше, чем минимизация ложных срабатываний, когда машинное обучение используется для диагностики пациентов. Точно так же и в отделе криминалистики ложные срабатывания более опасны, чем ложные отрицания, поскольку невиновному человеку может быть предъявлено обвинение в преступлении, которого он не совершал.

Текущие методы, которые доступны для минимизации таких случаев, как ложноотрицательные, включают

  1. Изменение веса классов
  2. Увеличение данных
  3. Пороговая линия
  4. Изменение части реальной стоимости данных и переобучение модели

1. Изменение весов классов

Согласно документации Keras, изменение веса класса

«Необязательные индексы классов отображения словаря (целые числа) в значение веса (с плавающей запятой), используемое для взвешивания функции потерь (только во время обучения)».

Этот словарь параметров меняет способ воздействия классов на потери. Более конкретно это означает, что если мы положим class_weights = {0: 1, 1:50}, то потери будут затронуты в 50 раз больше, если это реальное значение, а не ложное. Это может быть применено к более чем 2 классам (бинарным).

Функция потерь в двоичной классификации:

Когда мы добавляем class_weights, функция потерь выглядит так:

W0 означает вес класса «0» или «Ложь».
W1 обозначает вес класса «1» или истинный класс.

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

2. Увеличение данных

Увеличение данных - это наиболее распространенный метод, используемый для моделей, в которых данные несбалансированы, но его также можно использовать для несбалансированности данных из-за предвзятости в определенном случае. С несбалансированными данными модель будет лучше предсказывать случаи, которых было больше в данных. Хотя это может показаться не самым оптимальным решением для минимизации определенного случая, это все же возможно.

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

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

3. Пороговая линия

Один из самых простых способов минимизировать результаты определенного случая - просто изменить граничную линию решения с базовых 0,5 на выше (при уменьшении числа ложных срабатываний) или ниже (при уменьшении числа ложных отрицательных результатов).

Обычно, когда вы используете свою модель для прогнозирования новых изображений, она выдает значение, также известное как y_hat. Это значение находится в диапазоне от 0 до 1. В большинстве случаев, когда значение выше 0,5, окончательный прогноз считается 1 или истинным. Если значение ниже 0,5, окончательный прогноз будет 0 или ложным. Изменяя порог с 0,5, мы уменьшаем возможности модели для предсказания определенного результата.

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

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

4. Изменение части реальной ценности данных и повторное обучение модели.

Чтобы свести к минимуму количество ложных отрицательных результатов (FN) или ложных положительных результатов (FP), мы также можем переобучить модель на тех же данных с немного другими выходными значениями, более конкретными по сравнению с ее предыдущими результатами. Этот метод включает взятие модели и обучение ее на наборе данных до тех пор, пока она не достигнет оптимального глобального минимума. Если бы мы пытались минимизировать ложноотрицательные результаты, мы бы взяли некоторое количество (независимую переменную) ложных срабатываний в обучающих данных и изменили их реальное значение на 1. На рисунке ниже показана эта процедура.

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

Это несколько способов создания моделей бинарной классификации с упором на минимизацию определенного случая.