Zettelkasten

CCC Loss는 예측값과 실제값의 일치도를 측정한다

·수정 2026.04.23·수정 2

요약

CCC (Concordance Correlation Coefficient) Loss는 예측값과 실제값 간의 일치도(agreement)를 측정하는 손실 함수다. 상관관계뿐 아니라 평균과 분산의 차이까지 반영하여 MSE보다 더 엄격한 평가를 한다.

본문

Concordance란?

**Concordance(일치)**는 두 측정값이 얼마나 동일한 값으로 일치하는지를 나타낸다.

Correlation (상관)  : 같이 올라가고 내려가는가? (방향)
Concordance (일치)  : 실제로 같은 값인가? (절대적 일치)
실제값 예측값 A 예측값 B
1 1 2
2 2 4
3 3 6
  • 예측값 A: Correlation = 1, Concordance = 1 (완벽 일치)
  • 예측값 B: Correlation = 1, Concordance < 1 (패턴은 같지만 값이 다름)

어원: 라틴어 con- (함께) + cord- (마음) → "마음이 일치하다"

CCC 공식

CCC=2ρσxσyσx2+σy2+(μxμy)2\text{CCC} = \frac{2 \rho \sigma_x \sigma_y}{\sigma_x^2 + \sigma_y^2 + (\mu_x - \mu_y)^2}
  • ρ\rho: Pearson 상관계수
  • σx,σy\sigma_x, \sigma_y: 예측값, 실제값의 표준편차
  • μx,μy\mu_x, \mu_y: 예측값, 실제값의 평균

CCC Loss

CCC Loss=1CCC\text{CCC Loss} = 1 - \text{CCC}
  • CCC 범위: -1 ~ 1 (1이면 완벽한 일치)
  • Loss 범위: 0 ~ 2 (0이면 완벽한 일치)

Pearson 상관계수와의 차이

측면 Pearson CCC
선형 관계
평균 차이 반영
스케일 차이 반영

Pearson은 y = 2x + 100도 상관계수 1이지만, CCC는 y = x일 때만 1이다.

사용 사례

  • 감정 인식: Valence, Arousal 연속값 예측
  • 의료 영상: 정량적 측정값 예측
  • 음성 분석: prosody feature 예측
  • 평가자 간 일치도(inter-rater agreement) 측정

장단점

장점:

  • 예측이 실제값과 얼마나 "일치"하는지 직접 측정
  • 바이어스와 스케일 오류 모두 페널티

단점:

  • 배치 크기가 작으면 불안정
  • 미분 가능하지만 MSE보다 최적화 어려울 수 있음

PyTorch 구현 예시

def ccc_loss(pred, target):
    pred_mean = pred.mean()
    target_mean = target.mean()
    pred_var = pred.var()
    target_var = target.var()
    covar = ((pred - pred_mean) * (target - target_mean)).mean()

    ccc = (2 * covar) / (pred_var + target_var + (pred_mean - target_mean) ** 2 + 1e-8)
    return 1 - ccc

참고