Предвзятые нейросети
Слышали ли вы раньше о predictive policing?
Predictive policing - это система, которая призвана помочь полиции, основываясь на данных об уже совершенных преступлениях. Нейросети, которые, конечно же, там используются, получают на вход архивные данные и дают советы: например, куда и когда следует отправить полицейский патруль. Этот метод предотвращения преступлений, конечно, не является чудо-техникой, которая скажет: "Я проанализировал материальное состояние жителей этого района и сделал вывод, что через час, вероятно, студент Раскольников убьет старуху-процентщицу и ее сестру. Отправьте туда пару полицейских." Конечно, нет. Эта система больше похожа на опытного полицейского-старожила, который сказал бы: "У нас тут каждые полгода грабят продуктовый магазин за углом, наверное, в этот раз стоит послать туда пару ребят подежурить". Такой помощник появился в 2011 и сейчас используется в некоторых штатах США и в Китае.
Казалось бы, что в этом может быть плохого? Но в начале этого года AI Now Institute провели исследование, которое показало обратную сторону медали. Дело в том, что данные, на которых обучалась данная модель, не были чистыми изначально. За долгую историю американской полиции было накопилось много дел, в которых большую роль сыграло расовое неравенство, и оказалось, среди прочего, что среди задержанных процент чернокожего населения был больше, чем процент белого. Основываясь на предоставленных ей данных, программа советовала отправить большую часть патрульных в районы, которые казались ей неблагополучными, например, афроамериканское гетто. Понятно, что без дела полиция не остаётся, и процент негров среди арестованных растет. Машина получает последние данные и видит, что большую часть преступников задержали в тех районах и советует послать туда ещё больше полицейских. Получается замкнутый круг и как следствие усугубление проблемы расового неравенства. Коррупция, выбивание показаний, предвзятость и многое другое, что находит отражение в данных для обучения, будут лишь множиться, если слепо следовать советам системы прогнозирования.
Такой замкнутый круг, когда результат одной итерации подается на вход другой, называется feedback loop, т.е. цикл с обратной связью.
Давайте подумаем, где ещё можно встретить такой цикл? На самом деле везде, где рекомендации машины предполагают совершение какого-то действия, где машина постоянно дообучается на новых данных, полученных в результате своей работы, и где изначальные данные не слишком чистые.
Мне в голову пришло ещё несколько примеров.
Пример 1
Где-то я читала о вспомогательной системе для отдела кадров, которая определяет по каким-то данным, насколько хорошо сотрудник вольётся в компанию. Так вот, можно предположить, что если в компании, например, мужчин работает больше, чем женщин, то выбирая между мужчиной и женщиной с одинаковыми навыками, программа отдаст предпочтение мужчине. Как вы понимаете, со временем коэффициент "привлекательности" для компании у мужчин сильно вырастет и программа станет ещё более предвзятой. На лицо feedback loop. Интересно, что похожая ситуация действительно имело место. Подробнее можно почитать здесь.
Изображение Coffee Bean с сайта Pixabay
Пример 2
Другой пример: представим, что мы обучаем своего чат-бота на открытых данных так, что он учится на реальных диалогах из интернета, а мы информацию для него практически не фильтруем. Внедряем наш чат-бот в среду, для которой он был предназначен, ну, скажем, на сайт для покупки билетов на футбольные матчи. И вдруг обнаруживается, что в том огромном датасете, на котором обучался наш помощник, были пару грубых диалогов и наша модель выучила несколько грубых фраз. Проблема в том, что машина не знает, что это плохие фразы и что так говорить нельзя, поэтому она случайно нагрубила в ответ какому-то футбольному фанату, который хотел уточнить, сколько нынче стоят билеты на матч. Понятное дело, тот может даже не догадываться, что отвечает ему не человек, но в любом случае хамство терпеть он не собирается и отвечает нашему боту соответствующим образом. Теперь наш бот знает ещё больше нехороших слов. И если разработчик вовремя не вмешается, мы вскоре обнаружим, что наша модель ведёт себя все более хамски. Опять feedback loop.
Просто вспомнилась история с грубоватым чат-ботом банка Тинькофф по имени Олег
Пример 3
Последний пример, который пришел мне на ум, не так хорош, так как не так близок к реальности. Если представить, что на распределение денег между регионами будет влиять обученная модель, то, вероятно, количество выделенных из бюджета средств будет пропорционально численности населения, площади города и количеству каких-нибудь крупных текущих проектов. Получив хорошее финансирование, крупный город M решил начать капитальный ремонт всего исторического центра. Увидев, что в городе М много начавшихся строек и реконструкций, система в следующем квартале выделяет ему ещё больше денег, но бюджет не безграничен, поэтому часть финансов забирают из суммы, которую в прошлый раз получили мелкие города, где никаких крупных строек не идёт уже лет 50. Как можно догадаться, обрадовавшись ещё большему финансированию, крупный город решает построить себе ещё пару офисных небоскребов и медучреждений с новейшим оборудованием. Вот он, порочный круг. С каждым разом программа будет предназначать все большие суммы крупным городам в ущерб мелким.
Photo by Sharon McCutcheon on Unsplash
Заключение
Такие ситуации встречаются, и предотвратить их очень сложно, ведь кристально чистых, "непредвзятых" данных практически не бывает. Что же делать? Не доверять все управление полностью системе, должен быть человек, который бы постоянно контролировал предсказания машины. Помните, что это только предсказания, то есть советы, а не точные инструкции. Машина бездушна, она не читала стихи Маяковского и не понимает, что такое хорошо, а что такое плохо. Поэтому прежде, чем следовать совету искуственного интеллекта, включите свой естественный. А моя статья подошла к концу. Спасибо за внимание! Если у вас есть замечания, предложения или другие интересные примеры таких циклов, пишите в комментариях!