[모두의 딥러닝] Learning rate / data peprocessing / overfitting
📗강의노트/모두의 딥러닝

[모두의 딥러닝] Learning rate / data peprocessing / overfitting

728x90
반응형

Sung Kim 님의 "모두의 딥러닝" 강의노트입니다

좋은 강의 감사드립니다!

https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5


Learning rate : 조정하는 방법
Data preprocessing : 전처리
Overfitting 방지법


Learning rate

Gradient descent 알고리즘

앞의 알파가 learning rate에 해당됨

이를 잘 정하는게 중요하다. step이 커져버리면 왔다갔다 하게됨 -> 최소화하는 점을 찾을 때 더 돌아감 / 튕겨나갈 수도 있음  / 큰값일 때 나타나는 이러한 현상을 Overshooting이라고 함

Cost가 줄어들지 않고 커지거나 숫자가 아닌 것을 나올 때 overshooting을 의심해야한다

반대로 매우 작은 learning rate를 준다면 시간이 매우 오래 걸리게 된다.

이럴 경우에는 learning rate을 조금 올리는 것이 좋다

Learning rate를 정하는 데 답은 없다. 보통 0.01에서 시작한다. 이렇게 설정했는데 발산한다면 작게, 조금만 움직인다면 크게 해주면 된다.

cost함수의 값을 계속 관찰해야한다.


Data preprocessing 

X1 / x2 데이터의 값의 차이가 매우 크다면 ex) 1 : 9000

이렇게 되면 등고선이 그릇모양이 아니라 한 쪽으로 왜곡된 모양이 나올 수 있다.
(원래 일반적인 등고선은 동그란 모양)


알파 값이 좋아도 튕겨나가는 경우가 생기게 됨 
그래서 데이터 값에 큰 차이가 있을 경우 normalize해야함


Zero-centerd data는 데이터들의 중심을 0으로 이동시켜주는 것이다.
가장 많이 사용하는 normalized data는 항상 범위 안에 들어오도록 normalize해주는 것이다.


평균과 분산의 값을 가지고 나누어 주면 normalization중 standardization을 할 수 있다. 


Overfitting

머신러닝에서 가장 큰 문제이다

학습데이터에 너무 잘 맞는 모델을 만들어 낸 것을 말한다.
실제로 테스트데이터에 적용해보면 잘 맞지 않는 것을 말한다. 


Model1 model2라고 보면
Model1이 더 일반적인 모델이라고 볼 수 있다. 
Model2는 현재 데이터에는 좋겠지만 새로운 데이터가 들어왔을 때 정확도가 떨어질 수 있다

Overfitting을 방지하기 위해서는 먼저
  1. 많은 양의 training data를 가지고 있는 것 
  2. 가지고 있는 features들을 줄이는 것(중복되는 features)
  3. Regularization( 일반화 )

Regularization -> Let’s not have too much big numbers in the weight


위 처럼 Decision boundary를 데이터에 맞춰서 너무 구부려서 하는 것을 overfitting을 말한다 
너무 구부리지 말고 펴자! -> 편다는 것은 값이 좀 rate이 적은 값을 갖는 것 



각각의 element들의 제곱을 하고 합해서 너무 구부리지 말고 쫙쫙 펴지게 한다
앞의 상수는 regularization strength라고 한다 0 일경우 하지 않는 것이고 수가 높아질 수록 regularization의 강도가 높아진다. 


이렇게 표현할 수 있다. 



728x90
반응형