#모두를 위한 립러닝 강좌 lec 7-1 : 학습 Learning rate, Overfitting 방지법, 그리고 일반화
https://www.youtube.com/watch?v=1jPjVoDV_uo&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=18
*Gradient descent
cost function을 정의하고 cost 값을 최소화 하기 위해서 사용했던 경사를 타고 내려가는 알고리즘을 구할때
∂값을 임의로 정하였었다. (ex. learning_rate= 0.001)
Learning rate를 잘 정하는게 중요하다. 왜 중요하냐!
1) 이 step을 매우 크게 했을 경우
경사를 내려가는 Step이 매우 크게 된다면, 기울기의 최소값이 아니라 바로 다시 올라갈 수 있다.. (빨강색과 파랑색)
이 rate가 더 크게 된다면, 결국 파랑색 선을 따라서 그래프를 벗어날 수도 있다.
이것을 우리는 overshooting이라고 한다.
= 값을 구했는데, 굉장히 큰 값을 찍다가 알 수 없는 값이 나올 경우 발견되며 이때 overshooting을 의심 해야한다.
2) 반대로 step을 매우 작게했을 경우
굉장한 시간이 소요되며, 시간 제한이 있을 경우 경사면이 다 돌기도 전에 멈출 것이다.
그래서 미리 cost 함수를 실행하면서 rate의 비율을 찍어보고 테스트 후에 돌리는 것이 좋다! (보통은 0.01을 넣고 돌려보세요)
*Data(X) preprocessing for gradient descent
어떠한 한 점에서 시작하면, 최고로 낮은 지점에 도착하는 것이 목표이나,
x1값과 x2의 값이 있을 때 값이 크게 차이가 나게 된다면, 그래프는 눌린 타원형으로 그려질 것이다.
그러므로 데이터의 분포도를 보고, normalization하는 것이 중요하다.
(1) Original Data
(2) zero-centered data
(3) normalized data
*Standardization
평균을 분산값으로 나누면 끝이다. = nomalization 종류는 다양하다.
*Overfitting
머신러닝이 학습을 통해서 모델을 만들어 가는데, 그러다 보니까 학습 데이터에 너무 딱 맞는 모델을 만들 수 있다.
그렇게 되면, 학습데이터를 다시 가지고 물어보면 되지만 실제 테스트 데이터 등을 통해서 돌려보면 제대로 안되더라.
ex) - 와, + 가 석인 경우라면은?
-와 +를 사이로 linear 라인을 그어서 좋은 모델로 만들 수 있지만, 너무 정확하게 만들려고할 경우 모델이 비선형이 될 수 있다.
그래서 일반적이며 좋은 모델은 model1이다.
그러나 model2는 가지공 있는 데이터에만 정확히 맞아서 정확도가 떨어질 수있다. 이러한 데이터를 overfitting이라고 한다.
*Overfitting을 줄이는 방법
1) 트레이닝 데이터가 많으면 좋다.
2) features 개수를 줄인다.
3) 정규화(일반화-regularzation)시킨다.
여기서 그럼 일반화/정규화라는 것은?
비선형적인 구조들을 선형구조로 만들어내는 것을 말한다.
빨강색 네모부분이 바로 regularzation strength 라고 한다.
텐서플로우에서는 l2reg = 0.001 * tf.reduce_sum (tf.square(W)) 로 표현한다.
'◼︎ 개발 > ML 알고리즘' 카테고리의 다른 글
[머신러닝] lab 7-2 : Meet MNIST Dataset (0) | 2017.04.11 |
---|---|
[머신러닝] lab 7-1 : training/test dataset, learning rate, normalization (0) | 2017.04.04 |
[머신러닝] lec 7-2 : Training/Testing 데이타 셋 (0) | 2017.03.22 |
[머신러닝] lec 6-2 : Softmax classifier 의 cost함수 (0) | 2017.03.10 |
[머신러닝] lec 6-1 : Softmax Regression: 기본 개념 소개 (0) | 2017.03.10 |
[머신러닝] lec 5-2 : Logistic Regression의 cost 함수 설명 (0) | 2017.02.28 |
[머신러닝] lec 5-1 : Logistic Classification의 가설 함수 정의 (0) | 2017.02.23 |