AI/ML 수업 정리

1-2. Linear Models for Regression

ardoh 2024. 9. 17. 22:26

👤월별 방문객 수, 👛방문객 당 소비 금액. 이 두 가지 feature 를 고려하여 💵편의점의 월별 매출을 예측해보자.

방문객 수 방문객 당 소비 금액 매출
8 6000 1300 600만
9 4500 1500 520만
10 ? ? ?

1

1. Linear regression model

예측을 위해선, Linear regression model 을 사용할 수 있다. 우리의 목표는 월별 방문객 수, 방문객 당 소비 금액을 이용하여 월별 매출을 예측하는 함수를 만드는 것이다. 함수는 다음과 같이 정의할 수 있다.

먼저, m은 feature 개수이다. 위의 예시에서는 월별 방문객 수, 방문객 당 소비 금액을 고려하기로 했으니 m=2가 되겠다.  \(x_{1}\) 은 방문객 수, \(x_{2}\)  는 방문객 당 소비 금액이 되겠다. 종속 변수인 Y는 월별 매출액이다. 

 

각 feature에 대응하는 파라미터 $\beta$ 값이 존재한다. 우리는 최적의 $\beta$ 값을 구해야 한다. 

 

2. 최적 파라미터 찾기 

최적의 파라미터 $\beta$  를 어떻게 하면 찾을 수 있을까? 우리는 8월, 9월의 매출액을 training set 으로 가지고 있다. 이미 정답을 알고 있기에, 실제값과 예측값의 차이 (에러) 를 계산하는 것이 가능하다.

 

차이값을 계산하는 방법은 여러 개가 있는데 Sum of Squared Residuals (SSR) 을 살펴보자. SSR은 데이터 포인트와 회귀 모델 간의 차이(Residual)를 제곱한 값을 모두 더한 것이다.

 

Least Mean Squares (LMS)SSR 을 최소화하는 파라미터를 찾는 과정이다. LMS는 매 반복마다 오차의 평균을 계산하고, 이 값을 기반으로 모델 파라미터를 점진적으로 업데이트 한다. SSR 이 작을수록 모델이 데이터에 더 잘 맞는다는 의미이다. 

위에서 만든 f(x) 식을 대입한 것이다.

 

 

feature 의 개수에 따라 dimension의 크기가 커진다. feature 의 개수가 2개이면 3차원 공간에 속한다.

 

파라미터 $\beta$ 에 대한 손실을 계산하는 J(β) cost function를 어떻게 하면 작게 할 수 있을까? 

 

3. Gradient descent algorithm 

 

Gradient descent algorithm 은 점진적으로 반복적인 계산을 통해 파라미터 값을 업데이트 하면서 오류 값이 최소가 되는 파라미터를 구하는 방식이다. 

 

🍊 cost 함수 미분

 

이차함수인 J(β) cost function 의 최솟값은 미분했을 때 0이 되는 지점이다. 이를 계산하면, (f(x)-y) $x_j$ 이다. 이따가 사용할 예정이다.

 

🍊 파라미터 업데이트

파라미터를 업데이트 하는 식은 위와 같다. cost 함수 J(β)의 미분 값에  \(\alpha\) 를 곱한 뒤, 기존 파라미터 값에서 빼준다. 

 

learning rate / moving direction 의 영향

 

learning rate 인 \(\alpha\) 는 업데이트 속도를 조절한다. $\alpha$ 값이 크면 업데이트가 빠른 속도로 이루어진다. 

 

 

 

training sample 이 하나일 때의 업데이트 식은 왼쪽과 같고, training sample 이 m개 일 때의 업데이트 식은 오른쪽과 같다. 아까 위에서 계산한 cost 함수의 미분값을 대입한 것이다. 

 

🍊 non linear vs. linear 

 

 

대부분의 data set은 non linear 한데, non linear model 에서는 cost 가 낮은 곳이 다양하다. 반면, linear model 은 convex (볼록한) 모양으로서 최소값이 하나 존재한다. 

3. 1 Batch gradient descent

Batch Gradient Descent는 업데이트를 할 때마다 모든 데이터를 사용한다. 한 번의 계산에 전체 데이터셋을 사용하기 때문에, 데이터셋을 여러 번 반복해서 볼 필요가 없다는 장점이 있다. 하지만, 데이터셋이 클수록 매번 비용이 많이 든다. 

3. 2 Stochastic gradient descent 

batch gradient descent 의 단점을 보완하기 위해 SGD 에서는 각 반복마다 훈련 데이터셋에서 하나의 샘플을 선택하여 해당 샘플에 대한 손실 함수의 기울기를 계산하고 이를 바탕으로 파라미터를 업데이트한다. 한 개의 sample 만 사용하기 때문에 학습 속도가 빠르다는 장점이 있다. 하지만, 각 반복마다 랜덤하게 선택된 샘플에 기반해 업데이트되기 때문에, 기울기의 변동성이 크고 손실 함수 값이 진동할 수 있다. 이로 인해 전체 최적점에 도달하기가 어려울 수 있다는 단점이 있다. 

 

SGD (좌), BGD (우)

4. Normal equations

linear model 은 항상 global optima 를 가지기 때문에, 반복을 하지 않고도 파라미터를 구하는 방법도 있다. 

 

🍊 예측 함수 f(x)

우선, 맨 처음에 정의했던 함수에서 $\beta_0$ 을 시그마 안에 포함시킨다. 

행렬로 표현해준다. 

🍊 손실 함수 J(β)

 

손실함수 식에서 f(x) 부분을 행렬 표현식으로 대체한다. 

J(β) cost function은 최종적으로 $(y-X\beta) ^T (y-X\beta)$ 로 정리된다. 

 

🍊 손실 함수 J(β) 미분

손실함수를 최소화하기 위해선 미분값이 0 이 되도록 해야 한다. 

 

invertible 하려면, determinant 가 0이어야 한다. 

'AI > ML 수업 정리' 카테고리의 다른 글

SVM  (0) 2024.10.27
3-1. Naive Bayes  (0) 2024.10.08
2-2 Linear Models for Classification  (0) 2024.10.04
2-1. Linear Models for Regression  (0) 2024.09.20
1-1. Introduction to Machine Learning  (0) 2024.09.14