[ML] Cost Function : Regression

박무연·2023년 3월 19일
0

🟤Mahine Learning

목록 보기
10/13
post-thumbnail

Cost Function 기본 개념

- 최소가 값을 찾아야 한다!

J(θ)=mean((error))J(\theta) = mean(\sum (error))

- 좀더 자세하게

hθ=θxJ(θ)=1n(hθ(x)y)h_{\theta} = \theta x \\ J(\theta) = {1\over n} {\sum(h_{\theta}(x)- y})

- Python

  • 예제)
    - J(θ)=13{(2θ1)2+(3θ5)2+(5θ6)2}J(\theta) = {1\over 3}\{(2\theta - 1)^2 + (3\theta - 5)^2 + (5\theta - 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])
  • [2, -1] : 2x12x -1

  • 출력 : J(θ)=38θ294θ+62J(\theta) = 38\theta^2 - 94\theta +62

  • 최소값은 미분을 통해 찾을 수 있다.

import sympy as sym
theta = sym.Symbol('theta')
diff_th = sym.diff(38*theta**2 - 94*theta + 62, theta)
diff_th
# theta = 1.24

>>>
76θ−94

Cost Function 실전

- 다차원의 데이터

  • 다차원의 데이터에서는 구하기 힘들다..!
  • 실제 몇차식이 나올지 모른다...

- Gradient Descent

  • Random으로 임의의 점 선택
  • 기울기를 구해 양수면 왼쪽, 음수면 오른쪽으로 간다!

- Learning Rate

  • 얼마만큼 움직일 것인가도 중요하다!

    W:=WαddWcost(W)W: = W - \alpha{d \over dW}cost(W)
  • W : 가중치

  • α\alpha : 학습률

  • 가중치에서 학습률을 곱한 기울기 만큼 움직인다!

  • 학습률이 작다면? 여러번 갱신하며 최소값에 잘 도달 할 수 있으나 오랜시간이 걸린다

  • 학습률이 크다면? 갱신회수는 적으나 수렴하는 구간을 찾지 못하고 진동 할 수도 있다

- 행렬식 이용

  • 행렬식을 이용하여 나타낼 수도 있다
  • 하지만 변수가 많으면 많을 수록 계산이 오래걸린다
profile
Easy day!

0개의 댓글