Home AI Basics Overview
Post
Cancel

AI Basics Overview

AI Basics

목차


AI의 범위

“AI, ML, DL은 범위가 어떻게 다른가?”

AI는 가장 넓은 개념이고, ML은 AI의 부분집합, DL은 ML의 부분집합이다.

1
2
3
4
5
6
7
8
9
10
AI (Artificial Intelligence) 가장 넓음
├─ 규칙 기반 시스템
├─ 전문가 시스템
└─ Machine Learning
   ├─ 선형 회귀, SVM
   ├─ 의사결정 트리
   └─ Deep Learning (신경망) 가장 좁음
      ├─ CNN (이미지)
      ├─ RNN (시계열)
      └─ Transformer (언어)

각 분야의 특징

1
2
3
4
5
6
7
8
9
10
11
12
13
14
AI (지능적 행동):
- 목표: 지능적 작업 수행
- 방법: 다양 (규칙, 통계, 학습)
- 예: 체스 엔진, 번역기

ML (데이터 학습):
- 목표: 데이터 패턴 학습
- 방법: 통계, 최적화
- 예: 스팸 필터, 추천 시스템

DL (신경망):
- 목표: 복잡한 패턴 학습
- 방법: 다층 신경망
- 예: 이미지 분류, 음성 인식

Model

Model이란?

1
2
3
4
5
6
7
8
정의: 데이터 패턴을 수학적으로 표현한 함수

y = f(x)
where f is the trained model

예시:
- 선형 회귀: y = w1*x1 + w2*x2 + b
- 신경망: 여러 계층의 함수 합성

Model 종류

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Supervised Learning (지도학습):
- 입력 X, 정답 Y 있음
- 예: 스팸 분류 (이메일 → 스팸/정상)
- 회귀: 연속값 예측 (집값 예측)
- 분류: 카테고리 예측 (고양이/개 분류)

Unsupervised Learning (비지도학습):
- 입력 X만 있음, 정답 없음
- 예: 고객 세분화 (비슷한 사람 묶음)
- 클러스터링, 차원 축소

Reinforcement Learning (강화학습):
- 보상 신호로 학습
- 예: 게임 플레이, 로봇 제어

Training과 Inference

“학습과 추론은 무엇이 다른가?”

Training은 데이터에서 패턴을 학습해 모델을 만드는 과정, Inference는 만든 모델을 실제로 사용하는 과정이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Training (학습):
- 목표: 최적의 가중치 찾기
- 입력: 훈련 데이터 (수백만 샘플)
- 출력: 학습된 모델 (가중치)
- 시간: 느림 (몇 시간~몇 주)
- 빈도: 가끔 (모델 업데이트 시)
- 리소스: 높음 (GPU 필요)

Inference (추론):
- 목표: 새로운 입력 예측
- 입력: 새로운 샘플 (1개 또는 배치)
- 출력: 예측값
- 시간: 빠름 (밀리초)
- 빈도: 자주 (매초 수만 번)
- 리소스: 낮음 (CPU로도 가능)

Training 과정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1. 데이터 준비
   - 특징 추출 (Feature Engineering)
   - 정규화 (Normalization)

2. 모델 초기화
   - 가중치 무작위 설정

3. 반복 (Epoch)
   for epoch in 1 to max_epochs:
       for batch in training_data:
           predictions = model(batch)
           loss = compute_loss(predictions, labels)
           gradients = compute_gradients(loss)
           update_weights(gradients)
           
4. 모델 저장
   - 최종 가중치 저장

Inference 과정

1
2
3
4
5
loaded_model = load_model('model.pkl')

new_email = "Click here to win $1000!"
prediction = loaded_model.predict(new_email)
# output: "spam" (확률 0.95)

Dataset

“train/test split은 왜 필요한가?”

Train/Test Split은 모델이 새로운 데이터에 잘 작동하는지 확인하기 위해 필요하다. 전체 데이터로 학습하면 overfitting을 감지할 수 없다.

1
2
3
4
5
6
7
전체 데이터 1000개
├─ Training Set (80% = 800개) → 모델 학습
└─ Test Set (20% = 200개) → 성능 평가

