1. multivariate features
- 공식 : h(x) = Θ^T * x
- cost function에 적용 : (h(x)-y)^2 의 sum값의 최솟값을 만드는 매개변수를 구해야 함
-> cost function을 통한 매개변수 획득
- gradient 를 통해 할 수 있는 것 = 손실함수의 최적값 (최적의 매개변수) 을 구하는 것
- 방법 : 매 턴마다 미분한 값을 써서, 매개변수 값을 바꿔준다
- 미분하는 방식 : 변수가 들어있을때에는, h(x(i))의 미분 (대충) 이런식이기 때문에,
합성함수 미분 하듯이, 속미분한 값을 밖에 곱해줘야 함 (편미분)
** 노트 참조
2. Gradient Descent를 더 간단하게 할 수 있는 방법
- Feature Scaling (1) : 각각의 변수들의 정의역 범위들을 0~1로 통일시켜줌
ex) x1 : 0~2000 , x2 : 0~5
-> x1 : (0~2000)/2000 = 0~1
x2 : (0~5)/5 = 0~1
-> 각각의 size대로 정의역을 나눠주면 scale이 일치하게 됨
- Feature Scaling (2) : 최대한, 정의역의 범위를 -1 <= x <= 1 의 영역 근처에 올 수 있게
설정해준다
** 범위가 너무 커서도, 작아서도 안 된다
- Feature Scaling (3) - 정규화 : 각각의 정의역들을 표준 정규분포화를 시켜준다
- 단, (x-뮤)/V 가 아니라, V(분산) 을 S (scale의 범위 길이) 로 계산해준다!
3. Gradient Descent를 좀 더 현명하게 쓰기
- 디버깅 : Gradient Descent가 제대로 돌아가고 있는지 확실하게 하기 위함
- 학습률(learning rate)를 선정하는 방법
- 디버깅 : 반복횟수가 계속 늘어남에따라, 손실함수의 값이 반드시 계속 감소해야한다!
- convergence : 계속해서 손실함수값이 일정하게 유지되는 구간이 생길때
- 손실함수를 그만 돌려야 함
- convergence 를 자동으로 알려주는 방법 :
손실함수 값이 어떤 특정한 값(아주 작은 수)보다 작을 경우, convergence상태임
- 만약에 손실함수 값이 계속해서 증가하는 꼴이 등장한다면?
-> learning rate를 낮춰야 한다! (learning rate가 작을수록 정확함. 단, 시간은 오래걸림)
4. Multivariant에 대한 Features와 Polynomial Regression
- Features : 어떤 변수가 주어졌을 때, 무작정 그 변수를 받아들이는게 아니라,
직관을 이용해서, 새로운 변수를 설정한다면, 식이 더 간단해질 수 있음
- Polynomial Regression : 내가 생각하기에 딱 맞는 다항함수를 떠올리기.
-> 내가 원하는대로 설정이 가능. 변수들의 꼴만 정해준다면, 가중치들은
머신러닝을 통해 알아서 학습이 됨.
'기계학습 > 코세라 - 기계학습 (Andrew Ng)' 카테고리의 다른 글
week4 (0) | 2019.08.14 |
---|---|
week3 (0) | 2019.08.14 |
week1 (2) (0) | 2019.08.14 |
week1 (1) (0) | 2019.08.14 |
week8 : Clustering Algorithm (0) | 2019.08.03 |