concept shift

구분개념 변화 (Concept Drift)공변량 변화 (Covariate Shift)
변화의 핵심관계/정답분포

정답의 정의 () 가 변함

입력 데이터 분포

데이터 () 가 변함

이지만 는 동일
핵심 내용’데이터의 의미(정답)’ 가 변함’어떤 데이터가 들어오는가’ 가 변함
원인소비자 취향 변화, 법 개정, 경제 상황 변화 등샘플링 편향, 새로운 사용자 유입 등
모델의 상태모델이 알고 있는 지식 자체가 틀리게 됨학습한 영역 밖의 데이터가 들어와 당황함
해결 방법모델을 처음부터 다시 학습, 가중치 업데이트더 다양한 데이터를 수집, 도메인 적응

들어오는 데이터는 비슷한데, 정답의 기준(데이터 간의 관계) 자체가 바뀌는 상황

  • 세상이 변해서 어제의 정답이 오늘의 오답

예시:

  • 스팸 메일 분류 모델이 “비트코인”이라는 단어가 들어간 메일을 스팸으로 분류하도록 학습
  • 이후 비트코인이 제도권 금융 상품에 편입되어 비트코인 단어가 일상적으로 사용
  • 이제 “비트코인” 단어가 들어간 메일은 스팸이 아니라 일반 메일
  • 입력 단어(x)는 똑같은데, 그것이 스팸인지 아닌지 결정하는 기준(y)이 변화

covariate shift

구분공변량 변화 (Covariate Shift)내부 공변량 변화 (Internal Covariate Shift)
현상훈련 데이터 분포와 테스트 데이터 분포가 다른 현상신경망 계층마다 입력 데이터 분포가 다른 현상
어디서모델(system) 입장에서 입력 데이터의 분포가 바뀜개별 레이어 (sub-system) 에서 이전 레이어의 출력이 바뀜
발생 위치모델 외부 (학습 데이터 vs 테스트 데이터)모델 내부 (딥러닝의 레이어와 레이어 사이)
발생 시점모델을 실제 환경에 적용(Inference)할 때,
모델이 완성된 후 외부 환경의 변화
모델을 학습(Training)시키고 있을 때,
모델이 완성되기 이전
주요 원인샘플링 편향, 시간에 따른 데이터 트렌드 변화앞쪽 레이어의 가중치 업데이트에 따른 출력값 분포 변화
영향학습된 모델의 성능 및 정확도 저하학습 속도 저하, 초기화 민감도 상승, 기울기 소실 등
해결 방법데이터 재수집, 중요도 가중치 부여배치 정규화(Batch Normalization), 레이어 정규화
공변량 변화라는 개념을, 모델 내부 레이어 단위에 적용한 별개의 현상

입력 데이터(x)의 분포가 학습(Train) 시와 테스트(Test)/실제 운영 시에 달라지는 현상

수학적으로는 입력 분포 는 변하지만, 입력값에 따른 출력값의 조건부 확률 는 변하지 않는 상태. 입력 분포 는 변하지만, “이 사진이 고양이인가?”라는 관계 는 변하지 않음. 즉,

  • 데이터의 ‘특성’ 자체가 바뀌는 것이 아니라,
  • 어떤 데이터가 ‘더 자주 들어오는지’가 변화

예시:

  • 안면 인식: 모델을 주로 20대 젊은 층의 얼굴 데이터로 학습시켰는데, 실제 서비스에서는 다양한 연령층의 사용자가 유입
  • 의료 진단: 특정 지역 병원의 환자 데이터를 학습했으나, 인구 구성(나이, 성별 등)이 전혀 다른 다른 지역 병원에 모델을 적용
  • 전자상거래: 평상시 구매 데이터를 학습한 모델이, 블랙 프라이데이와 같은 특수한 쇼핑 시즌의 급격한 고객 유입 데이터를 마주하는 경우
  • 이미지 인식: 고양이 사진을 ‘집 안’ 사진으로만 학습시켰는데, 실제 테스트는 ‘길거리’ 고양이 사진으로 할 경우 배경 데이터(x)의 분포가 달라져 모델이 당황

원인:

  1. 샘플링 편향 (Sample Selection Bias): 학습 데이터를 수집할 때 특정 집단이나 조건에 편중되어 수집된 경우
  2. 환경의 변화: 시간이 지남에 따라 데이터가 생성되는 환경(트렌드, 날씨, 경제 상황 등)이 변할 때 발생

해결:

  • 재학습 (Retraining): 주기적으로 최신 데이터를 수집하여 모델을 다시 학습
  • 중요도 가중치 부여 (Importance Weighting): 테스트 데이터의 분포와 유사한 학습 데이터에 더 큰 가중치를 주어 학습합니다. (​ 비율 활용)

internal covariate shift

딥러닝 내부에서 가중치(Weight)가 업데이트되면서 각 층(Layer)의 출력이 바뀌고, 이것이 다음 층의 입력 분포를 계속 뒤흔드는 현상입니다.

여러 명이 한 줄로 서서 말을 전달하는 ‘가족 오락관’ 게임과 비슷하다. 앞사람이 말을 전달하는 방식(가중치)을 조금만 바꿔도 뒷사람이 듣는 내용(입력 분포)은 크게 변하여 적응하기 힘들어지는 것과 동일.

해결:

  • 각 레이어의 출력을 강제로 일정한 분포(평균 0, 분산 1)로 맞춰주는 배치 정규화. 딥러닝 내부에서 발생하는 내부 공변량 변화를 줄이기 위해, 각 레이어의 출력을 정규화하여 학습 안정성을 높임

• 신경망의 각 레이어를 거칠 때마다 입력 데이터의 분포가 변화하여 학습 과정을 어렵게 만드는 문제 • 내부 공변량 변화는 학습 과정을 느리게 만들 수 있고, 신경망의 성능을 저하시킬 수 있습니다. • 공변량 변화는 훈련 데이터의 분포와 테스트 데이터의 분포가 다른 경우를 의미합니다. • 발생 이유 ◦ 학습하는 동안 각 레이어의 가중치가 업데이트되면서 입력 데이터의 분포가 변할 수 있습니다 ◦ 미니배치 단위로 학습을 진행하면서 각 미니배치의 데이터 분포가 다를 수 있습니다 • 해결안 ◦ batch normalization