티스토리 뷰
#Multiple features
실제 딥러닝에서는 위와 같이 입력값의 feature가 여러개인 경우를 고려해야 한다.
예측 함수인 Hypothesis함수도 각각의 feature의 개수에 맞춰 세타n까지 있어야 한다.
feature가 여러개인 경우 Gradient Descent를 하기 위해선 각각의 세타를 편미분하여 학습률을 곱하여 빼주면 된다.
이 때 편미분하여 유도되는 식은 feature가 하나였을 때와 같다. (단 x0=1로 간주한다.)
#Feature Scaling
Feature Scaling은 매우 중요하다.
각각의 feature값의 범위가 매우 다를 경우 왼쪽 그림처럼 GD의 학습속도가 매우매우 느려질 수 있다.
이를 방지하기 위해 각 feature의 max값으로 나눠주어 대략 범위가 0<=x<=1이 되도록한다.
학습속도도 빨라질 뿐더러 local optimal에 빠질 확률이 낮아진다.
#Mean normalization
Mean normalization은 Feature Scaling과 그 목적이 같다.
범위 조절을 위해 원래의 x값에서 평균을 빼고 표준편차 또는 max-min값으로 나누어준다.
모든 feature의 범위가 -0.5<x<0.5로 조정이 된다.
#Learning Late 조정
왼쪽 위 그래프에서 볼 수 있듯이 Learning rate(알파)값에 따라 J의 값이 달라진다.
알파값이 너무 작으면 학습이 느려 굉장히 많은 iteration이 필요하고,
알파값이 너무 크면 cost함수가 수렴하지 않고 발산할 수 있다.
따라서, 그래프를 확인하여 알파값을 조정하는 것이 매우 중요하다.
보통 10배 단위나 3배단위로 변경하고 경우에 따라 휴리스틱하게 조정한다.
#Normal Equation
Linear Regression문제에서, Gradient Descent보다 Normal Equation을 사용하여 J함수가 minimum값이 되는 세타를 쉽게 찾을 수 있는 경우가 있다.
각각의 세타를 편미분하여 0이 되는 값을 찾으면 된다. 이때 X^T*X 를 계산해야 하는데 n값이 커짐에 따라 계산량이 굉장히 많아 지기 때문에
GD를 사용하는 것이 일반적이다.
'ML | DL' 카테고리의 다른 글
[Machine Learning]K-means 알고리즘 (0) | 2019.01.21 |
---|---|
[Coursera] Machine Learning 4주차 강의정리 (0) | 2018.09.10 |
[Coursera] Machine Learning 3주차 강의정리 (0) | 2018.09.07 |
[Coursera] Machine Learning 1주차 강의정리 (0) | 2018.09.02 |
[딥러닝] 아주쉬운 Windows에서 Tensorflow설치하기 (0) | 2018.01.10 |
- Total
- Today
- Yesterday