티스토리 뷰

오버피팅

오버피팅이란 신경망이 훈련 데이터에만 지나치게 적응되어 그 외에 데이터에는 제대로 적응하지 못하는 상태를 말합니다. 기계학습은 범용 능력을 지향하기 때문에 훈련 데이터에서만 잘 작동하는 모델은 필요가 없습니다.

오버피팅은 주로 다음 두 경우에 일어납니다.

매개변수가 많고 표현력이 높은 모델
훈련 데이터가 적음

가중치 감소

가중치 감소는 학습 과정에서 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법입니다.(L2 법칙 많이 사용) 원래 오버피팅은 가중치 매개변수의 값이 커서 발생하는 경우가 많기 때문입니다.

가중치 감소를 시키는 원리는 손실 함수에 가중치의 L2노름을 더하는 것입니다.

가중치 감소 전(Overfiting)

가중치 감소 후

훈련 데이터와 시험 데이터와의 차이가 그래도 여전히 있지만 어느정도 준 것을 확인할 수 있습니다. 여기서 포인트는 오버피팅이 어느정도 억제됬다는 점입니다.

드롭 아웃

가중치 감소는 간단하게 구현이 가능하고 어느 정도 오버피팅을 억제할 수 있었습니다. 그러나 신경망 모델이 복잡해지면 가중치 감소만으로는 대응하기 어려워지는데 이럴 때 드롭아웃을 사용합니다.

드롭아웃은 노드를 임의로 삭제하면서 학습하는 방법입니다. 훈련 때 은닉층의 노드를 무작위로 골라 삭제합니다.(가중치가 0이면 신호 전달x) 삭제한 노드는 신호를 전달하지 않게 되죠. 훈련 대는 데이터를 흘릴 때마다 삭제할 노드를 무작위로 선택하고, 시험 때는 모든 노드에 신호를 전달합니다. 단, 시험 때는 각 뉴런의 출력에 훈련 때 삭제한 비율을 곱하여 출력합니다.(비율을 곱해야 하지만 실제 딥러닝 프레임워크들은 비율을 곱하지 않는다고 합니다.)


드롭아웃 사용 전(Overfiting)

드롭아웃 사용 후



그림과 같이 드롭아웃을 적용하니 훈련 데이터와 시험 데이터에 대한 정확도 차이가 줄었습니다. 드롭아웃을 사용하면 표현력을 높이면서도 오버피팅을 억제할 수 있습니다.




'AI > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글

CNN-합성곱 계층  (0) 2018.10.09
합성곱 신경망(CNN)-전체 구조 훓어보기  (0) 2018.10.09
가중치 초기화, 배치 정규화  (0) 2018.09.30
매개변수 갱신  (0) 2018.09.27
오차역전파(2)  (0) 2018.09.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함