Linear Regression

·2025년 7월 22일

just공부

목록 보기
30/41

Overview

머신러닝의 학습 방법들

Gradient descent based learning

실제 값과 학습된 모델 예측치의 오차를 최소화하여, 모델의 최적 parameter를 찾는 것이 목적이다.

  • Tensorflow나 Deep learning
  • Linear Regression(회귀 분석)이 해당 방법론에 해당된다.
    y^=ax+b\hat{y} = ax + b
  • y^\hat{y} : 예측치
  • ax+bax + b 라는 Model

학습을 통해 알아내야 하는 것이 파라미터인 aabb 이다.
기본적으로 주어지는 것은 데이터인 xx의 값과 실제 yy의 값이다.

(imy^iyi)\left( \sum_{i}^{m} \hat{y}_i - y_i \right)

위의 수식의 값을 최소화할 수 있는 a와 b 값을 찾는 과정이 Gradient descent 기반의 알고리즘이다.

Probability theory based learning
-> 확률 이론 기반의 방법론
Information theory based learning
-> 정보 이론 기반의 방법론
Distance similarity based learning

Linear Regression

예측 함수 정의

f(x)=y=ax+b(여기서 a=w1,b=w0)f(x) = y = a x + b \quad \text{(여기서 } a = w_1, \, b = w_0\text{)}

손실 함수 (MSE)

i=1n(y^(i)y(i))2\sum_{i=1}^{n} \left( \hat{y}^{(i)} - y^{(i)} \right)^2
y^=[w1×8759+w0w1×10132+w0w1×12078+w0w1×16430+w0],y=[4876128661030]\hat{y} = \begin{bmatrix} w_1 \times 8759 + w_0 \\ w_1 \times 10132 + w_0 \\ w_1 \times 12078 + w_0 \\ w_1 \times 16430 + w_0 \end{bmatrix} ,\quad y = \begin{bmatrix} 487 \\ 612 \\ 866 \\ 1030 \end{bmatrix}
  • y^\hat{y} : 각각의 예측치들
  • yy : 실제값
  • (y^y)2(\hat{y} - y)^2 : Squred Error, 오차 제곱의 합을 표현하게 되면 아래의 수식이 된다.
    • 이 값을 최소화하는 것이 목표가 된다.
(y^y)2=[(w1×8759+w0487)2(w1×10132+w0612)2(w1×12078+w0866)2(w1×16430+w01030)2](\hat{y} - y)^2 = \begin{bmatrix} (w_1 \times 8759 + w_0 - 487)^2 \\ (w_1 \times 10132 + w_0 - 612)^2 \\ (w_1 \times 12078 + w_0 - 866)^2 \\ (w_1 \times 16430 + w_0 - 1030)^2 \end{bmatrix}

Squared Error를 최소화할 수 있는 weight값의 발견

최대 최소의 문제를 다루게 된다.
이는 미분으로 문제를 해결할 수 있다.

i=1n(w1x(i)+w0×1y(i))2\sum_{i=1}^{n} \left( w_1 x^{(i)} + w_0 \times 1 - y^{(i)} \right)^2
  • 위의 수식에서 찾고자 하는 값은 w1,w0w_1, w_0 이다.

즉, 예측값과 실제값의 차의 제곱을 모두 더한 것-> 오차 제곱합의 최소값을 찾기 위해 미분으로 해결할 수 있는 것이다.

Cost function

앞으로 우리는 예측을 하기 위해 필요한 함수인

f(x)=hθ(x)f(x) = h_{\theta}(x)

예측 함수를 가설 함수(Hypothesis function)라고 부를 것이다.

  • f(x)f(x) : 입력 xx에 대한 모델의 예측 함수
  • hθ(x)h_{\theta}(x) : 파라미터 θ\theta를 가진 가설 함수
  • θ\theta : 우리가 찾아야 하는 ww 값을 의미한다.
  • xx : 우리가 입력할 값
  • y^\hat{y} : 출력값

실제값과 가설 함수의 차이는 Cost function이라고 부를 것이다.

J(w0,w1)=12mi=1m(hθ(x(i))y(i))2J(w_0, w_1) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right)^2
  • JJ : w0,w1w_0, w_1에 의해 결정되는 function이다.
    • w0,w1w_0, w_1 : hθh_{\theta} 자리에 오게 될 것이다.
  • mm : 전체 data의 개수
  • 12m\frac{1}{2m} : 여기에서의 2는 제곱을 나중에 미분해줄 때 상쇄하기 위한 값으로 딱히 의미는 없다.
    • 1m\frac{1}{m} : 여기에서의 m은 숫자가 커질 수 있기 때문에 커지지 않도록 해주는 값이다.

