Linear Regression
- 머신러닝?
- 명시적 프로그램 없이 학습하는 능력을 컴퓨터에게 부혀아는 것
- 데이터를 이용한 프로그래밍
Linear Regression
- 일정 데이터의 상관관계를 선형으로 파악하는 것
- ex. 집값의 예측
- 집의 평수와 판매 가격의 데이터가 주어짐
- 해당 데이터를 기반으로 y = ax + b의 그래프를 작성
- 가격은 연속하여 변하는 값이므로 선형 회귀 문제로 분류된다.
- 집의 정보(입력)과 가격(출력)의 그래프를 갖고 있으므로 지도학습에 해당한다.
- 가설 H(θ) : 데이터에 기반하여 가정한 모델
- 모델에 새 데이터를 입력시키면 예측값이 출력
- H(θ)=θ0+θ1x1+θ2x2+...
- error : 해당 모델과 training data 사이의 출력(y)값 차이
- Cost Function J(θ) : 가설 H와 실제 데이터 y 사이의 차이
- 예측 모델의 정확도를 표현
- J가 0이면 완벽한 예측임을 의미
- J(θ)=21[H(θ)−y]2
- 최솟값의 계산 : θ에 대한 미분값이 0이 되는 지점을 탐색
- ∂θi∂J(θ)=[H(θ)−y]∂θi∂H(θ)=[H(θ)−y]xi
- parameter update : θ=θ−α∂θ∂J(θ) (α : running rate, 값이 변화하는 정도)
- non-convex한 경우 : 미분값이 0이 되어도 최소가 아닐 수 있음
- gradient descent : parameter update시 모든 오차값의 합을 이용해 갱신
- 데이터가 많은 경우 속도가 느린 단점
- 수렴할 때까지 : θj=θj−α∑i=1m[H(θj)−yi]xji
- stochastic descent
- gradient descent의 경우 모든 feature의 변화값 합을 계산하므로 연산 부담이 높음
- stochastic의 경우 각 feature마다 weight 변화를 갱신하므로 연산 부담이 상대적으로 낮음
- θj=θj−α[H(θj)−yi]xji for all i
Normal Equation
- ∂θi∂J(θ)=0
- 행렬 미분 : 각 원소에 대해 함수를 편미분
- ∇AF(A)=⎣⎢⎢⎡∂a11∂F(A)...∂a1n∂F(A)... ...∂an1∂F(A)...∂ann∂F(A)⎦⎥⎥⎤
- H(θ)=XΘ로 표현 가능
- X=[1x1x2....xn], Θ=⎣⎢⎢⎢⎡θ0θ1...θn⎦⎥⎥⎥⎤
- ∇θJ(θ)=21∇θ[XΘ−Y]T[XΘ−Y]
- XT[Y−XΘ^]=0 ⇒Θ^=[XTX]−1XTY
Polynomial Regression
- Linear Regression : H(θ)=θ0+θ1x1
- Polynomial Regression(2nd-order) : H(θ)=θ0+θ1x1+θ2x12
- Feature Scaling
- 함수의 각 feature들이 비슷한 범위를 갖도록 함
- feature 범위가 달라지게 되면 각 feature가 결과에 영향을 주는 정도가 달라질 수밖에 없기 때문
- mean normalization : x=Sx−μ (S는 범위 혹은 표준편차)
- Other regression
- multiple regression : 2차 이상의 비선형 데이터에 대한 회귀
- locally-weighted linear regression : 특정 부분에만 multiple linear model 구현
Probablistic Interpretation
- 예측값 yi 가정
- yi=θTxi+ϵi
- ϵ은 오차 (ϵ∼N(0,σ2))
- 오차 P(yi∣xi,θ)∼N(θTxi,σ2)
- 전체 dataset의 오차 : P(Y∣X,Θ)=Πi=1np(yi∣xi,θ)
- P(Y∣X,Θ)=L(Θ) : Likelihood - parameter 변경 시 X에 대해 Y의 확률