1. 편향-분산 트레이드오프(Bias-Variance Tradeoff)란 무엇인가요?
답변:
편향(Bias)은 모델이 지나치게 단순하여 데이터의 기저에 있는 관계를 제대로 학습하지 못해 발생하는 오차이고, 분산(Variance)은 모델이 학습 데이터의 노이즈까지 과도하게 학습하여, 다른 데이터셋에 대해서는 예측이 크게 변동하는 경향입니다.
편향-분산 트레이드오프는 이 둘 사이의 상충 관계를 의미합니다.
수식적 이해
실제 데이터가 $y = f(x) + \epsilon$ 이라는 관계를 따른다고 가정해 봅시다. 여기서 $f(x)$는 실제 함수(true function)이고, $\epsilon$은 평균이 0이고 분산이 $\sigma^2$인 노이즈(noise)입니다. 우리가 훈련 데이터로 학습한 모델을 $\hat{f}(x)$라고 할 때, 테스트 데이터 포인트 $x$에 대한 예측 오차의 기댓값, 즉 평균 제곱 오차(Mean Squared Error)는 다음과 같이 분해될 수 있습니다:
$$ E[(y - \hat{f}(x))^2] = \left( E[\hat{f}(x)] - f(x) \right)^2 + E\left[ (\hat{f}(x) - E[\hat{f}(x)])^2 \right] + \sigma^2 $$
이 식은 전체 오차(Total Error)를 세 가지 구성 요소로 나눈 것입니다.
$$ \mathrm{Error}(x) \;=\; \mathrm{Bias}[\hat{f}(x)]^2 \;+\; \mathrm{Variance}[\hat{f}(x)] \;+\; \text{Irreducible Error} $$
- 편향(Bias) 제곱: $\left( E[\hat{f}(x)] - f(x) \right)^2$
여러 다른 훈련 데이터셋으로 모델을 학습시켰을 때, 예측값들의 평균이 실제 값에서 얼마나 벗어났는지를 나타냅니다. 편향이 높다는 것은 모델의 평균적인 예측이 정답과 멀다는 의미입니다. (모델이 너무 단순할 때 발생) - 분산(Variance): $E\left[ (\hat{f}(x) - E[\hat{f}(x)])^2 \right]$
여러 다른 훈련 데이터셋에 대해 예측값들이 자신의 평균 주위에 얼마나 흩어져 있는지를 나타냅니다. 분산이 높다는 것은 훈련 데이터가 조금만 바뀌어도 예측값이 크게 변동한다는 의미입니다. (모델이 너무 복잡할 때 발생) - 줄일 수 없는 오차(Irreducible Error): $\sigma^2$
데이터 자체에 내재된 노이즈로, 어떤 모델을 사용하더라도 줄일 수 없는 오차의 하한선입니다.
머신러닝 모델의 목표는 편향과 분산의 합이 최소가 되는 최적의 모델 복잡도를 찾는 것입니다.
- 모델의 복잡도가 낮으면 편향은 높고 분산은 낮아져 과소적합(Underfitting)이 발생합니다.
- 모델의 복잡도가 높으면 편향은 낮고 분산은 높아져 과적합(Overfitting)이 발생합니다.
2. L1 규제(Lasso)와 L2 규제(Ridge)의 차이점은 무엇인가요?
답변:
L1과 L2 규제는 손실 함수에 추가하는 페널티 항의 형태가 다르기 때문에, 가중치(w)를 업데이트하는 방식에 차이가 생깁니다.
L2 규제 (Ridge): 가중치를 부드럽게 감소시키기
$$ \text{Cost} \;=\; \underbrace{\sum (y_i - \hat{y}_i)^2}_{\text{Original Cost}} \;+\; \underbrace{\lambda \sum_j w_j^2}_{\text{L2 Penalty}} $$ L2 페널티 항($\lambda w^2$)을 가중치 w로 미분하면 $2\lambda w$가 됩니다. 경사 하강법에서 가중치 업데이트는 다음과 같이 이루어집니다.
$w := w - \eta ( \frac{\partial \text{Original Cost}}{\partial w} + 2\lambda w )$
여기서 핵심은 페널티에 의한 업데이트 크기가 현재 가중치 크기($w$)에 비례한다는 점입니다.
- 가중치가 크면($w$가 크면), 페널티도 강하게 작용하여 가중치를 많이 감소시킵니다.
- 가중치가 작아져 0에 가까워지면($w$가 작아지면), 페널티도 약하게 작용하여 아주 조금만 감소시킵니다.
이 때문에 L2 규제는 가중치를 0에 매우 가깝게 만들 수는 있지만, 완전히 0으로 만들지는 못하는 경향이 있습니다.
L1 규제 (Lasso): 불필요한 가중치를 0으로 만들기
$$ \text{Cost} \;=\; \underbrace{\sum (y_i - \hat{y}_i)^2}_{\text{Original Cost}} \;+\; \underbrace{\lambda \sum_j |w_j|}_{\text{L1 Penalty}} $$ L1 페널티 항($\lambda |w|$)을 가중치 w로 미분하면 $w$가 양수일 때 $\lambda$, 음수일 때 $-\lambda$가 됩니다. 즉, 페널티에 의한 업데이트 크기는 현재 가중치 크기와 상관없이 $\lambda$로 일정합니다.
$w := w - \eta ( \frac{\partial \text{Original Cost}}{\partial w} + \lambda \cdot \text{sign}(w) )$
여기서 핵심은 모델 성능에 큰 영향을 주지 않는 작은 가중치들($w$가 0에 가까운 값들)에게도 꾸준히 일정한 크기($\lambda$)의 페널티를 가한다는 점입니다. 이 과정이 반복되면, 중요하지 않은 특성의 가중치는 결국 0이 되어 버립니다.
- 가중치가 크든 작든, 업데이트 시마다 일정한 값($\eta \lambda$)만큼 0 방향으로 계속 이동합니다.
- 따라서 덜 중요한 특성의 가중치는 결국 0에 도달하여 모델에서 완전히 제거됩니다.
이것이 L1 규제가 자동적인 특성 선택(Feature Selection) 효과를 가지는 이유입니다.
3. 생성 모델(Generative Model)과 판별 모델(Discriminative Model)의 차이점은 무엇인가요?
답변:
생성 모델과 판별 모델은 데이터와 레이블 사이의 관계를 학습하는 방식에서 근본적인 차이가 있습니다. 어떤 확률 분포를 모델링하는지에 따라 구분할 수 있습니다.
- 판별 모델 (Discriminative Model): "차이점을 학습하여 경계를 찾는다"
목표: 입력 데이터 X가 주어졌을 때, 특정 레이블 Y가 나타날 조건부 확률 $p(Y|X)$를 직접 모델링합니다.
동작 방식: 데이터의 클래스 간을 구분하는 결정 경계(Decision Boundary)를 학습하는 데 집중합니다. 예를 들어, 고양이 사진과 강아지 사진을 구분하기 위해 두 클래스를 가장 잘 나누는 선을 찾는 데 모든 노력을 집중합니다. 고양이가 어떻게 생겼는지, 강아지가 어떻게 생겼는지에 대한 전체적인 이해보다는 '이 특징이 나타나면 고양이, 저 특징이 나타나면 강아지'와 같은 규칙을 학습합니다.
장점: 분류(Classification)라는 특정 작업에 최적화되어 있어, 일반적으로 더 높은 분류 정확도를 보입니다.
단점: 데이터가 어떻게 생성되었는지는 학습하지 않으므로, 새로운 데이터를 생성할 수는 없습니다.
예시: 로지스틱 회귀(Logistic Regression), 서포트 벡터 머신(SVM), 결정 트리(Decision Tree), 일반적인 신경망 분류기(Neural Network Classifier) - 생성 모델 (Generative Model): "데이터 자체를 이해하고 생성한다"
목표: 입력 X와 레이블 Y의 결합 확률 분포 $p(X, Y)$를 모델링합니다. 베이즈 정리를 통해 $p(X,Y) = p(X|Y)p(Y)$로 나타낼 수 있듯, 각 클래스 Y에 대한 데이터 X의 분포($p(X|Y)$)와 클래스의 분포($p(Y)$)를 학습합니다.
동작 방식: 데이터의 실제 분포를 학습하여, 세상에 이 데이터가 어떻게 생성되었는지를 이해하려고 합니다. 예를 들어, 고양이 사진의 데이터 분포 자체를 학습하여 '고양이'라는 존재의 본질을 이해합니다. 이 이해를 바탕으로 세상에 존재할 법한 새로운 고양이 사진을 생성해낼 수 있습니다.
장점: 데이터의 전체적인 구조를 학습하므로 새로운 데이터를 생성할 수 있습니다. 이상치 탐지(Outlier Detection)나 결측치 처리에도 유용하게 사용될 수 있습니다.
단점: 학습 과정이 더 복잡하고 많은 데이터가 필요하며, 순수 분류 성능은 판별 모델보다 떨어질 수 있습니다.
예시: 나이브 베이즈(Naive Bayes), 가우시안 혼합 모델(GMM), 은닉 마르코프 모델(HMM), 생성적 적대 신경망(GANs), 변분 오토인코더(VAEs)
4. 결정 트리(Decision Tree)에서 불순도(Impurity)를 측정하는 지표 2가지 이상
답변:
- 지니 불순도: $$ \mathrm{Gini}(p) = 1 - \sum_{i=1}^{k} p_i^2 $$ 무작위 분류 시 오류 확률. 0이면 순수 노드.
- 엔트로피: $$ \mathrm{Entropy}(p) = - \sum_{i=1}^{k} p_i \log_2 p_i $$ 불확실성(무질서도)의 척도.
5. K-평균 군집화(K-Means) 알고리즘의 동작 과정
답변:
- 초기화: 무작위로 K개 중심(centroid) 선택.
- 할당: 각 포인트를 가장 가까운 중심에 할당.
- 업데이트: 각 군집의 평균으로 중심 갱신.
- 반복: 수렴 시까지 2–3 반복(또는 지정 횟수).
목표: 군집 내 제곱합(SSE) 최소화.
6. SVM에서 커널 트릭(Kernel Trick)이란?
답변:
커널 트릭은 원래의 저차원 공간에서는 선형적으로 분리할 수 없는 데이터를, 실제로 데이터를 변환하지 않으면서도 고차원 특징 공간으로 보낸 것과 동일한 효과를 얻어 비선형 분류를 가능하게 하는 SVM의 핵심적인 기법입니다.
1. 왜 고차원 특징 공간이 필요한가?
SVM은 기본적으로 데이터를 선형적으로 구분하는 초평면(hyperplane)을 찾는 알고리즘입니다. 하지만 아래 그림처럼 데이터가 선형적으로 분리 불가능한 경우가 많습니다. 이때 데이터를 더 높은 차원의 공간으로 매핑(mapping)하면, 저차원에서는 불가능했던 선형 분리가 가능해질 수 있습니다. 이 매핑 함수를 $\phi(x)$라고 합니다.
2. 고차원 매핑의 문제점
SVM의 최적화 과정(정확히는 듀얼 형식)을 보면, 결정 경계를 찾는 데 필요한 계산은 오직 데이터 포인트들의 내적(dot product) 연산, 즉 $\phi(x_i)^\top \phi(x_j)$에만 의존합니다. 만약 $\phi(x)$가 매우 높은 차원(심지어 무한 차원)으로 데이터를 매핑한다면, 모든 데이터 $x_i$에 대해 $\phi(x_i)$를 직접 계산하고, 그 후에 내적을 하는 것은 엄청난 계산 비용을 요구하거나 현실적으로 불가능합니다.
3. 커널 트릭
여기서 커널 트릭이 등장합니다. 커널 함수 $K(x_i, x_j)$는 두 가지 일을 동시에 수행합니다:
- 데이터를 고차원 공간으로 매핑($\phi$)합니다.
- 그 고차원 공간에서 두 벡터의 내적($\phi(x_i)^\top \phi(x_j)$)을 계산합니다.
중요한 점은 이 모든 과정을 실제로 데이터를 고차원으로 보내지 않고, 원래의 저차원 데이터 $x_i, x_j$만을 사용하여 계산한다는 것입니다. 이것이 바로 '트릭(trick)'이라고 불리는 이유입니다.
$$ K(x_i,x_j) \;=\; \phi(x_i)^\top \phi(x_j) $$
결론적으로, 우리는 비싼 계산인 $\phi(x_i)^\top \phi(x_j)$를 직접 하는 대신, 계산 비용이 저렴한 커널 함수 $K(x_i, x_j)$를 사용하여 동일한 결과를 얻습니다. 이를 통해 SVM은 고차원 공간에서 선형 분리를 수행할 수 있게 되고, 이는 원래의 저차원 공간에서는 복잡한 비선형 결정 경계를 찾는 것과 같습니다.
대표적인 커널 함수:
- 다항식 커널 (Polynomial Kernel): 데이터를 다항식 차원으로 매핑합니다.
- 가우시안 RBF 커널 (Gaussian Radial Basis Function Kernel): 데이터를 무한 차원으로 매핑하여 매우 복잡한 결정 경계를 만들 수 있습니다.
7. 나이브 베이즈(Naive Bayes)가 ‘나이브’한 이유
답변:
나이브 베이즈(Naive Bayes) 분류기가 '나이브(Naive)', 즉 '순진하다'라고 불리는 이유는, 모델의 성능을 위해 현실 세계에서는 거의 참이 아닌 매우 단순한 가정을 하기 때문입니다. 그 핵심 가정은 바로 모든 특성(feature)들이 클래스(Y)에 대해 서로 조건부 독립(conditionally independent)이라는 것입니다.
쉬운 예시: 스팸 메일 분류
어떤 이메일이 '스팸'인지 아닌지를 판단하는 모델을 만든다고 상상해 봅시다. 이메일에 포함된 단어들이 '특성'이 됩니다.
- 현실: '당첨', '무료', '광고'라는 단어들은 스팸 메일에서 함께 등장할 확률이 높습니다. 즉, 이 단어들은 서로 연관성이 있습니다.
- 나이브 베이즈의 '순진한' 가정: 이 모델은 '당첨'이라는 단어가 등장할 확률과 '무료'라는 단어가 등장할 확률이 서로 아무런 영향을 주지 않는다고 가정합니다. 각 단어의 등장 확률을 완전히 별개의 사건으로 취급하는 것입니다.
왜 이런 비현실적인 가정을 할까요?
이 '나이브'한 가정 덕분에 계산이 엄청나게 간단해지기 때문입니다. 원래 베이즈 정리에 따라 클래스 Y가 주어졌을 때 데이터 X의 확률 $P(X \mid Y)$를 계산하려면 모든 특성들의 결합 확률을 계산해야 합니다. $$ P(X\mid Y) = P(x_1, x_2, \dots, x_n \mid Y) $$ 하지만 모든 특성들이 조건부 독립이라고 가정하면, 이 복잡한 결합 확률은 각 특성의 개별 확률들의 곱으로 단순화될 수 있습니다. $$ P(x_1, \dots, x_n \mid Y) \;\approx\; \prod_{i=1}^{n} P(x_i \mid Y) $$ 이러한 단순화 덕분에 나이브 베이즈는 매우 적은 데이터만으로도 빠르게 학습하고 예측할 수 있습니다. 비록 가정이 비현실적일지라도, 텍스트 분류와 같은 많은 실제 문제에서 놀라울 정도로 준수한 성능을 보이는 경우가 많습니다.
8. PCA vs LDA 차이
답변:
PCA (Principal Component Analysis - 주성분 분석): 분산을 최대로 보존하라!
- 목표: 데이터 포인트들을 새로운 축(주성분)에 투영(projection)했을 때, 그 분산이 가장 커지는 방향을 찾습니다. 분산이 가장 크다는 것은 데이터의 고유한 정보(특징)를 가장 많이 포함하고 있다는 의미입니다.
- 학습 방식: 비지도 학습 (Unsupervised Learning)
PCA는 데이터의 클래스(레이블) 정보를 전혀 사용하지 않습니다. 오직 데이터가 어떻게 분포되어 있는지, 그 형태만을 보고 데이터의 정보를 가장 잘 압축할 수 있는 축을 찾습니다. - 주요 용도: 데이터 시각화, 노이즈 제거, 변수 간 상관관계 제거, 특징 추출(feature extraction) 등 데이터의 전반적인 구조를 파악하는 데 사용됩니다.
LDA (Linear Discriminant Analysis - 선형 판별 분석): 클래스를 최대로 구분하라!
- 목표: 데이터를 새로운 축에 투영했을 때, 같은 클래스에 속한 데이터들끼리는 최대한 가까이 모이고 (클래스 내 분산 최소화), 다른 클래스에 속한 데이터들끼리는 최대한 멀리 떨어지도록 (클래스 간 분산 최대화) 하는 축을 찾습니다.
- 학습 방식: 지도 학습 (Supervised Learning)
LDA는 어떤 데이터가 어떤 클래스에 속하는지 레이블 정보를 적극적으로 활용합니다. 이 레이블 정보를 바탕으로 클래스를 가장 잘 나눌 수 있는 '판별선'의 역할을 하는 축을 학습합니다. - 주요 용도: 분류(Classification) 문제에서 차원 축소를 통해 모델의 성능을 높이거나, 클래스 구분이 중요한 데이터의 특징을 추출하는 데 사용됩니다.
9. 배깅(Bagging) vs 부스팅(Boosting)
답변:
배깅과 부스팅은 모두 여러 개의 약한 학습기(weak learner, 주로 결정 트리)를 결합하여 하나의 강력한 모델을 만드는 앙상블(Ensemble) 기법이지만, 약한 학습기들을 결합하는 방식과 목표에서 차이가 있습니다.
- 배깅 (Bagging - Bootstrap Aggregating): "독립적인 전문가 여러 명의 지혜를 모은다"
동작 방식: 원본 훈련 데이터셋에서 부트스트랩(Bootstrap) 샘플링을 통해 여러 개의 서로 다른 훈련 데이터셋을 만듭니다. '부트스트랩'이란 원본 데이터에서 중복을 허용하여 원본과 동일한 크기의 샘플을 여러 개 만드는 것입니다. 이렇게 만들어진 각각의 데이터셋으로 개별 모델을 병렬적으로(independently) 학습시킨 후, 이 모델들의 예측 결과를 평균(회귀)내거나 투표(분류)하여 최종 예측값을 결정합니다.
목표 (분산 감소): 단일 모델(특히 깊은 결정 트리)은 훈련 데이터의 노이즈에 민감하여 과적합되기 쉽습니다. 이를 분산(Variance)이 높다고 합니다. 배깅은 서로 다른 데이터로 학습된 여러 모델의 예측을 종합함으로써, 특정 데이터셋의 노이즈에 치우쳤던 개별 모델들의 오류가 상쇄되고 전체 모델의 안정성이 높아지는 효과를 가져옵니다. 즉, 예측의 변동성을 줄여 분산을 감소시킵니다.
대표적인 예: 랜덤 포레스트(Random Forest) - 부스팅 (Boosting): "이전 모델의 실수를 보완하며 똑똑해진다"
동작 방식: 첫 번째 모델을 학습시킨 후, 그 모델이 예측을 틀린 데이터에 가중치를 부여하여 다음 모델이 이 어려운 문제에 더 집중하도록 합니다. 이처럼 모델들이 순차적으로(sequentially) 학습하며, 이전 단계 모델의 잔차(residual)나 오분류된 데이터를 보완하는 방향으로 계속해서 발전해나갑니다.
목표 (편향 감소): 부스팅은 잘못 예측된 부분에 집중하는 과정을 반복하면서 모델의 예측 정확도를 점진적으로 높여나갑니다. 이 과정은 모델의 예측값이 실제 값에 더 가까워지도록 하여 편향(Bias)을 낮추는 효과를 가져옵니다.
대표적인 예: AdaBoost, Gradient Boosting Machine (GBM), XGBoost, LightGBM
10. 혼동 행렬의 TP/FP/FN/TN과 Precision/Recall
답변:
- TP: 실제 P를 P로, FP: 실제 N을 P로, FN: 실제 P를 N으로, TN: 실제 N을 N으로 예측.
정밀도: $$ \mathrm{Precision}=\frac{TP}{TP+FP} $$ 재현율: $$ \mathrm{Recall}=\frac{TP}{TP+FN} $$
11. F1 스코어(F1 Score)
답변:
정밀도와 재현율의 조화평균: $$ F1 \;=\; 2\cdot \frac{\mathrm{Precision}\cdot \mathrm{Recall}}{\mathrm{Precision}+\mathrm{Recall}} $$ 클래스 불균형에서 중요.
12. ROC 곡선과 AUC
답변:
ROC: 임계값 변화에 따른 TPR 대 FPR 곡선. $$ \mathrm{FPR}=\frac{FP}{FP+TN},\qquad \mathrm{TPR}=\frac{TP}{TP+FN} $$ AUC: 곡선 아래 면적(0.5~1). 클수록 구분력 우수.
13. K-겹 교차 검증(K-Fold CV)을 쓰는 이유
답변:
K-겹 교차 검증은 모델의 일반화 성능을 평가할 때, 훈련/검증 데이터가 어떻게 분할되는지에 따라 평가 결과가 크게 달라지는 데이터 분할 편향(Data Split Bias) 문제를 해결하고, 더 안정적이고 신뢰도 높은 성능 추정치를 얻기 위해 사용됩니다.
1. 고정된 분할 방식(Hold-out)의 문제점
전체 데이터를 한 번만 훈련셋과 검증셋으로 나누는 방식은 간단하지만, 우연히 검증셋에 쉽거나 어려운 데이터만 몰릴 수 있습니다. 이 경우, 모델의 성능이 과대평가되거나 과소평가될 수 있으며, 이렇게 측정된 성능은 신뢰하기 어렵습니다. 즉, 단일 분할로 얻은 성능 점수(예: $Accuracy_{split1}$)는 모델의 진짜 성능($Accuracy_{true}$)을 대표하지 못할 가능성이 큽니다.
2. K-겹 교차 검증의 동작 원리와 효과
K-겹 교차 검증은 이 문제를 해결하기 위해 전체 데이터를 K개의 부분집합(fold)으로 나눈 뒤, K번의 학습과 검증을 반복합니다.
- 전체 데이터를 K개의 폴드로 나눕니다.
- 첫 번째 폴드를 검증셋으로, 나머지 K-1개 폴드를 훈련셋으로 사용하여 모델을 학습하고 성능($E_1$)을 측정합니다.
- 두 번째 폴드를 검증셋으로, 나머지 K-1개 폴드를 훈련셋으로 사용하여 모델을 학습하고 성능($E_2$)을 측정합니다.
- 이 과정을 K번째 폴드까지 반복하여 총 K개의 성능 측정값($E_1, E_2, \dots, E_K$)을 얻습니다.
수학적 배경 및 효과:
- 데이터 분할 편향 감소: K번의 검증 과정 동안 모든 데이터 포인트가 정확히 한 번씩 검증셋으로 사용됩니다. 따라서 특정 데이터 분할에 성능 평가가 편향되는 것을 방지합니다. 최종 성능은 이 K개의 성능 측정값의 평균으로 계산됩니다. $$ \text{CV}_{\text{score}} = \frac{1}{K} \sum_{i=1}^{K} E_i $$ 이 평균값은 단일 분할로 얻은 $E_i$보다 모델의 일반화 성능에 대한 훨씬 더 안정적이고 편향이 적은 추정치(unbiased estimate)가 됩니다.
- 일반화 성능의 안정적 추정: 통계적으로 여러 번 샘플링하여 얻은 값의 평균은 단일 샘플 값보다 분산이 작습니다. K-겹 교차 검증은 K개의 다른 훈련/검증 조합으로 성능을 K번 측정하고 이를 평균내는 방식입니다. 따라서 이렇게 얻은 최종 성능 점수는 분산이 낮아져(less variance), 더 안정적이고 신뢰할 수 있는 일반화 성능의 추정치가 됩니다. 즉, 모델이 새로운 데이터에 대해 보일 성능을 더 정확하게 예측할 수 있게 됩니다.
14. 로지스틱 회귀는 분류 모델
답변:
선형 결합을 시그모이드로 확률화: $$ z=w^\top x + b,\qquad \sigma(z)=\frac{1}{1+e^{-z}} $$ 임계값(예: 0.5)으로 이진 분류 수행.
15. 이상치에 강건한 모델과 민감한 모델
답변:
모델이 이상치(outlier)에 어떻게 반응하는지는 모델의 학습 방식과 비용 함수에 따라 결정됩니다. 어떤 모델은 이상치 하나 때문에 전체 모델이 크게 왜곡되는 반면, 어떤 모델은 이상치의 영향을 거의 받지 않습니다.
이상치에 민감한(Sensitive) 모델
이 모델들은 비용 함수가 이상치에 의해 발생하는 큰 오차에 과도한 페널티를 부여하는 경향이 있습니다.
- 선형 회귀 (Linear Regression): 선형 회귀는 실제 값과 예측 값의 차이, 즉 오차의 제곱의 합(Sum of Squared Errors)을 최소화하는 것을 목표로 합니다. 만약 특정 이상치가 큰 오차를 발생시키면, 이 오차를 제곱하는 과정에서 그 영향력이 엄청나게 커집니다. 모델은 이 거대한 오차 값을 줄이기 위해 회귀선 전체를 이상치 쪽으로 끌어당기게 되어, 전반적인 데이터의 경향성을 제대로 나타내지 못하게 됩니다.
- K-Means 클러스터링: K-Means는 각 데이터 포인트와 해당 클러스터의 중심(centroid, 평균)까지의 거리를 최소화하는 방식으로 동작합니다. 만약 다른 데이터들과 멀리 떨어진 이상치가 존재하면, 이 이상치는 클러스터의 중심점을 자신 쪽으로 크게 끌어당기는 효과를 냅니다. 결과적으로 클러스터의 모양과 위치가 왜곡되어 정상적인 데이터 그룹을 제대로 표현하지 못할 수 있습니다.
- 서포트 벡터 머신 (SVM): SVM은 클래스 간의 마진(margin)을 최대로 하는 결정 경계를 찾습니다. 이 마진은 경계에 가장 가까이 있는 데이터 포인트, 즉 서포트 벡터(Support Vector)에 의해 결정됩니다. 만약 이상치가 우연히 경계 근처에 위치하게 되면, 이 이상치가 서포트 벡터가 되어 전체 결정 경계의 위치와 각도를 크게 바꿔버릴 수 있습니다.
이상치에 강건한(Robust) 모델
이 모델들은 이상치를 무시하거나 그 영향력을 제한하는 메커니즘을 가지고 있습니다.
- 트리 기반 모델 (Random Forest, GBM 등): 결정 트리는 데이터를 특정 기준에 따라 나누는 방식으로 동작합니다. 이상치는 데이터 공간의 특정 영역에 속하게 될 뿐, 전체 트리의 구조를 결정하는 데 큰 영향을 미치지 않습니다. 예를 들어, 이상치 하나가 특정 리프 노드에 잘못 분류되더라도, 다른 수많은 데이터 포인트들에 의해 형성된 트리의 전반적인 분기 규칙(split rule) 자체를 바꾸지는 못합니다. 앙상블 모델인 랜덤 포레스트는 이러한 효과를 더욱 극대화하여 안정성을 높입니다.
- DBSCAN 클러스터링: DBSCAN은 데이터의 밀도(density)를 기반으로 클러스터를 형성합니다. 일정 반경 내에 최소 데이터 개수(MinPts)를 만족하는 점들을 '핵심 포인트(core point)'로 보고 클러스터를 확장해나갑니다. 이상치는 주변에 데이터가 거의 없는 저밀도 영역에 존재하므로, 핵심 포인트가 되지 못하고 어떤 클러스터에도 속하지 않는 노이즈(noise)로 분류됩니다. 즉, 모델이 이상치를 학습 과정에서 자연스럽게 무시하므로 매우 강건합니다.
16. 경사 하강법의 종류 3가지
답변:
경사 하강법은 손실 함수(Cost Function)의 기울기(gradient)를 계산하여 손실이 낮아지는 방향으로 파라미터를 업데이트하는 최적화 방법입니다. 한 번의 업데이트에 사용하는 데이터의 양에 따라 크게 세 가지로 나뉩니다.
손실 함수를 $J(\theta)$라고 하고, 학습률을 $\eta$라고 할 때, 기본적인 파라미터 업데이트 수식은 다음과 같습니다: $$ \theta := \theta - \eta \nabla_\theta J(\theta) $$ 여기서 핵심은 손실 함수의 기울기 $\nabla_\theta J(\theta)$를 어떻게 계산하느냐에 있습니다.
- 배치 경사 하강법 (Batch Gradient Descent, BGD)
동작 방식: 한 번 파라미터를 업데이트할 때 전체 훈련 데이터셋(m개)을 모두 사용합니다. $$ \nabla_\theta J(\theta) = \frac{1}{m}\sum_{i=1}^{m} \nabla_\theta L(\hat{y}^{(i)}, y^{(i)}; \theta) $$ (여기서 $L$은 개별 데이터에 대한 손실)
특징 (안정적, 비용 큼): 전체 데이터에 대한 평균 기울기를 사용하므로, 손실 함수의 실제 기울기와 가장 가깝습니다. 따라서 최적점으로 수렴하는 경로가 매우 부드럽고 안정적입니다. 하지만 매 업데이트마다 전체 데이터를 계산해야 하므로 메모리 소모가 크고 계산 비용이 매우 높아 대용량 데이터셋에는 비효율적입니다. - 확률적 경사 하강법 (Stochastic Gradient Descent, SGD)
동작 방식: 훈련 데이터셋에서 무작위로 선택된 단 하나의 샘플($i$)만을 사용하여 기울기를 계산하고 파라미터를 업데이트합니다. $$ \nabla_\theta J(\theta) \approx \nabla_\theta L(\hat{y}^{(i)}, y^{(i)}; \theta) $$ 특징 (빠름, 진동 큼): 단 하나의 데이터만으로 기울기를 계산하므로 업데이트 속도가 매우 빠릅니다. 하지만 각 샘플의 기울기는 전체 데이터의 기울기와 차이가 클 수 있어, 최적점으로 향하는 경로가 매우 불안정하고 크게 진동합니다(high variance). 이러한 진동이 때로는 지역 최적점(local minima)을 탈출하는 데 도움이 되기도 하지만, 최적점 근처에서도 계속 진동하여 정확한 수렴이 어려울 수 있습니다. - 미니배치 경사 하강법 (Mini-batch Gradient Descent)
동작 방식: BGD와 SGD의 절충안으로, 전체 데이터를 미니배치(mini-batch)라고 불리는 작은 묶음(n개, $1 < n \ll m$)으로 나누어 각 미니배치 단위로 파라미터를 업데이트합니다. $$ \nabla_\theta J(\theta) = \frac{1}{n}\sum_{i=1}^{n} \nabla_\theta L(\hat{y}^{(i)}, y^{(i)}; \theta) $$ 특징 (절충, 가장 보편적): BGD처럼 안정적이면서도 SGD처럼 빠르게 학습할 수 있는 균형 잡힌 방법입니다. 미니배치의 평균 기울기는 단일 샘플보다 훨씬 안정적인 추정치이므로 수렴 과정의 진동이 SGD보다 훨씬 적습니다. 동시에 GPU의 병렬 연산 능력을 효율적으로 활용할 수 있어 전체 데이터를 사용하는 것보다 훨씬 계산 효율적입니다. 이 때문에 현재 딥러닝에서 가장 보편적으로 사용되는 방식입니다.
17. 정규화(Normalization) vs 표준화(Standardization)
답변:
- 정규화: $$ x'_{\text{norm}}=\frac{x-x_{\min}}{x_{\max}-x_{\min}} $$ 범위를 [0,1]로.
- 표준화: $$ x'_{\text{std}}=\frac{x-\mu}{\sigma} $$ 평균 0, 표준편차 1.
18. 정형 vs 비정형 데이터
답변:
정형: 스키마가 고정된 테이블형 데이터(예: RDB, CSV).
비정형: 구조가 일정치 않음(예: 텍스트, 이미지, 동영상, 음성, SNS).
19. 랜덤 포레스트가 과적합을 줄이는 방법
답변:
부트스트랩(데이터 무작위화)과 노드 분할 시 특성 부분집합 무작위화로 트리 간 상관을 낮추어 분산 감소 → 과적합 완화.
20. DBSCAN의 핵심 파라미터 2가지
답변:
eps: 이웃을 정의하는 반경. min_pts: 코어 포인트가 되기 위한 최소 이웃 수(자기 포함). 이 규칙으로 코어/경계/노이즈를 구분해 임의 모양 군집을 형성.
21. 선형 회귀 성능 지표 2가지 이상
답변:
- MSE: $$ \mathrm{MSE}=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 $$
- RMSE: $$ \mathrm{RMSE}=\sqrt{\mathrm{MSE}} $$
- MAE: $$ \mathrm{MAE}=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| $$
- $R^2$: $$ R^2 = 1 - \frac{\sum (y_i-\hat{y}_i)^2}{\sum (y_i-\bar{y})^2} $$
22. XGBoost가 GBM 대비 가지는 장점
답변:
규제(L1/L2)로 과적합 제어, 특성 단위 병렬화로 빠른 학습, 결측치 내장 처리, 내장 CV, 역방향 가지치기(Tree Pruning) 등으로 성능·속도 개선.
23. One-Hot Encoding과 문제점
답변:
원-핫 인코딩은 범주형 데이터를 머신러닝 모델이 이해할 수 있도록, 각 범주에 해당하는 인덱스의 원소만 1이고 나머지는 모두 0인 벡터로 변환하는 기법입니다. 간단하고 직관적이지만 다음과 같은 문제점을 가집니다.
1. 차원의 저주 (Curse of Dimensionality)
정의: 범주의 개수가 많아지면 벡터의 차원이 그 수만큼 선형적으로 증가하는 문제입니다.
왜 문제인가?: 예를 들어, 10,000개의 단어를 처리한다면 각 단어는 10,000차원의 벡터가 됩니다. 이렇게 차원이 급격히 커지면 다음과 같은 문제가 발생합니다.
- 계산 비용 증가: 벡터의 차원이 커질수록 모델 학습에 필요한 메모리와 계산량이 기하급수적으로 늘어나 학습 속도가 저하됩니다.
- 성능 저하: 너무 많은 차원은 모델이 일반화된 패턴을 학습하는 것을 방해하고, 불필요한 노이즈를 추가하여 오히려 모델의 예측 성능을 떨어뜨릴 수 있습니다.
2. 희소성 (Sparsity)
정의: 벡터의 대부분의 원소가 0으로 채워지는 현상을 의미합니다.
왜 문제인가?: 원-핫 벡터에서는 단 하나의 원소만 1이고 나머지는 모두 0입니다. 이는 다음과 같은 비효율을 초래합니다.
- 메모리 낭비: 대부분이 0인 벡터를 저장하는 것은 메모리 공간의 심각한 낭비입니다.
- 정보 부족: 각 벡터는 '해당 범주이다/아니다'라는 정보 외에 다른 유용한 정보를 담지 못합니다. 특히 단어와 같이 의미론적 관계가 중요한 데이터에서 문제가 됩니다.
3. 순서 및 관계 정보 소실
정의: 원-핫 인코딩은 모든 범주를 서로 독립적인 것으로 간주하여, 범주 간의 관계나 순서 정보를 모두 무시합니다.
어떻게 되나?: 예를 들어, '학력'이라는 범주에 '중졸', '고졸', '대졸'이라는 세 가지 값이 있다고 가정해 봅시다. 이 값들 사이에는 '중졸 < 고졸 < 대졸'이라는 명확한 순서 관계가 존재합니다. 하지만 원-핫 인코딩을 적용하면 다음과 같이 변환됩니다.
- '중졸': [1, 0, 0]
- '고졸': [0, 1, 0]
- '대졸': [0, 0, 1]
이 벡터들 사이의 유클리드 거리는 모두 동일($\sqrt{2}$)합니다. 즉, 모델은 '중졸'과 '대졸'의 관계가 '중졸'과 '고졸'의 관계와 다르다는 것을 전혀 알 수 없게 됩니다. 이처럼 데이터에 내재된 중요한 순서나 의미적 유사성 정보를 잃게 되어 모델의 성능에 부정적인 영향을 줄 수 있습니다.
24. 지도/비지도/강화 학습 차이
답변:
지도: 레이블로 함수 학습(분류/회귀).
비지도: 레이블 없이 구조 탐색(군집/차원축소).
강화: 보상으로 정책 학습(에이전트·환경·행동).
25. 다중공선성(Multicollinearity) 정의/탐지/해결
답변:
다중공선성은 주로 선형 회귀 분석에서 중요한 문제로 다뤄집니다. 이는 모델의 독립변수들 간에 강한 상관관계가 존재하여 회귀 계수를 추정하는 데 심각한 문제를 일으키는 현상을 의미합니다.
1. 다중공선성이란 무엇이고, 왜 문제인가?
정의: 회귀 모델에서 일부 독립변수가 다른 독립변수들과 높은 선형 관계를 보이는 상태입니다. 예를 들어, '키'와 '몸무게'라는 두 독립변수가 있다면, 이 둘은 서로 매우 높은 상관관계를 가질 가능성이 큽니다.
문제점 (계수 추정의 불안정성): 선형 회귀의 목표는 각 독립변수가 종속변수에 미치는 고유한 영향력(회귀 계수, $\beta$)을 추정하는 것입니다. 하지만 두 독립변수가 거의 같은 정보를 담고 있다면, 모델은 이 둘의 영향력을 명확히 구분하기 어려워집니다. 이로 인해 다음과 같은 문제가 발생합니다.
- 회귀 계수의 분산 증가: 데이터가 조금만 바뀌어도 회귀 계수가 매우 크게 변동하여 안정성이 떨어집니다.
- 해석의 어려움: 계수 값의 부호가 예상과 다르게 나오거나, 통계적으로 유의미하지 않게 나올 수 있습니다. 이는 어떤 변수가 중요한지 판단하기 어렵게 만듭니다.
- 과적합 위험: 모델이 훈련 데이터에만 과도하게 맞춰져 새로운 데이터에 대한 예측 성능이 저하될 수 있습니다.
2. 다중공선성 탐지 방법
모델에 다중공선성 문제가 있는지 확인하는 방법은 다음과 같습니다.
- 상관 행렬 (Correlation Matrix): 독립변수들 간의 상관계수를 계산하여 행렬 형태로 확인합니다. 두 변수 간의 상관계수 절대값이 0.8 이상으로 매우 높다면 다중공선성을 의심할 수 있습니다. 하지만 이는 두 변수 간의 관계만 볼 수 있다는 한계가 있습니다.
- 분산 팽창 계수 (Variance Inflation Factor, VIF): 가장 널리 사용되는 방법입니다. VIF는 한 독립변수가 다른 독립변수들에 의해 얼마나 잘 설명되는지를 나타내는 지표입니다.
- VIF 값이 10 이상이면 일반적으로 다중공선성 문제가 심각하다고 판단합니다.
- VIF 값이 5 이상일 때도 주의가 필요하다는 의견도 있습니다.
3. 다중공선성 해결 방법
다중공선성 문제를 해결하기 위한 접근법은 다음과 같습니다.
- 변수 제거: 상관관계가 높은 변수들 중 하나를 모델에서 제거합니다. 어떤 변수를 제거할지는 도메인 지식이나, 종속변수와의 상관관계를 고려하여 결정할 수 있습니다.
- 주성분 분석 (PCA): 상관관계가 높은 여러 변수들을 하나의 새로운 변수(주성분)로 통합하여 차원을 축소합니다. 이 방법은 변수들의 정보를 최대한 유지하면서 다중공선성을 해결할 수 있지만, 주성분의 해석이 어려워진다는 단점이 있습니다.
- 규제(Regularization) 사용: 릿지(Ridge) 회귀와 같은 규제 모델을 사용합니다. 릿지는 회귀 계수의 크기에 페널티를 부여하여 계수 값이 너무 커지는 것을 방지합니다. 이 과정에서 다중공선성으로 인해 불안정해진 계수들을 안정화시키는 효과가 있습니다.
26. SVM의 하드 마진 vs 소프트 마진
답변:
하드 마진: 오분류 불허, 선형 완전분리에서만 가능, 이상치에 매우 민감.
소프트 마진: 오분류 허용하며 마진 최대화, 하이퍼파라미터 $C$로 제어($C$↑ → 하드에 가까움). 현실 데이터에 더 적합, 일반화 우수.
27. 특성 공학(Feature Engineering)과 중요성
답변:
결측/이상치 처리, 스케일링, 변환, 파생변수 생성, 선택 등 원본 데이터를 모델이 학습하기 쉬운 표현으로 변환. 데이터 품질이 성능을 좌우.
28. 그리드 서치 vs 랜덤 서치
답변:
그리드: 모든 조합 탐색(완전탐색, 비용 큼).
랜덤: 범위에서 무작위 샘플(효율적, 적은 시도로 양호한 해). 일반적으로 랜덤이 대규모 공간에서 유리.
29. 데이터 누수(Data Leakage)와 예시
답변:
학습 시점에 사용할 수 없는 미래 정보가 포함되어 과대평가되는 현상.
- 전처리 순서 오류: 전체 데이터로 스케일링 후 분할 → 테스트 통계가 학습에 누출. 정답: 분할 후 학습 통계로 둘 다 변환.
- 미래 정보 포함: 사후에만 알 수 있는 변수(예: 사기 확정 여부)를 학습에 사용.
30. 협업 필터링(Collaborative Filtering)의 기본 아이디어
답변:
“비슷한 취향의 사람/아이템은 비슷한 선택을 한다.” 유사도 기반으로 추천 생성.
- 사용자 기반: 유사 사용자들이 높게 평가한 미경험 아이템 추천.
- 아이템 기반: 선호 아이템과 유사한 아이템 추천(확장성 우수).
31. 선형 회귀(Linear Regression)의 비용 함수(Cost Function)는 무엇이며, 왜 이 함수를 사용하는지 설명하세요.
답변:
선형 회귀의 비용 함수로는 주로 평균 제곱 오차(Mean Squared Error, MSE)를 사용합니다.
- 수식: $$J(W, b) = \frac{1}{2m} \sum_{i=1}^{m} \big(h_W(x^{(i)}) - y^{(i)}\big)^2$$
- $h_W(x)$: 모델의 예측값 $(Wx+b)$
- $y$: 실제 값
- $m$: 데이터 샘플의 수
이 함수를 사용하는 이유는 다음과 같습니다.
- 볼록 함수(Convex Function): MSE는 아래로 볼록한 형태의 함수입니다. 따라서 경사 하강법을 사용했을 때 전역 최적해(global optimum)를 찾기 용이합니다.
- 미분 용이성: 제곱 형태이므로 미분이 간단하여 경사 하강법 계산이 효율적입니다. (수식의 $\frac{1}{2}$은 미분 시 2를 상쇄시켜 계산을 편하게 하기 위한 장치입니다.)
- 오차에 대한 패널티: 오차가 클수록 제곱에 의해 패널티가 더 커지므로, 큰 오차를 줄이는 데 더 집중하게 됩니다.
32. 로지스틱 회귀(Logistic Regression)의 비용 함수(Cross-Entropy) 수식을 설명하고, 왜 MSE를 사용하지 않는지 설명하세요.
답변:
로지스틱 회귀는 교차 엔트로피(Cross-Entropy) 또는 로그 손실(Log Loss)을 비용 함수로 사용합니다.
수식: $$J(W) = -\frac{1}{m} \sum_{i=1}^{m} \big[y^{(i)}\log\!\big(h_W(x^{(i)})\big) + \big(1-y^{(i)}\big)\log\!\big(1-h_W(x^{(i)})\big)\big]$$
왜 평균 제곱 오차(MSE)를 사용하지 않는가?
로지스틱 회귀의 예측값 $h_W(x)$는 시그모이드 함수 $\sigma(z) = \frac{1}{1+e^{-z}}$ (여기서 $z=W^Tx$)를 통과한 비선형 값입니다. 만약 여기에 MSE를 비용 함수로 사용하면, 비용 함수가 Non-convex 형태가 되어 여러 개의 지역 최적점(local optima)을 갖게 됩니다. 이 경우 경사 하강법이 전역 최적해를 찾는다는 보장이 없습니다.
수식적 설명 (MSE가 Non-convex인 이유):
MSE 비용 함수는 $J(W) = \frac{1}{2m} \sum (h_W(x^{(i)}) - y^{(i)})^2 = \frac{1}{2m} \sum (\sigma(W^Tx^{(i)}) - y^{(i)})^2$ 입니다. 이 함수를 파라미터 $W$에 대해 미분하여 기울기를 구하는 과정은 연쇄 법칙(chain rule)에 의해 매우 복잡해지며, 시그모이드 함수($\sigma$)의 비선형성 때문에 결과적으로 $W$에 대한 복잡한 비선형 함수가 됩니다. 함수의 볼록성을 판단하는 헤시안 행렬(Hessian matrix, 2차 도함수 행렬)이 양의 준정부호(positive semi-definite)가 아니게 되어, 아래 그림과 같이 울퉁불퉁한 형태의 비용 함수가 만들어집니다. 이는 경사 하강법이 어디서 시작하느냐에 따라 다른 지역 최적점에 수렴하게 만듭니다.
교차 엔트로피(Cross-Entropy)를 사용하는 이유
반면, 교차 엔트로피 함수는 볼록(convex) 함수 형태를 띠므로 경사 하강법으로 안정적인 최적해를 찾을 수 있습니다. 또한, 예측이 틀렸을 때(예: 실제 값이 1인데 예측 확률이 0에 가까울 때, $\log(0) \to -\infty$) 무한대의 패널티를 부여하여 모델이 빠르게 학습하도록 유도합니다.
수식적 설명 (교차 엔트로피가 Convex인 이유):
교차 엔트로피 비용 함수 $J(W)$는 최대 우도 추정(Maximum Likelihood Estimation)으로부터 유도된 자연스러운 선택입니다. 이 함수의 1차 도함수(그래디언트)는 놀랍게도 매우 간단한 형태로 정리됩니다. $$ \frac{\partial J(W)}{\partial W_j} = \frac{1}{m} \sum_{i=1}^{m} (h_W(x^{(i)}) - y^{(i)}) x_j^{(i)} $$ 여기서 더 나아가 2차 도함수를 계산하여 헤시안 행렬 $H$를 구하면, 그 원소는 $H_{jk} = \frac{\partial^2 J(W)}{\partial W_j \partial W_k} = \frac{1}{m} \sum_{i=1}^{m} h_W(x^{(i)})(1-h_W(x^{(i)}))x_j^{(i)}x_k^{(i)}$ 가 됩니다.
- 시그모이드 함수의 출력 $h_W(x^{(i)})$는 항상 (0, 1) 사이의 값을 가집니다.
- 따라서 $h_W(x^{(i)})(1-h_W(x^{(i)}))$ 항은 항상 0보다 큽니다.
결과적으로 헤시안 행렬 $H$는 항상 양의 준정부호(positive semi-definite)라는 조건을 만족하게 됩니다. 이는 수학적으로 비용 함수 $J(W)$가 볼록 함수(convex function)임을 보장하며, 따라서 경사 하강법을 통해 유일한 전역 최적해(global optimum)를 안정적으로 찾을 수 있음을 의미합니다.
33. 서포트 벡터 머신(SVM)의 목적 함수를 설명하고, '마진 최대화'가 어떻게 수식에 반영되는지 설명하세요.
답변:
SVM의 목표는 두 클래스를 구분하는 마진(Margin)을 최대화하는 결정 경계를 찾는 것입니다.
- 마진: 결정 경계(초평면)와 가장 가까운 양쪽 클래스의 데이터 포인트(서포트 벡터) 사이의 거리입니다.
왜 마진의 크기가 $\frac{2}{\lVert w\rVert}$ 인가?
결정 경계와 마진 경계는 다음과 같이 세 개의 평행한 초평면으로 정의됩니다.
- 결정 경계: $w^\top x - b = 0$
- 양성 클래스(+1)의 마진 경계: $w^\top x - b = 1$
- 음성 클래스(-1)의 마진 경계: $w^\top x - b = -1$
마진의 크기는 양성 마진 경계와 음성 마진 경계 사이의 거리입니다. 이 거리를 구하기 위해, 양성 마진 경계 위의 임의의 점 $x_+$와 음성 마진 경계 위의 임의의 점 $x_-$를 생각해 봅시다. 두 점 사이의 벡터 $(x_+ - x_-)$를 결정 경계의 법선 벡터 $w$에 투영(projection)하면 두 초평면 사이의 최단 거리를 얻을 수 있습니다.
$$ \text{Margin} = \frac{|w^\top (x_+ - x_-)|}{\lVert w\rVert} $$
$x_+$와 $x_-$는 각각 마진 경계 위의 점이므로 다음을 만족합니다.
$w^\top x_+ - b = 1 \implies w^\top x_+ = 1+b$
$w^\top x_- - b = -1 \implies w^\top x_- = -1+b$
이를 위 마진 공식의 분자에 대입하면,
$|w^\top x_+ - w^\top x_-| = |(1+b) - (-1+b)| = |2| = 2$
따라서, 마진의 크기는 최종적으로 $\frac{2}{\lVert w\rVert}$ 가 됩니다.
마진을 최대화($\max \frac{2}{\lVert w\rVert}$)하는 것은 분모인 $\lVert w\rVert$를 최소화하는 것과 같고, 계산의 편의를 위해 루트와 상수를 제거한 $\frac{1}{2}\lVert w\rVert^2$를 최소화하는 것을 목표로 합니다.
- 목적 함수 (하드 마진의 경우):
Minimize: $$\frac{1}{2}\lVert w\rVert^2$$Subject to: $$y_i(w^\top x_i - b) \ge 1 \quad \text{for all } i$$
수식의 의미:
- $\frac{1}{2}\lVert w\rVert^2$ 최소화: 마진을 최대화하려는 목표를 나타냅니다.
- $y_i(w^\top x_i - b) \ge 1$: 모든 데이터 포인트가 마진 경계 바깥쪽에 올바르게 분류되어야 한다는 제약 조건입니다. $y_i$는 클래스 레이블(+1 또는 -1)입니다.
34. 주성분 분석(PCA)의 목적은 무엇이며, 이를 달성하기 위해 무엇을 최대화하나요?
답변:
PCA의 목적은 데이터의 분산을 최대한 보존하면서 고차원 데이터를 저차원으로 축소하는 것입니다.
이를 위해 PCA는 데이터의 투영(projection) 분산을 최대화하는 새로운 축, 즉 주성분(Principal Component)을 찾습니다. 첫 번째 주성분(PC1)은 데이터의 분산이 가장 큰 방향 벡터이며, 두 번째 주성분(PC2)은 PC1과 직교하면서 나머지 분산이 가장 큰 방향 벡터입니다.
수학적으로 이는 데이터의 공분산 행렬(Covariance Matrix)에 대한 고유값 분해(Eigenvalue Decomposition)를 통해 달성됩니다.
고유값 분해의 수식적 의미
데이터의 공분산 행렬을 $\Sigma$라고 할 때, 고유값 분해는 다음의 핵심적인 수식으로 표현됩니다.
$$\Sigma v = \lambda v$$
이 수식의 의미는 다음과 같습니다.
- $\Sigma$: 데이터의 공분산 행렬. 데이터가 각 축에 대해 어떻게 흩어져 있는지를 나타내는 변환 행렬로 볼 수 있습니다.
- $v$: 고유 벡터 (Eigenvector). 행렬 $\Sigma$에 의해 변환되더라도 그 방향이 변하지 않고 크기만 변하는 특별한 벡터입니다. PCA에서는 이 고유 벡터가 바로 데이터의 분산이 가장 큰 방향을 나타내는 주성분(Principal Component)이 됩니다.
- $\lambda$: 고유값 (Eigenvalue). 고유 벡터 $v$가 변환에 의해 늘어나거나 줄어드는 크기를 나타내는 스칼라 값입니다. PCA에서는 이 고유값이 해당 주성분 방향으로 데이터가 갖는 분산의 크기를 의미합니다.
즉, 공분산 행렬 $\Sigma$를 고유값 분해한다는 것은, 데이터를 변환했을 때 방향은 유지되면서 그 크기(분산)만 변하는 축들(고유 벡터)과, 그 축 방향으로의 분산의 크기(고유값)를 찾는 과정입니다.
따라서 PCA는 가장 큰 고유값($\lambda$)을 갖는 고유 벡터($v$)를 순서대로 찾아, 그 방향으로 데이터를 투영하여 차원을 축소합니다. 가장 큰 고유값에 해당하는 고유 벡터가 첫 번째 주성분(PC1)이 되고, 두 번째로 큰 고유값에 해당하는 고유 벡터가 두 번째 주성분(PC2)이 되는 식입니다.
35. K-평균 군집화(K-Means Clustering)의 목적 함수는 무엇인가요?
답변:
K-평균 군집화의 목적 함수는 각 군집 내 데이터 포인트들과 해당 군집의 중심점(centroid) 사이의 거리 제곱의 합을 최소화하는 것입니다. 이를 군집 내 제곱합(Within-cluster Sum of Squares, WCSS) 또는 관성(Inertia)이라고 합니다.
- 목적 함수:
Minimize: $$J = \sum_{k=1}^{K} \sum_{x_i \in C_k} \lVert x_i - \mu_k \rVert^2$$
- $K$: 군집의 개수
- $C_k$: k번째 군집
- $\mu_k$: k번째 군집의 중심점
K-Means 알고리즘의 할당(Assignment) 단계와 업데이트(Update) 단계는 이 목적 함수 $J$를 최소화하는 방향으로 반복적으로 수행됩니다.
36. 엘보우 방법(Elbow Method)은 무엇이며, K-평균 군집화와 어떤 관련이 있나요?
답변:
엘보우 방법은 K-평균 군집화에서 최적의 군집 수 K를 결정하기 위해 사용되는 방법 중 하나입니다.
군집의 수 K를 1부터 점차 늘려가면서 각 K에 대한 WCSS(군집 내 제곱합) 값을 계산하여 그래프로 그립니다.
- K가 증가할수록 각 군집은 더 작아지므로 WCSS 값은 계속 감소합니다.
- 하지만 어느 특정 지점부터는 K를 늘려도 WCSS의 감소폭이 급격히 줄어듭니다.
이 그래프에서 기울기가 완만해지는 지점, 즉 팔꿈치(elbow)처럼 꺾이는 부분이 최적의 K 값으로 간주됩니다. 이 지점은 K를 늘리는 것에 대한 효율이 떨어지기 시작하는 지점을 의미합니다.
37. 의사결정 나무(Decision Tree)의 비용 함수(분할 기준)는 무엇인가요?
답변:
의사결정 나무는 전통적인 의미의 단일 비용 함수를 최적화하기보다는, 각 노드에서 정보 획득(Information Gain)을 최대화하는 방향으로 분할을 수행합니다. 정보 획득은 분할 전의 불순도와 분할 후의 불순도의 차이로 계산됩니다.
- 정보 획득 수식:
$$ \mathrm{InformationGain}(D, A) = \mathrm{Impurity}(D) - \sum_{v \in \mathrm{Values}(A)} \frac{|D_v|}{|D|}\,\mathrm{Impurity}(D_v) $$
- $\mathrm{Impurity}(D)$: 분할 전 부모 노드의 불순도 (지니 불순도 또는 엔트로피)
- $\sum \dots$: 분할 후 자식 노드들의 가중 평균 불순도
따라서 의사결정 나무는 각 단계에서 정보 획득을 최대화(또는 불순도를 최소화)하는 특성과 분할 지점을 선택하는 방식으로 학습됩니다. 이는 국소 최적화(local optimization) 방식입니다.
불순도(Impurity)의 종류와 수식
불순도는 특정 노드에 얼마나 다양한 클래스의 데이터가 섞여 있는지를 나타내는 지표입니다. 불순도가 낮을수록 노드가 순수하다(하나의 클래스로 구성되어 있다)는 의미입니다. 대표적인 불순도 지표는 다음과 같습니다.
- 지니 불순도 (Gini Impurity)
설명: 해당 노드에서 랜덤하게 두 개의 샘플을 뽑았을 때, 두 샘플이 서로 다른 클래스에 속할 확률을 의미합니다. CART(Classification and Regression Trees) 알고리즘에서 주로 사용됩니다.
수식: 특정 노드에 속한 데이터 중 클래스 $k$의 비율을 $p_k$라고 할 때, 지니 불순도는 다음과 같이 계산됩니다. 값이 0이면 노드가 완전히 순수한 상태(하나의 클래스만 존재)를 의미합니다. $$ \mathrm{Gini}(D) = 1 - \sum_{k=1}^{K} (p_k)^2 $$ - 엔트로피 (Entropy)
설명: 정보 이론에서 유래한 개념으로, 데이터의 불확실성을 수치적으로 나타냅니다. 엔트로피가 높을수록 불확실성이 높고, 엔트로피가 0이면 불확실성이 전혀 없는 순수한 상태를 의미합니다. ID3, C4.5 알고리즘에서 사용됩니다.
수식: $$ \mathrm{Entropy}(D) = - \sum_{k=1}^{K} p_k \log_2(p_k) $$
38. Adaboost의 목적 함수는 지수 손실(Exponential Loss)과 관련이 있습니다. 이것이 어떻게 동작하는지 설명해주세요.
답변:
Adaboost는 순차적으로 약한 학습기를 만들어 이전 학습기가 잘못 분류한 샘플에 가중치를 부여하는 방식으로 학습합니다. 이 과정은 지수 손실 함수를 최소화하는 과정으로 해석할 수 있습니다.
- 지수 손실 함수: $$L_{exp} = \sum_{i=1}^{m} \exp\big(-y_i\, f(x_i)\big)$$
- $y_i$: 실제 레이블 $(+1, -1)$
- $f(x_i)$: 현재까지 결합된 분류기들의 예측값
Adaboost의 각 단계는 이 지수 손실을 가장 많이 줄일 수 있는 약한 학습기를 선택하고, 그 학습기의 가중치($\alpha_t$)를 결정합니다.
- $y_i f(x_i) > 0$ (정답): 지수가 음수가 되어 손실이 작아집니다.
- $y_i f(x_i) < 0$ (오답): 지수가 양수가 되어 손실이 기하급수적으로 커집니다.
따라서 Adaboost는 오분류된 샘플(손실이 큰 샘플)에 더 큰 데이터 가중치를 부여하여, 다음 학습기가 이 샘플들을 올바르게 분류하도록 집중하게 만드는 방식으로 지수 손실을 최소화합니다.
39. 경사 부스팅 머신(GBM)의 목적 함수는 무엇이며, '잔차(Residual)'는 이와 어떤 관련이 있나요?
답변:
GBM은 이전 모델이 예측하고 남은 오차(잔차)를 다음 모델이 학습하는 방식으로 진행됩니다. 이는 미분 가능한 일반적인 손실 함수 $L(y, F(x))$를 최소화하는 것을 목표로 합니다.
GBM의 핵심 아이디어는 손실 함수를 함수 공간(function space)에서 경사 하강법으로 최적화하는 것입니다. 각 단계에서 손실 함수를 가장 많이 줄이는 방향은 손실 함수의 음의 그래디언트(negative gradient) 방향입니다.
음의 그래디언트: $$-\left[\frac{\partial L(y_i, F(x_i))}{\partial F(x_i)}\right]_{F(x)=F_{m-1}(x)}$$
손실 함수로 제곱 오차(Squared Error), 즉 $L = \frac{1}{2}(y - F(x))^2$를 사용하는 경우, 이 음의 그래디언트는 정확히 잔차(residual), 즉 $(y - F(x))$가 됩니다.
따라서 회귀 문제에서 GBM이 잔차를 학습하는 것은, 제곱 오차 손실 함수의 그래디언트 방향으로 모델을 업데이트하여 전체 손실을 최소화하는 과정입니다.
40. LDA(선형 판별 분석)의 목적 함수는 무엇이며, 클래스 내 분산과 클래스 간 분산은 어떻게 사용되나요?
답변:
LDA는 분류를 위한 차원 축소 기법으로, 데이터를 투영했을 때 클래스가 가장 잘 분리되도록 하는 것을 목표로 합니다. 이를 위해 LDA는 다음과 같은 목적 함수를 최대화합니다.
- 목적 함수 (피셔의 비율):
Maximize: $$J(w) = \frac{w^T S_B w}{w^T S_W w}$$
- $w$: 투영할 방향 벡터
- $S_B$ (Between-class scatter matrix): 클래스 간 분산 행렬
- $S_W$ (Within-class scatter matrix): 클래스 내 분산 행렬
LDA는 이 비율을 최대화하는 방향 $w$를 찾습니다. 즉, 데이터를 투영했을 때 클래스 간의 거리는 최대한 멀어지게(분자 최대화) 하고, 같은 클래스 내의 데이터들은 최대한 뭉치도록(분모 최소화) 만드는 최적의 축을 찾습니다.
41. 모델의 복잡도와 과적합의 관계를 설명하세요.
답변:
모델의 복잡도는 모델이 데이터의 복잡한 패턴을 얼마나 잘 학습할 수 있는지를 나타내는 척도입니다. 예를 들어, 결정 트리에서는 트리의 깊이가, 다항 회귀에서는 다항식의 차수가 복잡도를 결정합니다.
- 모델 복잡도가 낮으면, 데이터의 기본 패턴조차 학습하지 못하는 과소적합(Underfitting)이 발생합니다. (높은 편향)
- 모델 복잡도가 너무 높으면, 학습 데이터의 노이즈나 사소한 패턴까지 모두 학습하여 새로운 데이터에 대한 일반화 성능이 떨어지는 과적합(Overfitting)이 발생합니다. (높은 분산)
따라서 적절한 모델 복잡도를 선택하여 편향과 분산의 균형을 맞추는 것이 중요합니다.
42. 실루엣 점수(Silhouette Score)는 무엇이며, 어떻게 해석하나요?
답변:
실루엣 점수는 군집화(clustering) 모델의 성능을 평가하는 지표로, 각 데이터 포인트가 자신이 속한 군집에 얼마나 잘 속해 있고, 다른 군집과는 얼마나 잘 분리되어 있는지를 나타냅니다.
개별 데이터 포인트 $i$에 대한 실루엣 점수 $s(i)$는 다음과 같이 계산됩니다.
- $$ s(i) = \frac{b(i) - a(i)}{\max\{a(i),\, b(i)\}} $$
- $a(i)$: $i$와 자신이 속한 군집 내의 다른 점들 간의 평균 거리. (응집도)
- $b(i)$: $i$와 가장 가까운 다른 군집 내의 모든 점들 간의 평균 거리. (분리도)
해석:
- $s(i) \approx 1$: 포인트가 자신의 군집에 매우 잘 속해 있고, 다른 군집과 잘 분리되어 있음.
- $s(i) \approx 0$: 포인트가 군집 경계에 위치해 있음.
- $s(i) \approx -1$: 포인트가 잘못된 군집에 할당되었을 가능성이 높음.
전체 군집의 실루엣 점수는 모든 데이터 포인트의 점수 평균으로 계산합니다.
43. ROC 곡선은 언제 불균형 데이터에 대해 오해의 소지를 가질 수 있나요? 이때 대안이 되는 평가지표는 무엇인가요?
답변:
ROC 곡선은 x축이 FPR(위양성율)로 계산됩니다 ($$FPR = \frac{FP}{FP+TN}$$). 불균형 데이터, 특히 음성(Negative) 클래스가 압도적으로 많은 경우, FP의 수가 조금 증가하더라도 거대한 TN 값 때문에 FPR 값은 크게 변하지 않습니다. 이로 인해 모델의 성능이 실제보다 더 좋게 보이는 착시를 일으킬 수 있습니다.
대안: 이런 경우 정밀도-재현율 곡선(Precision-Recall Curve)이 더 좋은 대안이 됩니다.
- x축: 재현율 (Recall)
- y축: 정밀도 (Precision)
정밀도는 TN을 포함하지 않기 때문에($$ \mathrm{Precision} = \frac{TP}{TP+FP} $$), 다수의 Negative 클래스에 영향을 받지 않고 양성(Positive) 클래스를 예측하는 성능을 더 직접적으로 보여줍니다. 이 곡선의 아래 면적인 AP(Average Precision) 또는 AUPRC(Area Under PR Curve)를 통해 모델 성능을 평가할 수 있습니다.
44. 교차 엔트로피 손실이 왜 '거리'의 척도는 될 수 없는지 설명하세요.
답변:
교차 엔트로피($H(P, Q)$)는 두 확률 분포 P와 Q 사이의 '차이'를 측정하지만, 수학적인 의미의 '거리(distance metric)'가 되기 위한 조건을 모두 만족하지는 않습니다. 거리가 되려면 다음 조건들을 만족해야 합니다.
- 비음성: $d(x,y) \ge 0$
- 동일성: $d(x,y) = 0 \iff x=y$
- 대칭성: $d(x,y) = d(y,x)$
- 삼각 부등식: $d(x,z) \le d(x,y) + d(y,z)$
교차 엔트로피는 이 중 대칭성을 만족하지 않습니다. 즉, $H(P, Q) \neq H(Q, P)$ 입니다. 이와 관련된 척도인 KL 발산(KL-Divergence) 역시 대칭성을 만족하지 않아($$D_{KL}(P\|Q) \ne D_{KL}(Q\|P)$$) 거리가 아닙니다. 이 때문에 '발산(divergence)'이라는 용어를 사용합니다.
45. Elastic Net 규제는 L1, L2 규제와 어떤 관계가 있으며, 목적 함수는 어떻게 되나요?
답변:
Elastic Net은 L1 규제(Lasso)와 L2 규제(Ridge)를 결합한 규제 방식입니다. Lasso의 특성 선택 능력과 Ridge의 안정성을 모두 활용하려는 목적을 가집니다.
- 목적 함수:
$$ \mathrm{Cost} = \sum(y_i - \hat{y}_i)^2 + \lambda_1 \sum |w_j| + \lambda_2 \sum w_j^2 $$또는 혼합 비율 $r$을 사용하여,$$ \mathrm{Cost} = \mathrm{MSE} + \alpha \left( r \sum |w_j| + \frac{1-r}{2} \sum w_j^2 \right) $$
관계 및 장점:
- 상관관계가 높은 특성들이 있을 때, Lasso는 그중 하나만 선택하고 나머지의 가중치를 0으로 만드는 경향이 있습니다. 반면 Elastic Net은 Ridge의 효과 덕분에 이들을 그룹으로 함께 선택하거나 제외하는 경향이 있어 더 안정적입니다.
- 특성의 수가 샘플 수보다 많은 경우에도 Lasso보다 안정적인 성능을 보입니다.
46. Huber Loss란 무엇이며, 어떤 경우에 사용될 수 있나요?
답변:
Huber Loss는 MSE(L2 손실)와 MAE(L1 손실)의 장점을 결합한 손실 함수입니다.
- 수식:
$$ L_\delta(y, f(x)) = \begin{cases} \frac{1}{2}\big(y-f(x)\big)^2 & \text{for } |y-f(x)| \le \delta \\ \delta\big(|y-f(x)| - \tfrac{1}{2}\delta\big) & \text{otherwise} \end{cases} $$
- $\delta$: 하이퍼파라미터로, L2와 L1 손실이 전환되는 지점을 결정합니다.
동작 방식 및 사용 경우:
- 오차가 $\delta$보다 작을 때는 MSE처럼 동작하여 부드럽게 최적점에 수렴하도록 돕습니다.
- 오차가 $\delta$보다 클 때는 MAE처럼 동작하여 오차에 선형적인 패널티를 부여합니다.
이는 회귀 문제에서 이상치(outlier)가 존재할 때 매우 유용합니다. MSE는 이상치에 대해 제곱으로 패널티를 주어 그래디언트가 폭주할 수 있지만, Huber Loss는 이상치에 대해 선형적인 패널티를 주므로 이상치에 덜 민감하고 강건한(robust) 모델을 만들 수 있습니다.
47. 정보 기준(Information Criterion)인 AIC와 BIC는 무엇이며, 모델 선택에 어떻게 사용되나요?
답변:
AIC(Akaike Information Criterion)와 BIC(Bayesian Information Criterion)는 통계 모델의 상대적인 품질을 평가하는 지표입니다. 두 지표 모두 모델의 적합도와 복잡도를 함께 고려합니다.
- AIC 수식: $$ AIC = 2k - 2\ln(\hat{L}) $$
- BIC 수식: $$ BIC = k\ln(n) - 2\ln(\hat{L}) $$
- $k$: 모델의 파라미터 수 (복잡도)
- $\hat{L}$: 모델의 최대 가능도(Likelihood) (적합도)
- $n$: 데이터 샘플의 수
사용 방법: 두 지표 모두 값이 낮을수록 더 좋은 모델로 간주됩니다.
- 모델이 복잡해질수록($k$ 증가), 적합도($\hat{L}$)는 올라가지만, $k$ 항이 패널티로 작용합니다.
- BIC는 AIC보다 파라미터 수 $k$에 더 강한 패널티($\ln(n)$)를 부여하므로, 더 단순한 모델을 선호하는 경향이 있습니다.
여러 후보 모델에 대해 AIC 또는 BIC를 계산하고, 가장 낮은 값을 가진 모델을 최종 모델로 선택할 수 있습니다.
48. Gini Importance와 Permutation Importance는 무엇이며, 어떤 차이가 있나요?
답변:
두 방법 모두 트리 기반 앙상블 모델(예: 랜덤 포레스트)에서 특성 중요도(Feature Importance)를 계산하는 방법입니다.
- Gini Importance (평균 불순도 감소):
- 계산 방식: 특정 특성이 모델의 모든 트리에서 노드를 분기할 때, 평균적으로 얼마나 불순도(Gini Impurity)를 감소시켰는지를 측정하여 중요도를 계산합니다.
- 특징: 학습 데이터에 기반하여 계산되므로 빠르지만, 과적합될 수 있으며 고차원(high cardinality) 범주형 변수의 중요도를 과대평가하는 경향이 있습니다.
- Permutation Importance (순열 중요도):
- 계산 방식: 학습이 끝난 모델에 대해, 하나의 특성 값을 무작위로 섞은(permutation) 후 모델의 성능(예: 정확도, $R^2$)이 얼마나 감소하는지를 측정합니다. 성능 감소폭이 클수록 중요한 특성입니다.
- 특징: 검증(validation) 데이터를 사용하여 계산하므로 모델의 일반화 성능 관점에서 중요도를 평가합니다. 계산 비용이 더 크지만, 상관관계가 높은 특성이 있을 때 더 신뢰성 있는 결과를 제공합니다.
49. 분위수 회귀(Quantile Regression)는 일반적인 선형 회귀(OLS)와 어떻게 다른가요?
답변:
일반적인 선형 회귀(최소 제곱법, OLS)는 데이터의 조건부 평균(conditional mean)을 예측하는 것을 목표로 합니다. 즉, $E[y|x]$를 모델링합니다.
분위수 회귀(Quantile Regression)는 평균이 아닌, 데이터의 조건부 분위수(conditional quantile)를 예측하는 것을 목표로 합니다. 예를 들어, 50번째 분위수(중앙값), 90번째 분위수 등을 예측할 수 있습니다.
- 목적 함수 (Check Function):
Minimize: $$\sum_{i: y_i \ge \hat{y}_i} \tau\,|y_i - \hat{y}_i| + \sum_{i: y_i < \hat{y}_i} (1-\tau)\,|y_i - \hat{y}_i|$$
- $\tau$: 목표 분위수 $(0 < \tau < 1)$
차이점 및 장점:
- OLS는 오차의 분포가 정규분포를 따른다고 가정하지만, 분위수 회귀는 그러한 가정이 필요 없습니다.
- 이상치(outlier)에 훨씬 강건합니다.
- 데이터의 전체적인 분포를 파악하는 데 유용합니다. 예: 주택 가격 예측 시 평균뿐 아니라 상위/하위 분위수 예측.
50. 칼만 필터(Kalman Filter)의 기본 목적은 무엇이며, 예측과 업데이트 단계는 어떤 역할을 하나요?
답변:
칼만 필터의 기본 목적은 시간에 따라 변하는 시스템의 상태를 재귀적으로 추정하는 최적화 알고리즘입니다. 특히, 측정값에 노이즈가 포함되어 있을 때, 이전 상태와 현재 측정값을 종합하여 시스템의 최적 상태(optimal state)를 추정합니다.
칼만 필터는 두 단계로 구성됩니다.
- 예측 (Prediction) 단계:
- 이전 시간($k-1$)의 상태 추정치를 기반으로, 시스템의 동역학 모델을 사용하여 현재 시간($k$)의 상태를 예측합니다. 이 예측값은 아직 불확실성을 포함하고 있습니다.
- 수식 (간략화): $$\hat{x}_k^- = A\hat{x}_{k-1} + B u_{k-1}$$
- 업데이트 (Update) 단계:
- 현재 시간($k$)에 실제로 측정한 값과 예측한 값을 비교합니다.
- 두 값의 차이(오차)와 칼만 이득(Kalman Gain)을 이용하여 예측값을 보정하고, 현재 시간($k$)의 최종 상태 추정치를 업데이트합니다.
- 수식 (간략화): $$\hat{x}_k = \hat{x}_k^- + K_k\big(z_k - H\hat{x}_k^-\big)$$
이 예측과 업데이트 과정을 반복하며, 칼만 필터는 노이즈가 섞인 측정값으로부터 시스템의 실제 상태를 효과적으로 추적하고 추정합니다.
51. 서포트 벡터 회귀(Support Vector Regression, SVR)의 목적 함수는 무엇이며, 엡실론-무감도 손실(epsilon-insensitive loss)은 어떤 의미인가요?
답변:
SVR의 목적은 마진(margin)을 최대화하면서, 마진 바깥의 오차만 최소화하는 회귀선을 찾는 것입니다. 이때 엡실론-무감도 손실 함수가 사용됩니다.
- 목적 함수:
$$\text{Minimize:}\quad \frac{1}{2}\,\|w\|^2 + C \sum_{i=1}^{m} (\xi_i + \xi_i^*)$$ - 엡실론-무감도 손실: 예측값과 실제값의 차이가 특정 임계값 $\epsilon$ 이내이면 손실을 0으로 간주하고($\text{loss}=0$), $\epsilon$을 초과하는 오차에 대해서만 선형적인 패널티($\xi_i, \xi_i^*$)를 부여합니다. 이는 모델이 일정 수준의 작은 오차는 무시하여 이상치(outlier)에 강건하고 일반화 성능이 높은 회귀선을 찾도록 유도합니다.
52. 가우시안 혼합 모델(Gaussian Mixture Model, GMM)의 목적 함수는 무엇이며, 어떻게 최적화하나요?
답변:
GMM의 목적 함수는 주어진 데이터셋에 대한 로그 가능도(Log-Likelihood)를 최대화하는 것입니다. 즉, 데이터가 GMM으로부터 생성되었을 확률을 가장 높이는 파라미터(각 가우시안 분포의 평균, 공분산, 혼합 가중치)를 찾는 것이 목표입니다.
- 목적 함수:
$$\log L(\theta \mid X) = \sum_{i=1}^{N} \log \left( \sum_{k=1}^{K} \pi_k \mathcal{N}(x_i \mid \mu_k, \Sigma_k) \right)$$ - 최적화: 이 목적 함수는 직접 풀기 어렵기 때문에, EM(Expectation-Maximization) 알고리즘을 사용하여 반복적으로 최적화합니다.
- E-step: 각 데이터가 어떤 가우시안 분포에 속할지에 대한 확률(responsibility)을 계산.
- M-step: E-step에서 계산된 확률을 이용해 각 가우시안 분포의 파라미터를 업데이트하여 로그 가능도를 최대화.
53. 최대 사후 확률(MAP) 추정은 최대 가능도 추정(MLE)과 어떻게 다르며, 목적 함수에 어떤 항이 추가되나요?
답변:
MLE가 데이터의 가능도 $P(D\mid\theta)$만을 최대화하는 파라미터 $\theta$를 찾는 반면, MAP는 가능도와 파라미터의 사전 확률 $P(\theta)$를 모두 고려하여 사후 확률 $P(\theta\mid D)$를 최대화하는 파라미터 $\theta$를 찾습니다.
- MAP 목적 함수:
$$\hat{\theta}_{\text{MAP}} = \arg\max_{\theta} P(\theta\mid D) = \arg\max_{\theta} \left( \log P(D\mid\theta) + \log P(\theta) \right)$$ - 차이점: MAP의 목적 함수에는 사전 확률의 로그 항 $\log P(\theta)$이 추가됩니다. 이 항은 규제(Regularization)와 동일한 역할을 하여 과적합을 방지하는 효과가 있습니다(가우시안 사전→L2, 라플라스 사전→L1과 유사).
54. 추천 시스템에 사용되는 행렬 분해(Matrix Factorization)의 기본 목적 함수는 무엇인가요?
답변: 행렬 분해의 목적은 사용자-아이템 평점 행렬 $R$을 두 개의 저차원 잠재 요인 행렬 $P$(사용자)와 $Q$(아이템)의 곱으로 근사하는 것입니다. 목적 함수는 실제 평점과 예측 평점 간 오차를 최소화하는 것입니다.
상세 설명: 사용자-아이템 평점 행렬 $R$ (크기: $m \times n$)을 $m \times k$ 크기의 사용자 잠재 요인 행렬 $P$와 $n \times k$ 크기의 아이템 잠재 요인 행렬 $Q$의 곱으로 분해한다고 가정합니다 ($R \approx PQ^\top$). 여기서 $k$는 잠재 요인의 차원 수로, 보통 $m$이나 $n$보다 훨씬 작습니다. 사용자 $u$의 아이템 $i$에 대한 예측 평점은 $\hat{r}_{ui} = p_u^\top q_i$로 계산됩니다.
기본적인 목적 함수는 관측된 모든 평점에 대해 실제 값과 예측 값의 제곱 오차 합(Sum of Squared Errors, SSE)을 최소화하는 것입니다.
$$ \text{Minimize:} \quad \sum_{(u,i) \in K} (r_{ui} - p_u^\top q_i)^2 $$
여기서 $K$는 평점이 매겨진 모든 $(u,i)$ 쌍의 집합입니다.
하지만 이 기본 모델은 훈련 데이터에 과적합(Overfitting)되기 쉽습니다. 이를 방지하기 위해 L2 규제(Regularization) 항을 추가하여 모델의 복잡도에 페널티를 부여합니다. 이는 잠재 요인 벡터의 크기가 너무 커지는 것을 막아 일반화 성능을 높입니다.
- L2 규제를 포함한 목적 함수:$$\text{Minimize:}\quad \sum_{(u,i) \in K} (r_{ui} - p_u^\top q_i)^2 + \lambda (\|p_u\|^2 + \|q_i\|^2) $$여기서 $\lambda$는 규제의 강도를 조절하는 하이퍼파라미터입니다.
- 편향(Bias)을 포함한 모델: 더 정교한 모델은 사용자, 아이템, 그리고 전체 평균의 편향을 고려합니다. 예측 평점은 $\hat{r}_{ui}=\mu+b_u+b_i+p_u^\top q_i$로 계산됩니다.
- $\mu$: 전체 평점 평균
- $b_u$: 사용자 $u$의 평점 편향 (평점을 후하게 또는 짜게 주는 경향)
- $b_i$: 아이템 $i$의 평점 편향 (전반적으로 높은 또는 낮은 평점을 받는 경향) 이 경우 목적 함수는 다음과 같이 확장됩니다.
- 최적화 방법: 위 목적 함수는 볼록(convex) 함수가 아니므로 경사 하강법(Gradient Descent) 기반의 방법들이 사용됩니다.
- 확률적 경사 하강법 (Stochastic Gradient Descent, SGD): 각 평점 샘플 $(u, i)$에 대해 오차 $e_{ui}=r_{ui}-\hat{r}_{ui}$를 계산하고, 학습률 $\eta$를 사용하여 파라미터를 업데이트합니다.$$\begin{aligned} p_u&\leftarrow p_u+\eta(e_{ui}q_i-\lambda p_u) \\ q_i&\leftarrow q_i+\eta(e_{ui}p_u-\lambda q_i) \\ b_u&\leftarrow b_u+\eta(e_{ui}-\lambda b_u) \\ b_i&\leftarrow b_i+\eta(e_{ui}-\lambda b_i) \end{aligned}$$
- 교대 최소 제곱법 (Alternating Least Squares, ALS): $P$와 $Q$를 번갈아 가며 최적화합니다. 한 행렬을 고정하면 목적 함수는 다른 행렬에 대해 볼록 문제가 되어 해석적 해(closed-form solution)를 구할 수 있습니다. 예를 들어, $Q$를 고정하고 $p_u$를 업데이트하는 식은 다음과 같습니다.$$p_u \leftarrow (Q_{I_u}^\top Q_{I_u} + \lambda I)^{-1} Q_{I_u}^\top r_{u, I_u}$$여기서 $I_u$는 사용자 $u$가 평가한 아이템들의 집합입니다.
55. 다중 클래스 로지스틱 회귀(소프트맥스 회귀)의 비용 함수는 무엇인가요?
답변: 다중 클래스 로지스틱 회귀는 범주형 교차 엔트로피(Categorical Cross-Entropy)를 비용 함수로 사용합니다. 이는 모델이 예측한 확률 분포와 실제 레이블의 원-핫 인코딩 분포 간의 차이를 측정합니다.
상세 설명: 소프트맥스 회귀는 $K$개의 클래스가 있을 때, 입력 특성 벡터 $x^{(i)}$가 주어졌을 때 각 클래스 $k$에 속할 확률 $\hat{p}_k^{(i)}$를 예측합니다.
- 소프트맥스 함수 (Softmax Function): 먼저 각 클래스 $k$에 대한 선형 점수 $s_k(x^{(i)}) = w_k^\top x^{(i)}$를 계산합니다. 이 점수들을 소프트맥스 함수에 통과시켜 합이 1이 되는 확률 분포로 변환합니다.$$\hat{p}_k^{(i)} = P(y^{(i)}=k \mid x^{(i)}; W) = \frac{e^{s_k(x^{(i)})}}{\sum_{\ell=1}^K e^{s_\ell(x^{(i)})}} = \frac{e^{w_k^\top x^{(i)}}}{\sum_{\ell=1}^K e^{w_\ell^\top x^{(i)}}} $$
- 비용 함수 (Cost Function): 비용 함수는 **교차 엔트로피(Cross-Entropy)**를 사용하여 실제 클래스 분포와 모델의 예측 확률 분포 사이의 거리를 측정합니다. $m$개의 훈련 샘플이 있을 때, 전체 데이터셋에 대한 평균 교차 엔트로피는 다음과 같습니다.$$J(W) = - \frac{1}{m} \sum_{i=1}^{m} \sum_{k=1}^{K} y_k^{(i)} \log(\hat{p}_k^{(i)}) $$ * $y_k^{(i)}$: $i$번째 샘플의 실제 레이블을 나타내는 원-핫 인코딩 벡터의 $k$번째 요소입니다. 즉, 샘플 $i$의 실제 클래스가 $k$이면 $y_k^{(i)}=1$이고, 나머지 클래스에 대해서는 0입니다.
- $\log(\hat{p}_k^{(i)})$: 모델이 샘플 $i$를 클래스 $k$로 예측한 확률의 로그 값입니다. 이 비용 함수는 모델이 정답 클래스에 높은 확률을 할당할수록 값이 작아집니다.
- 최적화: 이 비용 함수는 가중치 행렬 $W$에 대해 볼록(convex) 함수이므로, 경사 하강법과 같은 최적화 알고리즘을 통해 전역 최적해(global minimum)를 찾을 수 있습니다. 비용 함수 $J(W)$의 가중치 $W$에 대한 그라디언트(L2 규제항 $\lambda W$ 포함)는 다음과 같이 간결하게 표현됩니다.$$\frac{\partial J}{\partial W} = \frac{1}{m} X^\top (\hat{Y} - Y) + \lambda W $$여기서 $X$는 입력 행렬, $\hat{Y}$는 예측 확률 행렬, $Y$는 실제 레이블의 원-핫 인코딩 행렬입니다.
56. t-SNE의 목적 함수는 무엇이며, 무엇을 최소화하나요?
답변: t-SNE는 고차원 공간에서 데이터 포인트 간의 유사도 확률 분포($P$)와 저차원 공간에서의 유사도 확률 분포($Q$) 사이의 차이를 쿨백-라이블러 발산(Kullback-Leibler Divergence, KL Divergence)으로 측정하고, 이를 최소화하여 시각화를 위한 저차원 임베딩을 찾습니다.
상세 설명: t-SNE는 두 단계로 유사도를 정의하고 최적화를 수행합니다.
- 고차원 유사도 ($p_{j|i}$): 고차원 공간에서 데이터 포인트 $x_i$와 $x_j$ 간의 유사도는 $x_i$를 중심으로 한 가우시안 분포 하에서 $x_j$가 이웃으로 선택될 조건부 확률 $p_{j|i}$로 정의됩니다.$$p_{j|i} = \frac{\exp(-\|x_i - x_j\|^2 / 2\sigma_i^2)}{\sum_{k \ne i} \exp(-\|x_i - x_k\|^2 / 2\sigma_i^2)} $$여기서 가우시안의 분산 $\sigma_i$는 사용자 정의 하이퍼파라미터인 퍼플렉시티(Perplexity) 값에 맞춰 각 데이터 포인트마다 적응적으로 결정됩니다. 퍼플렉시티는 효과적인 이웃의 수를 의미하며, 데이터 밀도가 높은 곳에서는 $\sigma_i$가 작아지고, 낮은 곳에서는 커집니다. 최종적으로 대칭적인 결합 확률 $p_{ij}$를 사용하기 위해 $p_{ij} = \frac{p_{j|i} + p_{i|j}}{2n}$로 정의합니다.
- 저차원 유사도 ($q_{ij}$): 저차원 공간(보통 2차원 또는 3차원)에 임베딩된 포인트 $y_i$와 $y_j$ 간의 유사도는 자유도가 1인 **스튜던트 t-분포(Student's t-distribution)**를 사용하여 정의됩니다.$$q_{ij} = \frac{(1 + \|y_i - y_j\|^2)^{-1}}{\sum_{k \ne l} (1 + \|y_k - y_l\|^2)^{-1}} $$t-분포의 긴 꼬리는 고차원에서 멀리 떨어진 점들이 저차원에서도 적당히 멀리 떨어지게 하여, "밀집 문제(Crowding Problem)"를 완화하는 데 도움을 줍니다.
- 목적 함수 (KL Divergence): t-SNE의 목적은 두 확률 분포 $P$와 $Q$를 최대한 유사하게 만드는 것입니다. 이를 위해 두 분포 간의 KL 발산을 최소화합니다.$$\text{Minimize:}\quad C = \mathrm{KL}(P \| Q) = \sum_i \sum_j p_{ij} \log \frac{p_{ij}}{q_{ij}} $$이 목적 함수를 최소화하는 것은 고차원에서의 이웃 관계가 저차원에서도 잘 보존되도록 임베딩 벡터 ${y_i}$를 조정하는 것과 같습니다.
- 최적화 (Gradient Descent): 목적 함수 $C$를 $y_i$에 대해 미분한 그라디언트는 다음과 같은 형태로 나타나며, 이를 이용해 경사 하강법으로 $y_i$의 위치를 업데이트합니다.$$\frac{\partial C}{\partial y_i} = 4 \sum_{j} (p_{ij} - q_{ij}) (y_i - y_j) (1+\|y_i-y_j\|^2)^{-1} $$이 그라디언트는 $p_{ij}$가 큰 (가까운) 점들 사이에는 강한 인력(attractive force)을, $p_{ij}$가 작은 (먼) 점들 사이에는 약한 척력(repulsive force)을 작용시켜 점들을 재배치합니다.
57. 비용 민감 학습(Cost-Sensitive Learning)은 불균형 데이터 처리를 위해 목적 함수를 어떻게 수정하나요?
답변: 비용 민감 학습은 각 클래스를 잘못 분류했을 때 발생하는 비용이 다르다고 가정하고, 목적 함수에서 각 클래스의 오분류에 차등적인 가중치를 부여하여 수정합니다. 일반적으로 데이터 수가 적은 소수 클래스의 오분류에 더 큰 페널티(가중치)를 부여하여 모델이 소수 클래스를 더 잘 학습하도록 유도합니다.
상세 설명: 클래스 불균형 데이터(예: 99%의 정상 거래와 1%의 사기 거래)로 모델을 학습시키면, 모델은 모든 것을 다수 클래스로 예측하더라도 높은 정확도를 얻기 때문에 소수 클래스를 무시하는 경향이 있습니다. 비용 민감 학습은 이러한 문제를 해결하기 위해 손실 함수 자체를 수정합니다.
- 가중 교차 엔트로피 (Weighted Cross-Entropy): 이진 분류 문제에서 가장 일반적인 방법은 교차 엔트로피 손실 함수에 클래스 가중치를 곱하는 것입니다. 양성(positive, 소수) 클래스를 클래스 1, 음성(negative, 다수) 클래스를 클래스 0이라고 할 때, 손실 함수는 다음과 같이 수정됩니다.$$J(\theta) = - \frac{1}{m} \sum_{i=1}^{m} \Big[ w_1 y^{(i)} \log(\hat{p}^{(i)}) + w_0 (1-y^{(i)}) \log(1 - \hat{p}^{(i)}) \Big] $$여기서 $w_1 > w_0$로 설정하면 (예: $w_1$은 소수 클래스의 비율의 역수, $w_0$는 다수 클래스 비율의 역수), 모델은 소수 클래스($y^{(i)}=1$)를 잘못 분류했을 때 더 큰 손실을 입게 되어 소수 클래스에 더 집중하게 됩니다.
- **클래스 균형 가중치(Class Balanced Weights)**의 일반적인 설정 방법은 클래스 빈도의 역수를 사용하는 것입니다. 클래스가 $K$개, 전체 샘플 수가 $n$, 클래스 $k$의 샘플 수가 $n_k$일 때, 가중치 $w_k$는 $w_k = \frac{n}{K \cdot n_k}$로 설정할 수 있습니다.
- 다중 클래스로의 확장: 다중 클래스 문제에서도 각 클래스 $k$에 대한 가중치 $w_k$를 적용하여 목적 함수를 구성할 수 있습니다.$$J(\theta) = - \frac{1}{m} \sum_{i=1}^{m} \sum_{k=1}^{K} w_k y_k^{(i)} \log (\hat{p}_k^{(i)}) $$
- 포컬 손실 (Focal Loss): 포컬 손실은 비용 민감 학습의 더 발전된 형태로, 쉬운 예제(well-classified examples)의 손실은 줄이고 어려운 예제(misclassified examples)에 집중하도록 설계되었습니다.$$\text{FL}(\hat{p}_k^{(i)}) = - \frac{1}{m} \sum_{i=1}^{m} \sum_{k=1}^{K} \alpha_k (1-\hat{p}_k^{(i)})^\gamma y_k^{(i)} \log (\hat{p}_k^{(i)}) $$ * $\alpha_k$: 클래스 불균형을 조절하는 가중치 (가중 교차 엔트로피의 $w_k$와 유사).
- $(1-\hat{p}_k^{(i)})^\gamma$: 조절 인자(modulating factor). 모델이 정답을 높은 확률($\hat{p}_k^{(i)} \to 1$)로 맞추면 이 인자가 0에 가까워져 손실 기여도를 낮춥니다. $\gamma > 0$는 이 효과를 조절합니다.
58. 푸아송 회귀(Poisson Regression)의 목적 함수는 무엇이며, 어떤 데이터를 모델링하나요?
답변: 푸아송 회귀는 특정 시간 또는 공간 단위 내에서 발생하는 사건의 횟수와 같은 카운트 데이터(Count Data)를 모델링하는 데 사용됩니다. 이 모델의 목적 함수는 관측된 데이터가 푸아송 분포를 따른다고 가정하고, 이 데이터가 나타날 확률을 나타내는 로그 가능도(Log-Likelihood)를 최대화하는 것입니다.
상세 설명: 카운트 데이터는 0과 양의 정수 값을 갖는 데이터입니다 (예: 하루 동안 웹사이트 방문자 수, 특정 지역의 연간 교통사고 건수). 이러한 데이터는 일반적인 선형 회귀의 가정(정규성, 등분산성)을 만족하지 못합니다.
- 푸아송 회귀 모델: 푸아송 회귀는 반응 변수 $y_i$가 평균 $\lambda_i$를 갖는 푸아송 분포를 따른다고 가정합니다.$$P(y_i \mid X_i) = \frac{\lambda_i^{y_i} e^{-\lambda_i}}{y_i!} $$푸아송 분포의 평균과 분산은 $\lambda_i$로 동일합니다 ($\mathbb{E}[y_i]=\text{Var}(y_i)=\lambda_i$). 모델은 이 평균 $\lambda_i$가 설명 변수 $X_i$의 선형 결합에 의해 결정된다고 봅니다. $\lambda_i$는 항상 양수여야 하므로, 일반적으로 로그 연결 함수(log link function)를 사용합니다.$$\log(\lambda_i) = X_i\beta \quad \implies \quad \lambda_i = e^{X_i\beta} $$여기서 $\beta$는 회귀 계수입니다.
- 목적 함수 (로그 가능도): $n$개의 독립적인 관측치가 주어졌을 때, 전체 데이터셋의 가능도 함수 $L$은 각 관측치의 확률 질량 함수의 곱입니다. 최적화를 용이하게 하기 위해 로그를 취한 로그 가능도 함수를 사용하며, 이 함수를 최대화하는 계수 $\beta$를 찾습니다.$$\log L(\beta \mid Y, X) = \sum_{i=1}^{n} \log \left( \frac{(e^{X_i\beta})^{y_i} e^{-e^{X_i\beta}}}{y_i!} \right) = \sum_{i=1}^{n} \left( y_i (X_i\beta) - e^{X_i\beta} - \log(y_i!) \right) $$이것이 푸아송 회귀의 목적 함수입니다. 일반적으로 최적화에서는 이 함수의 음수 버전을 최소화합니다. $\log(y_i!)$ 항은 $\beta$와 무관하므로 최적화 과정에서 상수로 취급될 수 있습니다.
- 최적화 및 확장: 로그 가능도 함수는 $\beta$에 대해 볼록(convex) 함수이므로, 뉴턴-랩슨(Newton-Raphson)과 같은 수치 최적화 기법으로 유일한 최적해를 찾을 수 있습니다.
- 과산포(Overdispersion): 실제 데이터에서는 분산이 평균보다 큰 경우가 많습니다 (Var($y_i$) > E[$y_i$]). 이를 과산포라고 하며, 푸아송 모델의 가정을 위배합니다. 이 경우, 분산을 더 유연하게 모델링할 수 있는 음이항 회귀(Negative Binomial Regression)가 대안으로 사용됩니다.
59. 독립 성분 분석(ICA)의 목적은 무엇이며, 이를 달성하기 위해 무엇을 최대화하나요?
답변: 독립 성분 분석(Independent Component Analysis, ICA)의 목적은 다변량의 혼합된 신호(observed signals)를 통계적으로 서로 독립적인 하위 성분 신호(source signals)로 분리하는 것입니다. 이는 성분의 비정규성(Non-Gaussianity)을 최대화함으로써 달성됩니다. 중심 극한 정리에 따르면 독립적인 변수들의 합은 정규분포에 가까워지므로, 반대로 정규성에서 가장 먼 방향을 찾는 것이 독립 성분을 찾는 방법이 됩니다.
상세 설명: ICA는 "칵테일 파티 문제"로 비유할 수 있습니다. 여러 사람이 동시에 말하는 혼잡한 방에서 여러 개의 마이크로 소리를 녹음했을 때(혼합 신호), 각 사람의 목소리(독립 성분)를 분리해내는 것과 같습니다.
- ICA 모델: 관측된 신호 벡터 $x$가 원본 신호 벡터 $s$와 미지의 혼합 행렬 $A$에 의해 $x=As$와 같이 선형적으로 혼합되었다고 가정합니다. ICA의 목표는 혼합 행렬의 역행렬에 해당하는 분리 행렬 $W$를 찾아 원본 신호 $s$를 $\hat{s}=Wx$로 복원하는 것입니다.
- 비정규성 최대화: ICA의 핵심 아이디어는 중심 극한 정리(Central Limit Theorem)를 역으로 이용하는 것입니다. 독립적인 확률 변수들의 합은 정규 분포에 가까워지는 경향이 있습니다. 따라서, 관측된 혼합 신호 $x$는 개별 원본 신호 $s_i$보다 더 정규분포에 가깝습니다. 그러므로 독립 성분을 찾으려면, 분리 행렬 $W$의 행 $w$를 조정하여 투영된 신호 $w^\top x$가 최대한 비정규적인(non-Gaussian) 분포를 갖도록 만들어야 합니다.
- 비정규성 측정 지표:
- 첨도 (Kurtosis): 분포의 뾰족함을 나타내는 4차 통계 모멘트입니다. 정규 분포의 첨도는 0이며, 첨도의 절댓값이 클수록 비정규성이 높다고 판단합니다.
- 네겐트로피 (Negentropy): 정보 이론에 기반한 척도로, 주어진 분포와 동일한 분산을 갖는 정규 분포 사이의 KL 발산으로 정의됩니다. $J(s)=H(s_{gauss})-H(s)$. 네겐트로피는 항상 음수가 아니며, 분포가 정규 분포일 때만 0이 됩니다. 이론적으로 가장 우수한 비정규성 척도이지만 계산이 복잡하여 근사식을 사용합니다.
- 네겐트로피 근사:$$J(s) \approx (\mathbb{E}\{G(s)\} - \mathbb{E}\{G(v)\})^2$$여기서 $s$는 분석하려는 신호, $v$는 표준 정규 분포 변수이며, $G$는 비이차 함수(예: $G(u)=\tanh(u)$ 또는 $G(u)=u \exp(-u^2/2)$)입니다.
- 알고리즘 (FastICA): FastICA는 네겐트로피 근사치를 최대화하는 효율적인 고정점 반복 알고리즘입니다. 데이터 전처리로 중심화(centering)와 백색화(whitening)를 수행하여 공분산을 단위 행렬로 만든 후, 다음 업데이트 규칙을 반복하여 하나의 독립 성분에 해당하는 $w$를 찾습니다.$$w \leftarrow \mathbb{E}[x g(w^\top x)] - \mathbb{E}[g'(w^\top x)] w $$업데이트 후에는 $w \leftarrow w / \|w\|$로 정규화합니다. 여기서 $g$는 $G$의 도함수입니다.
60. XGBoost의 목적 함수가 일반 GBM과 다른 점을 Taylor 전개로 설명해주세요.
답변: XGBoost는 손실 함수를 최적화하기 위해 2차 테일러 전개(Taylor Expansion)를 사용하여 1차 미분값(그래디언트)뿐만 아니라 2차 미분값(헤시안)까지 활용합니다. 이는 일반적인 경사 부스팅 머신(GBM)이 1차 미분값만을 사용하는 것과 비교해 더 정확한 손실 함수 근사를 통해 최적화 방향과 스텝 크기를 결정할 수 있게 해줍니다.
상세 설명: 부스팅은 약한 학습기(보통 결정 트리)를 순차적으로 추가하여 이전 모델의 잔차(residual) 또는 그래디언트를 학습하는 앙상블 기법입니다.
- 일반 GBM: $t$번째 단계에서 모델의 예측은 $\hat{y}^{(t)} = \hat{y}^{(t-1)} + f_t(x)$ 입니다. 일반 GBM은 손실 함수 $L(y, \hat{y})$의 음의 그래디언트 방향으로 $f_t(x)$를 학습합니다. 즉, $f_t(x)$는 $-[\frac{\partial L(y, \hat{y})}{\partial \hat{y}}]_{\hat{y}=\hat{y}^{(t-1)}}$를 근사하도록 학습됩니다. 이는 손실 함수를 1차 선형 근사하는 것과 같습니다.
- XGBoost의 목적 함수: XGBoost는 $t$번째 단계의 목적 함수를 손실 함수 $L(y, \hat{y}^{(t-1)} + f_t(x))$에 대한 2차 테일러 전개로 근사합니다.$$\mathrm{Obj}^{(t)} = \sum_{i=1}^{n} L(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)) + \Omega(f_t) $$ $f_t(x_i)$에 대해 2차 테일러 전개를 하면,$$\mathrm{Obj}^{(t)} \approx \sum_{i=1}^{n} \left[ L(y_i, \hat{y}_i^{(t-1)}) + g_i f_t(x_i) + \frac{1}{2} h_i f_t^2(x_i) \right] + \Omega(f_t) $$
- $g_i = \left[ \frac{\partial L(y_i, \hat{y})}{\partial \hat{y}} \right]_{\hat{y}=\hat{y}_i^{(t-1)}}$: 1차 미분값 (Gradient)
- $h_i = \left[ \frac{\partial^2 L(y_i, \hat{y})}{\partial \hat{y}^2} \right]_{\hat{y}=\hat{y}_i^{(t-1)}}$: 2차 미분값 (Hessian)
- $\Omega(f_t) = \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2$: 트리의 복잡도를 제어하는 규제항. ($T$: 리프의 수, $w_j$: j번째 리프의 가중치, $\gamma, \lambda$: 하이퍼파라미터)
- 최적 리프 가중치 및 분할 이득: 이 2차 근사 형태의 목적 함수 덕분에, 주어진 트리 구조에 대한 최적의 리프 가중치 $w_j^*$를 해석적으로 구할 수 있습니다.$$w_j^* = -\frac{\sum_{i \in I_j} g_i}{\sum_{i \in I_j} h_i + \lambda} = -\frac{G_j}{H_j + \lambda} $$여기서 $G_j = \sum_{i \in I_j} g_i$, $H_j = \sum_{i \in I_j} h_i$ 입니다. 이를 다시 목적 함수에 대입하면, 트리의 구조가 얼마나 좋은지를 평가하는 점수를 얻을 수 있습니다. 트리를 분할할 때는 이 점수를 가장 많이 향상시키는, 즉 분할 이득(Split Gain)이 최대가 되는 분할을 선택합니다.$$\text{Gain} = \frac{1}{2}\left[\frac{G_L^2}{H_L+\lambda} + \frac{G_R^2}{H_R+\lambda} - \frac{(G_L+G_R)^2}{H_L+H_R+\lambda}\right] - \gamma $$여기서 $L,R$은 각각 분할 후 왼쪽과 오른쪽 노드를 의미합니다. 이처럼 XGBoost는 그래디언트뿐만 아니라 헤시안 정보까지 활용하여 트리의 구조를 결정하고 리프 값을 계산하므로 더 빠르고 정확한 학습이 가능합니다.
61. 차원의 저주(Curse of Dimensionality)란 무엇이며, 모델에 미치는 영향은?
답변: 차원의 저주는 데이터의 차원(특성의 수)이 증가할수록 발생하는 여러 문제점을 통칭하는 용어입니다. 차원이 높아지면 데이터 공간의 부피가 기하급수적으로 증가하여 데이터가 매우 희소(sparse)해집니다. 이로 인해 모델 학습에 필요한 데이터 양이 급격히 늘어나고, 계산 비용이 증가하며, 과적합 위험이 커지는 등 모델 성능에 심각한 악영향을 미칩니다.
상세 설명: 차원의 저주가 모델에 미치는 주요 영향은 다음과 같습니다.
- 데이터 희소성 (Sparsity): 고정된 수의 데이터 포인트가 있는 공간에서 차원이 증가하면, 데이터 포인트들은 서로 멀리 흩어지게 됩니다. 예를 들어, 1차원 선 [0, 1]에 10개의 점을 균일하게 뿌리는 것과 3차원 정육면체 $[0,1]^3$에 10개의 점을 뿌리는 것을 상상해보면, 3차원에서 점들 사이의 평균 거리는 훨씬 멉니다.
- 단위 초구(Unit Hypersphere)의 부피: $d$차원 단위 초구의 부피는 $V_d(r=1) = \frac{\pi^{d/2}}{\Gamma(d/2+1)}$로, 차원 $d$가 증가함에 따라 부피는 급격히 0에 수렴합니다. 이는 고차원 공간에서 데이터가 대부분 중심이 아닌 '모서리' 근처에 존재하게 됨을 의미합니다.
- 거리 척도의 무의미화: 고차원 공간에서는 특정 점에서 가장 가까운 이웃과 가장 먼 이웃까지의 거리가 거의 비슷해지는 현상이 발생합니다. 모든 점들이 서로 거의 동등하게 멀리 떨어져 있게 되어, k-최근접 이웃(k-NN)이나 군집화와 같이 거리에 기반한 알고리즘들의 성능이 저하됩니다.
- 과적합(Overfitting) 위험 증가: 차원이 높으면 모델이 학습해야 할 파라미터의 수가 늘어납니다. 제한된 데이터로 많은 파라미터를 학습시키면, 모델은 실제 데이터의 근본적인 패턴보다는 훈련 데이터의 노이즈까지 학습하게 되어 과적합될 위험이 매우 커집니다. 즉, 훈련 데이터에 대한 성능은 높지만 새로운 데이터에 대한 일반화 성능은 떨어집니다.
- 계산 비용 증가: 특성의 수가 늘어날수록 모델 학습 및 예측에 필요한 계산량과 메모리 요구량이 증가하여, 알고리즘이 비효율적이거나 현실적으로 사용 불가능하게 될 수 있습니다.
이러한 문제를 해결하기 위해 차원 축소(PCA, t-SNE 등), 특성 선택, 규제(Regularization)와 같은 기법들이 사용됩니다.
62. VC 차원(Vapnik–Chervonenkis Dimension)은 무엇이며, 일반화와의 관계는?
답변: VC 차원은 특정 모델(가설 집합 $\mathcal{H}$)의 수용력(capacity) 또는 복잡도를 측정하는 이론적 척도입니다. 이는 해당 모델이 얼마나 다양한 패턴을 학습할 수 있는지를 나타냅니다. VC 차원은 모델이 과적합 없이 일반화(generalization)할 수 있는 능력과 밀접한 관련이 있습니다. VC 차원이 낮을수록 일반화 가능성이 높고, 높을수록 과적합의 위험이 커집니다.
상세 설명:
- 정의: 어떤 모델(분류기)의 VC 차원은 그 모델이 산산조각 낼(shatter) 수 있는 데이터 포인트의 최대 개수입니다. $d$개의 포인트 집합을 산산조각 낸다는 것은, 그 점들에 대한 $2^d$개의 모든 가능한 이진 레이블링(binary labeling) 조합을 모델이 완벽하게 분류해낼 수 있음을 의미합니다.
- 예시: 2차원 평면에서 선형 분류기(직선)는 3개의 점은 어떻게 배치되든 산산조각 낼 수 있지만, 4개의 점은 (예: XOR 문제) 산산조각 낼 수 없습니다. 따라서 2D 선형 분류기의 VC 차원은 3입니다.
- 일반화와의 관계: VC 차원은 통계적 학습 이론에서 모델의 일반화 오차(실제 오차)와 훈련 오차(경험 오차) 사이의 관계를 설명하는 데 사용됩니다. 일반화 경계(Generalization Bound)는 다음과 같은 형태로 표현됩니다.$$R(h) \le R_S(h) + \sqrt{\frac{c \left( d \log\frac{2m}{d} + \log\frac{4}{\delta} \right)}{2m}} $$
- $R(h)$: 모델의 실제 오차 (Generalization Error)
- $R_S(h)$: 모델의 훈련 오차 (Training Error)
- $d$: 모델의 VC 차원
- $m$: 훈련 데이터의 크기
- $\delta$: 확률적 신뢰도 (보통 작은 값)
- 모델 복잡도 페널티: 오른쪽 두 번째 항은 모델 복잡도에 대한 페널티로 해석할 수 있습니다. 모델이 복잡할수록(VC 차원 $d$가 클수록) 이 항의 값은 커집니다.
- 데이터의 중요성: 훈련 데이터의 크기 $m$이 커질수록 페널티 항은 작아집니다. 즉, 데이터가 많을수록 복잡한 모델도 일반화가 잘 될 수 있습니다.
- Trade-off: 좋은 일반화 성능을 얻기 위해서는 훈련 오차($R_S(h)$)와 모델 복잡도 페널티 사이의 균형을 맞춰야 합니다. 너무 단순한 모델(낮은 $d$)은 훈련 오차가 커서 과소적합되고, 너무 복잡한 모델(높은 $d$)은 페널티 항이 커서 과적합됩니다. VC 차원은 이 trade-off를 이론적으로 설명하는 핵심 개념입니다.
63. One-Class SVM의 목적과 사용 문제는?
답변: One-Class SVM의 목적은 두 개 이상의 클래스를 분리하는 일반적인 SVM과 달리, 하나의 클래스에 속하는 데이터의 분포 경계를 학습하는 것입니다. 이를 통해 정상(normal) 데이터의 패턴을 학습하고, 그 경계에서 벗어나는 데이터 포인트를 이상치(outlier) 또는 특이치(novelty)로 탐지합니다.
주로 사용되는 문제는 다음과 같습니다.
- 이상치 탐지 (Outlier Detection): 대부분이 정상 데이터이고 비정상 데이터가 거의 없을 때, 비정상 데이터를 식별하는 문제 (예: 제조 공정에서의 불량품 검사).
- 특이치 탐지 (Novelty Detection): 훈련 데이터에는 정상 데이터만 존재하고, 테스트 시 처음 보는 새로운 유형의 데이터가 나타나는지 탐지하는 문제 (예: 시스템 침입 탐지, 스팸 메일 필터링).
상세 설명: One-Class SVM은 데이터를 고차원 특징 공간으로 매핑한 후, 원점(origin)과 데이터 포인트들을 분리하는 최대 마진(margin)의 초평면(hyperplane)을 찾는 방식으로 동작합니다.
- 원문제 (Primal Problem):$$\min_{w, \xi, \rho} \frac{1}{2}\|w\|^2 + \frac{1}{\nu n} \sum_{i=1}^{n} \xi_i - \rho $$subject to:$$w^\top \phi(x_i) \ge \rho - \xi_i, \quad \xi_i \ge 0 \quad \text{for all } i=1, \dots, n $$
- $w, \rho$: 초평면을 정의하는 파라미터.
- $\phi(x_i)$: 커널 함수에 의해 매핑된 고차원 특징 벡터.
- $\xi_i$: 일부 데이터가 마진 경계를 위반하는 것을 허용하는 슬랙 변수.
- $\nu \in (0,1]$: 하이퍼파라미터로, 훈련 데이터에서 이상치로 간주될 비율의 상한선이자, 서포트 벡터가 될 비율의 하한선을 제어합니다. $\nu$가 작을수록 더 많은 데이터를 정상으로 감싸는 부드러운 경계가 만들어집니다.
- 쌍대 문제 (Dual Problem): 실제 최적화는 계산이 용이한 쌍대 문제로 변환하여 풉니다.$$\max_{\alpha} -\frac{1}{2}\sum_{i,j}\alpha_i\alpha_j k(x_i,x_j) $$\textbf{subject to:}$$0 \le \alpha_i \le \frac{1}{\nu n}, \quad \sum_i \alpha_i=1 $$여기서 $k(x_i, x_j) = \phi(x_i)^\top \phi(x_j)$는 커널 함수입니다.
- 결정 함수 (Decision Function): 학습이 완료되면, 새로운 데이터 포인트 $x$에 대한 결정 함수는 다음과 같습니다.$$f(x) = \text{sgn}\left(\sum_i \alpha_i k(x_i, x) - \rho\right) $$결정 함수의 값이 +1이면 정상(inlier) 데이터, -1이면 이상치(outlier)로 판별됩니다. 이는 새로운 점이 학습된 데이터 분포의 경계 안쪽에 있는지 바깥쪽에 있는지를 판단하는 것과 같습니다.
64. 계층적 군집화의 연결(Linkage) 기준 3가지
답변: 계층적 군집화에서 연결 기준(Linkage Criterion)은 군집과 군집 사이의 거리를 측정하는 방법을 정의하며, 어떤 군집들을 병합할지 결정하는 데 사용됩니다. 대표적인 3가지 기준은 다음과 같습니다.
- 단일 연결 (Single Linkage): 두 군집에 속한 데이터 포인트들 사이의 최단 거리를 군집 간 거리로 정의합니다.
- 완전 연결 (Complete Linkage): 두 군집에 속한 데이터 포인트들 사이의 최장 거리를 군집 간 거리로 정의합니다.
- 평균 연결 (Average Linkage): 두 군집에 속한 모든 데이터 포인트 쌍 사이의 평균 거리를 군집 간 거리로 정의합니다.
상세 설명: 두 군집 $A$와 $B$가 있을 때, 각 연결 기준은 수학적으로 다음과 같이 정의됩니다.
- 단일 연결 (Single Linkage / MIN):$$d_{\text{단일}}(A, B) = \min_{x \in A, y \in B} \|x - y\| $$특징: 길고 가는 형태의 군집을 잘 찾아내지만, 노이즈나 이상치에 민감하여 군집들이 다리처럼 연결되는 '연쇄 효과(chaining effect)'가 발생할 수 있습니다.
- 완전 연결 (Complete Linkage / MAX):$$d_{\text{완전}}(A, B) = \max_{x \in A, y \in B} \|x - y\| $$특징: 군집 내 데이터들이 모두 가깝게 뭉쳐 있는 컴팩트한 구형 군집을 형성하는 경향이 있습니다. 단일 연결보다 이상치에 덜 민감하지만, 군집의 크기가 다를 경우 성능이 저하될 수 있습니다.
- 평균 연결 (Average Linkage / UPGMA):$$d_{\text{평균}}(A, B) = \frac{1}{|A||B|} \sum_{x \in A} \sum_{y \in B} \|x - y\| $$특징: 단일 연결과 완전 연결의 절충안으로, 이상치에 비교적 강건하고 합리적인 형태의 군집을 형성하는 경향이 있습니다.
- 워드 연결 (Ward's Linkage): 위 3가지 외에 널리 사용되는 기준으로, 두 군집을 병합했을 때 군집 내 편차 제곱합(within-cluster sum of squares)의 증가량을 최소화하는 방향으로 군집을 병합합니다.$$\Delta(A, B) = \frac{|A||B|}{|A|+|B|} \|c_A - c_B\|^2 $$여기서 $c_A$와 $c_B$는 각 군집의 중심점입니다. 이 방법은 크기가 비슷한 구형 군집을 만드는 데 효과적입니다.
65. 칼만 필터(Kalman Filter)의 목적 함수는 무엇을 최소화하는 것과 관련?
답변: 칼만 필터는 명시적인 단일 목적 함수를 한번에 최적화하는 방식은 아니지만, 각 시간 단계에서 추정 오차의 공분산(error covariance)을 최소화하는 재귀적인 베이즈 추정기입니다. 시스템과 측정 모델이 선형이고 노이즈가 가우시안 분포를 따른다는 가정 하에, 칼만 필터의 추정치는 평균 제곱 오차(Mean Squared Error, MSE)를 최소화하는 최적의 추정치(optimal estimate)가 됩니다.
상세 설명: 칼만 필터는 동적 시스템의 상태를 시간에 따라 추정하기 위한 알고리즘으로, 두 단계(예측과 갱신)를 반복합니다.
- 시스템 모델:
- 상태 전이 모델: $x_t = A x_{t-1} + B u_t + w_{t-1}$ (시스템 노이즈 $w \sim \mathcal{N}(0,Q)$)
- 측정 모델: $z_t = H x_t + v_t$ (측정 노이즈 $v \sim \mathcal{N}(0,R)$)
필터의 목표는 이전 상태의 추정치와 현재의 측정치를 사용하여 현재 상태 $x_t$의 사후 확률 분포(posterior distribution)를 찾는 것입니다. 가우시안 가정 하에서 이 분포는 평균과 공분산으로 완전히 설명됩니다. 칼만 필터는 이 사후 분포의 평균($\hat{x}_{t|t}$)과 공분산($P_{t|t}$)을 계산합니다.
- 예측 (Prediction) 단계: 이전 시간($t-1$)의 상태 추정치를 사용하여 현재 시간($t$)의 상태를 예측합니다.
- 상태 예측: $\hat{x}_{t|t-1} = A \hat{x}_{t-1|t-1} + B u_t$
- 오차 공분산 예측: $P_{t|t-1} = A P_{t-1|t-1} A^\top + Q$
- 갱신 (Update) 단계: 현재 시간($t$)의 측정치 $z_t$를 사용하여 예측된 상태를 보정(갱신)합니다. 이 단계에서 오차 공분산을 최소화하는 것이 핵심입니다.
- 칼만 이득 (Kalman Gain) 계산:$$K_t = P_{t|t-1} H^\top (H P_{t|t-1} H^\top + R)^{-1}$$칼만 이득 $K_t$는 예측 오차 공분산($P_{t|t-1}$)과 측정 노이즈 공분산($R$) 사이의 상대적인 불확실성을 나타냅니다. 예측의 불확실성이 크면 $K_t$가 커져 측정치를 더 많이 신뢰하고, 측정 노이즈가 크면 $K_t$가 작아져 예측치를 더 많이 신뢰하게 됩니다. 이 $K_t$ 값은 사후 오차 공분산 $P_{t|t}$의 대각합(trace)을 최소화하도록 유도됩니다.
- 상태 갱신:$$\hat{x}_{t|t} = \hat{x}_{t|t-1} + K_t (z_t - H \hat{x}_{t|t-1})$$
- 오차 공분산 갱신:$$P_{t|t} = (I - K_t H) P_{t|t-1}$$결론적으로, 칼만 필터는 매 단계에서 칼만 이득을 최적으로 계산하여 사후 추정 오차 공분산을 최소화함으로써, 불확실한 동적 시스템에서 가장 정확한 상태 추정을 재귀적으로 수행합니다.
66. SMOTE는 어떻게 동작하며 어떤 문제를 해결하나요?
답변: SMOTE(Synthetic Minority Over-sampling Technique)는 기계 학습에서 클래스 불균형(Class Imbalance) 문제를 해결하기 위한 오버샘플링(Oversampling) 기법입니다. 소수 클래스의 기존 샘플을 단순히 복제하는 대신, 소수 클래스 데이터 포인트와 그 이웃 데이터 포인트들 사이의 공간에 새로운 합성 샘플(synthetic samples)을 생성합니다. 이를 통해 소수 클래스의 결정 경계(decision boundary)를 확장하고, 모델이 소수 클래스의 특징을 더 잘 일반화하도록 도와 과적합을 완화합니다.
상세 설명: SMOTE 알고리즘의 동작 방식은 다음과 같습니다.
- 소수 클래스 샘플 선택: 소수 클래스에 속하는 임의의 샘플 $x$를 선택합니다.
- k-최근접 이웃 찾기: $x$로부터 유클리드 거리가 가장 가까운 $k$개의 이웃 샘플을 소수 클래스 내에서 찾습니다 (일반적으로 $k=5$).
- 이웃 중 하나를 무작위 선택: 찾은 $k$개의 이웃 중에서 하나($x_{nn}$)를 무작위로 선택합니다.
- 합성 샘플 생성: 선택된 샘플 $x$와 이웃 샘플 $x_{nn}$을 잇는 직선상에 새로운 합성 샘플 $x_{\text{new}}$를 생성합니다.$$x_{\text{new}} = x + \lambda(x_{nn} - x), \quad \text{여기서 } \lambda \sim \mathcal{U}(0, 1)$$$\lambda$는 0과 1 사이의 랜덤 값으로, 두 점 사이의 어느 지점에 새 샘플을 생성할지를 결정합니다.
이 과정을 필요한 만큼 반복하여 소수 클래스의 샘플 수를 다수 클래스와 비슷하게 맞춥니다.
- SMOTE의 장점:
- 단순 복제(random oversampling)와 달리 새로운 정보를 추가하여 모델의 과적합 가능성을 줄입니다.
- 소수 클래스에 대한 모델의 결정 영역을 더 넓고 명확하게 만들어 일반화 성능을 향상시킵니다.
- 변형 알고리즘: 기본 SMOTE는 클래스 경계가 겹치는 영역에 노이즈를 생성할 수 있는 단점이 있어, 이를 개선한 여러 변형 알고리즘이 제안되었습니다.
- Borderline-SMOTE: 클래스 경계 근처에 있는, 즉 다수 클래스 샘플과 인접한 소수 클래스 샘플들만 선택하여 합성 데이터를 생성합니다.
- ADASYN (Adaptive Synthetic Sampling): 주변에 다수 클래스 샘플이 많아 분류하기 어려운 소수 클래스 샘플 주변에 더 많은 합성 데이터를 집중적으로 생성합니다.
67. 정준 상관 분석(Canonical Correlation Analysis, CCA)의 목적 함수는 무엇을 최대화하나요?
답변: 정준 상관 분석(CCA)의 목적은 두 개의 다변량 변수 집합 $X$와 $Y$가 주어졌을 때, 각 집합의 변수들을 선형 결합하여 만든 새로운 변수 쌍(정준 변수, canonical variates) $U = a^\top X$와 $V = b^\top Y$ 간의 상관계수($\rho$)를 최대화하는 것입니다. 즉, 두 변수 집합 간의 잠재적인 선형 관계를 가장 잘 설명하는 투영 방향($a,b$)을 찾는 것을 목표로 합니다.
상세 설명: $p$개의 변수를 갖는 $X$와 $q$개의 변수를 갖는 $Y$가 있다고 가정합니다. CCA는 이 두 변수 집합 사이의 상호 관련성을 분석합니다.
- 목적 함수: CCA는 정준 변수 $U = a^\top X$와 $V = b^\top Y$의 상관계수 $\rho = \text{corr}(U, V)$를 최대화하는 가중치 벡터 $a$와 $b$를 찾습니다. 상관계수는 공분산과 분산을 이용하여 다음과 같이 표현됩니다.$$\max_{a,b} \rho = \frac{\text{Cov}(a^\top X, b^\top Y)}{\sqrt{\text{Var}(a^\top X) \text{Var}(b^\top Y)}} = \frac{a^\top \Sigma_{XY} b}{\sqrt{(a^\top \Sigma_{XX} a)(b^\top \Sigma_{YY} b)}} $$
- $\Sigma_{XX}$: $X$의 공분산 행렬
- $\Sigma_{YY}$: $Y$의 공분산 행렬
- $\Sigma_{XY}$: $X$와 $Y$의 교차 공분산 행렬
- 제약 조건 및 해법: 이 목적 함수는 $a$와 $b$의 크기를 키우면 무한히 커질 수 있으므로, 의미 있는 해를 얻기 위해 제약 조건이 필요합니다. 일반적으로 정준 변수의 분산을 1로 고정합니다.$$\text{Var}(a^\top X) = a^\top \Sigma_{XX} a = 1 $$ $$ \text{Var}(b^\top Y) = b^\top \Sigma_{YY} b = 1 $$이 제약 조건 하에서 목적 함수는 공분산 $a^\top \Sigma_{XY} b$를 최대화하는 문제가 됩니다. 이 문제는 라그랑주 승수법을 통해 일반화된 고유값 문제(generalized eigenvalue problem)로 변환하여 풀 수 있습니다.$$\Sigma_{XX}^{-1} \Sigma_{XY} \Sigma_{YY}^{-1} \Sigma_{YX} a = \rho^2 a $$ $$ \Sigma_{YY}^{-1} \Sigma_{YX} \Sigma_{XX}^{-1} \Sigma_{XY} b = \rho^2 b $$이 문제의 해로 여러 개의 고유값($\rho^2$)과 그에 대응하는 고유벡터($a,b$) 쌍을 얻을 수 있습니다. 가장 큰 고유값에 해당하는 것이 첫 번째 정준 상관계수와 정준 변수 쌍이며, 그 다음으로 큰 것들이 두 번째, 세 번째 쌍이 됩니다. 각 정준 변수 쌍은 이전 쌍들과는 직교(uncorrelated)합니다.
68. PLS가 PCA 기반 회귀보다 유용한 경우
답변: 부분 최소 제곱(Partial Least Squares, PLS) 회귀는 예측 변수 X와 반응 변수 Y 간의 공분산을 최대화하는 잠재 변수(latent variables)를 찾는 반면, 주성분(PCA) 회귀는 X 자체의 분산을 최대화하는 주성분을 찾은 후 이를 회귀에 사용합니다. 따라서 PLS는 예측이 주된 목표이고, 특히 X 변수들 간에 다중공선성(multicollinearity)이 높은 상황에서 PCA 회귀보다 더 유용한 경우가 많습니다. PCA가 찾아낸 분산이 큰 방향이 Y를 예측하는 데 반드시 중요하지 않을 수 있지만, PLS는 처음부터 Y와의 관계를 고려하여 잠재 변수를 추출하기 때문입니다.
상세 설명:
- PCA 회귀 (Principal Component Regression):
- PCA 수행: 예측 변수 $X$에 대해 PCA를 수행하여 데이터의 분산을 가장 잘 설명하는 주성분들($PC_1, PC_2, \dots$)을 찾습니다. 이 과정에서 반응 변수 $Y$는 전혀 고려되지 않습니다.
- 회귀 수행: 상위 $k$개의 주성분을 새로운 예측 변수로 사용하여 $Y$에 대한 선형 회귀를 수행합니다.
- 문제점: $X$의 분산이 큰 방향(주성분)이 $Y$를 설명하는 데는 중요하지 않을 수 있습니다. 예를 들어, 분산이 매우 작은 특정 방향이 $Y$와는 강한 상관관계를 가질 수 있는데, PCA는 이러한 방향을 무시할 가능성이 높습니다.
- PLS 회귀 (Partial Least Squares Regression):
- 잠재 변수 추출: PLS는 $X$의 분산과 $Y$와의 공분산을 동시에 고려하여 잠재 변수(성분) $t$를 추출합니다. 즉, $X$를 잘 설명하면서 동시에 $Y$를 잘 예측하는 방향을 찾습니다.
- 회귀 수행: 추출된 잠재 변수들을 사용하여 $X$와 $Y$에 대한 회귀를 동시에 수행합니다.
- 목적: NIPALS와 같은 알고리즘에서 PLS는 $X$의 가중치 벡터 $w$와 $Y$의 가중치 벡터 $c$를 찾아, $X$의 성분 $t=Xw$와 $Y$의 성분 $u=Yc$ 사이의 공분산을 최대화하는 것을 목표로 합니다.$$\max_{w,c} \text{Cov}(Xw, Yc) = \max_{w,c} w^T X^T Yc \quad \text{s.t.} \quad \|w\|=\|c\|=1$$
- 장점: 처음부터 $Y$ 정보를 활용하기 때문에, 예측에 더 직접적으로 관련된 잠재 변수를 찾을 수 있습니다. 이는 특히 고차원 데이터(변수 > 샘플 수)나 다중공선성이 심한 데이터에서 더 안정적이고 우수한 예측 성능을 보이는 경향이 있습니다.
결론: PCA 회귀는 X의 구조를 파악하는 데 중점을 두는 반면, PLS는 X와 Y의 관계를 모델링하여 예측력을 극대화하는 데 더 중점을 둡니다.
69. 아이솔레이션 포레스트는 어떻게 이상치를 탐지하나요?
답변: 아이솔레이션 포레스트(Isolation Forest)는 "이상치는 소수이며 다르다"는 기본 가정에서 출발합니다. 이 특성 때문에 이상치는 정상 데이터보다 더 쉽게 고립(isolate)될 수 있다고 봅니다. 알고리즘은 다수의 무작위 결정 트리(Isolation Trees)를 생성하여 각 데이터 포인트를 고립시키는 데 필요한 평균 경로 길이(average path length)를 측정합니다. 정상 데이터 포인트는 고립시키기 위해 많은 분할(긴 경로)이 필요한 반면, 이상치는 적은 수의 분할(짧은 경로)만으로도 쉽게 고립되므로, 평균 경로 길이가 짧을수록 이상치일 확률이 높다고 판단합니다.
상세 설명: 아이솔레이션 포레스트의 이상치 탐지 과정은 다음과 같습니다.
- 아이솔레이션 트리(iTree) 생성:
- 데이터셋에서 무작위로 서브샘플을 추출합니다.
- 추출된 샘플로 트리를 만듭니다. 트리의 각 노드에서는 무작위로 하나의 특성(feature)을 선택하고, 그 특성의 최소값과 최대값 사이에서 무작위로 분할 값(split value)을 선택하여 데이터를 두 그룹으로 나눕니다.
- 이 과정을 데이터 포인트가 하나만 남거나(고립되거나) 트리의 최대 깊이에 도달할 때까지 재귀적으로 반복합니다.
- 이러한 iTree를 여러 개(보통 100개 이상) 생성하여 포레스트를 구성합니다.
- 경로 길이 측정: 각 데이터 포인트 $x$에 대해, 포레스트의 모든 트리를 통과시키면서 루트 노드에서 해당 포인트가 고립된 리프 노드까지 도달하는 데 거친 경로 길이(path length) $h(x)$를 측정합니다.
- 이상치 점수(Anomaly Score) 계산: 포인트 $x$에 대한 모든 트리의 경로 길이 평균 $E[h(x)]$를 계산합니다. 이 평균 경로 길이를 정규화하여 0과 1 사이의 이상치 점수 $s(x,n)$를 계산합니다.$$s(x,n) = 2^{-\frac{E[h(x)]}{c(n)}}$$
- $E[h(x)]$: 샘플 $x$의 평균 경로 길이.
- $c(n) = 2H_{n-1} - \frac{2(n-1)}{n}$: 데이터 $n$개에 대한 이진 탐색 트리의 평균 경로 길이로, 정규화를 위한 기준값 역할을 합니다. ($H_k$는 조화수)
- 판단 기준:
- $s(x,n)$가 1에 가까우면 ($E[h(x)] \to 0$): 평균 경로 길이가 매우 짧다는 의미이므로, 해당 데이터는 이상치일 가능성이 매우 높습니다.
- $s(x,n)$가 0.5보다 작으면 ($E[h(x)] \to c(n)$): 평균 경로 길이가 길다는 의미이므로, 정상 데이터일 가능성이 높습니다.
- $s(x,n)$가 0.5 근처이면: 명확한 판단을 내리기 어렵습니다.
이 방식은 데이터의 분포나 거리를 가정하지 않기 때문에 다양한 형태의 데이터에 적용 가능하며, 계산 효율성이 매우 높다는 장점이 있습니다.
70. 베이지안 최적화는 어떤 문제를 풀며, 목적 함수는?
답변: 베이지안 최적화(Bayesian Optimization)는 미분 불가능하거나 해석적인 형태를 알 수 없는 블랙박스 함수(black-box function)의 최댓값(또는 최솟값)을 찾는 문제를 해결하는 데 사용됩니다. 특히, 함수의 평가 비용이 매우 큰 경우(예: 딥러닝 모델의 하이퍼파라미터 튜닝, 고가의 시뮬레이션 최적화)에 효과적입니다.
베이지안 최적화는 명시적인 단일 목적 함수를 직접 최적화하는 대신, 두 가지 핵심 요소를 사용합니다.
- 대리 모델 (Surrogate Model): 실제 블랙박스 함수를 근사하는 확률적 모델 (주로 가우시안 프로세스 사용).
- 획득 함수 (Acquisition Function): 대리 모델의 예측을 바탕으로 다음에 어떤 입력을 평가할지 결정하는 함수.
베이지안 최적화의 각 단계에서의 목적 함수는 이 '획득 함수'를 최대화하는 것입니다.
상세 설명: 베이지안 최적화의 과정은 다음과 같습니다.
- 대리 모델(Surrogate Model) 구축: 지금까지 관측된 입력-출력 쌍 $(x_i, f(x_i))$들을 바탕으로 실제 목적 함수 $f(x)$에 대한 확률적 믿음을 모델링합니다. 주로 가우시안 프로세스(Gaussian Process, GP)가 사용됩니다. GP는 각 점 $x$에서의 함수 값에 대한 예측 평균 $\mu_t(x)$와 불확실성을 나타내는 분산 $\sigma_t^2(x)$를 제공합니다.$$f(x) \sim \mathcal{N}(\mu_t(x), \sigma_t^2(x))$$
- 획득 함수(Acquisition Function) 최대화: 대리 모델의 예측($\mu_t(x), \sigma_t^2(x)$)을 사용하여, 다음에 어떤 점 $x$를 평가하는 것이 가장 "유리"할지를 결정합니다. 이 '유리함'을 정량화한 것이 획득 함수이며, 이 함수는 탐색(Exploration, 불확실성이 큰 곳을 시도)과 활용(Exploitation, 현재까지 가장 좋았던 곳 주변을 시도) 사이의 균형을 맞춥니다. 다음 평가 지점 $x_{t+1}$은 획득 함수를 최대화하는 지점으로 선택됩니다.$$x_{t+1} = \arg\max_x \alpha(x)$$대표적인 획득 함수는 다음과 같습니다.
- 기대 향상 (Expected Improvement, EI): 현재까지 찾은 최댓값 $f(x^+)$보다 더 큰 값을 얻을 것이라는 기댓값을 최대화합니다.$$\text{EI}(x) = \mathbb{E}[\max(0, f(x) - f(x^+))]$$
- 신뢰 상한 (Upper Confidence Bound, UCB): 예측 평균값에 불확실성의 일정 배수를 더한 값을 최대화하여, 예측값이 높거나 불확실성이 큰 지점을 선호합니다.$$\text{UCB}(x) = \mu_t(x) + \kappa \sigma_t(x)$$($\kappa$는 탐색-활용 균형을 조절하는 파라미터)
- 블랙박스 함수 평가 및 대리 모델 갱신: 획득 함수를 최대화하는 지점 $x_{t+1}$에서 실제 블랙박스 함수 $f(x_{t+1})$을 평가하고, 새로운 관측치 $(x_{t+1}, f(x_{t+1}))$를 데이터에 추가하여 대리 모델을 갱신합니다.
이 과정을 예산이 소진될 때까지 반복합니다.
71. 칼린스키-하라바츠 점수(CH)는 어떻게 평가하나요?
답변: 칼린스키-하라바츠(Calinski-Harabasz) 점수, 또는 분산 비율 기준(Variance Ratio Criterion)은 군집화 결과를 평가하는 내부 지표(internal evaluation metric)입니다. 이 점수는 군집 간 분산(between-cluster variance)은 최대화하고 군집 내 분산(within-cluster variance)은 최소화하는 것을 목표로 합니다. 즉, 군집들이 서로는 멀리 떨어져 있고, 각 군집 내 데이터들은 밀집해 있을수록 높은 점수를 부여합니다. 따라서 CH 점수는 값이 클수록 군집화가 잘 되었다고 평가합니다.
상세 설명: CH 점수는 군집 간 분산과 군집 내 분산의 비율로 계산됩니다.
- 수식:$$\text{CH} = \frac{\text{Tr}(S_B)}{\text{Tr}(S_W)} \times \frac{N-k}{k-1}$$
- $N$: 전체 데이터 포인트의 수
- $k$: 군집의 수
- $S_B$: 군집 간 산포 행렬 (Between-cluster scatter matrix)
- $S_W$: 군집 내 산포 행렬 (Within-cluster scatter matrix)
- $\text{Tr}(\cdot)$: 행렬의 대각합(Trace)으로, 분산의 총합을 의미합니다.
- 산포 행렬의 정의:
- 군집 간 산포 ($S_B$): 각 군집의 중심점이 전체 데이터의 중심점으로부터 얼마나 흩어져 있는지를 측정합니다. 이 값이 클수록 군집들이 서로 멀리 떨어져 있음을 의미합니다.$$S_B = \sum_{j=1}^{k} n_j (c_j - c)(c_j - c)^T$$
- $n_j$: 군집 $j$에 속한 데이터 수
- $c_j$: 군집 $j$의 중심점
- $c$: 전체 데이터의 중심점
- 군집 내 산포 ($S_W$): 각 군집 내에서 데이터 포인트들이 자신의 군집 중심점으로부터 얼마나 흩어져 있는지를 측정합니다. 이 값이 작을수록 군집이 조밀하고 밀집되어 있음을 의미합니다.$$S_W = \sum_{j=1}^{k} \sum_{x \in C_j} (x - c_j)(x - c_j)^T$$
- $C_j$: 군집 $j$에 속한 데이터 포인트 집합
- 군집 간 산포 ($S_B$): 각 군집의 중심점이 전체 데이터의 중심점으로부터 얼마나 흩어져 있는지를 측정합니다. 이 값이 클수록 군집들이 서로 멀리 떨어져 있음을 의미합니다.$$S_B = \sum_{j=1}^{k} n_j (c_j - c)(c_j - c)^T$$
CH 점수는 $\frac{\text{Tr}(S_B)}{\text{Tr}(S_W)}$ 비율에 군집 수 k에 대한 페널티 항($\frac{N-k}{k-1}$)을 곱하여 계산됩니다. 이 페널티 항은 군집 수가 너무 많아지는 것을 방지하는 역할을 합니다. 이 지표는 최적의 군집 수 k를 찾는 데 널리 사용됩니다.
72. 데이비스-볼딘 지수(DB)는 어떻게 평가하나요?
답변: 데이비스-볼딘 지수(Davies-Bouldin Index, DB)는 군집화 결과를 평가하는 또 다른 내부 지표입니다. 이 지수는 각 군집이 자신과 가장 유사한(가장 분리가 안 된) 다른 군집과의 유사도 비율을 평균하여 계산합니다. 군집 내 데이터들의 분산(밀집도)은 작고, 군집 간 중심점 거리는 멀수록 좋은 군집으로 평가합니다. 따라서 DB 지수는 값이 낮을수록 군집화가 더 잘 되었다고 평가합니다.
상세 설명: DB 지수는 다음의 개념을 바탕으로 계산됩니다.
- 군집 내 분산 (Intra-cluster dispersion): 각 군집이 얼마나 밀집되어 있는지를 측정합니다.
- 군집 간 거리 (Inter-cluster distance): 군집들이 서로 얼마나 멀리 떨어져 있는지를 측정합니다.
- 수식: DB 지수는 각 군집 $C_i$에 대해, 가장 유사도가 높은 다른 군집 $C_j$를 찾은 뒤, 그 유사도 값들을 평균 내어 계산합니다.$$\text{DB} = \frac{1}{k} \sum_{i=1}^{k} \max_{i \ne j} \left( \frac{\sigma_i + \sigma_j}{d(c_i, c_j)} \right)$$
- $k$: 군집의 수
- $\sigma_i$: 군집 $C_i$ 내의 모든 점과 중심점 $c_i$ 사이의 평균 거리. 군집의 '크기' 또는 '분산'을 나타냅니다.$$\sigma_i = \frac{1}{|C_i|} \sum_{x \in C_i} \|x - c_i\|$$
- $d(c_i, c_j)$: 군집 $C_i$의 중심점 $c_i$와 군집 $C_j$의 중심점 $c_j$ 사이의 거리. $d(c_i, c_j) = \|c_i - c_j\|$
- 해석: 괄호 안의 비율 $\frac{\sigma_i + \sigma_j}{d(c_i, c_j)}$은 두 군집 $C_i$와 $C_j$의 유사도를 나타냅니다. 분자(군집 크기의 합)가 작고 분모(군집 간 거리)가 클수록, 두 군집은 잘 분리된 것이며 이 비율 값은 작아집니다. $\max_{i \ne j}$ 부분은 각 군집 $C_i$에 대해 가장 분리가 안 된 '최악의 경우'를 찾는 것을 의미합니다. 최종적으로 이 '최악의 경우' 유사도들을 모든 군집에 대해 평균 낸 것이 DB 지수입니다. 따라서 이 값이 작다는 것은 모든 군집들이 평균적으로 자신과 가장 가까운 군집과도 잘 분리되어 있음을 의미합니다.
73. 'No Free Lunch' 정리가 시사하는 바는?
답변: '공짜 점심은 없다(No Free Lunch, NFL)' 정리는 기계 학습과 최적화 분야에서 모든 문제에 대해 보편적으로 가장 뛰어난 단 하나의 알고리즘은 존재하지 않는다는 것을 의미합니다. 즉, 어떤 알고리즘이 특정 종류의 문제에서 뛰어난 성능을 보인다고 해서, 다른 종류의 문제에서도 항상 최고의 성능을 보장하지는 않는다는 것입니다.
이 정리가 시사하는 바는, 성공적인 모델을 구축하기 위해서는 해결하려는 문제와 데이터의 특성을 깊이 이해하고, 그에 적합한 알고리즘(모델)을 신중하게 선택하거나 여러 모델을 비교·평가해야 한다는 것입니다.
상세 설명:
- 이론적 의미: NFL 정리는 모든 가능한 문제들의 집합에 대해 모든 최적화 알고리즘의 평균 성능을 계산하면, 그 성능이 모두 동일하다는 것을 수학적으로 증명합니다.$$E_{\text{문제}}[\text{성능}(A_1)] = E_{\text{문제}}[\text{성능}(A_2)]$$여기서 $A_1$과 $A_2$는 임의의 두 알고리즘입니다. 이는 어떤 알고리즘이 특정 문제들에서 얻는 이점은, 반드시 다른 문제들에서 치르는 손실과 상쇄된다는 의미입니다.
- 실용적 시사점:
- 가정의 중요성 (Inductive Bias): 알고리즘의 성능은 그 알고리즘이 내포한 '가정(assumption)' 또는 '편향(bias)'이 실제 문제의 특성과 얼마나 잘 부합하는지에 따라 결정됩니다. 예를 들어, 선형 회귀는 데이터에 선형 관계가 있다는 가정을 하고, 결정 트리는 축에 평행한 경계로 데이터를 나눌 수 있다는 가정을 합니다. 데이터가 이 가정에 맞으면 해당 알고리즘은 좋은 성능을 보입니다.
- 모델 선택의 필요성: "최고의 분류기는 무엇인가?"라는 질문은 의미가 없습니다. 대신 "이 데이터와 문제에 가장 적합한 분류기는 무엇인가?"라고 질문해야 합니다. 이것이 데이터 사이언티스트가 다양한 모델을 배우고, 교차 검증(cross-validation)과 같은 기법을 통해 여러 모델의 성능을 경험적으로 비교하고 평가하는 이유입니다.
- 특성 공학(Feature Engineering)의 가치: 데이터에 대한 사전 지식을 활용하여 모델의 가정이 더 잘 들어맞도록 데이터를 가공(특성 공학)하는 작업은 모델의 성능을 크게 향상시킬 수 있습니다.
결론적으로, NFL 정리는 기계 학습이 '만능 열쇠'를 찾는 작업이 아니라, 주어진 문제와 데이터에 맞는 '맞춤형 도구'를 찾는 과정임을 상기시켜 줍니다.
74. 릿지 회귀가 다중공선성에 강한 이유(목적 함수 관점)
답변: 릿지(Ridge) 회귀는 일반적인 최소 제곱법(OLS)의 목적 함수에 계수(coefficient)의 제곱합(L2 norm)에 비례하는 규제항을 추가합니다. 다중공선성(multicollinearity)이 존재할 경우, OLS의 계수는 매우 불안정해지고 그 크기가 비정상적으로 커지는 경향이 있습니다. 릿지 회귀의 규제항은 계수의 크기가 과도하게 커지는 것을 억제하는 페널티 역할을 하여, 계수를 안정화시키고 다중공선성으로 인한 문제를 완화합니다.
상세 설명:
- OLS와 다중공선성 문제: OLS의 목적 함수는 잔차 제곱합(RSS)을 최소화하는 것입니다: $\min_{\beta} \|y - X\beta\|^2$. 해는 $\hat{\beta} = (X^T X)^{-1} X^T y$로 주어집니다. 다중공선성이 존재하면 예측 변수들 간에 강한 선형 관계가 있어 $X^T X$ 행렬이 거의 특이 행렬(singular matrix)에 가까워집니다. 이 경우 역행렬 $(X^T X)^{-1}$의 일부 원소 값이 매우 커져서, 데이터에 작은 변화만 있어도 계수 $\hat{\beta}$가 매우 크게 변동하는 불안정한 상태가 됩니다.
- 릿지 회귀의 목적 함수와 해법: 릿지 회귀는 RSS에 L2 페널티 항을 더한 것을 최소화합니다.$$\min_{\beta} \left( \|y - X\beta\|^2 + \lambda \sum_{j=1}^{p} \beta_j^2 \right)$$
- $\lambda \ge 0$: 규제의 강도를 조절하는 튜닝 파라미터. $\lambda$가 클수록 계수는 0에 가깝게 수축(shrink)됩니다.
- 이 목적 함수의 해는 다음과 같습니다.$$\hat{\beta}_{\text{ridge}} = (X^T X + \lambda I)^{-1} X^T y$$
- 핵심 원리: $X^T X$ 행렬에 양의 상수 $\lambda$를 갖는 단위 행렬($\lambda I$)을 더해주는 것이 핵심입니다. 이 작업은 $X^T X$가 특이 행렬에 가깝더라도 $(X^T X + \lambda I)$는 항상 역행렬을 가지게 만듭니다. 즉, 행렬을 안정적인 상태(well-conditioned)로 만들어 주어, OLS에서 발생했던 역행렬 계산의 불안정성 문제를 해결합니다.
- SVD 관점에서의 해석: SVD(특이값 분해)를 통해 보면, OLS 계수는 데이터 행렬 X의 작은 특이값(singular value)에 매우 민감합니다. 다중공선성은 작은 특이값들을 유발하며, OLS 해를 구할 때 이 작은 값들의 역수가 곱해지면서 계수가 폭주하게 됩니다. 릿지 회귀는 각 성분에 대한 축소율(shrinkage factor)이 $\frac{\sigma_j^2}{\sigma_j^2 + \lambda}$로 작용하여, 특이값 $\sigma_j$가 작은 불안정한 성분에 대해서는 더 강한 수축을 적용합니다. 이로써 모델의 분산을 줄이고 안정성을 높입니다.
75. 필터/래퍼/임베디드 특성 선택 방법의 차이
답변: 특성 선택(Feature Selection) 방법은 모델 학습 과정과의 관계에 따라 크게 세 가지로 분류됩니다.
- 필터 (Filter) 방법: 모델 학습과 독립적으로, 데이터의 통계적 특성만을 사용하여 특성들의 순위를 매기거나 부분집합을 선택합니다. 계산 속도가 매우 빠르지만, 특성 간의 상호작용이나 특정 모델과의 적합성은 고려하지 않습니다.
- 래퍼 (Wrapper) 방법: 특정 모델을 '감싸서(wrap)', 해당 모델의 성능 평가(예: 교차 검증 정확도)를 기준으로 삼아 최적의 특성 부분집합을 탐색합니다. 성능은 우수하지만, 가능한 모든 부분집합을 탐색해야 하므로 계산 비용이 매우 큽니다.
- 임베디드 (Embedded) 방법: 모델 학습 과정 자체에 특성 선택이 내장되어 있습니다. 학습을 진행하면서 중요하지 않은 특성의 영향력을 줄이거나(예: 계수를 0으로 만듦) 특성의 중요도를 평가합니다. 필터와 래퍼 방법의 장점을 절충한 방식입니다.
상세 설명:
| 구분 | 필터 (Filter) | 래퍼 (Wrapper) | 임베디드 (Embedded) |
| 핵심 아이디어 | 데이터의 내재적 속성으로 평가 | 모델 성능으로 특성 부분집합 평가 | 모델 학습 과정에 특성 선택 포함 |
| 모델 의존성 | 모델과 독립적 | 특정 모델에 의존적 | 특정 모델에 의존적 |
| 평가 기준 | 상관계수, 카이제곱, 정보 이득(Mutual Information), ANOVA F-값 등 | 교차 검증 정확도, AUC 등 모델 성능 지표 | 모델의 손실 함수 + 규제항, 특성 중요도 |
| 장점 | - 계산 속도가 매우 빠름 - 모델 과적합 위험이 적음 |
- 모델과 특성 간 상호작용 고려 - 높은 예측 성능을 기대할 수 있음 |
- 래퍼보다 계산 효율적 - 필터보다 높은 성능 |
| 단점 | - 특성 간 상호작용 무시 - 선택된 특성이 모델에 최적이 아닐 수 있음 |
- 계산 비용이 매우 큼 - 특성 수가 많으면 적용 어려움 - 모델 과적합 위험 있음 |
- 선택된 특성이 특정 모델에 과적합될 수 있음 |
| 대표 예시 | - 상관계수 필터링 - 카이제곱 검정 - 분산 분석 (ANOVA) |
- 전진 선택법 (Forward Selection) - 후진 제거법 (Backward Elimination) - 재귀적 특성 제거 (RFE) |
- LASSO (L1 Regularization) - Ridge Regression - 결정 트리 기반 특성 중요도 (Random Forest, XGBoost) |
요약: 빠른 전처리가 필요할 때는 필터, 최고의 성능이 필요하고 계산 비용을 감당할 수 있을 때는 래퍼, 성능과 효율 사이의 균형을 원할 때는 임베디드 방법이 적합합니다.
76. 이징 모델/MRF의 에너지 함수는 어떤 목적 함수 역할을 하나요?
답변: 마르코프 랜덤 필드(Markov Random Field, MRF)나 이의 특수한 형태인 이징 모델(Ising Model)에서 에너지 함수(Energy Function)는 시스템의 전체적인 '바람직하지 않음' 또는 '비용'을 정량화하는 목적 함수 역할을 합니다. 이 모델의 목표는 시스템의 총 에너지를 최소화하는 상태(configuration)를 찾는 것입니다. 에너지가 최소화된 상태는 통계적으로 가장 확률이 높은, 즉 가장 바람직하고 안정적인 상태에 해당합니다.
이는 이미지 분할(Image Segmentation), 이미지 노이즈 제거(Denoising), 스테레오 비전 등 컴퓨터 비전 분야에서 인접한 픽셀들이 유사한 속성(예: 같은 레이블)을 가지도록 하는 제약을 모델링하는 데 널리 사용됩니다.
상세 설명: MRF는 그래프의 각 노드(예: 이미지의 픽셀)가 주변 노드에만 직접적으로 영향을 받는다는 마르코프 속성을 만족하는 확률 모델입니다. 시스템의 전체 상태 $x$ (예: 모든 픽셀의 레이블 할당)에 대한 에너지 함수 $E(x)$는 보통 두 가지 항으로 구성됩니다.
- 에너지 함수:$$E(x) = \sum_{i \in V} D_i(x_i) + \sum_{(i,j) \in E} V_{ij}(x_i, x_j)$$
- 데이터 항 (Data Term) / 적합도 항 (Fidelity Term), $D_i(x_i)$: 이 항은 각 노드 $i$가 특정 상태(레이블) $x_i$를 가질 때 발생하는 비용을 나타냅니다. 즉, 관측된 데이터와 상태 $x_i$가 얼마나 잘 맞는지를 측정합니다. 예를 들어, 이미지 노이즈 제거에서는 관측된 픽셀 값과 할당된 '깨끗한' 픽셀 값 $x_i$의 차이가 클수록 이 항의 값이 커집니다.
- 평활도 항 (Smoothness Term) / 상호작용 항 (Interaction Term), $V_{ij}(x_i,x_j)$: 이 항은 인접한 노드 $(i,j)$ 쌍이 서로 다른 상태 $x_i, x_j$를 가질 때 발생하는 비용을 나타냅니다. 이는 결과가 '매끄럽게' 변해야 한다는 사전 지식(prior knowledge)을 모델링합니다.
- 포츠 모델(Potts Model): $V_{ij}(x_i, x_j) = \lambda \cdot [x_i \ne x_j]$, 여기서 $[\cdot]$는 괄호 안의 조건이 참이면 1, 아니면 0을 반환하는 표기법입니다. 인접 픽셀의 레이블이 다를 때 일정한 페널티 $\lambda$를 부과합니다.
- 확률 분포와의 관계: 해머슬리-클리포드(Hammersley-Clifford) 정리에 의해, MRF의 결합 확률 분포는 에너지 함수를 사용한 깁스 분포(Gibbs distribution)로 표현될 수 있습니다.$$p(x) \propto e^{-E(x)}$$이 식은 에너지 $E(x)$가 낮을수록 해당 상태 $x$가 나타날 확률이 기하급수적으로 높아진다는 것을 의미합니다. 따라서 에너지를 최소화하는 것은 사후 확률을 최대화(Maximum a Posteriori, MAP)하는 것과 동일한 문제가 됩니다.
이러한 에너지 최소화 문제는 조합 최적화 문제로, 경우에 따라 그래프 컷(Graph Cuts)과 같은 효율적인 알고리즘으로 전역 최적해를 찾을 수 있습니다.
77. 멀티태스크 학습의 목적 함수는 어떻게 구성되나요?
답변: 멀티태스크 학습(Multi-task Learning, MTL)의 목적 함수는 기본적으로 관련된 여러 태스크(task) 각각의 개별 손실 함수(loss function)를 가중합(weighted sum)한 형태로 구성됩니다. 모델은 이 통합된 손실 함수를 최소화하도록 학습되며, 이 과정에서 여러 태스크에 걸쳐 공유되는 표현(shared representation)을 학습하게 됩니다.
- 기본적인 목적 함수: $T$개의 태스크가 있고, 각 태스크 $i$의 손실 함수를 $L_i$라고 할 때, 전체 목적 함수 $L_{\text{total}}$은 다음과 같습니다.$$L_{\text{total}} = \sum_{i=1}^{T} w_i L_i$$
- $L_i$: 태스크 $i$에 대한 손실 (예: 분류 문제의 경우 교차 엔트로피, 회귀 문제의 경우 MSE).
- $w_i$: 태스크 $i$의 중요도를 조절하는 가중치. 가장 간단한 방법은 모든 가중치를 1로 설정하는 것이지만, 태스크의 난이도나 중요도에 따라 수동으로 조절하기도 합니다.
상세 설명: MTL의 핵심 아이디어는 관련 있는 태스크들을 동시에 학습함으로써 각 태스크의 성능을 개별적으로 학습할 때보다 향상시키는 것입니다. 이는 하나의 태스크를 학습하는 데 유용한 정보가 다른 태스크에도 도움이 될 수 있다는 가정(inductive transfer)에 기반합니다.
- 가중치 설정의 중요성: 가중치 $w_i$를 어떻게 설정하느냐가 MTL의 성능에 큰 영향을 미칩니다. 가중치가 잘못 설정되면 특정 태스크에만 치우쳐 학습이 진행되거나, 태스크 간의 스케일 차이로 인해 학습이 불안정해질 수 있습니다. 이를 해결하기 위한 고급 기법들이 있습니다.
- 불확실성 가중 (Uncertainty Weighting): 각 태스크의 손실을 해당 태스크의 고유한 불확실성(homoscedastic uncertainty)으로 나누어주는 방식으로 가중치를 자동 학습합니다.$$L_{\text{total}} = \sum_{i=1}^{T} \left( \frac{1}{2\sigma_i^2} L_i + \log \sigma_i \right)$$여기서 $\sigma_i^2$은 태스크 $i$의 불확실성을 나타내는 학습 가능한 파라미터입니다. 모델은 불확실성이 큰(어려운) 태스크의 가중치는 낮추고, 확실성이 높은(쉬운) 태스크의 가중치는 높이는 방향으로 $\sigma_i$를 학습하게 됩니다.
- 다목적 최적화 (Multi-objective Optimization) 관점: MTL을 각 태스크의 손실을 동시에 최소화하는 다목적 최적화 문제로 간주할 수도 있습니다. 이 관점에서는 모든 태스크의 성능을 저하시키지 않으면서 일부 태스크의 성능을 향상시키는 파레토 최적(Pareto optimal) 해를 찾거나, 여러 태스크의 그라디언트(gradient)가 서로 충돌(간섭)하는 것을 완화하는 기법(예: GradNorm, PCGrad)을 사용합니다.
'ML' 카테고리의 다른 글
| ML 주니어 엔지니어를 위한 기술면접 질문 모음 4 (0) | 2025.08.26 |
|---|---|
| ML 주니어 엔지니어를 위한 기술면접 질문 모음 3 (0) | 2025.08.21 |
| ML 주니어 엔지니어를 위한 기술면접 질문 모음 (0) | 2025.08.20 |
| Autoencoder (0) | 2025.08.18 |
| KL Divergence, MLE (0) | 2025.08.17 |