오버피팅 & 언더피팅
- 테스트 오차 - 학습 오차 = 일반화 차이
- 테스트 오차 = 학습 오차 + 일반화 차이
일반화차이 큼 && 학습 오차 큼 or 일반화차이 작음 && 학습 오차 큼 -> 언더피팅
일반화차이 큼 && 학습 오차 적음 -> 오버 피팅
일반화차이 적음 && 학습오차 적음 -> 이상적 상태
정형화
- 어떠한 제약 조건을 추가로 걸어줌으로써 오버피팅을 해결하려는 기법
- 주로 손실함수에 추가되어 L1 정형화 , L2 정형화가 있음
드롭아웃
- 특정 뉴런의 확률 p를 0으로 바꾸는 것
- 이전 층에서 계산된 값들이 전달되지 않게 됨
- 모델 수용력 관점에서 p만큼 각 층의 수용력을 줄임으로써 전체 모델의 수용력을 줄일 수 있음
데이터 증강
- 데이터를 늘리는 방법(이미지에서 많이 사용)
- 가우시안 노이즈를 추가하거나 일래스틱 디포메이션을 통해 이미지를 변형하는 방법 등 다양함
초기화
- 모델이 학습되는 도중에 기울기 손실 현상이나 기울기 과다와 같은 현상을 최소한 겪지 않게 하기위해 손실 함수 공간을 최적화가 쉬운 형태로 바꾸는 방법을 택하는데 대표적으로 가중치의 초기화 방법이 있으며 Xavier Glorot 초기화와 Kaiming He 초기화가 대표적이다.
학습률
- 적절한 모델 및 적절한 초기값을 설정했음에도 학습률에 따라 모델의 학습이 달라진다.
- 학습률이 너무 높다면 업데이트 방향이 맞아도 크게 업데이트됨
- 학습률이 너무 낮다면 지엽적인 공간에서의 극솟값에만 도달하므로 전체 손실 공간에서의 극솟값에 도달할 수 없게 됨.
정규화
- 학습데이터에서는 적절히 동작하지만 테스트 데이터에서는 학습이 제대로 안될때에는 오버피팅이 아니라 두 데이터의 분포가 달라서인 이유가 있다.
-> 이러한 경우 분포에 맞춰 변수가 업데이트 되어 해당 데이터를 그대로 쓰면 학습이 제대로 이루어지지 않기에 정규화 방법을 쓴다
- 대표적인 정규화 방법으로는 표준화 가 있다.
배치 정규화
- 한 번에 입력으로 들어오는 배치 단위로 정규화하는 것을 의미함
- 최근에는 배치 정규화 외에도 배치 대신 데이터 하나당 정규화를 하는 인스턴스 정규화 나 은닉층 가중치 정규화 등 다양한 방법이 소개되었다.