Day 1: AI 핵심 용어 총정리
AI를 공부하기 전에 반드시 알아야 할 용어들을 정리합니다. 이 용어들을 모르면 논문이든 블로그든 한 줄도 이해할 수 없습니다.
AI / ML / DL 관계
| 용어 | 의미 | 범위 |
|---|---|---|
| AI (인공지능) | 인간의 지능을 모방하는 모든 기술 | 가장 넓은 개념 |
| ML (머신러닝) | 데이터에서 패턴을 학습하는 AI의 하위 분야 | AI의 부분집합 |
| DL (딥러닝) | 신경망 기반의 머신러닝 | ML의 부분집합 |
학습 관련 핵심 용어
| 용어 | 설명 | 비유 |
|---|---|---|
| 파라미터(Parameter) | 모델이 학습하는 가중치 값 | 뇌의 시냅스 연결 강도 |
| 에포크(Epoch) | 전체 데이터를 한 번 순회하는 단위 | 교과서 1회독 |
| 배치 사이즈(Batch Size) | 한 번에 처리하는 데이터 수 | 한 번에 푸는 문제 수 |
| 학습률(Learning Rate) | 가중치 업데이트 크기 | 보폭의 크기 |
| 손실함수(Loss Function) | 예측과 정답의 차이를 측정 | 시험 오답률 |
| 옵티마이저(Optimizer) | 손실을 줄이는 전략 | 공부 방법론 |
| 과적합(Overfitting) | 훈련 데이터에만 잘 맞는 상태 | 문제 답만 외운 것 |
| 일반화(Generalization) | 새로운 데이터에도 잘 동작 | 응용 문제도 풀 수 있는 것 |
Python으로 보는 핵심 개념
import numpy as np
# 파라미터: 모델이 학습하는 값
weights = np.random.randn(3) # 3개의 파라미터
bias = 0.0 # 편향도 파라미터
# 간단한 예측 함수
def predict(x, weights, bias):
return np.dot(x, weights) + bias
# 손실함수: 예측과 정답의 차이 (MSE)
def loss_function(predicted, actual):
return np.mean((predicted - actual) ** 2)
# 학습 루프의 기본 구조
learning_rate = 0.01 # 학습률
epochs = 100 # 에포크 수
batch_size = 32 # 배치 사이즈
for epoch in range(epochs):
for batch in get_batches(data, batch_size):
prediction = predict(batch, weights, bias)
loss = loss_function(prediction, labels)
gradient = compute_gradient(loss)
weights -= learning_rate * gradient # 가중치 업데이트
print(f"Epoch {epoch}: Loss = {loss:.4f}")
과적합 vs 일반화 확인하기
# 과적합 감지: 훈련 손실은 낮은데 검증 손실은 높을 때
train_loss = 0.01 # 훈련 데이터에서의 손실
val_loss = 0.85 # 검증 데이터에서의 손실
if val_loss > train_loss * 5:
print("과적합 의심! 정규화 또는 데이터 증강 필요")
else:
print("양호: 일반화 성능이 괜찮습니다")
이 용어들은 앞으로 30일 동안 계속 등장합니다. 완벽히 외울 필요는 없지만, 이 페이지를 북마크하고 모를 때마다 돌아오세요.
오늘의 연습문제
- AI, ML, DL의 관계를 벤다이어그램으로 그려보고, 각각에 해당하는 실제 서비스를 2개씩 적어보세요. (예: 체스 엔진, 스팸 필터, ChatGPT)
- 학습률이 너무 크면 어떤 문제가 생기고, 너무 작으면 어떤 문제가 생기는지 설명해보세요.
learning_rate = 10.0과learning_rate = 0.000001로 각각 실험해보세요. - 에포크 수를 늘리면 항상 성능이 좋아질까요? 과적합과 연결하여 설명하고, 적절한 에포크 수를 찾는 방법(Early Stopping)을 조사해보세요.