손실 함수 설계
이 컴페티션은 다른 것에 비해 평가 방식이 조금 복잡합니다. 평가 방식에서 나타내는 수치의 의미를 잘 이해해서, 이를 모델 학습에 녹여낼 수 있다면 더 좋은 결과를 낼 수 있습니다. 앞서 7.2.2절에서 평가 방식을 구성하는 여러 지표에 대해 설명한 적이 있습니다. 여기서 Subgroup에 따른 평가 지표의 차이와 그 의미에 대해 소개했습니다(그림 7-2 참조). 이를 보면 다른 Bias 지표들에 비해 유독 BPSN과 Subgroup이 성능이 낮음을 알 수 있었습니다. 이 현상은 저희 팀이 사용했던 모델 구조에서도 동일하게 나타났습니다.
이러한 문제를 개선하고자, BPSN과 Subgroup에 해당하는 데이터에 대해 손실(Loss) 함수가 조금 더 높은 가중치로 에러를 부여할 수 있도록 조절했습니다. 이를 위해 손실 함수에 적용할 가중치 벡터를 만들어야 합니다. 이 가중치 벡터의 값으로 특정 데이터에 에러에 대한 영향력을 조절할 수 있습니다. 먼저 Subgroup을 가진 데이터의 인덱스를 찾습니다. 그다음, 정답이 양성(Positive: 1)인 인덱스와 Subgroup 인덱스로 BPSN의 인덱스를 구합니다. 이제 원하는 데이터의 위치를 찾았으니 각 평가 지표별 가중치(W_a)를 적용하여 손실 함수에 적용할 가중치(subgroup_bpsn_weight)를 생성하고 이를 손실 함수에 적용합니다.