728x90
Linear Regression
  • 머신러닝?
    • 명시적 프로그램 없이 학습하는 능력을 컴퓨터에게 부혀아는 것
    • 데이터를 이용한 프로그래밍

Linear Regression

  • 일정 데이터의 상관관계를 선형으로 파악하는 것
  • ex. 집값의 예측
    • 집의 평수와 판매 가격의 데이터가 주어짐
    • 해당 데이터를 기반으로 y = ax + b의 그래프를 작성
  • 가격은 연속하여 변하는 값이므로 선형 회귀 문제로 분류된다.
  • 집의 정보(입력)과 가격(출력)의 그래프를 갖고 있으므로 지도학습에 해당한다.

  • 가설 H(θ)H(\theta) : 데이터에 기반하여 가정한 모델
    • 모델에 새 데이터를 입력시키면 예측값이 출력
    • H(θ)=θ0+θ1x1+θ2x2+...H(\theta) = \theta_0 + \theta_1x_1 + \theta_2x_2+...
    • error : 해당 모델과 training data 사이의 출력(y)값 차이

  • Cost Function J(θ)J(\theta) : 가설 H와 실제 데이터 y 사이의 차이
    • 예측 모델의 정확도를 표현
    • J가 0이면 완벽한 예측임을 의미
    • J(θ)=12[H(θ)y]2J(\theta) = \frac{1}{2}[H(\theta) - y]^2
      • 최솟값의 계산 : θ\theta에 대한 미분값이 0이 되는 지점을 탐색
  • J(θ)θi=[H(θ)y]H(θ)θi=[H(θ)y]xi\frac{\partial J(\theta)}{\partial \theta_i}=[H(\theta) - y]\frac{\partial H(\theta)}{\partial\theta_i}=[H(\theta)-y]x_i
    • parameter update : θ=θαJ(θ)θ\theta = \theta - \alpha\frac{\partial J(\theta)}{\partial\theta} (α\alpha : running rate, 값이 변화하는 정도)
  • non-convex한 경우 : 미분값이 0이 되어도 최소가 아닐 수 있음

  • gradient descent : parameter update시 모든 오차값의 합을 이용해 갱신
    • 데이터가 많은 경우 속도가 느린 단점
    • 수렴할 때까지 : θj=θjαi=1m[H(θj)yi]xji\theta_j = \theta_j - \alpha\sum_{i=1}^m[H(\theta_j)-y^i]x_j^i
  • stochastic descent
    • gradient descent의 경우 모든 feature의 변화값 합을 계산하므로 연산 부담이 높음
    • stochastic의 경우 각 feature마다 weight 변화를 갱신하므로 연산 부담이 상대적으로 낮음
    • θj=θjα[H(θj)yi]xji\theta_j = \theta_j - \alpha[H(\theta_j)-y^i]x_j^i for all i

Normal Equation

  • J(θ)θi=0\frac{\partial J(\theta)}{\partial\theta_i}=0
    • 행렬 미분 : 각 원소에 대해 함수를 편미분
    • AF(A)=[F(A)a11...F(A)a1n...           ...F(A)an1...F(A)ann]\nabla_AF(A)=\begin{bmatrix} \frac{\partial F(A)}{\partial a_{11}} ... \frac{\partial F(A)}{\partial a_{1n}}\\ ...\ \ \ \ \ \ \ \ \ \ \ ...\\ \frac{\partial F(A)}{\partial a_{n1}} ... \frac{\partial F(A)}{\partial a_{nn}} \end{bmatrix}
  • H(θ)=XΘH(\theta) = X\Theta로 표현 가능
    • X=[1x1x2....xn]X = \begin{bmatrix} 1 x_1 x_2 .... x_n \end{bmatrix}, Θ=[θ0θ1...θn]\Theta = \begin{bmatrix} \theta_0\\ \theta_1\\ ...\\ \theta_n \end{bmatrix}
    • θJ(θ)=12θ[XΘY]T[XΘY]\nabla_\theta J(\theta) = \frac{1}{2}\nabla_\theta[X\Theta - Y]^T[X\Theta - Y]
    • XT[YXΘ^]=0X^T[Y-X\hat{\Theta}]=0
      Θ^=[XTX]1XTY\rArr\hat{\Theta}=[X^TX]^{-1}X^TY

Polynomial Regression

  • Linear Regression : H(θ)=θ0+θ1x1H(\theta) = \theta_0 + \theta_1 x_1
  • Polynomial Regression(2nd-order) : H(θ)=θ0+θ1x1+θ2x12H(\theta) = \theta_0 + \theta_1 x_1 + \theta_2 x_1^2
  • Feature Scaling
  • 함수의 각 feature들이 비슷한 범위를 갖도록 함
    • feature 범위가 달라지게 되면 각 feature가 결과에 영향을 주는 정도가 달라질 수밖에 없기 때문
    • mean normalization : x=xμSx = \frac{x-\mu}{S} (S는 범위 혹은 표준편차)
  • Other regression
    • multiple regression : 2차 이상의 비선형 데이터에 대한 회귀
    • locally-weighted linear regression : 특정 부분에만 multiple linear model 구현

Probablistic Interpretation

  • 예측값 yiy^i 가정
    • yi=θTxi+ϵiy^i=\theta^Tx^i+\epsilon^i
    • ϵ\epsilon은 오차 (ϵN(0,σ2)\epsilon \sim N(0, \sigma^2))
      • 오차 P(yixi,θ)N(θTxi,σ2)P(y^i|x^i, \theta) \sim N(\theta^Tx^i, \sigma^2)
    • 전체 dataset의 오차 : P(YX,Θ)=Πi=1np(yixi,θ)P(Y|X, \Theta) = \Pi_{i=1}^n p(y^i|x^i, \theta)
      • P(YX,Θ)=L(Θ)P(Y|X, \Theta) = L(\Theta) : Likelihood - parameter 변경 시 X에 대해 Y의 확률
728x90

+ Recent posts