본문 바로가기
[Artificial Intelligence]/[Machine Learning]

선형 회귀 수식으로 제대로 이해하기

by 보끔밥0130 2024. 1. 26.
728x90
 

선형 회귀 Task 이해하기

 


$$X : [1 , 2, 3] \newline, Y : [3, 5, 7]$$

식이 간단하다면 X와 Y의 관계는 \(f(x) = 2x + 1\) 로 예측가능하다.

하지만 데이터가 많아지고 식이 복잡해지면서 우리가 직접 해결하기 보다 컴퓨터에 이 문제를 맡긴다.
⇒ 선형 회귀 문제
 
가설 세우기  \(H(W, b) = W x + b\)
  
위의 예시로 목표는 W = 2, b = 1이 되게 하는 것이다.

가설 초기화 W = 1, b = 0 ⇒ 얼마나 잘 못 되었는지 아는 함수 : Cost(W, b)

비용 함수는 대표적으로 최소 제곱법을 이용한다.

[그림1] 예시 



$$Cost(W, b) = {1 \over m} \times \overset{m}{\underset{i = 1}{\Sigma}}(Wx_i + b - y_i)^2$$

제곱 함수를 이용하는 이유는 2가지가 있다.
 1) 비용이 커져서 잘못된 가설에 대한 penalty를 크게 부여할 수 있음
2) 절대값 ⇒ 컴퓨터는 조건문을 이용하여 연산속도가 느려짐

우리가 찾고자 하는 값은 아래로 정의됩니다. (정해진 상수 값 제외)
  
$$\underset{W,b}{min}\overset{m}{\underset{i = 1}{\Sigma}}(Wx_i + b - y_i)^2$$
  
Cost 함수는 Convex(아래로 볼록) 함수인 이차함수 형태입니다.

비용 함수의 최소점은 Global Optimum이 됩니다.

값을 이동시키기 위해 기울기를 사용합니다.

기울기가 음수이면 오른쪽으로 이동 시키고 양수라면 왼쪽으로 이동 시키고자 합니다.

반복적으로 기울기를 구해서 증가시키거나 감소시켜 기울기 = 0 이 되는 지점으로 이동시킵니다.

경사하강법 : 비용을 줄이기 위해 반복적으로 기울기를 계산하여 변수의 값을 변경해 나가는 과정
  
$$\overset{m}{\underset{i = 1}{\Sigma}}(Wx_i + b - y_i)^2$$
 
W,b의 기울기를 각각 구해서 이동시키면 되는데 어떻게 계산할까?

 
 

미분법


$$
\begin{equation}

    \begin{aligned}

\overset{m}{\underset{i = 1}{\Sigma}}(WX_i + b - y_i)^2  

&= \overset{m}{\underset{i = 1}{\Sigma}}(X_i^2W^2 + 2X_ibW-2by_i-2X_iy_iW + b^2 + y_i^2) &&

    \end{aligned}

\end{equation}
$$

W 기울기에 대한 편미분

$$
{\partial Cost(W, b) \over \partial W} = \overset{m}{\underset{i = 1}{\Sigma}}(2X_i^2W + 2X_ib - 2X_iy_i) \cdot{1\over m}
$$

b 기울기에 대한 편미분
$$
{\partial Cost(W, b) \over \partial b} = \overset{m}{\underset{i = 1}{\Sigma}}(2X_iW - 2y_i + 2b) \cdot{1\over m}
$$

경사하강법 in  ML

Data 를 input으로 H(W, b)에 넣어서 Cost(W, b)를 구하여 0인지를 판단한다.

만약, 0이 아니라면 업데이트하여 H(W,b)를 학습시킵니다.

 

How to Update?

$$

W := W - \alpha{\partial Cost(W, b) \over \partial W} \newline b:= b - \alpha{\partial Cost(W, b) \over \partial b}

$$

일방적으로 기울기를 뺀다면 학습 초반에 기울기가 엄청 작거나 크게 계산되어 너무 바뀌는 것을 방지하기 위해 학습률을 곱합니다. (0.01 로 작은 양수값)

업데이트를 많이 하다보면 Global Optimum에 수렴하게 됩니다. (1 epoch : 업데이트 횟수)

W의 기울기 =  \(\overset{m}{\underset{i = 1}{\Sigma}}(X_iW + b - y_i)X_i \cdot{2\over m}\)

b의 기울기 = \( \overset{m}{\underset{i = 1}{\Sigma}}(X_iW + b - y_i ) \cdot{2\over m} \)

두 기울기가 0 이 되는 지점을 찾아야 합니다.

- 식이 2개 변수 2개 ⇒ 값을 구할 수 있으며 연립방정식으로 푼다.

$$

 \overset{m}{\underset{i = 1}{\Sigma}}X_iy_i =  \overset{m}{\underset{i = 1}{\Sigma}}X_i^2W +  \overset{m}{\underset{i = 1}{\Sigma}}bX_i \newline  \overset{m}{\underset{i = 1}{\Sigma}}y_i =  \overset{m}{\underset{i = 1}{\Sigma}}X_iW +  \overset{m}{\underset{i = 1}{\Sigma}}b

$$

행렬 식으로 복잡한 연립식을 풀 수 있다.

