6. 규제, 정규화 (Regularization)
Regularization은 정규화, 규제 등으로 불리는 방법으로, 머신러닝에서 모델이 가질 수 있는 파라메터의 값에 제약을 부여하여 오버피팅을 방지하고, 모델의 강건함을 높이는 방법론이다.
Regularization의 직역은 정규화가 맞지만, Normalization과 혼동하기도 쉽고 실제로 머신러닝에서의 역할을 규제라는 뜻이 더 부합하기에 본 블로그에서는 규제라는 한글 표기를 사용한다.
하지만 헷갈리지 않기 위한 가장 좋은 방법은 그냥 영문 용어를 외우는 것이다.
규제의 필요성
모델이 가질 수 있는 오차의 기댓값은 크게 편향bias과 분산variance이 있다.
규제는 이 중 분산을 줄여 머신러닝의 정확도 향상에 기여한다. (다만, 이 과정에서 편향이 증가할 수 있기 때문에 적절한 조절이 필요하다.)
규제를 이해하기 위해선, 모델의 표현력에 대한 이해가 필요하다.
머신러닝 모델이 학습을 통해 파라메터를 개선하는 것은, 해당 데이터들에 대한 표현력을 얻는 것으로 볼 수 있다.
예시를 들자면, 고양이/개 분류 모델은 학습이 진행될 수록 "고양이는 동공이 얇고, 특징적인 수염이 있으며..."와 같이 고양이의 특징을 파악할 것이다.
그러나 학습이 너무 많이 진행되면, 모델에 오버피팅이 발생해, 학습 데이터에 너무 집중하게 되어버린다. 이는 마치 "(100,211) 픽셀에 (122,133,233) 이 들어있고, ~~ 면 고양이야"와 같은 것이다.
오버피팅이 발생하면, 모델의 분산이 증가하여, 모델이 학습에 사용되지 않은 데이터에 대해 일관적이지 않은 (조금 더 직관적으로 표현하자면, 들쑥날쑥한) 판단을 내리게 된다.
위 그림에서, 높은 분산에 해당하는 모델은 데이터가 들쑥날쑥하게 퍼져있는 것을 알 수 있다.
반면 분산이 낮은 모델은, 학습 데이터에서 보지 못한 데이터가 들어와도 나쁘지 않게 일관적인 추측을 해낸다.
규제의 원리
그렇다면 모델의 표현력을 제한하여 오버피팅을 방지하려면 어떻게 해야할까?
다양한 규제 방법이 있지만, 대부분의 방법은 규제항Regularization Term을 이용한다.
모델의 복잡도가 올라갈 수록 증가하는, L2 함수와 같은 규제항을 모델의 비용 함수에 더하여, 모델이 너무 복잡해지면 모델의 정확도와 관계없이 비용 값이 올라가도록 만든다.
$$ \text{Cost} = Error(y, y') + L2(W)$$
이를 통해, 모델의 분산을 낮게 유지하여 과적합을 어느정도 예방할 수 있다.
'학부 수업 > 머신러닝' 카테고리의 다른 글
8. 의사 결정 트리 (Decision Tree) (0) | 2020.10.23 |
---|---|
7. 판별 분석 (Discriminant Analysis) (0) | 2020.10.21 |
5. 선형 회귀 (Linear Regression) (0) | 2020.10.21 |
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall) (0) | 2020.09.23 |
4. K-최근접 이웃 알고리즘 (K-Nearest Neighbor) (0) | 2020.09.23 |
댓글
이 글 공유하기
다른 글
-
8. 의사 결정 트리 (Decision Tree)
8. 의사 결정 트리 (Decision Tree)
2020.10.23 -
7. 판별 분석 (Discriminant Analysis)
7. 판별 분석 (Discriminant Analysis)
2020.10.21 -
5. 선형 회귀 (Linear Regression)
5. 선형 회귀 (Linear Regression)
2020.10.21 -
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)
2020.09.23