Covariance / Correlation 이해
딥러닝에서는 feature끼리 비슷하게 움직이는지, 어떤 입력이 함께 커지거나 작아지는지 이해하는 일이 중요하다. 공분산과 상관계수는 이런 관계를 읽는 가장 기본적인 통계 도구다.
초심자가 자주 헷갈리는 부분은 둘 다 "관계"를 말하지만 역할이 다르다는 점이다. covariance는 방향과 대략적인 크기를 보여주고, correlation은 단위 영향을 제거해서 서로 다른 변수끼리도 비교하기 쉽게 만든다.
1. Covariance
둘이 평균보다 함께 커지거나 함께 작아지면 양수, 한쪽이 커질 때 다른 쪽이 작아지면 음수가 된다. 즉 부호는 관계의 방향을 알려준다.
2. Correlation
Correlation은 공분산을 표준편차로 나눈 값이라 항상 -1에서 1 사이에 놓인다. 그래서 단위가 다른 변수끼리도 직접 비교할 수 있다.
3. 왜 중요한가
초심자 입장에서는 "둘이 같이 움직이는가" 정도로만 받아들여도 충분하지만, 조금만 더 가면 이 개념은 모델 입력을 진단하는 도구가 된다. 예를 들어 두 feature가 거의 같은 정보를 담고 있으면 모델은 겉보기보다 덜 다양한 신호를 보고 있을 수 있다.
- 입력 feature가 중복 정보를 갖는지 파악할 수 있다.
- BatchNorm, whitening, PCA 같은 개념과 자연스럽게 연결된다.
- 실험 해석에서 특정 변수들이 함께 움직이는 패턴을 읽는 데 필요하다.
논문을 읽을 때도 representation collapse, redundancy, decorrelation 같은 표현이 나오면 결국 feature들이 서로 얼마나 비슷하게 움직이는지 보는 문제로 이어진다. 그래서 공분산과 상관계수는 단순한 통계 공식이 아니라, 표현 품질을 읽는 기본 언어라고 보는 편이 맞다.
4. 자주 하는 오해
- 상관계수가 크면 인과관계다: 아니다. 함께 움직일 뿐 원인-결과는 아니다.
- 공분산이 크면 관계가 강하다: 단위가 크면 공분산도 커질 수 있다.
- 상관계수 0이면 완전히 무관하다: 선형 관계가 없다는 뜻이지 모든 관계가 없다는 뜻은 아니다.
5. 딥러닝과 연결
입문 단계에서는 "feature끼리 너무 비슷하면 모델이 같은 정보를 여러 번 본다"는 감각만 잡아도 충분하다. 더 나아가면 공분산 행렬은 representation 분석, attention head 비교, embedding 구조 분석에도 자주 등장한다.
예를 들어 embedding 차원들이 지나치게 강한 상관을 가지면 표현 공간이 비효율적으로 쓰이고 있을 수 있다. 반대로 서로 다른 차원이 적절히 다양한 방향을 담고 있으면 모델이 더 풍부한 표현을 학습했다고 해석할 여지가 생긴다.
6. 체크리스트
- Covariance와 correlation 차이를 말로 설명할 수 있는가?
- 왜 correlation은 단위가 달라도 비교 가능한가?
- 상관관계와 인과관계를 왜 구분해야 하는가?