Когда я подавал документы в аспирантуру, я написал много своих эссе о снижении вреда с помощью ИИ. В частности, о честности ИИ, новой, но растущей области ИИ. Справедливость ИИ направлена ​​на то, чтобы ИИ не усугублял и не укреплял расслоение общества.

Несколько примеров:

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

· Модель ИИ, обученная в основном на данных белых людей, может столкнуться с проблемами, подобными тому, что произошло в этом году у Amazon и IBM, когда голосовые подсказки не работали так же хорошо для небелых людей.

· Образовательный ИИ может персонализировать опыт учащихся, помещая их на разные образовательные уровни с соответствующими результатами, такими как предоставление ухудшенной учебной программы для учащихся с СДВГ.

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

К сожалению, это не просто удаление защищенных классов из данных. Даже если эти данные удалены, модель ИИ может вывести их из других полей, например определить пол по именам людей. К счастью, в этой области проводится много качественных исследований. Мы собираемся показать, как включение объективности в ваши модели становится простым. В этом тематическом исследовании будет использоваться ведущий в отрасли API Fairlearn с открытым исходным кодом, разработанный Microsoft.

Включение справедливости в ваши модели становится простым.

Полная модель

Для нашего тематического исследования мы будем использовать данные о принятии гранта DonorsChoose, любезно предоставленные Kaggle. С сотнями тысяч ежегодных заявок на проекты DonorsChoose необходимо предсказать, какие из них будут приняты. После очистки, предварительной обработки и обработки их данных я настроил гиперпараметр. Результатом стала хорошо работающая модель логистической регрессии с площадью под кривой (AUC) 0,703.

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

from fairlearn.widget import FairlearnDashboard
FairlearnDashboard(sensitive_features=test_data[‘teacher_prefix’], sensitive_feature_names=[‘teacher_prefix’], y_true=y_test, y_pred=y_test_pred)

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

Со значением AUC, равным 0,703, разница в AUC составляет всего 0,0351, а это означает, что мы делаем точные прогнозы для всех трех групп.

С точки зрения прогнозов, с прогнозируемым уровнем одобрения 84,8%, у нас есть несоответствие менее 1%, что является феноменальным. Это говорит о том, что модель уже работает вполне прилично! Можем ли мы сделать лучше?

Смягченные модели

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

from fairlearn.reductions import GridSearch                      from fairlearn.reductions import DemographicParity, ErrorRate
sweep = GridSearch(LogisticRegression(C = best_n, n_jobs = 1), constraints=DemographicParity(),grid_size=80)
X = x_train.toarray()                                      sweep.fit(X, y_train, sensitive_features=train_data[‘teacher_prefix’])
predictors = sweep.predictors_
dashboard_predicted = {“unmitigated”: clf.predict_proba(x_test_csr)[:,1]}
for i in range(len(predictors)):
    key = “model_{0}”.format(i)
    value = predictors[i].predict_proba(x_test_csr)[:,1]
    dashboard_predicted[key] = value
FairlearnDashboard(sensitive_features=test_data[‘teacher_prefix’], y_true=y_test, y_pred=dashboard_predicted)

Здесь мы видим, что наша модель лучше всего справляется с справедливостью прогнозов и имеет лучшую производительность!

Что касается паритета AUC, другие модели имеют более низкие показатели несоответствия (предсказывают одинаково хорошо по группам), но за счет более низкого AUC. Учитывая, что наше несоответствие AUC составляет всего 0,0351 для AUC 0,7, нет смысла снижать его до 0,65 или меньше, чтобы уменьшить несоответствие ниже 0,03. Другими словами, по крайней мере для нашего варианта использования первоначальная модель оказалась идеальной!

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

Fairlearn API также позволяет вам щелкнуть модели и посмотреть, насколько хорошо они работают с равноправием, как эта.

Теперь мы использовали Fairlearn, чтобы добиться максимальной справедливости! В нашем случае наша первоначальная модель лучше всего соответствовала нашим целям, но это не всегда так. Рост исследований в области объективности ИИ, безусловно, сделает проще и более доступнымубедиться, что наш ИИ способствует лучшему мир.

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

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

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