모델 수정이란 무엇인가요?

머신러닝 모델 성능과 관련해 슬라이스 평가를 실행했다면 모델이 특정 데이터 슬라이스에서 성능이 낮은 것을 알 수 있습니다. 이렇게 균일하지 않은 성능 유형은 때로 취약한 인구 집단에 불공정하고 잠재적으로 유해한 결과를 초래할 수 있습니다. 일반적으로 편향 문제를 해결하는 데는 3가지 기본 유형의 기술 개입이 있습니다.

  • 입력 데이터 변경: 더 많은 데이터 수집, 합성 데이터 생성, 여러 슬라이스의 가중치와 샘플링 레이트 조정 등1
  • 모델에 개입: 모델 객체를 도입하거나 조정하고 제약조건을 추가하는 등 모델 자체를 변경2
  • 결과 후처리: 측정항목 전반의 성능을 향상하도록 모델의 출력 또는 출력의 해석을 수정3

from tensorflow_model_remediation import min_diff
import tensorflow as tf

# Start by defining a Keras model.
original_model = ...

# Set the MinDiff weight and choose a loss.
min_diff_loss = min_diff.losses.MMDLoss()
min_diff_weight = 1.0  # Hyperparamater to be tuned.

# Create a MinDiff model.
min_diff_model = min_diff.keras.MinDiffModel(
original_model, min_diff_loss, min_diff_weight)

# Compile the MinDiff model normally.
min_diff_model.compile(...)

# Create a MinDiff Dataset and train the min_diff_model.
min_diff_model.fit(min_diff_dataset, ...)

MinDiff란 무엇인가요?

MinDiff는 두 개의 분포를 균등화하려는 모델 수정 기법입니다. 실제로는 분포 차이에 페널티를 주어 다양한 데이터 슬라이스의 오류율 균형을 맞추는 데 사용됩니다.

일반적으로 민감한 클래스에 속한 데이터 슬라이스와 더 나은 성능을 보이는 슬라이스 사이의 거짓양성률(FPR) 또는 거짓음성률(FNR)의 차이를 최소화하려는 경우에 MinDiff를 적용합니다. 공정성 측정항목에 관한 자세한 논의는 이 주제에 관한 문헌을 검토해 보세요.4 5 6

MinDiff는 어떻게 작동하나요?

데이터 세트에서 예 두 집합이 있을 때 MinDiff는 두 집합 사이 점수 분포의 차이를 학습하는 동안 모델에 페널티를 줍니다. 두 집합이 예측 점수를 기반으로 덜 구별될수록 더 적은 페널티가 적용됩니다.

페널티는 모델이 학습하고 있는 손실에 구성요소를 추가하여 적용됩니다. 이는 모델 예측 분포의 차이를 측정하는 것으로 생각할 수 있습니다. 모델이 학습할수록 위의 그래프처럼 분포를 더 좁혀서 페널티를 최소화하려고 합니다.

MinDiff를 적용하면 원래 작업의 성능에 관해 절충해야 하는 부분이 발생합니다. 실제로 MinDiff가 제품 요구사항 이상으로 성능을 저하시키지 않을 때는 효과적이라는 것을 발견했지만, 이는 적용 분야에 따라 다르며 제품 소유자가 신중하게 결정해야 합니다. MinDiff를 구현하는 방법의 예는 메모장 튜토리얼에서 확인해 보세요.

1장, G., 바이, B., 장, J., 바이, K., 주, C., 자오, T. (2020). 인구통계가 불공정을 낳아서는 안 된다: 인스턴스 가중치 부여로 텍스트 분류의 차별 완화
2프로스트, F., 치안 H., 첸, Q., 치, E., 첸, J., 보이텔, A. (2019). 커널 기반의 분포 매칭으로 성능과 공정성 간의 균형 향상
3알랍둘모신, I. (2020). 제약 없는 최적화를 통한 공정한 분류
4드워크, C., 하르트, M., 피타시, T., 라인골드, O., 제멜, R. (2011). 인식을 통한 공정성.
5하르트, M., 프라이스 E 스레브로, N. (2016). 감독 학습의 기회균등
6출데초바, A. (2016). 이질적인 영향을 미치는 공정한 예측: 재범 예측 도구의 편향 연구.

리소스