교수님이 머신러닝의 중요성을 강조하시려고 이 이미지를 사용하신 게 재밌어서 가져왔다.
What is Statistical Machine Learning?
통계학의 원리와 기계 학습 알고리즘을 결합하여 데이터를 이해하고 예측 모델을 구축하는 것이다.
일반적으로 입력 변수 \(X\)와 출력 변수 \(Y\) 사이의 관계를 \(Y=f(X)+\epsilon\)와 같이 모델링하는 것이다.
여기서 \(\epsilon\)은 측정 시 발생하는 오차고 \(X\)와 독립이다.
입력 변수 \(X\)와 \(Y\) 사이의 관계를 잘 모델링하면 새로운 입력 변수 \(X\)에 대해 예측을 할 수 있다.
그럼 이상적인 \(f(X)\)를 만들 수 있을까?
예를 들어 다음과 같은 그래프가 있다고 하자
\(X=\) 4에서 좋은 \(f(X)\) 값은 무엇일까? \(X=\) 4에 대해 많은\(Y\) 값이 있는데, 이중 어떤 값이 좋은 예측 값일까?
정답은 \(f(4) = \mathbb{E}[Y \mid X = 4]\)로 \(X=4\) 일 때 \(Y\)의 expected value이다.
이러한 과정을 regression function이라 하고 주어진 \(X\)에 대해 \(Y\)의 기댓값을 구하는 것이다.
regression function을 구하기 위해서는 \(\mathbb{E}[(Y-g(X))^2 \mid X = x]\)을 최소화하는 \(g\)를 찾는 것이다.
이 식은 Reducible error와 Irreducible error로 나뉜다.
\(\mathbb{E}[(Y-g(X))^2 \mid X = x]\) 식을 전개하면 \(\mathbb {E}\Bigl[(f(x) - \hat {f}(x))^2\Bigr] \;+\; 2\, (f(x)-\hat {f}(x))\,\mathbb {E}\Bigl [\epsilon \mid X = x\Bigr] \;+\; \mathbb {E}\Bigl [\epsilon^2 \mid X = x\Bigr]\)으로 된다.
\(X\)와 \(\epsilon\)은 독립이기 때문에 두 번째 항은 0이 된다.
세 번째 항은 \(\operatorname{Var}(\epsilon)\)이 되는데 그 이유는 정의에 따라 \(\operatorname {Var}(\epsilon \mid X=x) \;=\; \mathbb {E}[\epsilon^2 \mid X=x] - \Bigl(\mathbb {E}[\epsilon \mid X=x]\Bigr)^2\) 이기 때문이다.
따라서 Reducible 한 항에 대해서만 minimizing 할 수 있고 앞으로 그 방법에 대해 배울 것이다.
모델을 설계하는 방법에는 parametric method와 non-parametric method가 있다.
간단하게 설명하면 parametric method은 특정한 function form을 미리 정해놓는 것이다. 따라서 파라미터가 각 항에 존재한다. linear model이 대표적인 예시인데, linear model은 항상 정확하게 맞는 것은 아닐지라도 좋은 도구가 될 수 있다.
반대로 non-parametric method는 추정할 수 있는 function이 많아서 특정한 form에 한정 짓지 않는다. 따라서 이 방법은 parametric method가 가지고 있는 문제를 해결할 수 있다. 그러나 많은 trainig data가 필요하다는 한계가 있다.
3가지 Trade-off
모델을 설계할 때 3가지 Trade-off가 존재한다.
- Prediction accuracy VS interpretability
- Good fit VS Over-fit or Under-fit
- Parismony VS Black-Box
Prediction accuracy VS Interpretability
모델이 단순할수록 독립변수가 종속 변수에 얼마나 영향을 줬는지 파악할 수 있어 interpretability가 높다. 근데 지나치게 모델이 단순하다면 새로운 데이터에 대해 정확한 예측을 못할 수도 있다.
반면 모델이 복잡하고(=flexibility) 유연할수록 독립변수가 종속변수에 얼마나 영향을 줬는지 파악하기 힘들어 interpretability가 낮다.
이 두 관계를 잘 고려하여 모델을 설계해야 한다.
Good fit, Over-fit, Under-fit
- Orange curve:linear model
- Black curve: truth
- Blue and Green curves: two different splines
- Red Curve: test data(\(MSE_{te}\))
- Gray Curve: train data(\(MSE_{tr}\))
Orange Curve는 train data/ test data 모두에서 정확도가 낮다. 이는 Under-fit 되어있다는 것이다.
Blue Curve는 train data/ test data 모두에서 정확도가 적절히 높은데 이는 Good-fit 되어있다는 것이다.
마지막으로 Green Curve는 test data에서는 낮은 정확도를 train data에는 매우(?) 높은 정확도를 가지는 것을 통해 Over-fit 되어있음을 알 수 있다.
Parismony VS Black-Box(Bias-Variance Trade-off)
Train data set으로 부터 배운 \(\hat {f}(x)\)을 가지고 있고 모집단에서 추출한 test data \((x_0, y_0)\)이 있다고 하자.
모델의 예측 성능 평가 하기 위해 다음과 같은 식을 세우고 분석해 보자.
\(\mathbb {E}\bigl[(y_0 - \hat {f}(x_0))^2\bigr] \;=\; \mathrm {Var}\bigl(\hat {f}(x_0)\bigr) \;+\; \bigl [\mathrm {Bias}\bigl(\hat {f}(x_0)\bigr)\bigr]^2 \;+\; \mathrm {Var}(\epsilon)\)
이 식은 매우 중요한데 첫 번째 추출 train dataset에서 학습한 \(f^{1}\)부터 \(k\) 번째 추출 train dataset에서 학습한 \(f^{k}\)와 실제 \(y\)와의 차이를 평균 낸 값이다.
1. Train dataset
Train dataset은 엄청 큰 모집단에서 추출된 것이다. 따라서 어떻게 샘플링하냐에 따라 설계한 모델이 바뀐다.
이런 특성을 반영한 것이 \(\mathrm {Var}\bigl(\hat {f}(x_0)\bigr)\)이다.
즉 train data가 바뀌더라도 모델이 얼마나 똑같은지 판단하는 것이다.
특정 train data에 많이 학습(overfit) 되어있다면 다른 train data에 대해서 똑같이 구현하기 힘들어 값이 높다.
즉 test data \((x_0, y_0)\)에 대해 정확하게 예측하더라도 train data가 바뀌는 것에 모델이 몹시 민감하게 반응할 수 있다.
2. Test dataset
모델이 단순하면(under-fit) test data \((x_0,y_0)\)에 대해 정확하게 예측을 못한다. 따라서 bias값이 커지게 된다.
3. \(\mathrm {Var}(\epsilon)\)
\(\mathrm {Var}(\epsilon)\) 값은 실제 데이터에 존재하는 불가피한 노이즈다. 따라서 이 값은 줄일 수가 없다.
Linear Regression
Supervised learning으로 \(Y\)와 \(X_1, X_2,..., X_p\) 사이의 dependency가 있는 것이다.
대부분의 관계는 linear 할 수없지만 linear regression은 regression에 대해 개념적으로 배울 때 좋다.
모델을
$$ Y = \beta_0 + \beta_1 X + \epsilon $$
과 같이 정의할 수 있다.
\(\beta_0\)(intercept), \(\beta_1\)(slope)은 coefficients 또는 parameters라 부른다.
coeffients에 대해 추정치를 구하고 새로운 \(x\)에 대해 y값을 추정한다.
\(X=x\)에서 \(Y\)의 추정치는 다음과 같다.
$$ \hat {y} = \hat {\beta}_0 + \hat {\beta}_1 x $$
여기서 \(X\)의 \(i th\) 값인 \(x_i\)에 대해 residual은 \(e_i=y_i-\hat {y}_i\)이다.
RSS(Residual Sum of Squares)
이 residual의 제곱을 모두 더한 값을 다음과 같이 \(\mathrm {RSS}\)으로 정의한다.
$$ \mathrm {RSS} = e_1^2 + e_2^2 + \cdots + e_n^2 $$
이 \(\mathrm {RSS}\)을 최소화하는 \(\hat {\beta}_0\), \(\hat {\beta}_1\)를 구한다.
$$ \mathrm{RSS} \;=\; \sum_{i=1}^n \bigl(y_i - (\hat{\beta}_0 + \hat{\beta}_1 x_i)\bigr)^2. $$
$$ \frac {\partial}{\partial \beta_0} \sum_{i=1}^n \bigl(y_i - (\beta_0 + \beta_1 x_i)\bigr)^2 \;=\; -2 \sum_{i=1}^n \bigl(y_i - (\beta_0 + \beta_1 x_i)\bigr) \;=\; 0 \quad (1) $$
$$ \frac{\partial}{\partial \beta_1} \sum_{i=1}^n \bigl(y_i - (\beta_0 + \beta_1 x_i)\bigr)^2 \;=\; -2 \sum_{i=1}^n x_i \bigl(y_i - (\beta_0 + \beta_1 x_i)\bigr) \;=\; 0 \quad (2) $$
(1)을 통해,
$$ \sum_{i=1}^n y_i \;-\; \beta_0 \sum_{i=1}^n 1 \;-\; \beta_1 \sum_{i=1}^n x_i \;=\; 0 \quad\Longrightarrow\quad \beta_0 = \bar {y} - \beta_1\,\bar {x}. $$
(2)를 통해,
$$ \sum_{i=1}^n x_i \bigl(y_i - \bar {y}\bigr) \;-\; \beta_1 \sum_{i=1}^n x_i \bigl(x_i - \bar {x}\bigr) \;=\; 0 \quad\Longrightarrow\quad \beta_1 = \frac {\sum_{i=1}^n (x_i - \bar {x})(y_i - \bar {y})} {\sum_{i=1}^n (x_i - \bar {x})^2}. $$
표준편차
각 추정치에 대한 표준편차는 다음과 같이 구할 수 있다.
$$ SE(\hat {\beta}_1)^2 \;=\; \frac {\sigma^2}{\sum_{i=1}^n \bigl(x_i - \bar {x}\bigr)^2} $$
$$ SE(\hat {\beta}_0)^2 \;=\; \sigma^2 \Bigl [ \frac {1}{n} \;+\; \frac {\bar {x}^2}{\sum_{i=1}^n \bigl(x_i - \bar {x}\bigr)^2} \Bigr] $$
Confidence intervals
표준편차를 구하여 각 추정치의 신뢰 구간(confidence intervals)을 구할 수 있다.
coeffient가 95% 확률로 다음과 같은 구간에 존재한다.(여기서 95%이면 1.96인데 근사해서 2로 하였다., \(\beta_0\) 도 동일)
$$ \bigl[\,\hat {\beta}_1 \;-\; 2\,\mathrm{SE}(\hat{\beta}_1),\;\; \hat{\beta}_1 \;+\; 2\,\mathrm {SE}(\hat {\beta}_1)\bigr] $$
Hypothesis test
표준편차는 Hypothesis test를 할 때 이용할 수 있으며, 여기서는 가장 흔한 null hypothesis test를 하겠다.
$$ H_0 : \beta_1 = 0(X와 Y는 관계가 없다) \quad\text {versus}\quad H_A : \beta_1 \neq 0(X와 Y는 관계가 있다) $$
p-value를 구하여 p-value가 몹시 작으면 귀무가설하에 데이터가 관측될 확률이 몹시 낮다는 것이므로 귀무가설을 기각할 수 있다.
따라서, 각 입력 \(X\)에 대해 parameter의 p-value가 낮다면 \(Y\)와 \(X\)가 서로 관계가 있다는 것이다.
RSE(Residual Standard Error)
오차의 표준편차로 다음과 같이 계산한다. RSS를 개수만큼 나눠준 값으로 데이터의 개수가 한없이 커지면 그 값도 계속 커질 것이다. 따라서 평균 느낌으로 나눠준 것이다. 여기서 n-2로 나눠서 왜 그런지 궁금할 텐데 이건 통계학의 영역이므로 생략하겠다. 간단하게 설명하면 unbiased 추정치로 만들어주기 위해서다.
$$ \mathrm {RSE} \;=\; \sqrt {\frac {\mathrm {RSS}}{n - 2}} \;=\; \sqrt {\frac {\sum_{i=1}^n (y_i - \hat {y}_i)^2}{\,n - 2\,}} $$
R-squared
\(R^2\) 은 단순히 y를 평균값으로 추정하는 것보다 얼마나 좋은지 알 수 있다. 즉, 종속변수의 변동 중 독립변수에서 예측가능한 비율을 말한다.
$$ R^2 \;=\; \frac {\mathrm {TSS} - \mathrm {RSS}}{\mathrm {TSS}} \;=\; 1 - \frac {\mathrm {RSS}}{\mathrm {TSS}},\mathrm {TSS} \;=\; \sum_{i=1}^n \bigl(y_i - \bar {y}\bigr)^2 $$
Multi Linear Regression
정말 중요한 Linear Regression에서 한 단계에 더 나아가 Multiple Linear Regression에 대해 알아보자.
$$ Y \;=\; \beta_0 \;+\; \beta_1 X_1 \;+\; \beta_2 X_2 \;+\; \cdots \;+\; \beta_p X_p \;+\; \epsilon $$
Multiple Linear Regression은 종속변수 \(Y\)를 각 독립 변수 \(X_j\)와 coefficient \(\beta_j\)로 구성된 식이다.
coefficient \(\beta_j\)는 나머지 다른 변수가 고정돼 있을 때, \(X_j\)가 얼마나 \(Y\)에 영향을 주는지에 대한 값이다.
단, 여기서 주의해야할 점은 독립변수(예측변수)들 간의 correlation이 있는지 이다.
두 변수들 간의 correlation이 있다면 독립변수가 종속변수에 미치는 개별적인 영향을 분리해 내기 어려워져 그 결과 회귀계수의 추정이 불안정해진다. 이를 multicolinearity라고 한다.
따라서, 상관관계가 있다고 하여 함부로 인과관계가 있다고 생각하면 안 된다.
'Machine learning & Deep learning' 카테고리의 다른 글
[Machine learning] Classification? Logistic Regression? 에 대한 완전 정리 (1) | 2025.03.13 |
---|---|
[Machine learning] ML 2주차 공부(Linear Regression의 모든 것 2) (0) | 2025.03.11 |
[Deep learning] Multi-Modal learning Part2 (0) | 2025.02.28 |
[Deep learning] Multi-Modal learning Part1 (0) | 2025.02.27 |
[Machine learning]Energy-based Models(part1) (0) | 2025.02.27 |