다중 선형 회귀(Multiple Linear Regression)
- 입력변수가 여러 가지인 선형 회귀
- 입력 변수(feature) 여러개 - x / 목표 변수 하나 - y
i 번째 데이터의 j 번째 속성 : xj(i)
속성이 여러개 이므로 벡터로 나타낸다. x=⎣⎢⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎥⎤
다중 선형 회귀 가설 함수
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
θ=⎣⎢⎢⎢⎢⎢⎢⎡θ0θ1θ2⋮θn⎦⎥⎥⎥⎥⎥⎥⎤ x=⎣⎢⎢⎢⎢⎢⎢⎡1x1x2⋮xn⎦⎥⎥⎥⎥⎥⎥⎤ -> hθ(x)=θTx
다중 선형 회귀에서도 손실 함수는 아래와 같이 선형 회귀와 같다.
J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
다중 선형 회귀 경사 하강법
- 다중 선형 회귀는 입력 변수가 여러개이기 때문에 다음과 같이 벡터를 사용하여 θ를 업데이트한다.
X=⎣⎢⎢⎢⎢⎢⎡x0(1)x0(2)⋮x0(m)x1(1)x1(2)x1(m).........xn(1)xn(2)xn(m)⎦⎥⎥⎥⎥⎥⎤
θ <- θ−αm1XT(Xθ−y)
Xθ가 예측값 이므로 error=Xθ−y
정규 방정식(Normal Equation)
θ(XTX)−1XTy
- 극소점의 기울기가 0이라는 것을 이용한다.
- 방정식 ∇J(θ)=0 을 통해 최적의 θ를 구한다.
- 시간복잡도 : O(n2.4) ~ O(n3) (역행렬 구하는 연산)
유사역행렬(pseudoinverse)
X+는 X의 유사 역행렬
- 정식 명칭은 무어-펜로즈(Moore-Penrose) 역행렬이다.
- 역행렬이 존재하지 않을 경우 사용된다.
- 시간복잡도 : 약 O(n2)
유사역행렬의 계산
특잇값 분해(SVD - Singular Value Decomposition)를 사용하여 X+를 구한다.
X=UΣVT=>X+=VΣ+UT
알고리즘이 Σ를 구하고 Σ에서 어떤 임곗값보다 작은 값을 모두 0으로 치환한 뒤, 0이 아닌 모든 값을 역수로 치환한 다음 전치하여 Σ+를 구한다.
경사 하강법 VS 정규 방정식
- 보통 입력 변수가 많을 때는 경사 하강법, 적을 때는 정규 방정식을 사용한다.(일반적으로 1000개를 기준으로 함)

Convex 함수
- 모든 구간에서 아래로 볼록한 함수
- 위로 볼록한 구간이 있는 함수는 non-convex 함수라고 한다.
- 선형 회귀의 손실함수로 사용되는 MSE는 항상 convex 함수이다.
- convex 함수는 항상 하나의 극소점을 가지며 따라서 항상 최소점을 찾을 수 있다.
- non-convex 함수는 구한 극소점이 global minimum이라고 확신할 수 없으므로 local minimum에 빠질 수 있다.
이 글은 코드잇 강의를 수강하며 정리한 글입니다. 더 자세한 설명은 코드잇을 참고하세요
코드잇 머신 러닝