AI 모델 개발: 클래스 불균형 해결 – Focal Loss
ㅁ 클래스 불균형 해결
1. Focal Loss
ㅇ 정의:
– 분류 문제에서 클래스 불균형으로 인해 쉬운 예시에 치우쳐 학습되는 문제를 완화하기 위해, 어려운 예시에 더 큰 가중치를 부여하는 손실 함수.
– Cross Entropy Loss에 조정 계수(γ, 감마)와 α-밸런싱 파라미터를 추가하여 설계.
ㅇ 특징:
– γ(감마)가 클수록 쉬운 샘플의 손실 기여도가 줄어들고 어려운 샘플의 기여도가 커짐.
– α 파라미터를 통해 클래스별 가중치를 조정 가능.
– 주로 객체 탐지(예: RetinaNet)에서 불균형 클래스 문제 해결에 사용.
ㅇ 적합한 경우:
– 희귀 클래스(소수 클래스)의 학습 성능 향상이 필요한 경우.
– 데이터셋에서 긍정/부정 비율이 극단적으로 차이 나는 경우.
ㅇ 시험 함정:
– γ 값이 클수록 모든 샘플의 손실이 커진다고 오해 → 실제로는 쉬운 샘플의 손실 기여를 줄임.
– Focal Loss는 클래스 불균형 문제만 해결한다고 단정 → 어려운 샘플 학습에도 효과적.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) Focal Loss는 어려운 샘플에 더 많은 가중치를 부여하여 학습을 유도한다.
– (X) Focal Loss는 쉬운 샘플의 손실을 크게 하여 모델이 더 빨리 수렴하도록 한다.
– (O) γ 값이 클수록 쉬운 샘플의 기여도가 감소한다.
– (X) α 파라미터는 학습률을 조정하는 하이퍼파라미터이다.
ㅁ 추가 학습 내용
Focal Loss는 클래스 불균형 문제를 완화하기 위해 제안된 손실 함수로, 기본 Cross Entropy Loss에 (1 – p_t)^γ 항을 곱하여 쉬운 샘플의 기여를 줄인다. 수식은 다음과 같다.
FL(p_t) = – α (1 – p_t)^γ log(p_t)
여기서 p_t는 정답 클래스에 대한 예측 확률이며, α는 클래스별 비율에 따라 가중치를 부여하는 역할을 한다. γ는 쉬운 샘플 억제 정도를 조절하는 조절 파라미터로, γ=0이면 Focal Loss는 Cross Entropy Loss로 환원된다.
RetinaNet에서 Focal Loss를 사용하여 객체 탐지 시 배경 클래스가 압도적으로 많은 문제를 해결하였다. α와 γ를 조합하여 클래스 불균형과 쉬운 샘플 억제를 동시에 조절할 수 있다.
다른 클래스 불균형 해결 방법으로는 SMOTE(소수 클래스 샘플 증식), 클래스 가중치 조정 등이 있으며, Focal Loss는 데이터 증강 없이 손실 함수 설계로 문제를 완화한다는 점에서 차이가 있다.