Machine Learning Overview
"데이터에서 패턴을 학습하여 새로운 데이터에 대해 예측하는 알고리즘"
📌 이 글의 목적
머신러닝(ML)이 무엇이고 어떻게 동작하는지 전체 그림을 잡는 글. 개별 알고리즘에 들어가기 전에 ML의 핵심 개념, 학습 유형, 워크플로우, 그리고 가장 중요한 트레이드오프를 이해하는 것이 목표.
이 글을 읽고 나면:
- ML의 4가지 학습 유형을 구분하고 각각의 활용 사례를 설명할 수 있음
- ML 프로젝트의 전체 워크플로우를 이해할 수 있음
- 편향-분산 트레이드오프가 왜 ML의 핵심 딜레마인지 설명할 수 있음
- 과적합/과소적합을 진단하고 대응 방법을 알 수 있음
1. 머신러닝이란
1.1 정의
전통적 프로그래밍과 ML의 차이:
| 전통적 프로그래밍 | 머신러닝 | |
|---|---|---|
| 규칙 | 사람이 명시적으로 작성 | 데이터에서 자동으로 학습 |
| 입력 | 데이터 + 규칙 | 데이터 + 정답(레이블) |
| 출력 | 결과 | 모델 (→ 예측에 사용) |
| 적합한 문제 | 규칙이 명확한 문제 | 규칙을 정의하기 어려운 문제 |
| 예시 | 세금 계산, 정렬 | 이미지 인식, 스팸 분류, 번역 |
1.2 ML이 적합한 문제
| 적합 | 부적합 |
|---|---|
| 규칙이 너무 복잡하거나 변동적인 문제 | 규칙이 명확하고 고정된 문제 |
| 데이터가 충분히 있는 문제 | 데이터가 없거나 극히 적은 문제 |
| 패턴이 존재하는 문제 | 순수 랜덤인 문제 |
| 이미지 인식, 자연어 처리, 추천 | 단순 계산, 정렬, CRUD |
2. 학습 유형
2.1 4가지 학습 유형
2.2 지도학습 (Supervised Learning)
입력(X)과 정답(y)의 쌍으로 학습. 새로운 입력에 대해 정답을 예측하는 것이 목표.
| 유형 | 출력 | 예시 | 대표 알고리즘 |
|---|---|---|---|
| 회귀 | 연속 숫자 | 집값 예측, 매출 예측 | 선형회귀, Random Forest, XGBoost |
| 분류 | 카테고리 | 스팸/정상, 개/고양이 | 로지스틱회귀, SVM, Neural Network |
학습 데이터:
X(입력) y(정답)
[면적, 층수, 역거리] → 집값
[키, 몸무게, 나이] → 당뇨 여부
예측:
[85㎡, 10층, 300m] → ? (모델이 예측)
2.3 비지도학습 (Unsupervised Learning)
정답(y) 없이 데이터의 구조/패턴을 발견.
| 유형 | 목적 | 예시 |
|---|---|---|
| 클러스터링 | 유사한 데이터끼리 그룹화 | 고객 세그먼트, 문서 군집 |
| 차원축소 | 고차원 데이터를 저차원으로 압축 | PCA, t-SNE 시각화 |
| 이상치 탐지 | 정상 패턴에서 벗어난 데이터 탐지 | 사기 탐지, 장비 이상 |
2.4 강화학습 (Reinforcement Learning)
환경에서 행동을 선택하고, 보상을 최대화하도록 학습.
| 활용 | 예시 |
|---|---|
| 게임 | AlphaGo, Atari |
| 로봇 | 자율 보행, 물체 조작 |
| LLM 정렬 | RLHF — 사람 피드백으로 LLM을 개선 |
2.5 자기지도학습 (Self-Supervised Learning)
레이블 없이 데이터 자체에서 학습 신호를 생성. LLM의 사전학습이 대표적.
| 방법 | 설명 | 예시 |
|---|---|---|
| 다음 토큰 예측 | 텍스트의 다음 단어를 맞추기 | GPT 사전학습 |
| 마스킹 | 일부를 가리고 복원하기 | BERT 사전학습 |
| 대조 학습 | 유사/비유사 쌍을 구분 | 이미지 임베딩 (CLIP) |
💡 LLM이 강력한 이유: 인터넷의 방대한 텍스트로 자기지도학습을 수행하여, 레이블링 비용 없이 거대한 데이터를 활용할 수 있음. "다음 단어 예측"이라는 단순한 목표가 언어의 문법, 지식, 추론 능력까지 학습시킴.
3. ML 워크플로우
3.1 전체 과정
3.2 각 단계 설명
| 단계 | 핵심 | 도구/기법 |
|---|---|---|
| 1. 문제 정의 | 회귀인가 분류인가, 무엇을 예측하는가 | — |
| 2. 데이터 수집 | 충분한 양과 품질의 데이터 확보 | SQL, API, 크롤링 |
| 3. EDA | 데이터 분포, 결측값, 이상치 파악 | pandas, matplotlib |
| 4. 전처리 | 결측값 처리, 인코딩, 스케일링 | StandardScaler, OneHotEncoder |
| 5. 특성 엔지니어링 | 새로운 특성 생성, 불필요한 특성 제거 | 도메인 지식 |
| 6. 모델 학습 | 알고리즘 선택, 학습 데이터로 학습 | scikit-learn, PyTorch |
| 7. 평가 | 테스트 데이터로 성능 측정 | Accuracy, F1, RMSE |
| 8. 튜닝 | 하이퍼파라미터 최적화 | GridSearch, Optuna |
| 9. 배포 | 모델을 서비스로 제공 | FastAPI, Docker |
| 10. 모니터링 | 성능 저하, 데이터 드리프트 감시 | MLflow, Prometheus |
3.3 데이터 분할
| 데이터셋 | 용도 | 주의 |
|---|---|---|
| 학습(Train) | 모델의 가중치를 학습하는 데 사용 | — |
| 검증(Validation) | 하이퍼파라미터 튜닝, 과적합 감시 | 학습에 사용하면 안 됨 |
| 테스트(Test) | 최종 성능 평가 | 개발 중 절대 보면 안 됨 |
⚠️ **테스트 데이터를 개발 중에 보면 데이터 누수(data leakage)**가 발생. 모델이 테스트 데이터에 과적합되어 실제 성능보다 높게 측정됨.
4. 편향-분산 트레이드오프
4.1 ML의 핵심 딜레마
편향(Bias): 모델이 너무 단순하여 데이터의 패턴을 못 잡는 정도 분산(Variance): 모델이 학습 데이터에 너무 민감하여 새 데이터에 일반화가 안 되는 정도
| 높은 편향 (과소적합) | 높은 분산 (과적합) | |
|---|---|---|
| 학습 성능 | ❌ 낮음 | ✅ 높음 |
| 테스트 성능 | ❌ 낮음 | ❌ 낮음 |
| 원인 | 모델이 너무 단순 | 모델이 너무 복잡 |
| 비유 | 교과서만 읽고 응용문제를 못 품 | 기출문제를 외웠지만 새 문제를 못 품 |
4.2 총 오차 분해
총 오차 = 편향² + 분산 + 줄일 수 없는 노이즈
↑ 모델이 단순할수록 큼
↑ 모델이 복잡할수록 큼
↑ 데이터 자체의 노이즈 (어쩔 수 없음)
💡 편향을 줄이면 분산이 늘고, 분산을 줄이면 편향이 늘어남. 이것이 트레이드오프. ML의 목표는 둘의 합이 최소인 지점을 찾는 것.
5. 과적합과 과소적합
5.1 진단
| 상황 | 학습 오차 | 검증 오차 | 진단 | 대응 |
|---|---|---|---|---|
| 학습 ✅ 검증 ✅ | 낮음 | 낮음 | 적합 | 유지 |
| 학습 ❌ 검증 ❌ | 높음 | 높음 | 과소적합 | 모델 복잡도 증가, 특성 추가 |
| 학습 ✅ 검증 ❌ | 낮음 | 높음 | 과적합 | 정규화, 데이터 추가, 단순화 |
5.2 과적합 대응법
| 방법 | 설명 | 효과 |
|---|---|---|
| 더 많은 데이터 | 가장 확실한 방법 | ⭐⭐⭐ |
| 정규화 (L1/L2) | 가중치가 너무 커지는 것을 제한 | ⭐⭐⭐ |
| Dropout | 학습 중 일부 뉴런을 랜덤으로 비활성화 (DL) | ⭐⭐⭐ |
| Early Stopping | 검증 오차가 증가하기 시작하면 학습 중단 | ⭐⭐ |
| 데이터 증강 | 기존 데이터를 변형하여 늘림 (이미지 회전 등) | ⭐⭐ |
| 앙상블 | 여러 모델의 예측을 결합 | ⭐⭐ |
| 모델 단순화 | 레이어 수, 파라미터 수 줄이기 | ⭐ |
5.3 정규화 (Regularization)
가중치가 너무 커지는 것을 패널티로 제한하여 모델의 복잡도를 낮춤.
| 정규화 | 수식 | 효과 |
|---|---|---|
| L1 (Lasso) | 손실 + λ × Σ|wᵢ| | 일부 가중치를 0으로 만듦 → 특성 선택 효과 |
| L2 (Ridge) | 손실 + λ × Σwᵢ² | 가중치를 작게 유지 → 모든 특성을 고르게 사용 |
| Elastic Net | L1 + L2 결합 | 둘의 장점 결합 |
(λ는 정규화 강도를 조절하는 하이퍼파라미터)
6. 교차 검증 (Cross-Validation)
6.1 왜 교차 검증인가
데이터를 한 번만 분할하면 분할 방식에 따라 성능이 달라질 수 있음. 교차 검증은 여러 번 분할하여 평균 성능을 구함.
6.2 K-Fold Cross-Validation
| K값 | 장점 | 단점 |
|---|---|---|
| 5 | ✅ 일반적으로 사용 | — |
| 10 | 더 안정적인 추정 | 학습 시간 2배 |
| N (LOOCV) | 편향 최소 | 분산 크고 비용 높음 |
💡 실전에서는 K=5 또는 K=10이 표준. 데이터가 적으면 K를 높이고, 학습 비용이 크면 K를 낮춤.
7. 하이퍼파라미터 튜닝
7.1 파라미터 vs 하이퍼파라미터
| 파라미터 | 하이퍼파라미터 | |
|---|---|---|
| 결정 | 학습으로 자동 결정 | 사람이 사전에 설정 |
| 예시 | 가중치 W, 편향 b | 학습률, 트리 깊이, 배치 크기 |
| 조절 | 경사하강법 | Grid Search, Random Search, Bayesian |
7.2 튜닝 방법
| 방법 | 방식 | 효율 |
|---|---|---|
| Grid Search | 모든 조합을 시도 | ❌ 조합 폭발 |
| Random Search | 랜덤으로 조합 선택 | ⚠️ Grid보다 효율적 |
| Bayesian Optimization | 이전 결과를 기반으로 다음 조합 선택 | ✅ 가장 효율적 |
💡 실전에서는 Optuna(Python)가 가장 많이 사용됨. Bayesian Optimization 기반으로 효율적이고, 시각화 기능도 좋음.
8. 특성 엔지니어링
8.1 왜 중요한가
"데이터와 특성이 ML 성능의 80%를 결정하고, 알고리즘은 20%를 결정한다"는 말이 있을 정도로 특성 엔지니어링이 중요함.
8.2 주요 기법
| 기법 | 설명 | 예시 |
|---|---|---|
| 스케일링 | 특성의 범위를 통일 | StandardScaler(평균0, 분산1), MinMaxScaler(0~1) |
| 인코딩 | 범주형 데이터를 숫자로 변환 | One-Hot Encoding, Label Encoding |
| 파생 특성 | 기존 특성에서 새로운 특성 생성 | 날짜 → 요일, 시간대; 가격 → 가격 변화율 |
| 특성 선택 | 불필요한 특성 제거 | 상관분석, L1 정규화, 트리 기반 중요도 |
| 결측값 처리 | 빈 값을 채우거나 제거 | 평균/중앙값 대체, 삭제, 모델 기반 대체 |
💡 Deep Learning(특히 이미지, 텍스트)에서는 모델이 자동으로 특성을 추출하므로 수동 특성 엔지니어링의 중요성이 줄어듦. 하지만 표형(tabular) 데이터에서는 여전히 특성 엔지니어링이 핵심임.
9. ML 알고리즘 지도
9.1 알고리즘 선택 가이드
9.2 알고리즘 비교 요약
| 알고리즘 | 유형 | 해석성 | 성능 | 데이터 요구량 |
|---|---|---|---|---|
| 선형/로지스틱 회귀 | 지도 | ✅ 높음 | 보통 | 적음 |
| 결정트리 | 지도 | ✅ 높음 | 보통 | 적음 |
| Random Forest | 지도 | 중간 | 좋음 | 중간 |
| XGBoost/LightGBM | 지도 | 중간 | 매우 좋음 | 중간 |
| SVM | 지도 | 낮음 | 좋음 | 중간 |
| Neural Network | 지도 | ❌ 낮음 | 최고 | 대량 |
| K-Means | 비지도 | ✅ 높음 | — | 중간 |
| PCA | 비지도 | ✅ 높음 | — | 적음 |
💡 표형 데이터에서는 XGBoost/LightGBM이 최강. Kaggle 대회에서도 표형 데이터 문제의 대부분은 트리 기반 앙상블이 우승. Neural Network는 이미지, 텍스트, 음성 같은 비정형 데이터에서 강점.
10. Deep Learning과의 관계
10.1 ML ⊃ DL
| 전통 ML | 딥러닝 (DL) | |
|---|---|---|
| 특성 추출 | 수동 (사람이 설계) | 자동 (모델이 학습) |
| 데이터 요구량 | 적~중간 | 대량 |
| 계산 자원 | CPU로 충분 | GPU 필수 |
| 해석 가능성 | 높음 | 낮음 |
| 비정형 데이터 | 약함 | 강함 |
| 표형 데이터 | 강함 (XGBoost) | 비슷하거나 약함 |
10.2 언제 DL을 쓰고 언제 전통 ML을 쓰는가
| 상황 | 선택 | 이유 |
|---|---|---|
| 이미지/텍스트/음성 | DL | 비정형 데이터는 DL이 압도적 |
| 표형 데이터, 데이터 적음 | 전통 ML | XGBoost가 DL과 비슷하거나 더 좋음 |
| 해석이 필요 | 전통 ML | 결정트리, 로지스틱회귀는 해석 가능 |
| 데이터 매우 많고 GPU 있음 | DL | 스케일 효과 |
| 빠르게 프로토타입 | 전통 ML | 학습 빠르고 설정 간단 |
정리
| 개념 | 핵심 |
|---|---|
| ML 정의 | 데이터에서 패턴을 학습하여 예측하는 알고리즘 |
| 학습 유형 | 지도/비지도/강화/자기지도 — LLM은 자기지도학습 기반 |
| 워크플로우 | 문제 정의 → 데이터 → 전처리 → 학습 → 평가 → 배포 → 모니터링 |
| 편향-분산 | ML의 핵심 딜레마. 단순함과 복잡함의 균형 |
| 과적합 | 학습 데이터를 외워서 새 데이터에 일반화 실패. 정규화/데이터/Dropout으로 대응 |
| 교차 검증 | K-Fold로 안정적 성능 추정 |
| 특성 엔지니어링 | 표형 데이터에서는 여전히 성능의 핵심 |
| 알고리즘 선택 | 표형 → XGBoost, 이미지/텍스트 → DL |
다음 글
→ 지도학습 — 회귀 & 분류 — 선형회귀, 로지스틱회귀, SVM, 결정트리, 앙상블, 평가 메트릭
🔗 관련 문서
- 수학 기초 — 선형대수/미적분/확률의 ML 연결
- AI & ML Series Index — 시리즈 목차