часть 3: смягчение
TL;DR
Пакет R fairmodels упрощает обнаружение смещения посредством визуализации модели. Он реализует несколько стратегий смягчения, которые могут уменьшить смещение. Это позволяет легко использовать проверки показателей справедливости и сравнения между различными моделями машинного обучения (ML).
Длинная версия
Снижение предвзятости - важная тема в области справедливости машинного обучения (ML). Для пользователей python есть уже реализованные, хорошо объясненные и описанные алгоритмы (см. AIF360). fairmodels предоставляет реализацию нескольких популярных эффективных методов снижения предвзятости, которые сделают вашу модель более справедливой.
У меня предвзятая модель, что теперь?
Предвзятая модель - это еще не конец света. Есть много способов справиться с этим. fairmodels реализует различные алгоритмы, которые помогут вам решить эту проблему. Во-первых, я должен описать разницу между алгоритмом предварительной обработки и алгоритмом постобработки.
- Алгоритмы предварительной обработки работают с данными до обучения модели. Они пытаются уменьшить предвзятость между привилегированными и непривилегированными подгруппами посредством вывода из данных.
- Алгоритмы постобработки изменяют выходные данные модели, описанной с помощью DALEX, так что их выходные данные не так сильно благоприятствуют привилегированной подгруппе.
Как работают эти алгоритмы?
В этом разделе я кратко опишу, как работают эти методы снижения предвзятости. Код для более подробных примеров и некоторых использованных здесь визуализаций можно найти в этой виньетке.
Предварительная обработка
Съемник разрозненных ударов (Feldman et al., 2015)
Этот алгоритм работает с числовыми, порядковыми функциями. Он изменяет значения столбцов, поэтому распределения для непривилегированной (синий) и привилегированной (красный) подгрупп близки друг к другу. В целом, мы бы хотели, чтобы наш алгоритм оценивал не ценность функции, а скорее процентили (например, наем 20% лучших кандидатов на вакансию из обеих подгрупп). Принцип работы этого алгоритма заключается в том, что он находит такое распределение, которое минимизирует расстояние от землеройного. Проще говоря, он находит среднее распределение и меняет значения в этой функции для каждой подгруппы.
Reeweightnig (Камиран и др., 2012)
Повторный взвешивание - простой, но эффективный инструмент для минимизации систематической ошибки. Алгоритм смотрит на защищенный атрибут и на настоящую метку. Затем он вычисляет вероятность присвоения благоприятной метки (y = 1) при условии, что атрибут protected и y независимы. Конечно, если есть систематическая ошибка, они будут статистически зависимыми. Затем алгоритм делит вычисленную теоретическую вероятность на истинную эмпирическую вероятность этого события. Так создается вес. С помощью этих двух векторов (защищенная переменная и y) мы можем создать вектор весов для каждого наблюдения в данных. Затем мы передаем его модели. Просто как тот. Но в некоторых моделях нет параметра веса, и поэтому этот метод не подходит.
Ресэмплинг (Камиран и др., 2012)
Повторная выборка тесно связана с предыдущим методом, поскольку он неявно использует повторное взвешивание для расчета количества наблюдений, которые должны быть пропущены / дублированы в конкретном случае. Представьте, что есть 2 группы, лишенные (S = 0) и избранные (S = 1). Этот метод дублирует наблюдения из лишенной подгруппы, когда метка является положительной, и пропускает наблюдения с отрицательной меткой. Противоположное действие затем выполняется в отношении избранной группы. Реализовано 2 типа методов передискретизации: равномерный и предпочтительный. Uniform выбирает наблюдения случайным образом (как на картинке), тогда как preferential использует вероятности для выбора / исключения наблюдений, близких к пороговому значению (по умолчанию 0,5).
Постобработка
Постобработка происходит после создания объяснителя. Для создания объяснителя нам потребуется модель и объяснитель DALEX. Модель Gbm будет обучена на наборе данных взрослый, предсказывая, зарабатывает ли конкретный человек более 50 тысяч в год.
library(gbm) library(DALEX) library(fairmodels) data("adult") adult$salary <- as.numeric(adult$salary) -1 protected <- adult$sex adult <- adult[colnames(adult) != "sex"] # sex not specified # making model set.seed(1) gbm_model <-gbm(salary ~. , data = adult, distribution = "bernoulli") # making explainer gbm_explainer <- explain(gbm_model, data = adult[,-1], y = adult$salary, colorize = FALSE)
Отклонение классификации на основе опционов (сводная таблица) (Камиран и др., 2012 г.)
ROC pivot реализован на основе классификации на основе варианта отклонения. Алгоритм переключает метки, если наблюдение происходит из непривилегированной группы и находится слева от отсечки. Затем для привилегированной группы выполняется обратное. Но есть предположение, что наблюдение должно быть близко (с точки зрения вероятностей) к отсечке. Таким образом, пользователь должен ввести некоторое значение theta, чтобы алгоритм знал, насколько близко должно быть наблюдение к отсечке для переключения. Но есть загвоздка. Если бы только название было изменено, объяснителю DALEX было бы трудно правильно рассчитать производительность модели. По этой причине вместо меток в реализации этого алгоритма fairmodels используются вероятности, которые переключаются (поворачиваются). Их просто перемещают на другую сторону, но на равное расстояние до среза.
Отсечка манипуляции
Манипуляции с отсечкой могут быть отличной идеей для минимизации смещения в модели. Мы просто выбираем метрики и подгруппу, для которых изменится отсечка. График показывает, где находится минимум, и для этого значения порога потеря четности будет самым низким. Как создать fairness_object с разной отсечкой для определенной подгруппы? Это легко!
fobject <- fairness_check(gbm_explainer, protected = protected, privileged = "Male", label = "gbm_cutoff", cutoff = list(Female = 0.35))
Теперь fairness_object (fobject) представляет собой структуру с заданным ограничением, и она будет влиять как на показатели справедливости, так и на производительность.
Компромисс между честностью и точностью
Если мы хотим уменьшить предвзятость, мы должны знать о возможных недостатках этого действия. Допустим, Статическая четность - самый важный для нас показатель. Уменьшение потери четности этого показателя (вероятно) приведет к увеличению ложных срабатываний, что приведет к снижению точности. Для этого примера (который вы можете найти здесь) была обучена модель gbm, а затем были применены различные методы снижения смещения.
Чем больше мы пытаемся уменьшить предвзятость, тем меньше точность. Это что-то естественное для данной метрики, и пользователь должен об этом знать.
Резюме
Определенно стоит попробовать методы устранения смещения, реализованные в Fairmodels. Они гибкие, и большинство из них подходят для любой модели. Более того, они просты в использовании.
Что читать дальше?
- Публикация в блоге о справедливости, проблемах и решениях
- Запись в блоге о визуализации справедливости
Выучить больше
- Посетите сайт пакета GitHub для получения более подробной информации.
- Учебник по полным возможностям пакета fairmodels
- Учебник по методам снижения предвзятости