본문 바로가기

머신러닝

Application & Tips

반응형

크게 Learning rate, data preprocession, overfitting을 방지하는 법이 있다.

 

Learning rate (α)

 

만약에 α를 큰 값으로 정의한다면

step이 커져서 cost가 발산하게된다. 이 현상을 overshooting 현상이 일어난다.

 

반대로 α를 작은 값으로 정의하면

조금씩 줄어들다가 어느 시점에 시간이 다되서 stop하면 최저점이 아닌데도 멈출 수 있다.

 

전반적으로는 learning rate을 다루는데는 답은 없다.

0.01 정도로 시작해보고 α값이 발산한다면 줄이고 α값이 늦게 움직인다면 값을 키운다.

 

Data Preprocessing

 

feature data인 X를 전처리 해야하는 경우가 많다.

데이터 값에 큰 차이가 있는 경우 normalize 해야한다.

보통 많이 쓰는 방법은 zero-centered data로, 데이터의 중심이 0으로 갈 수 있도록 바꿔준다.

많이 쓰이는 방법으로는 어떤 범위안에 항상 들어가도록 하는 normalized data 방법이 있다.

하는 방법은 다음과 같다.

x에 구한 평균을 빼고 분산을 나누는 것이다. 다른 여러가지 방법도 있다.

아래의 식은 python으로 구현한 식이다.

 

Overfitting : 머신러닝의 가장 큰 문제점

 

너무 학습데이터에 딱 맞는 모델을 만들어 낼 수 있다.

이렇게 되면 학습 데이터에는 정확한 결과를 내지만, 실제 데이터에는 결과가 잘 맞지 않을 수 있다.

 

solution

training data가 많으면 많을 수록 좋다.

가지고 있는 feature의 수를 줄인다. ex 중복을 없앤다.

기술적인 방법으로는 regularization(일반화)가 있다.

 

Regularization

우리가 가지고 있는 rate이 큰 값을 갖지 않도록 하는 것이다.

기존 cost function에 값을 더하는 방식으로 구현된다.

λ는 regularization strength이다.

여기에 element vector의 제곱합을 곱해 기존 cost에 더하여 값을 최소화 시킨다.

tensorflow로 나타낸 식

 

반응형

'머신러닝' 카테고리의 다른 글

axis란?  (0) 2019.06.03
softmax classification  (0) 2019.04.29
Classification  (0) 2019.04.29
Regression  (0) 2019.04.29
Basic  (0) 2019.04.29