Supervised Learning (지도 학습)
| Supervised Learning -> Input(x) 와 대응되는 target(y) 가 있는 경우
- 데이터셋을 통해 새로운 입력(x) 가 주어졌을 때 y 를 출력하는 모델을 학습시킴
- 모델의 출력값 y 를 prediction , 정답 y를 Label 이라고 함
- Y의 형태에 따라 Regression(회귀) - 실수형, Classification(분류)로 나뉨
Conditional Probability Model(조건부 확률 모델)
| True Distribution: 데이터는 실제 분포 P(X,Y)에서 Random sampling 된다고 가정
> i.i.d (independent and identically distributed) 가정 : 샘플들이 서로 독립적이고 동일한 분포를 따른다는 의미
| Y 는 X 에 의해 결정되는 조건부 확률분포P(Y∣X) 를 따름을 가정
> Learning 목표: 실제 분포 P(X,Y)를 정확히 알 수 없으므로, 데이터를 사용해 조건부 확률 분포 P(Y∣X)를 모델링
| Hypothesis Function: P(Y|X ) 를 근사하는 역할
> Hypothesis Function h(x) = y 를 통해, P(Y | X) 를 모델링 -> 추정된 prediction h(x) = y^ 을 구함
ex ) 로지스틱 회귀, 신경망, SVM 등.
| Cost Function (Loss Function) : Cost Function은 모델이 예측한 값과 실제 레이블 간의 차이를 측정
> 차이를 최소화 하는 방향으로 파라미터를 업데이트
> 모델 학습 : Cost function 을 최소화 하는 파라미터를 찾는 과정
> Gradient Descent 같은 알고리즘을 사용하여 파라미터 업데이트
Notation
- 길이의 Vector는 matrix(row vector)로 취급
- 입력(input) : x = (x0, x1, .... , xn)
- 정답(label):y
- parameters: w = (w0, w1, . . . , wn) = W(1,n)
- Bias(optional) : x0 = 1, w0 = b
- 모델 오차 :ϵ
- 데이터 수(sample size/batch size) : m
2. Regression
Linear Regression
| 입력(x)와 정답(y)사이의 선형 상관관계를 가정하는 모델(직선, 평면) - 단순한 직선적인 관계
| y는 연속형 변수 (y ∈ (−∞, + ∞)) > True Distribution은 평균이 x에 의해 계산되는 정규분포를 따름을 가정
y = w0 + w1x1 + w2x2 + . . . + wnxn + ϵ
> W를 찾는 것이 목표!
단, x 는 변수들의 비선형 결합일 수 있다.(feature engineering)
- Linear Model example: y = w0 + w1log(x1) + 2w2 x2
- Nonlinear Model example: y = w0 + exp(w1x1) + log(w2 + x2)
(비선형 결합 : 파라미터와 변수 분해가 불가능)
데이터에 따라 정답 y의 분포를 다르게 가정 할 수 있다.(Generalized Linear Model)
- Normal distribution(Real:(- ,+ )) - Linear Regression
- Bernoulli(Binary:{0,1}) - Logistic Regression
- Categorical(Multiclass:{0,1,2..,n}) - Softmax Regression
Define Cost function(Loss function)
> W를 찾기 위해서 쓰는 함수
J(w) = Mean Squared Error(MSE) : (예측치 - 실제 레이블 : 편차)^2 의 평균
> 편차를 제곱하는 이유는 편차까리 상쇄되는 것을 방지하기 위함.
> W* = argminJ(W) : Cost function 을 minimize 하는 W 값을 찾는 것
(1) 가장 쉬운 방법? 선을 여러개 그린다 -> random search, grid search -> 단순하고 느린 방법
(2) 미분을 이용! Gradient Descent
Gradient Descent
> Gradient(미분)의 반대방향으로 Update
$$ w_i := w_i - \alpha \frac{\partial J(w)}{\partial w_i} $$
왜 기울기의 반대 방향으로 이동?
- 기울기(Gradient)는 Cost Function J(w가 증가하는 방향을 나타냄.
- 따라서, 기울기의 반대 방향으로 이동하면 J(w)를 감소시킬 수 있음.
Gradient Descent 업데이트 규칙
$$ \[
\frac{\partial J(w_i)}{\partial w_i} = \frac{\partial}{\partial w_i} \left\{ \frac{1}{m} \sum_{j=1}^m \left( x^{(j)}w^T - y^{(j)} \right)^2 \right\}
\]
\[
= \frac{1}{m} \sum_{j=1}^m \frac{\partial}{\partial w_i} \left( x^{(j)}w^T - y^{(j)} \right)^2
\]
\[
= \frac{1}{m} \sum_{j=1}^m 2 \left( x^{(j)}w^T - y^{(j)} \right) \cdot \frac{\partial}{\partial w_i} \left( x^{(j)}w^T \right)
\]
\[
= \frac{1}{m} \sum_{j=1}^m 2 \left( x^{(j)}w^T - y^{(j)} \right) \cdot x_i^{(j)}
\]
\[
= \frac{2}{m} \sum_{j=1}^m \left( h(x^{(j)}) - y^{(j)} \right) \cdot x_i^{(j)}
\] $$
$$ w_i := w_i - \alpha \cdot \frac{1}{m} \sum_{j=1}^m (h(x^{(j)}) - y^{(j)}) \cdot x_i^{(j)}, \quad i = 0, 1, \ldots, n $$
- alpha(Learning Rate, 학습률)
Gradient Descent 특징
- Convexity:
Linear Regression의 Cost Function은 Convex 함수이므로 Gradient Descent는 항상 글로벌 최소값에 수렴하는 것이 보장된다. - Generalized Linear Models (GLMs):
Logistic Regression, Softmax Regression 등 다른 regression 모델에도 적용된다.
Metric
| 학습을 위해 사용되는 cost function 과 달리, 모델의 평가에 사용되는 지표
> validation set, test set 에서 계산됨
> 대표적으로 MSE, RMSE, MAE, R2
(참고) RMSE, MAE 등 연속함수를 Cost Function 으로 사용할 수 있지만, Gradient 가 변경될 수 있다.
따라서, 대부분은 MSE 를 사용한다.
> 0일 때를 제외하면 미분 가능
'Python > Machine Learning' 카테고리의 다른 글
가중치 규제 - Ridge,Lasso,Elastic Net (0) | 2024.07.28 |
---|---|
RFM 기반 군집 분석 (0) | 2024.05.26 |
K-Means Clustering 알고리즘 (0) | 2024.05.11 |
KNN 알고리즘 모델 적용 - 하이퍼 파라미터(k값, 가중치) (0) | 2024.05.04 |
[ML]KNN 알고리즘 (2) | 2024.04.07 |