$$
   \begin{pmatrix}

    \overset{m}{\underset{i = 1}{\Sigma}}X_i^2  &  \overset{m}{\underset{i = 1}{\Sigma}}X_i \\

 \overset{m}{\underset{i = 1}{\Sigma}}X_i & m

   \end{pmatrix}    \begin{pmatrix}

   W  \\

   b  

   \end{pmatrix}  =    \begin{pmatrix}

   \overset{m}{\underset{i = 1}{\Sigma}}X_iy_i \\

    \overset{m}{\underset{i = 1}{\Sigma}}y_i  \\

   \end{pmatrix}
$$

 

Cramer’s Rule

 

⇒ 선대에서 연립방정식 또는 행렬식을 푸는데 사용하는 방법 중 하나 Substitution(대치법), Gaussian elimination(가우스 소거법), Cramer’s Rule (크래머 공식) 이 있다.

n까지 있는 연립식을 다음처럼 표현할 때 사용된다.

B = AX

조건

- B가 영행렬이 아닙니다.(비동차)
- A가 역행렬이 존재합니다.
- 즉, 비동차 연립일차방정식으로 표현이 될때 성립한다.

공식
- A는 n * n 정방행렬
- X, B는 n * 1인 열벡터
- 각각의 해는 “ 행렬 A에서 제n열의 값을 B로 교체한 행렬식 / 행렬 A의 행렬식 값 “으로 구해집니다.

 

아래처럼 각 해가 표현되며 행렬식은 여인수의 전개 방식으로 값을 구할 수 있다.
$$

x_1 = {\begin{vmatrix}

b_{1} & a_{12} & a_{13} \\

b_{2} & a_{22} & a_{23} \\

b_{3} & a_{32} & a_{33} \\

\end{vmatrix}\over \begin{vmatrix}

a_{11} & a_{12} & a_{13} \\

a_{21} & a_{22} & a_{23} \\

a_{31} & a_{32} & a_{33} \\

\end{vmatrix}} \; x_2 = {\begin{vmatrix}

a_{11} & b_{1} & a_{13} \\

a_{21} & b_{2} & a_{23} \\

a_{31} & b_{3} & a_{33} \\

\end{vmatrix}\over \begin{vmatrix}

a_{11} & a_{12} & a_{13} \\

a_{21} & a_{22} & a_{23} \\

a_{31} & a_{32} & a_{33} \\

\end{vmatrix}} \; x_3 = {\begin{vmatrix}

a_{11} & a_{12} & b_{1} \\

a_{21} & a_{22} & b_{2} \\

a_{31} & a_{32} & b_{3} \\

\end{vmatrix}\over \begin{vmatrix}

a_{11} & a_{12} & a_{13} \\

a_{21} & a_{22} & a_{23} \\

a_{31} & a_{32} & a_{33} \\

\end{vmatrix}}

$$

$$

W = {{m\Sigma X_iy_i - \Sigma X_i\Sigma y_i}\over{m\Sigma X_i^2-\Sigma X_i\Sigma X_i}} \newline = {{E(XY) - E(X)E(Y)}\over{E(X^2)-E(X)E(X)}} \newline = {Cov(X,Y)\over Var(X)}

$$

\(E(X) = {1\over m}\Sigma X\)

마찬가지로 b의 기울기가 0인 지점을 생각한다면

$$

b = \overset{m}{\underset{i = 1}{\Sigma}}(X_iW + b - y_i ) =0

$$

$$ 

\overset{m}{\underset{i = 1}{\Sigma}}b = \overset{m}{\underset{i = 1}{\Sigma}}y_i - \overset{m}{\underset{i = 1}{\Sigma}}X_iW \newline \rightarrow b = {

{\overset{m}{\underset{i = 1}{\Sigma}}y_i-\overset{m}{\underset{i = 1}{\Sigma}}X_iW}\over m} \newline = E(Y) - E(X)W
$$

결론

정리하자면

$$
X : [1 , 2, 3] \newline

Y : [3, 5, 7]
$$

위 예시를 업데이트하여 계산해보겠습니다.

 \(E(X)= 2\) ,  \( E(Y) = 5 \)

 \( Cov(X,Y) = {{(1-2)(3-5)+(2-2)(5-5)+(3-2)(7-5)}\over 3} = {4 \over 3} \)

 \( Var(X) = {14\over3}- 2^2 = {2\over3} \)

 \( W = {4\over3} \times {3\over 2} = 2 \)

 \(b = E(Y)-E(X)\cdot W = 5-2\cdot2 = 1\)

초기화된 값에서 우리가 목표로 하는 W, b로 업데이트가 되는 것을 확인했습니다.

기계 학습은 이 과정을 반복하며 많은 feature에 대한 W들과 대응되는 bias를 계속 업데이트하며 최적의 해를 찾는 학습 방법입니다.

 

Reference

- [cramer’s rule1](https://carstart.tistory.com/160) 

- [cramer’s rule2](https://blog.naver.com/PostView.naver?blogId=mykepzzang&logNo=221085691637)

- [cramer’s rule3](https://wjdgh283.tistory.com/entry/%ED%81%AC%EB%9E%98%EB%A8%B8-%EA%B3%B5%EC%8B%9D-Cramers-rule)
- [여인수 전개](https://carstart.tistory.com/154)
- [선형 회귀 이해하기 (by 나동빈)](https://www.youtube.com/watch?v=ve6gtpZV83E)

 

 

728x90

댓글