Search

선형대수와 선형회귀모형(linear regression)

Created at
2018/11/21
Updated at
Tags
Keywords
3 more properties

1. 선형 회귀 모형(linear regression)

1.1 선형 회귀 모형이란

선형 회귀 모형이란 독립 변수 xx에서 종속 변수 yy를 예측하기 위한 방법의 하나로, 독립 변수 벡터 xx와 가중치 벡터 ww의 가중합으로 yy와 가장 비슷한 값 y^\hat y을 계산
y^=w1x1++wNxN\hat y = w_1x_1 + \cdots + w_Nx_N
y^=wTx\hat y = w^Tx

1.2 잔차

선형 회귀 분석의 결과는 가중치 벡터 ww로 나타나고 예측치는 이 가중치 벡터를 사용한 벡터 xix_i의 가중합 wTxiw^Tx_i가됨
잔차(residual) 혹은 오차(error): 예측치 yi^\hat {y_i}와 실제값(target) yiy_i의 차이
ei=yiyi^=yiwTxie_i = y_i - \hat {y_i} = y_i - w^Tx_i

1.3 잔차 제곱합(RSS: residual sum of squares)

잔차의 크기는 잔차 벡터의 잔차제곱합을 이용하여 구하며, eTee^Te로 나타냄
i=1Nei2=i=1N(yiwTxi)2=eTe=(yXw)T(yXw)\sum_{i=1}^N e_i^2 = \sum_{i=1}^N {(y_i - w^Tx_i)^2} = e^Te = (y-Xw)^T(y-Xw)

2. 연립방정식과 역행렬

그렇다면 가중치 벡터 ww는 어떻게 구하는가? 연립방정식과 (의사)역행렬을 이용해 선형 예측 모형의 가중치 벡터를 구하는 방법을 알아보자.

2.1 선형 연립 방정식(system of linear equations)

선형연립 방정식: x1,x2,,xMx_1, x_2, \cdots, x_M이라는 MM개의 미지수를 가지는 NN개의 선형 방정식
a11x1+  a12x2  ++  a1MxM  =  b1a21x1+  a22x2  ++  a2MxM  =  b2                    aN1x1+  aN2x2  ++  aNMxM  =  bN\begin{matrix} a_{11} x_1 & + \;& a_{12} x_2 &\; + \cdots + \;& a_{1M} x_M &\; = \;& b_1 \\\\ a_{21} x_1 & + \;& a_{22} x_2 &\; + \cdots + \;& a_{2M} x_M &\; = \;& b_2 \\\\ \vdots\;\;\; & & \vdots\;\;\; & & \vdots\;\;\; & & \;\vdots \\\\ a_{N1} x_1 & + \;& a_{N2} x_2 &\; + \cdots + \;& a_{NM} x_M &\; = \;& b_N \\\\ \end{matrix}
행렬을 사용하면 아래와 같이 간단하게 표현할 수 있음
AA: 계수행렬(coefficient matrix)
xx: 미지수벡터(unknown vector)
bb: 상수벡터(constant vector)
[a11a12a1Ma21a22a2MaN1aN2aNM][x1x2xM]=[b1b2bN]\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1M} \\\\ a_{21} & a_{22} & \cdots & a_{2M} \\\\ \vdots & \vdots & \ddots & \vdots \\\\ a_{N1} & a_{N2} & \cdots & a_{NM} \\\\ \end{bmatrix} \begin{bmatrix} x_1 \\\\ x_2 \\\\ \vdots \\\\ x_M \end{bmatrix} = \begin{bmatrix} b_1 \\\\ b_2 \\\\ \vdots \\\\ b_N \end{bmatrix}
Ax=bAx = b

2.2 역행렬

역행렬(A1A^{-1}): 정방행렬 A에 대해 다음 관계를 만족하는 정방 행렬 (II는 단위 행렬)
A1A=AA1=IA^{-1}A = AA^{-1} = I
역행렬의 성질 (A,B,CA, B, C 모두 역행렬이 존재한다고 가정)
전치 행렬의 역행렬은 역행렬의 전치 행렬과 같다. 따라서 대칭 행렬의 역행렬도 대칭 행렬이다.
(AT)1=(A1)T(A^T)^{-1} = (A^{-1})^T
두 개 이상의 정방 행렬의 곱은 같은 크기의 정방 행렬이 되는데, 이러한 행렬의 곱의 역행렬은 다음 성질이 성립한다.
(AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}
(ABC)1=C1B1A1(ABC)^{-1} = C^{-1}B^{-1}A^{-1}
역행렬은 행렬식이 0이 아닌 경우에만 존재한다.

2.3 역행렬과 선형 연립 방정식의 해

행렬 AA의 역행렬이 존재한다면 선형 연립 방정식의 해는 다음과 같이 구함
Ax=bA1Ax=A1bIx=A1bx=A1b\begin{aligned} Ax & = b \\ A^{-1}Ax & = A^{-1}b \\ Ix & = A^{-1}b \\ x & = A^{-1}b \\ \end{aligned}
역행렬이 존재할 때만 (행렬식이 0이 아닌 경우에만) 구할 수 있음

2.4 최소 자승 문제 (Least Square Problem)

미지수의 수와 방정식의 수를 고려한 연립 방정식의 종류

1.
방정식의 수와 미지수의 수가 같음 (N=MN = M)
정방행렬의 경우
2.
방정식의 수 < 미지수의 수 (N<MN < M)
무수히 많은 해가 존재할 수 있음
3.
방정식의 수 > 미지수의 수 (N>MN > M)
해가 존재하지 않을 수 있음

최소 자승 문제

데이터 분석에서는 대부분 큰 데이터를 다루게 되므로 3번의 경우가 일반적이기때문에 정확한 해를 구할 수 없음
아무런 답도 구할 수 없는 것 보다는 좌변과 우변을 가장 비슷하게라도 만들어주는 수를 구하는 것이 좋음
AxbAx \approx b
따라서 잔차의 크기를 최소화하는 문제로 바꾸어 풀어야 함 이는 잔차 벡터의 크기, 즉 놈을 최소화하는 것과 같음
e=AxbeTe=e2=(Axb)T(Axb)x=argminxeTe=argminxe2=(Axb)T(Axb)\begin{aligned} e & = Ax -b \\ e^Te = \Vert e \Vert^2 & = (Ax -b)^T(Ax-b) \\ x = arg \min_x e^Te = arg \min_x \Vert e \Vert^2 & = (Ax -b)^T(Ax-b) \end{aligned}

의사 역행렬(pseudo inverse)

전치행렬을 원래 행렬에 곱해주면 정방행렬 형태가 됨 (ATAA^TA or AATAA^T)
이를 이용해 최소 자승 문제를 다음과 같이 의사 역행렬 A+A^+로 풀 수 있음
Ax=bATAx=ATb(ATA)1ATAx=(ATA)1ATbx=(ATA)1ATbx=A+b\begin{aligned} Ax & = b \\ A^TAx & = A^Tb \\ (A^TA)^{-1}A^TAx & = (A^TA)^{-1}A^Tb \\ x & = (A^TA)^{-1}A^Tb \\ x & = A^+b \\ \end{aligned}
의사 역행렬: A+=(ATA)1ATA^+ = (A^TA)^{-1}A^T
참고 자료