Linear Regression

chelseey·2025년 4월 25일

Linear models

Hypothesis set : 직선 집합

hθ(x)=θ0+θ1x1++θdxd=θTxh_\theta(x) = \theta_0 + \theta_1 x_1 + \cdots + \theta_d x_d = \theta^T x

확장된 선형 모델 :

hθ(x)=θ0+θ1k1(x1)++θdkd(xd)=θTk(x)h_\theta(x) = \theta_0 + \theta_1 k_1(x_1) + \cdots + \theta_d k_d(x_d) = \theta^T k(x)

입력 x에 임의의 함수 ki(xi)k_i(x_i)를 적용해도 여전히 θ에 대해서 선형(linear)

장점

  • 단순(simplicity)
    해석이 가능함

  • 일반화(Generalization)
    EtestEtrainE_{\text{test}} \approx E_{\text{train}} 가 쉬움
    과적함이 잘 안됨

  • regression, classification 에 모두 사용 가능

Feature organization

hθ(x)=θ0+θ1k1(ϕ(x)1)++θdkd(ϕ(x)d)=θTk(ϕ(x))h_\theta(x) = \theta_0 + \theta_1 k_1(\phi(x)_1) + \cdots + \theta_d k_d(\phi(x)_d) = \theta^T k(\phi(x))

Linear regression framework

1차원 선형 회귀 구성 방식

가설 함수(모델) 선택 (Hypothesis class)

hθ(x)=θ0+θ1xh_\theta(x) = \theta_0 + \theta_1 x

Loss function

MSE (Mean Squared Error)

J(θ)=12mi=1m(hθ(x(i))y(i))2J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2

Optimization

경사하강법(Gradient Descent)

θjθjαJ(θ)θj\theta_j \leftarrow \theta_j - \alpha \frac{\partial J(\theta)}{\partial \theta_j}

학습률 α를 정해두고,
MSE를 줄이는 방향으로 매개변수 θ0,θ1\theta_0, \theta_1 를 조금씩 업데이트

Linear regression: parameter opt.

hθ(x)=θ0+θ1xh_\theta(x) = \theta_0 + \theta_1 x의 계수 θ0,θ1\theta_0, \theta_1를 고르는 방식

L2 cost function (Goal : minimizing MSE)

Cost function J(θ0,θ1)J(\theta_0, \theta_1)

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2

: 현재의 직선(파라미터)으로부터 데이터가 평균적으로 얼마나 떨어져 있는지 표현

파라미터 공간에서의 비용 함수 등고선

가로축은 절편 θ0\theta_0, 세로축은 기울기 θ1\theta_1
안쪽(진한 파랑)일수록 cost가 작고, 바깥(빨강)일수록 cost 큼

Optimization - Matrix representation in data

데이터 행렬 XX
각 행 [1,x1(i),x2(i),,xd(i)][1, x_1^{(i)}, x_2^{(i)}, \ldots, x_d^{(i)}] 은 i번째 샘플의 feature 벡터

타겟 벡터 yRNy∈R^N
y=[y(1),y(2),,y(N)]Ty = [y^{(1)}, y^{(2)}, \ldots, y^{(N)}]^T

가중치 벡터 θRd+1θ∈R^{d+1}
θ=[θ0,θ1,,θd]T\theta = [\theta_0, \theta_1, \ldots, \theta_d]^T

모든 샘플에 대한 총 제곱 오차
yXθ22\|y - X\theta\|_2^2

Optimization - Getting a solution 𝜽

선형 회귀의 최적 파라미터 θθ^∗를 얻는 방법

  • 정규 방정식(Normal Equation)
  • 경사 하강법(Gradient Descent)

훈련 데이터에 대한 MSE = E(θ)E(θ)

최적의 θθ^∗
θ=argminθRd+1E(θ)=argminθ12NXθy22\theta^* = \underset{\theta \in \mathbb{R}^{d+1}}{\arg \min} E(\theta) = \underset{\theta}{\arg \min} \frac{1}{2N} \|X\theta - y\|_2^2

이차(Quadratic) 형태의 E(θ)

E(θ) 식을 전개하면,

Xθy22=(Xθy)T(Xθy)\|X\theta - y\|_2^2 = (X\theta - y)^T (X\theta - y)
=((Xθ)TyT)(Xθy)= ((X\theta)^T - y^T)(X\theta - y)
=(θTXTyT)(Xθy)= (\theta^T X^T - y^T)(X\theta - y)

E(θ)=12N(θTXTXθ2θTXTy+yTy)E(\theta) = \frac{1}{2N} (\theta^T X^T X \theta - 2 \theta^T X^T y + y^T y)

연속적이고
미분 가능하며
볼록(convex)한 이차 함수(quadratic form)

정규 방정식(Normal Equation)과 경사 하강법(Gradient Descent)

Normal equation (Least Square) - Analytic solution of 𝜽

정규 방정식 : 손실 함수를 0으로 만드는 해를 직접 구하는 수학적 방법

도함수를 0으로 놓기

이차 형태이므로, θ에 대한 기울기(gradient)를 구하고
0으로 만들면 전역 최솟값의 조건

θE(θ)=1N(XTXθXTy)=0\nabla_\theta E(\theta) = \frac{1}{N} (X^T X \theta - X^T y) = 0

정규 방정식 얻기

θ=(XTX)1XTy\theta^* = (X^T X)^{-1} X^T y

한계점

고차원·빅데이터에서는 XTXX^T X
생성·역행렬 계산이 불가능하거나 너무 느림
→ 정규 방정식 대신 경사 하강법 (반복 최적화 알고리즘) 사용

Gradient descent algorithm

정규 방정식처럼 한 번에 해를 직접 구하는 대신,
반복(iterative)적으로 모델 파라미터 θ를 조금씩 갱신해 가면서
손실 함수 J(θ)를 최소화하는 방법

방향 결정

기울기(gradient) ∇J(θ) : 손실이 가장 빠르게 증가하는 방향을 가리킴
→ 손실을 감소시키려면, 기울기의 반대 방향으로 이동

J(θ) : 파라미터(가중치) θ에 대한 손실 함수

θnewθoldαθJ(θ)\theta_{\text{new}} \leftarrow \theta_{\text{old}} - \alpha \frac{\partial}{\partial \theta} J(\theta)

학습률(learning rate)

학습률 αα : 매 스텝마다 파라미터를 얼마나 멀리 옮길지를 조절

Illustration: Error surface

전역 최솟값(global minimum) 이 아니라,
시작 지점에서 가장 가까운 국소 최솟값(local minimum) 으로 수렴할 수 있음

→ 초기 θ 값(initial position)을 어디로 잡느냐에 따라 달라짐

Gradient descent algorithm for linear regression

모델과 손실 함수

모델

hθ(x)=θ0+θ1xh_\theta(x) = \theta_0 + \theta_1 x

손실 함수 (MSE)

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2

가중치(파라미터)별 기울기(편미분)

Jθ0=1mi=1m(hθ(x(i))y(i))\frac{\partial J}{\partial \theta_0} = \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})
Jθ1=1mi=1m(hθ(x(i))y(i))x(i)\frac{\partial J}{\partial \theta_1} = \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) x^{(i)}

경사 하강법 업데이트 식

θ0:=θ0α1mi=1m(hθ(x(i))y(i))\theta_0 := \theta_0 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})
θ1:=θ1α1mi=1m(hθ(x(i))y(i))x(i)\theta_1 := \theta_1 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x^{(i)}

Gradient descent algorithm VS Normal equation

0개의 댓글