Cost Function 기본 개념
- 최소가 값을 찾아야 한다!
J(θ)=mean(∑(error))
- 좀더 자세하게
hθ=θxJ(θ)=n1∑(hθ(x)−y)
- Python
- 예제)
- J(θ)=31{(2θ−1)2+(3θ−5)2+(5θ−6)2}
import numpy as np
np.poly1d([2, -1]) **2 + np.poly1d([3,-5])**2 + np.poly1d([5,-6]) **2
>>>
poly1d([ 38, -94, 62])
import sympy as sym
theta = sym.Symbol('theta')
diff_th = sym.diff(38*theta**2 - 94*theta + 62, theta)
diff_th
>>>
76θ−94
Cost Function 실전
- 다차원의 데이터
- 다차원의 데이터에서는 구하기 힘들다..!
- 실제 몇차식이 나올지 모른다...
- Gradient Descent
- Random으로 임의의 점 선택
- 기울기를 구해 양수면 왼쪽, 음수면 오른쪽으로 간다!
- Learning Rate
-
얼마만큼 움직일 것인가도 중요하다!
W:=W−αdWdcost(W)
-
W : 가중치
-
α : 학습률
-
가중치에서 학습률을 곱한 기울기 만큼 움직인다!
-
학습률이 작다면? 여러번 갱신하며 최소값에 잘 도달 할 수 있으나 오랜시간이 걸린다
-
학습률이 크다면? 갱신회수는 적으나 수렴하는 구간을 찾지 못하고 진동 할 수도 있다
- 행렬식 이용
- 행렬식을 이용하여 나타낼 수도 있다
- 하지만 변수가 많으면 많을 수록 계산이 오래걸린다