«Когда разработчик говорит «модель готова», он имеет в виду её точность и производительность. Но за этим стоит негласное обещание: «она будет вести себя предсказуемо и справедливо». Спецификация fairness и robustness — это попытка записать это обещание на формальном языке, а верификация — способ проверить, что система его не нарушит. Это сдвиг фокуса с того, что система делает, на то, как она это делает, и для кого.»
Классическое разделение требований на функциональные и нефункциональные уже не работает для систем, принимающих решения. Свойства справедливости и устойчивости размывают эту границу: они описывают принципы принятия решений, а не только их результат. Возникает парадокс — как проверить соблюдение принципов, изначально сформулированных на человеческом языке? Ключ не в новых инструментах тестирования, а в изменении подхода к формализации этих требований.
### Суть fairness и robustness за рамками определений
Понятие fairness часто сводят к отсутствию дискриминации. Это лишь юридический фасад. Глубже fairness — это **согласованность поведения системы с операционными и этическими ограничениями**. Речь не о равном распределении исходов, а о том, чтобы решения не зависели от признаков, нерелевантных для конкретной задачи. Например, в кредитном скоринге не должен напрямую влиять пол или почтовый индекс. Сложность в том, что эти признаки часто косвенно связаны с реальными факторами риска. Задача спецификации — формально отделить причинно-следственные связи от статистических корреляций, которые могут воспроизводить исторические предубеждения.
Robustness — это не просто устойчивость к сбоям. В контексте машинного обучения это **предсказуемость выходов при незначительных, но семантически важных изменениях входов**. Система должна сохранять корректность в условиях, которые не были явно представлены в обучающей выборке, но возможны в реальности. Например, распознавание дорожных знаков при снеге или изменение формулировки запроса в чат-боте. Спецификация robustness задаёт границы допустимых искажений, за которыми поведение системы считается неопределённым.
[ИЗОБРАЖЕНИЕ: Схема пересечения требований. Внешний круг — «Функциональные требования» (что делает система). Внутренний, перекрывающий его круг — «Нефункциональные требования» (как делает). Области их пересечения с подписями: «Fairness: согласованность с ограничениями» и «Robustness: устойчивость к искажениям».]
### Спецификация: от принципов к формальным ограничениям
Абстрактные принципы должны быть переведены на язык, понятный инструментам анализа и самой системе. «Система должна быть справедливой» — не спецификация, а декларация о намерениях.
Формализация fairness
На практике используют несколько математических подходов, каждый с собственными компромиссами.
| Подход | Суть | Ограничения и применимость |
|---|---|---|
| Демографический паритет | Распределение положительных решений (например, одобрений) должно быть одинаковым для разных защищённых групп. | Сглаживает статистические дисбалансы, но может нарушать справедливость на индивидуальном уровне, «наказывая» квалифицированных кандидатов из условно «привилегированной» группы. |
| Равенство шансов | Истинно положительные и ложноположительные результаты должны быть равны для всех групп. Учитывает качество предсказаний. | Требует наличия «истинных» меток (ground truth), которые в реальных данных сами могут содержать скрытые предубеждения. |
| Индивидуальная справедливость | Похожие индивиды должны получать схожие исходы. | Концептуально идеально, но операционализация «похожести» в многомерном пространстве признаков нетривиальна и может быть субъективной. |
Спецификация часто представляет собой набор метрик и логических условий. Пример: «Для заявителей с кредитным рейтингом X и доходом Y вероятность одобрения не должна статистически значимо различаться между группами A и B».
Формализация robustness
Здесь спецификация определяет, к каким искажениям система должна быть устойчива.
- Нормированные атаки: Система должна сохранять выход при изменении входного вектора в пределах заданной метрики (например, L-∞ норма для изображ