Train Accuracy: 99% (학습했으니 당연)
Test Accuracy: 85% (새로운 데이터)
→ Overfitting 의심!

Data Split 전략

1
2
3
4
5
6
7
8
9
10
11
12
13
14
기본: Train 70%, Validation 15%, Test 15%

Train Set:
- 모델 학습에 사용
- 가중치 업데이트

Validation Set:
- 학습 중 성능 평가
- Hyperparameter 튜닝
- Early stopping

Test Set:
- 최종 평가만 (학습 중 절대 사용 X)
- 모델 성능의 객관적 지표

데이터 불균형

1
2
3
4
5
6
7
8
9
10
11
12
문제: 클래스 불균형
- 정상 이메일 99%
- 스팸 이메일 1%

모델이 "모두 정상"이라고 예측 → 정확도 99%
하지만 스팸 탐지 못함!

해결책:
✓ Oversampling (소수 클래스 복제)
✓ Undersampling (다수 클래스 감소)
✓ SMOTE (합성 샘플 생성)
✓ Class weight (손실함수에 가중치)

Evaluation

성능 평가 지표

1
2
3
4
5
6
7
8
9
10
11
분류 (Classification):
- Accuracy: 정확히 맞힌 비율
- Precision: 양성이라 한 것 중 정답 비율
- Recall: 실제 양성 중 맞힌 비율
- F1-Score: Precision과 Recall의 조화평균

회귀 (Regression):
- MSE (Mean Squared Error)
- RMSE (Root Mean Squared Error)
- MAE (Mean Absolute Error)
- R² (설명력)

Confusion Matrix

1
2
3
4
5
6
7
8
9
분류: Spam vs Not Spam

         Predicted Spam  Predicted Not
Actual Spam      TP(80)          FN(20)
Actual Not       FP(10)          TN(890)

Precision = TP / (TP + FP) = 80/90 = 0.89
Recall = TP / (TP + FN) = 80/100 = 0.80
Accuracy = (TP + TN) / Total = 970/1000 = 0.97

Overfitting

“overfitting은 왜 문제가 되는가?”

Overfitting은 모델이 훈련 데이터에만 과도하게 최적화되어 새로운 데이터에 잘못 작동한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
이상적 모델:
Train Accuracy: 85%
Test Accuracy: 84%
→ 새로운 데이터에도 잘 작동

Overfitting:
Train Accuracy: 99%
Test Accuracy: 60%
→ 훈련 데이터의 잡음까지 학습

Underfitting:
Train Accuracy: 70%
Test Accuracy: 70%
→ 패턴을 제대로 못 배움

Overfitting 방지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1. 더 많은 데이터
   - 잡음의 영향 감소

2. 정규화 (Regularization)
   - L1, L2 정규화
   - 가중치 크기 제한

3. Dropout (신경망)
   - 훈련 중 일부 뉴런 비활성화
   - 다양한 부분 네트워크 학습

4. Early Stopping
   - Validation loss가 증가하면 학습 중단
   - 과도한 훈련 방지

5. Cross Validation
   - 데이터를 여러 부분으로 나눠 평가
   - 더 신뢰성 높은 성능 추정

시각화

1
2
3
4
5
6
7
8
9
10
11
12
13
Bias-Variance Trade-off:

High Bias, Low Variance (Underfitting):
- 모델이 너무 단순함
- 훈련/테스트 모두 성능 나쁨

Low Bias, High Variance (Overfitting):
- 모델이 너무 복잡함
- 훈련 성능 좋음, 테스트 성능 나쁨

Low Bias, Low Variance (이상):
- 모델 복잡도 적절
- 훈련/테스트 성능 모두 좋음

정리

개념설명
AI지능적 행동을 수행하는 시스템
ML데이터에서 패턴 학습
DL신경망을 이용한 패턴 학습
Training데이터에서 모델 학습
Inference학습된 모델로 예측
Overfitting훈련 데이터에 과도하게 최적화

This post is licensed under CC BY 4.0 by the author.