반응형

 본 게시글은 필자가 강의, 책 등을 통해 개인적으로 학습한 것으로

본문의 모든 정보는 출처를 기반으로 작성되었습니다.

 

 Overfitting problem은 학습이 dataset에 '너무 잘 맞게' 이루어진것을 말한다.

이것이 왜 문제가 되는지 예시를 통해 간단히 알아보자.

 

(출처 : wikipedia)

 이 그림에서 초록색선이 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

+ Recent posts