После того как вы определили, что контрфактическое логит-спаривание (CLP) является подходящим методом для вашего варианта использования, вы можете применить его, выполнив следующие шаги:
- Создайте экземпляр
CounterfactualPackedInputs
с исходными и контрфактическими данными. - Измерьте частоту и количество бросков, чтобы определить, требуется ли вмешательство.
- Если требуется вмешательство, передайте исходные входные данные, контрфактические данные, исходную модель и контрфактические потери в контрфактическую модель.
- Оцените влияние CLP, измерив частоту и количество бросков.
Чтобы увидеть пример применения CLP к модели Keras, см. учебник Use Counterfactual Logit Pairing with Keras .
Создайте экземпляр CounterfactualPackedInputs
.
Чтобы создать контрфактический набор данных, начните с определения условий и функций, которые вы хотите оценить, которые при удалении или замене могут изменить прогноз вашей модели.
Как только вы поймете условия и функции для оценки, вам нужно будет создать экземпляр CounterfactualPackedInputs
, который включает исходные входные данные и контрфактические данные. Исходными входными данными должен быть набор данных, который вы использовали для обучения модели Keras. Контрфактические данные имеют значение original_x
, значение counterfactual_x
и counterfactual_sample_weight
. Контрфактическое значение должно быть почти идентично исходному значению с той разницей, что один или несколько конфиденциальных атрибутов удалены или заменены. Качество контрфактического набора данных важно, поскольку оно используется для сопряжения функции потерь между исходным значением и контрфактическим значением с целью гарантировать, что прогноз модели не изменится, если чувствительный атрибут отличается.
Подробную информацию о том, как разработать этот контрфактический набор данных, см. в блокноте по созданию пользовательского контрфактического набора данных .
Измерьте количество и частоту бросков
Флип определяется как классификатор, дающий другое решение при изменении чувствительного атрибута, упомянутого в примере. Он фиксирует ситуацию, когда классификатор меняет свой прогноз при наличии, отсутствии или изменении идентификационного атрибута. При оценке реального значения (балла) классификатора следует использовать более непрерывный показатель.
Количество переворотов
Количество переворотов измеряет, сколько раз классификатор выдавал другое решение, если идентификационный термин в данном примере был изменен.
- Общее количество переворотов : общее количество переворотов прогноза с положительного на отрицательный и наоборот.
- Число переворотов прогноза от положительного к отрицательному : количество переворотов, при которых метка прогноза менялась с положительного на отрицательное.
- Число переворотов прогнозирования от отрицательного к положительному : количество переворотов, при которых метка прогноза менялась с отрицательного на положительное.
Скорость переворота
Частота переворотов измеряет вероятность того, что классификатор примет другое решение, если идентификационный термин в данном примере был изменен.
- Общая частота переворотов : общее количество переворотов по общему количеству примеров.
- Скорость переворота прогноза от положительного к отрицательному : количество переворотов от положительного к отрицательному по положительным примерам в контрфактическом наборе данных.
- Частота переворота прогноза от отрицательного к положительному : количество переворотов от отрицательного к положительному по отрицательным примерам в контрфактическом наборе данных.
После расчета частоты переворотов и количества переворотов с помощью индикаторов справедливости вы можете определить, делает ли классификатор другой прогноз на основе конфиденциального атрибута в данных. Вы можете использовать количество примеров и доверительные интервалы, чтобы определить, достаточно ли у вас данных для применения CLP и сделать выводы на основе коэффициента переворота. Высокая частота и количество переворотов указывают на такое поведение и могут использоваться для принятия решения о том, подходит ли CLP для вашего варианта использования. Это решение зависит от вашей модели и таких факторов, как вред, который может быть нанесен конечным пользователям, и продукт, в котором используется модель.
Примените контрфактическое сопряжение логитов к вашей модели Keras
Чтобы использовать CLP, вам нужна исходная модель Keras, которую вы хотите исправить, исходный набор обучающих данных и контрфактический набор данных. Определите, какие counterfactual loss
следует применить для логит-спаривания. Благодаря этому вы можете построить контрфактическую модель с желаемой контрфактической функцией потерь и функцией потерь из исходной модели.
После применения CLP вам следует рассчитать частоту и количество переворотов, а также любые изменения в других показателях, таких как общая точность, чтобы измерить улучшение, полученное в результате применения этого метода.