일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 머신러닝
- 활성화 함수
- rag parsing
- 퍼셉트론
- 컴퓨터비전
- visual instruction tuning
- nlp
- 합성곱 신경망
- pdf parsing
- 오차역전파
- E
- Mean squared error
- segmentation
- 시계열
- 데이터 파싱
- 활성화함수
- LLM
- Cross Entropy Error
- anomaly detection
- LLaVA
- CNN
- leetcode
- Non-Maximum Suppression
- deep learning
- 손실함수
- 이상탐지
- 딥러닝
- Time Series
- computer vision
- Today
- Total
굴러가는 분석가의 일상
딥러닝의 학습 #2.4 (오버피팅 억제) 본문
※ 앞선 포스팅에서는 각 층의 활성화값을 강제적으로 적당히 퍼뜨리도록 하는 방법인 배치정규화에 대해 알아보겠습니다. 본 게시물에서는 오버피팅을 억제하는 방법에 대해 알아보도록 하겠습니다.
💡 Over-fitting (과적합)
딥러닝의 핵심은 여러 은닉층과 활성화 함수를 결합하여 비선형 영역을 표현하는 것 입니다. 이에 따라 은닉층 수가 많을수록 데이터 분류가 원활하게 되는 것을 아래 그림과 같이 볼 수 있습니다. 하지만, 은닉층이 많을수록 과적합 문제가 발생하곤 합니다.
오버피팅이란, 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태를 뜻합니다. 일반적으로 훈련 데이터는 실제 데이터의 일부분입니다. 과적합은 훈련 데이터에 대해 과하게 학습하여 실제 데이터에 다한 오차가 증가하는 현상입니다.
복잡하고 표현력이 높은 모델을 만들 수는 있지만, 그만큼 오버피팅을 억제하는 기술이 매우 중요합니다. 이에 과적합을 해결하는 방법에 대해 알아보도록 하겠습니다.
💡 가중치 감소
학습 과정에서 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법 중 하나 입니다.
가중치 감소에서는 규제(Regularization)이 사용됩니다. 여기에서 규제란 손실함수에 추가되는 항으로, 모델의 가중치에 패널티를 부여하여 가중의 크기를 제한 하는것을 뜻합니다. 이에 가중치의 모든 원소를 0에 가깝게 만들어 영향을 최소화하는 것을 의미합니다. 즉, 오버피팅이 일어나지 않도록 모델을 강제적으로 제한한다는 의미입니다. 규제에는 L1 및 L2가 있습니다.
📌 L1 규제 (Lasso)
- 모델의 가중치의 절댓값에 비례하는 패널티를 부여하여 가중치 값을 작게 만든다.
- 일부 가중치를 0으로 만들어 희소한 모델을 생성하므로, 불필요한 특성을 제거하고 모델의 복잡성을 줄이는데 도움이 된다.
📌 L2 규제
- 가중치의 제곱에 비레하는 패널티를 부여하여 가중치 값을 작게 만든다.
- 모든 가중치를 동시에 축소시키며, 특히 큰 가중치를 더 많이 줄인다 →모델의 복잡성을 줄이지만, 희소성을 유지하지 않음
✔️ L2 규제가 L1 규제에 비해 더 안정적이라 일반적으로는 L2규제가 더 많이 사용됩니다.
💡 드롭아웃
위에서 설명한 L2규제를 통한 가중치 감소 기법은 간단하게 구현이 가능하지만, 신경망 모델이 복잡해지면 이를 통해 대응하기 어려워집니다. 이럴 때 사용하는 것이 드롭아웃입니다.
드롭아웃이란 훈련할 때 일정 비율의 뉴런만 사용하고, 나머지 뉴런에 해당하는 가중치는 업데이트하지 않는 방법입니다. 즉 드롭아웃은 노드를 임의로 끄면서 학습하는 방법으로, 은닉층에 배치된 노드 중 일부분을 임의로 끄면서 학습하는 것 입니다. 어떤 노드를 비활성화할지는 학습때 마다 무작위로 선정되며, 테스트 데이터로 평가할 때는 노드를 모두 사용하여 출력하되 노드 삭제 비율을 곱해서 성능을 평가하게 됩니다.
💡배치정규화
아래의 글 참조 부탁드리겠습니다.
2024.02.06 - [Data Science/DL] - 딥러닝의 학습 #2.3 (배치 정규화)
'Deep Learning 이해' 카테고리의 다른 글
딥러닝의 학습 #2.3 (배치 정규화) (1) | 2024.02.06 |
---|---|
딥러닝의 학습 #2.2 (가중치 초깃값-Xavier&He) (0) | 2024.01.16 |
딥러닝의 학습 #2.1 (Optimizer 종류와 학습) (0) | 2023.12.18 |
딥러닝의 학습 #1 (Backpropagation) (0) | 2023.12.05 |
딥러닝의 구조 #4 [경사하강법] (0) | 2023.11.23 |