Dataset Bias
Смещение набора данных — это несоответствие между обучающими данными и реальным миром, в котором используется модель, из-за которого точность различается. Разбираем основные типы, примеры, а также способы выявления и устранения.
Смещение набора данных — это систематическое несоответствие между данными, используемыми для обучения модели машинного обучения, и людьми, местами или условиями, для которых предназначена модель. Модели усваивают все закономерности в своих обучающих данных, включая случайные особенности их сбора. Поэтому на смещенном наборе данных получается модель, которая хорошо работает в часто встречавшихся ситуациях и плохо — во всех остальных. Поскольку тестовые данные обычно берут из того же источника, проблема часто остается незамеченной до развертывания. В 2011 году Антонио Торральба и Алексей Ефрос показали это на примере игры «Угадай набор данных»: простой классификатор определял, к какому из 12 популярных наборов данных изображений относилась картинка, намного лучше случайного выбора, поскольку у каждой подборки был свой узнаваемый стиль.
Виды смещения набора данных#
- Смещение отбора: Данные берут из удобных источников, а не из целевой популяции. На веб-фотографиях непропорционально часто встречаются состоятельные жители Запада, а коммерческие сервисы распознавания объектов примерно на 10% хуже справлялись с предметами быта из домов, где ежемесячный доход составлял менее 50 долларов США, чем из домов с доходом более 3500 долларов США. Разница для предметов, сфотографированных в США и в Сомали или Буркина-Фасо, составляла от 15 до 20 процентных пунктов.
- Смещение представленности: Некоторые группы или классы встречаются слишком редко, чтобы модель могла их усвоить. Проверка Gender Shades показала, что коммерческие классификаторы гендера ошибочно классифицировали темнокожих женщин в 34,7% случаев, а светлокожих мужчин — максимум в 0,8% случаев. В обнаружении объектов длинный хвост редких классов представляет ту же проблему на уровне классов.
- Смещение измерений и сбора данных: Камеры, датчики, площадки и условия освещения отличаются в обучающих данных и при развертывании. Модели глубокого обучения для обнаружения пневмонии на рентгеновских снимках грудной клетки могли также определять, в какой больнице было сделано изображение. Поскольку частота пневмонии различалась между больницами, этот сигнал завышал точность, но плохо переносился на новые площадки. Это разновидность обучения на коротких путях.
- Смещение меток: Разметка данных наследует суждения аннотаторов, непоследовательные инструкции или решения, принятые ранее, а модель воспринимает такие закономерности как истинные данные.
- Временное смещение: Данные, собранные в один период, перестают соответствовать реальности по мере изменения моды, товаров и транспортных средств.
Как проявляется смещение набора данных#
Модель восприятия для беспилотных автомобилей, обученная преимущественно в солнечном и сухом климате, менее надежно обнаруживает пешеходов в снег, дождь и темноте. Команды, разрабатывающие автономные транспортные средства для ИИ в автомобильной отрасли, собирают данные о ночных поездках и плохой погоде, чтобы сократить этот разрыв. В анализе медицинских изображений дерматологические модели, обученные на подборках со значительной долей светлой кожи, хуже работают с темной кожей, а системы распознавания лиц демонстрируют демографические различия, измеренные в исследовании Gender Shades. В каждом случае общая точность выглядит высокой, потому что в среднем преобладают результаты для большинства.
Следующий фрагмент кода наглядно показывает механизм на примере scikit-learn. Группа B демонстрирует иной закономерный признак, чем группа A. Один и тот же случайный лес дважды обучается на 1000 примерах: сначала группа B составляет 2% данных, а затем классы сбалансированы:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
rng = np.random.default_rng(0)
def sample(n, group):
"""Draw n points from group A (label set by feature 0) or group B (label set by feature 1)."""
center = 0.0 if group == "A" else 3.0
X = rng.normal(center, 1.0, size=(n, 2))
return X, X[:, 0 if group == "A" else 1] > center
for n_a, n_b in [(980, 20), (500, 500)]: # skewed, then balanced training sets of the same size
Xa, ya = sample(n_a, "A")
Xb, yb = sample(n_b, "B")
model = RandomForestClassifier(random_state=0).fit(np.vstack([Xa, Xb]), np.concatenate([ya, yb]))
acc = {g: model.score(*sample(2000, g)) for g in "AB"} # held-out accuracy per group
print(f"train A:B = {n_a}:{n_b} -> accuracy on A {acc['A']:.3f}, on B {acc['B']:.3f}")Обученная на смещенной выборке модель безошибочно работает с группой A (1,000), а для группы B дает правильный ответ лишь в 76,8% случаев. Балансировка тех же 1000 примеров повышает точность для группы B до 98,3%, а для группы A она немного снижается — до 97,2%. На тестовой выборке с соотношением 98:2, как в смещенных обучающих данных, первая модель получила бы общую оценку около 99,5%, полностью скрывающую разрыв.
Смещение в наборе данных и связанные понятия#
- Алгоритмическое смещение: Смещение, вызванное проектированием модели, целевой функцией или развертыванием, например функцией потерь, отдающей предпочтение преобладающим классам. Смещение набора данных — одна из основных причин алгоритмического смещения; эти явления часто усиливают друг друга.
- Смещение в ИИ: Общее название систематической несправедливости в системах ИИ; противоположное понятие — справедливость в ИИ. Стандарт NIST по выявлению смещения в ИИ и управлению им делит его источники на системные, человеческие и статистические или вычислительные. Нерепрезентативные наборы данных относятся к последней категории.
- Дрейф данных: Изменение распределения входных данных после развертывания. Смещение набора данных присутствует уже при сборе данных, а дрейф со временем создает разрыв, даже если исходные данные были репрезентативными.
Выявление и снижение смещения наборов данных#
Выявление смещения в данных компьютерного зрения начинается с документирования и раздельной оценки. В документе «Паспорта наборов данных» предлагается фиксировать, кто, как и с какой целью собирал данные, чтобы пользователи могли понять, кого они представляют. Вместо единого среднего значения при оценке следует приводить метрики по группам, площадкам, камерам или условиям, а также матрицу ошибок для каждого среза. Полезно также изучать сами данные: в Ultralytics Platform на вкладке «Классы» для каждого набора данных отображается число аннотаций по классам и доступно переключение на логарифмическую шкалу для несбалансированных данных; панель «Кластеризация» отображает эмбеддинги изображений, окрашенные по классу или разделу, поэтому пробелы в охвате обнаруживаются до обучения.
Способ устранения зависит от причины. Целенаправленный сбор данных для слабых срезов устраняет проблему напрямую, а активное обучение помогает выбрать изображения для новой разметки. Аугментация данных изменяет освещение, ориентацию и масштаб, а синтетические данные помогают восполнить редкие условия, например ночные сцены или необычные дефекты. Перевзвешивание или передискретизация недостаточно представленных примеров либо оптимизация худшей по показателям группы с помощью распределенно-устойчивой оптимизации меняет то, за что модель получает вознаграждение при обучении. После развертывания мониторинг модели с разбивкой по срезам помогает выявить разрывы, возникающие по мере изменения условий.










