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

Обзор

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

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

Ситуация усугубляется еще и тем, что мы больше заботимся об устранении ошибок типа II (ложноотрицательные результаты), чем типа I (ложные срабатывания). В медицинской практике почти всегда лучше провести дополнительные тесты для пациента, у которого нет заболевания, чем оставить без лечения пациента, у которого есть заболевание.

Вот пример несбалансированного набора данных (после применения анализа основных компонентов к его характеристикам), содержащего 141 образец мочи для пациентов с бактериурией и 663 образца для пациентов без инфекции:

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

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

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

Давайте обучим простую плотную нейронную сеть с 3 слоями, содержащими 3 tanh, 2 tanh и 1 выходной сигмовидный нейрон. Модель будет использовать двоичную кроссентропию в качестве функции потерь, и мы будем обучать ее с использованием стохастического градиентного спуска для 100 эпох по набору данных выше.

Как и ожидалось, нейронная сеть сообщает об относительно высоком значении точности 0,92, но низком значении отзыва всего 0,60.

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

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

Повторная выборка

Недискретизация

Случайная недостаточная выборка может не сработать в случае, если недостаточно данных для обобщения модели.

Метод под названием Tomek links³ можно использовать для идентификации пограничных образцов и, таким образом, удаления оставшихся образцов, поскольку они менее важны для обобщения и тестирования.

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

В некоторых случаях это работает, но может не работать с указанным выше набором данных Bacteriuria. Как вы можете видеть на Рисунке № 2, зеленая область с высокой плотностью, обведенная оранжевым цветом, перекрывается с умеренно разреженной областью или красными точками. Удаление зеленых точек из этого региона не приведет к значительному увеличению запоминаемости модели.

Передискретизация с заменой

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

Синтетическая передискретизация

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

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

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

Один из успешных подходов к синтетической передискретизации называется SMOTE⁵ (Synthetic Minority Over-sampling Technique), при котором новые выборки генерируются вдоль линий внутри кластеров k ближайших соседей. SMOTE показывает улучшенные результаты медицинской диагностики в нескольких исследованиях, например, по диагностике диабета⁶ и рака⁷.

Реализация SMOTE⁸ доступна в Python⁹, и она даже позволяет комбинировать синтетическую передискретизацию с недостаточной дискретизацией для получения лучших результатов.

Вот тот же набор данных по бактериурии, что и выше, но после применения к нему SMOTE:

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

Нейронная сеть, описанная выше и обученная на наборе данных с образцами SMOTE, сообщает менее оптимистичное значение точности 0,87 (ранее 0,92), но гораздо лучшее значение запоминания 0,75 (ранее 0,60).

Другой подход под названием Deep SMOTE¹¹ утверждает, что улучшает производительность SMOTE с точки зрения точности, F₁ и AUC за счет использования глубокой нейронной сети для генерации синтетических выборок.

Выводы

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

использованная литература

¹ Натали Япкович; Проблема классового дисбаланса: значение и стратегии; 2000 г.

² Матиас Коль; Показатели эффективности в двоичной классификации; 2012 г.

³ Иван Томек; Две модификации CNN; 1976 г.

⁴ Мирослав Кубат, Стэн Матвин; Устранение проклятия несбалансированных тренировочных наборов: односторонний выбор. В материалах XIV Международной конференции по машинному обучению , стр. 179–186; 1997 г.

⁵ Нитеш В. Чавла, Кевин В. Бойер, Лоуренс О. Холл, У. Филип Кегельмейер; SMOTE: Техника передискретизации синтетического меньшинства. 2002 г.

⁶ Манал Альгамди, Муаз Аль-Маллах, Стивен Кетейян, Клинтон Браунер, Джонатан Эрман, Шериф Сакр; Прогнозирование сахарного диабета с использованием SMOTE и подхода ансамблевого машинного обучения: проект Генри Форда ExercIse Testing (FIT). 2017 г.

⁷ Сара Фотухи, Шахрох Асади, Майкл Каттан; Комплексный анализ уровня данных для диагностики рака на несбалансированных данных; 2019.

⁸ Джейсон Браунли; SMOTE для несбалансированной классификации на Python; 2020.

scikit-learn-contrib / imbalanced-learn

¹⁰ Джейсон Браунли; Как совместить передискретизацию и передискретизацию для несбалансированной классификации; 2020.

¹¹ Хади Мансоурифар, Вейдун Ши; Техника передискретизации глубокого синтетического меньшинства; 2020.