Cost function minimization

Cost Function에서 구하는 것

argminθ(12mi=1m(hθ(x(i))y(i))2)\arg\min_{\theta} \left( \frac{1}{2m} \sum_{i=1}^{m} \left( h_{\theta}(x^{(i)}) - y^{(i)} \right)^2 \right)

cost function의 최소화를 위한 weight 값

괄호 안의 수식값을 가장 작게 만들 수 있는 θ{\theta}를 찾는 것이다.
수식에서는 θ{\theta} 였지만, 변수명으로는 ww 를 쓸 것이다.

이제 위의 cost function minimization을 미분하면 된다...

J(w0,w1)=12mi=1m(w1x(i)+w0y(i))2J(w_0, w_1) = \frac{1}{2m} \sum_{i=1}^{m} \left( w_1 x^{(i)} + w_0 - y^{(i)} \right)^2
Jw0=1mi=1m(w1x(i)+w0y(i))\frac{\partial J}{\partial w_0} = \frac{1}{m} \sum_{i=1}^{m} \left( w_1 x^{(i)} + w_0 - y^{(i)} \right)
Jw1=1mi=1m(w1x(i)+w0y(i))x(i)\frac{\partial J}{\partial w_1} = \frac{1}{m} \sum_{i=1}^{m} \left( w_1 x^{(i)} + w_0 - y^{(i)} \right) x^{(i)}
  • 고등학교 때는 dydx\frac{dy}{dx} 로 배웠던 수식이 여기에서는 Jw0\frac{\partial J}{\partial w_0} 이렇게 사용된다.
  • 미분을 해야 하는 변수가 하나일 때는 보통 dd를 사용한다.
  • 한 개 이상인 경우
    == 즉 여기서 편미분을 할 때는,
    == w0w_0에 대해 미분을 하게 될 때는
    J\partial_J에 관한 식으로 미분을 하라.

합과 도함수 계산

f(x)=i=1512x2f(x) = \sum_{i=1}^{5} \frac{1}{2} x^2
  • 동일한 항 12x2\frac{1}{2} x^2를 5번 더한 함수
  • 이 식을 풀어서 x에 관해 미분을 하게 되면, 아래와 같은 식이 나오게 된다.
dfdx=x+x+x+x+x=i=15x\frac{df}{dx} = x + x + x + x + x = \sum_{i=1}^{5} x
  • 각 항의 도함수인 x를 5번 더한 것이다.

합성 함수의 미분

Derivative of f(g(x))\text{Derivative of } f(g(x))
  • 체인 룰(chain rule)을 적용한 미분 공식이다.
dfdx=dfdududx,let u=g(x)\frac{df}{dx} = \frac{df}{du} \cdot \frac{du}{dx}, \quad \text{let } u = g(x)
f=(2x1)2,dfdx=2(2x1)2f = (2x - 1)^2, \quad \frac{df}{dx} = 2(2x - 1) \cdot 2
  • 함수 f=(2x1)2f = (2x - 1)^2 에서 편의를 위해 A=(2x1)A = (2x - 1)로 치환하면, f=A2f = A^2로 바뀐다.
  • 먼저 A2A^2AA에 대해 미분하면,
    dfdA=2A\frac{df}{dA} = 2A 가 나온다.
  • 이제 다시 A=2x1A = 2x - 1xx에 대해 미분하면,
    dAdx=2\frac{dA}{dx} = 2 이렇게 나온다.
  • 최종적으로 2(2x1)22(2x - 1) * 2가 남게 된다.

따라서 체인 룰을 적용하면 전체 미분 결과는 아래와 같게 나온다.

dfdx=dfdAdAdx=2(2x1)2\frac{df}{dx} = \frac{df}{dA} ⋅ \frac{dA}{dx} = 2(2x - 1) ⋅ 2

weights의 최적값을 컴퓨터가 찾는 방법

  • 연립방정식 풀기 (normal equation)
  • gradient descent

REFERENCE

너무 어려워요...

profile
Whatever I want | Interested in DFIR, Security, Infra, Cloud

0개의 댓글