👤월별 방문객 수, 👛방문객 당 소비 금액. 이 두 가지 feature 를 고려하여 💵편의점의 월별 매출을 예측해보자.
| 월 | 방문객 수 | 방문객 당 소비 금액 | 매출 |
| 8 | 6000 | 1300 | 600만 |
| 9 | 4500 | 1500 | 520만 |
| 10 | ? | ? | ? |

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 이 작을수록 모델이 데이터에 더 잘 맞는다는 의미이다.


파라미터 $\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 인 \(\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 만 사용하기 때문에 학습 속도가 빠르다는 장점이 있다. 하지만, 각 반복마다 랜덤하게 선택된 샘플에 기반해 업데이트되기 때문에, 기울기의 변동성이 크고 손실 함수 값이 진동할 수 있다. 이로 인해 전체 최적점에 도달하기가 어려울 수 있다는 단점이 있다.

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 |