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을 방지하기 위해서는 먼저
- 많은 양의 training data를 가지고 있는 것
- 가지고 있는 features들을 줄이는 것(중복되는 features)
- Regularization( 일반화 )
Regularization -> Let’s not have too much big numbers in the weight
위 처럼 Decision boundary를 데이터에 맞춰서 너무 구부려서 하는 것을 overfitting을 말한다
너무 구부리지 말고 펴자! -> 편다는 것은 값이 좀 rate이 적은 값을 갖는 것
각각의 element들의 제곱을 하고 합해서 너무 구부리지 말고 쫙쫙 펴지게 한다
앞의 상수는 regularization strength라고 한다 0 일경우 하지 않는 것이고 수가 높아질 수록 regularization의 강도가 높아진다.
이렇게 표현할 수 있다.
728x90
반응형