본 게시글은 필자가 강의, 책 등을 통해 개인적으로 학습한 것으로
본문의 모든 정보는 출처를 기반으로 작성되었습니다.
Overfitting problem은 학습이 dataset에 '너무 잘 맞게' 이루어진것을 말한다.
이것이 왜 문제가 되는지 예시를 통해 간단히 알아보자.
이 그림에서 초록색선이 overfitting된 model이고
검은색선이 일반적으로 사용될 수 있는 model이다.
overfitting된 model은 training set에 너무 알맞게 학습되어
오히려 model을 사용하여 실제로 예측할 data에 대한 accuracy를
떨어뜨릴 수 있을 것이다.
Overfitting problem을 해결하기 위한 방법은
1. train with more data : 더 많은 data를 학습시켜 굴곡을 줄일 수 있다.
2. remove features : 굴곡의 원인이 되는 feature를 찾아서 없앤다.
3. Regularization : 학습 과정에서 일반화 시킨다.
(해결 방법이라는 것은 결국 반대의 경우 문제 유발 원인이 될 수 있다는 점을 생각하자.)
1, 2번 방법은 개념적으로 알아두고 실질적으로 학습을 upgrade 할 수 있는 세번째 방법을 알아보자.
Regularization
Regularization을 알아보기에 앞서,
w(가중치)가 크다는 뜻은 작은 input의 변화가 output에는 크게 적용될 수 있다는 뜻임을 이해하자.
또한 w가 클 때, model의 complexity가 높다고 할 수 있다.
따라서 model의 굴곡이 크다면 any weights가 너무 큰 값을 가지고 있을 가능성이 있다.
이를 방지하기 위해 weight를 적절하게 줄이는 것이 바로 Weight Regularization이다.
Regularization 방법 중에서 하나인 L2 regularization을 통해 자세히 알아보자.
$L2 Regularization : cost_{l2_R}(w) = \frac{1}{m}\sum c(H(x),y) + \lambda\sum{}^{} w^2$
($c(H(x),y)$는 model에 사용할 기존 cost func이다)
모두 알다시피 model은 학습을 거듭하며 cost값을 최소화 시키는 $w$를 찾아낸다.
따라서 위 처럼 cost 값에 $\lambda\sum{}^{} w^2$ 더해놓으면 w값을 작게 만들 수 있다.
일종의 panalty를 w에 부여한 것과 같다.
조금 더 자세히 설명하면, cost 값에 pure w의 영향력을 높여
cost를 줄이기 위해서는 w가 더 많이 줄어야만 하도록 만든 것이다.
$\lambda$(regularization strength)는 '일반화의 필요 정도에 대한 수치' 정도로 생각하면 되겠다.
(ex.$\lambda$가 0이면 일반화가 필요없음을 뜻함.)
참고 문헌 및 자료
1. Sung Kim Youtube channel : https://www.youtube.com/channel/UCML9R2ol-l0Ab9OXoNnr7Lw
Sung Kim
컴퓨터 소프트웨어와 딥러닝, 영어등 다양한 재미있는 이야기들을 나누는 곳입니다.
www.youtube.com
2. Andrew Ng Coursera class : https://www.coursera.org/learn/machine-learning
3. 조태호(2017). 모두의 딥러닝. 서울: 길벗
'IT study > 모두를 위한 딥러닝' 카테고리의 다른 글
XOR Problem (0) | 2020.08.19 |
---|---|
MNIST (0) | 2020.08.18 |
Data preprocessing (0) | 2020.08.11 |
How to set learning rate (0) | 2020.08.11 |
Softmax Regression(2) - ex.1 (0) | 2020.08.10 |