모델을 트레이닝 데이터에 돌린 성능이 테스트 데이터에 돌린 성능보다 잘 나온다면 오버피팅이라고 봐도 된다. 즉, 트레이닝 데이터에 대해서 모델 곡선이 잘 추적하긴 하는데, 짜친 데이터까지 다 쫓아가고 있는 형상이다. 짜친 데이터는 노이즈라서 리얼 월드에서 나올 가능성은 별로 없다. 그래서 리얼 월드라고 가정하는 테스트 데이터에서는 에러가 좀 더 크게 나올 공산이 크다.
통상적이라면 L2 정규화를 비용 함수에 더한다. 그냥 가중치 w 제곱의 합을 더하면 된다. 수학적 논리는 여러번 읽어봐도 잘 모르겠다. 고차항의 w 가중치를 줄이도록 동작한다고 보면 된다. w 모양의 곡선이 u 자 모양으로 퍼지는 형세가 될 것이다.
피쳐가 희소형 데이터라면, 즉 데이터 레코드의 대부분이 빵꾸가 나서 0이 들어있는 데이터라면 L1 정규화가 도움이 된다고 한다. 수학적 논리는 역시 잘 모르겠다. 이는 모델의 곡선이 0인 값에 일일이 반응하여 추적하는 것을 막는 것 같다. 그냥 가중치 w의 합을 비용 함수에 더해주면 된다.
w의 그래프는 다이아몬드도 원도 아닌 축 상에서 뾰족한 찌그러진 원이 된다. 둘 다 반영이 될까? 잘 모르겠다.
+수정
L2와 L1을 같이 쓰는 것을 엘라스틱 넷이라고 하여 실존하는 정규화 방법이다.