본문으로 건너뛰기
AIDevOps
  • Learn
  • Learning Paths
  • Practice
  • Open Source
  • Books
  • Engineering

    AI DevOpsAI 서비스 개발·운영 전체 지도LLMOpsLLM 배포·평가·관측실전 프로젝트AI Agent 프로젝트 실습

    Knowledge

    Docs기술 문서 모음Blog엔지니어링 아티클Plogger개발 기록 피드

    Validate

    Certification3단계 역량 인증 · 준비 중
AI Models
LlamaMistralGemmaDeepSeekQwen
🧠 AI Core
AI 입문 & 로드맵ML FundamentalsLLM Fundamentals|Python AIC++|PyTorchTensorFlowJAX
🤖 AI 실전 개발
AI 실전 입문 & 로드맵Hugging FaceLangChainLlamaIndexLLMOps|LangGraphMCPMulti-AgentAgent Evaluation
🧠 AI Agent 개발
금융 AI AgentLLM API 서버주식 투자 AgentAIOps AI Agent교육 AI Agent코딩 AI Agent
🌱 Spring Cloud
Spring 입문 & 로드맵Spring Cloud GatewaySpring BootJava|Spring AISpring SecuritySpring BatchSpring JPA
🐳 DevOps
DevOps 입문 & 로드맵LinuxDockerCI/CD|Kubernetes 기본K8s 심화/실무PrometheusGrafana
🧱 인프라
인프라 입문 & 로드맵NginxRedis
☁️ 클라우드
클라우드 입문 & 로드맵AWSGCPAzureNCPCloudflare
🎨 Frontend
Frontend 입문 & 로드맵JavaScriptTypeScript|ReactNext.js|VueNuxt
📱 Mobile
Mobile 입문 & 로드맵KotlinAndroidFlutter
⚙️ Backend
Backend 입문 & 로드맵Python 기본FastAPIDjangoFlask|CGoGinNode.js
💾 Database
DB 입문 & 로드맵공통 SQLOracleMySQLPostgreSQL|MongoDB벡터 DB
🧪 검증
k6JMeternGrinder
AIDevOps

Engineering AI. From Code to Production.
AI와 AI Agent를 개발하고 운영하기 위한 엔지니어링 학습 플랫폼

Learn

  • 전체 가이드
  • Learning Paths
  • Practice
  • Books

Resources

  • AI DevOps
  • LLMOps
  • 실전 프로젝트
  • Docs
  • Blog
  • Plogger
  • Open Source
  • Certification (준비 중)

Start Here

  • AI Core 로드맵
  • AI 실전 개발 로드맵
  • Spring Cloud 로드맵
  • DevOps 로드맵
  • 인프라 로드맵

 

  • 클라우드 로드맵
  • Frontend 로드맵
  • Mobile 로드맵
  • Backend 로드맵
  • Database 로드맵
© 2026 AI DevOps Korea. All rights reserved.
이용약관개인정보처리방침Sitemaptestforge.kr
  1. Home
  2. Learn
  3. AI Core
  4. ML Fundamentals
AI 학습 기초 가이드

📐 ML Fundamentals 완전 가이드

Visitors

머신러닝이 무엇인지 큰 그림부터, 학습 방식·핵심 알고리즘·신경망·평가지표·과적합·하이퍼파라미터 튜닝·MLOps까지 — LLM을 배우기 전에 다져야 할 ML 기초를 처음부터 끝까지 쉽지만 깊이 있게 정리합니다.

  • Beginner · 입문
  • 업데이트 2026.09.11
  • 약 15분 읽기
  • 12개 섹션
  • 예제 코드 5개

포함된 Learning Path

이 가이드는 아래 경로의 한 단계입니다. 앞뒤 순서와 함께 학습해보세요.

  • AI Foundations →
머신러닝 개념 정리신경망 기초PyTorch 학습 루프 이해AI 엔지니어 입문모델 평가와 튜닝

목차

0 / 14
  1. 가이드 사용법
  2. 구조 다이어그램
  3. 큰 그림: AI·ML·DL·LLM
  4. 학습 방식 3형제
  5. ML 파이프라인 6단계
  6. 핵심 알고리즘 지도
  7. 신경망 기초
  8. CNN·RNN 한눈에
  9. 손실함수와 최적화
  10. 모델 평가지표
  11. 과적합과 정규화
  12. 하이퍼파라미터 튜닝
  13. 실무 ML 워크플로우
  14. 배포와 MLOps
목차 14개 섹션
  1. 가이드 사용법
  2. 구조 다이어그램
  3. 큰 그림: AI·ML·DL·LLM
  4. 학습 방식 3형제
  5. ML 파이프라인 6단계
  6. 핵심 알고리즘 지도
  7. 신경망 기초
  8. CNN·RNN 한눈에
  9. 손실함수와 최적화
  10. 모델 평가지표
  11. 과적합과 정규화
  12. 하이퍼파라미터 튜닝
  13. 실무 ML 워크플로우
  14. 배포와 MLOps

가이드 사용법

읽는 방향

ML Fundamentals를 실무 흐름으로 이해하기

머신러닝이 무엇인지 큰 그림부터, 학습 방식·핵심 알고리즘·신경망·평가지표·과적합·하이퍼파라미터 튜닝·MLOps까지 — LLM을 배우기 전에 다져야 할 ML 기초를 처음부터 끝까지 쉽지만 깊이 있게 정리합니다. 이 가이드는 개념을 나열하기보다, 실제 프로젝트에서 판단해야 하는 순서대로 내용을 따라갈 수 있게 구성했습니다.

핵심 관점

AI / LLM 시스템

모델과 프롬프트만 보지 않고, 데이터 흐름, 평가, 배포 이후의 운영 지표까지 한 번에 연결해서 봅니다.

머신러닝 개념 정리신경망 기초PyTorch 학습 루프 이해AI 엔지니어 입문모델 평가와 튜닝

구조 다이어그램

글로 읽은 내용을 머릿속에 오래 남기려면 먼저 흐름을 그림으로 잡는 편이 좋습니다. 아래 두 그림은 ML Fundamentals를 학습할 때 계속 되돌아볼 수 있는 기준 지도입니다.

학습 흐름

다이어그램 렌더링 중…

아키텍처 관점

다이어그램 렌더링 중…

큰 그림: AI·ML·DL·LLM은 어떤 관계일까

ML Fundamentals를 처음 펼칠 때는 세부 명령보다 큰 그림이 먼저입니다. 이 섹션에서는 앞으로 배울 개념들이 어떤 문제를 풀기 위해 등장했는지부터 잡아봅니다.

용어부터 정리하고 시작하겠습니다. 인공지능(AI)은 "사람처럼 판단하는 시스템을 만들자"는 가장 큰 목표입니다. 머신러닝(ML)은 그 목표를 이루는 방법 중 하나로, 규칙을 사람이 일일이 코딩하는 대신 데이터로부터 규칙을 스스로 찾아내게 하는 접근입니다. 딥러닝(DL)은 ML의 하위 분야로, 신경망을 여러 층 쌓아(deep) 복잡한 패턴을 학습합니다. LLM(거대 언어모델)은 그 딥러닝 중에서도 Transformer 구조로 방대한 텍스트를 학습해 언어를 다루는 모델입니다. 즉 AI ⊃ ML ⊃ DL ⊃ LLM 순으로 점점 더 구체적인 개념입니다.
계층정의예시
AI (인공지능)사람처럼 인식·판단·행동하는 시스템 전체체스 엔진, 음성 비서, 추천 시스템
ML (머신러닝)데이터로부터 규칙을 학습하는 AI의 하위 분야스팸 필터, 신용 평가 모델
DL (딥러닝)다층 신경망으로 복잡한 패턴을 학습하는 ML의 하위 분야이미지 분류(CNN), 음성 인식
LLM (거대 언어모델)Transformer 기반으로 언어를 학습한 DL의 한 갈래GPT, Claude, LLaMA

Tip

이 가이드는 AI ⊃ ML ⊃ DL 부분, 즉 "LLM이 왜 그렇게 동작하는지"의 기초 체력을 다룹니다. Transformer·토크나이저 등 LLM 자체의 구조는 이어지는 LLM Fundamentals 가이드에서 다룹니다.

학습 방식 3형제 (+1)

학습 방식 3형제 (+1)은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

머신러닝은 "무엇을 정답으로 놓고 학습하는가"에 따라 크게 세 가지, 그리고 최근 LLM 시대에 특히 중요해진 한 가지를 더해 네 가지로 나뉩니다. 어떤 문제를 풀 때 이 중 어디에 해당하는지 먼저 구분하면 적절한 도구를 훨씬 빠르게 고를 수 있습니다.
방식정답 데이터대표 문제예시
지도학습 (Supervised)입력-정답 쌍 필요분류, 회귀스팸 분류, 주가 예측
비지도학습 (Unsupervised)정답 없음군집화, 차원 축소고객 세그먼트, 이상 탐지
강화학습 (Reinforcement)보상 신호순차적 의사결정RLHF, 게임 AI, 로봇 제어
자기지도학습 (Self-Supervised)데이터 자체가 정답표현 학습LLM 사전학습(다음 토큰 예측)

Tip

LLM의 사전학습은 "다음 토큰 맞히기"라는 자기지도학습이고, ChatGPT류의 RLHF 정렬 단계는 강화학습입니다 — 하나의 모델이 여러 학습 방식을 단계별로 거칩니다.

ML 파이프라인 6단계: 데이터가 모델이 되기까지

여기서는 ML 파이프라인 6단계: 데이터가 모델이 되기까지을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

실무에서 모델을 만드는 과정은 "알고리즘 고르기"보다 훨씬 넓습니다. 아래 6단계를 알아두면 어떤 프로젝트를 만나든 지금 내가 어느 단계에 있는지 헤매지 않습니다.
pipeline_skeleton.pyPYTHON
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

# 1~2. 데이터 로드
df = pd.read_csv("customers.csv")
X, y = df.drop(columns=["churn"]), df["churn"]

# 3. 데이터 분리 먼저! (전처리 파라미터는 train에서만 학습)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, stratify=y, random_state=42
)
scaler = StandardScaler().fit(X_train)          # train으로만 fit
X_train_s = scaler.transform(X_train)
X_test_s  = scaler.transform(X_test)             # test는 transform만

# 4. baseline 모델부터
model = LogisticRegression(max_iter=1000)
model.fit(X_train_s, y_train)

# 5. 평가
y_pred = model.predict(X_test_s)
print(classification_report(y_test, y_pred))
단계무엇을 하나흔한 함정
1. 문제 정의분류/회귀/군집 중 무엇인지, 성공 기준(지표)을 먼저 정함지표 없이 "정확하게 맞히기"만 목표로 잡음
2. 데이터 수집문제와 관련된 데이터를 모음레이블링 기준이 사람마다 달라 데이터 품질이 들쭉날쭉
3. 전처리 & 피처 엔지니어링결측치 처리, 정규화, 범주형 인코딩, 파생 변수 생성테스트 데이터 정보가 전처리 과정에 섞이는 데이터 누수(leakage)
4. 모델 학습baseline부터 시작해 점진적으로 복잡한 모델로검증 없이 바로 복잡한 딥러닝 모델부터 시도
5. 평가적절한 지표로 성능 측정, 에러 사례 분석정확도(accuracy) 하나만 보고 판단(클래스 불균형 시 위험)
6. 배포 & 모니터링실서비스에 반영하고 성능 저하를 지속 관찰배포 후 데이터 분포가 변하는 드리프트를 방치

Tip

scaler.fit()은 반드시 train 데이터에만 적용하세요 — test 데이터의 통계치가 학습 과정에 섞이면 실제보다 성능이 과장되게 측정되는 데이터 누수가 발생합니다.

핵심 알고리즘 지도

핵심 알고리즘 지도은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

딥러닝 이전부터 쓰여온 고전 알고리즘들은 지금도 baseline 모델이나 표 형태 데이터(tabular data)에서 강력합니다. 신경망으로 바로 뛰어들기 전에 무엇이 있는지 지도를 그려두면 문제에 맞는 도구를 고르기 쉬워집니다.
알고리즘유형한 줄 원리특징
선형 회귀지도(회귀)입력의 가중합으로 연속값을 예측해석 쉬움, 빠름, baseline으로 우선 시도
로지스틱 회귀지도(분류)가중합을 시그모이드로 0~1 확률로 변환이진 분류의 표준 baseline
결정트리 / 랜덤포레스트지도학습질문을 반복해 데이터를 가지치기하듯 분할표 형태 데이터에 강함, 전처리 부담 적음
그래디언트 부스팅 (XGBoost 등)지도학습이전 트리의 오차를 다음 트리가 보완Kaggle 대회 단골 우승 모델군
k-NN지도학습가장 가까운 k개 이웃의 다수결/평균으로 예측단순 거리 기반, 대규모 데이터엔 느림
SVM지도학습두 클래스를 가장 넓게 나누는 경계선을 찾음중소규모 고차원 데이터에 강함
k-means비지도학습중심점을 반복 이동시켜 군집을 형성거리 기반 군집화, 군집 수 k를 미리 지정
PCA비지도학습분산이 가장 큰 방향으로 축을 재구성고차원 데이터를 저차원으로 압축(차원 축소)

Tip

새 프로젝트를 시작할 때는 항상 선형/로지스틱 회귀나 결정트리 같은 가벼운 baseline을 먼저 돌려보세요. 복잡한 모델이 baseline보다 겨우 1~2%p 나은 경우, 굳이 복잡도를 감수할 가치가 없을 수 있습니다.

신경망 기초

여기서는 신경망 기초을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

신경망은 퍼셉트론(하나의 선형 함수 + 활성화 함수)을 층으로 쌓은 구조입니다. 각 층의 출력이 다음 층의 입력이 되며, 마지막에 정답과의 오차를 역전파(backpropagation)로 앞쪽 층까지 전달해 가중치를 업데이트합니다. 쉽게 비유하면, 여러 단계의 필터를 거치며 입력을 점점 더 추상적인 표현으로 바꿔가는 과정입니다 — 이미지라면 "선 → 모양 → 부분 → 전체 사물" 순으로요.
mlp_forward.pyPYTHON
import torch
import torch.nn as nn

# ── 가장 단순한 MLP(다층 퍼셉트론) ────────────────
class SimpleMLP(nn.Module):
    def __init__(self, in_dim: int, hidden_dim: int, out_dim: int):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(in_dim, hidden_dim),
            nn.ReLU(),                      # 비선형 활성화 함수
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, out_dim),
        )

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        return self.net(x)

model = SimpleMLP(in_dim=10, hidden_dim=32, out_dim=1)
x = torch.randn(4, 10)          # 배치 크기 4, 특성 10개
y_pred = model(x)               # forward pass — 순전파
print(y_pred.shape)             # torch.Size([4, 1])

# backward()를 호출하면 각 가중치의 gradient가 자동 계산됨(역전파)
loss = y_pred.sum()
loss.backward()
활성화 함수특징주 사용처
Sigmoid출력을 0~1로 압축, 기울기 소실 문제 있음이진 분류의 마지막 층
ReLU음수는 0, 양수는 그대로 — 계산이 빠르고 기울기 소실이 적음은닉층의 기본 선택
GELUReLU를 부드럽게 만든 형태Transformer 계열 모델
Softmax여러 값을 합이 1인 확률 분포로 변환다중 분류의 마지막 층

Tip

활성화 함수(ReLU 등)가 없으면 층을 아무리 쌓아도 결국 하나의 선형 함수와 같아집니다 — 비선형성이 신경망 표현력의 핵심입니다.

CNN·RNN 한눈에: Transformer 이전의 딥러닝

CNN·RNN 한눈에: Transformer 이전의 딥러닝은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

Transformer가 대세가 되기 전, 딥러닝은 데이터 종류에 맞춘 전용 구조를 썼습니다. 지금도 이미지·시계열 문제에서는 여전히 유효한 선택지이므로 개념만이라도 알아두면 좋습니다.
구조핵심 아이디어주 용도한계
CNN (합성곱 신경망)작은 필터가 이미지를 슬라이딩하며 지역적 패턴(선, 모서리)을 감지이미지 분류, 객체 탐지먼 거리의 관계 포착이 상대적으로 약함
RNN / LSTM이전 시점의 은닉 상태를 다음 시점 입력에 함께 사용해 순서 정보를 반영시계열 예측, 초기 기계번역문장이 길어지면 앞부분 정보를 잊어버리고, 순차 처리라 느림
TransformerSelf-Attention으로 모든 위치를 한 번에 서로 비교 — 멀어도 관계를 직접 포착언어모델(LLM), 최신 비전 모델(ViT)입력 길이의 제곱에 비례해 연산량 증가

Tip

RNN이 "순서대로 한 단어씩 읽으며 기억하는" 방식이라면, Transformer는 "문장 전체를 한 번에 펼쳐놓고 단어 간 관계를 동시에 계산"하는 방식입니다 — 이 차이가 LLM이 병렬 학습으로 빠르게 확장될 수 있었던 핵심 이유입니다. 자세한 구조는 LLM Fundamentals 가이드에서 이어집니다.

손실함수와 최적화

여기서는 손실함수와 최적화을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

손실함수(loss function)는 모델의 예측이 정답과 얼마나 다른지를 숫자로 표현합니다. 옵티마이저는 이 손실을 최소화하는 방향으로 가중치를 조금씩 이동시키는 알고리즘입니다. 산에서 안개 속에 서 있다고 상상해보세요 — 발밑의 경사(gradient)를 느끼고 가장 가파르게 내려가는 방향으로 한 걸음씩(학습률만큼) 이동하는 것이 경사하강법입니다.
train_loop.pyPYTHON
import torch.nn as nn
import torch.optim as optim

model     = SimpleMLP(in_dim=10, hidden_dim=32, out_dim=1)
criterion = nn.MSELoss()
optimizer = optim.AdamW(model.parameters(), lr=1e-3)

for epoch in range(100):
    optimizer.zero_grad()             # 이전 gradient 초기화
    y_pred = model(x_train)
    loss   = criterion(y_pred, y_train)
    loss.backward()                   # 역전파로 gradient 계산
    optimizer.step()                  # gradient 방향으로 가중치 업데이트

    if epoch % 20 == 0:
        print(f"epoch {epoch}: loss={loss.item():.4f}")
구분자주 쓰는 선택용도
회귀 손실MSE (평균제곱오차)연속값 예측(가격, 온도 등)
분류 손실Cross-Entropy클래스 분류, LLM의 다음 토큰 예측
옵티마이저SGD단순하고 가벼움, 학습률 튜닝에 민감
옵티마이저Adam / AdamW대부분의 딥러닝·LLM 학습에서 기본 선택

Tip

학습률(learning rate)이 너무 크면 최적점을 지나쳐 진동하고, 너무 작으면 학습이 지나치게 느려집니다 — 1e-3 정도를 기본값으로 시작해 손실 곡선을 보며 조정하세요.

모델을 어떻게 채점하나: 평가지표

여기서는 모델을 어떻게 채점하나: 평가지표을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

"정확도가 95%면 좋은 모델일까요?" 답은 "경우에 따라 다릅니다"입니다. 사기 거래가 전체의 1%뿐인 데이터에서는 "무조건 정상"이라고만 답해도 정확도가 99%가 나옵니다. 문제 유형에 맞는 지표를 골라야 진짜 성능을 알 수 있습니다.
confusion_matrix.pyPYTHON
from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score

y_true = [1, 0, 1, 1, 0, 1, 0, 0]
y_pred = [1, 0, 0, 1, 0, 1, 1, 0]

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
print(f"TP={tp} FP={fp} FN={fn} TN={tn}")
print(f"precision={precision_score(y_true, y_pred):.2f}")
print(f"recall={recall_score(y_true, y_pred):.2f}")
print(f"f1={f1_score(y_true, y_pred):.2f}")
문제 유형지표의미
분류Accuracy (정확도)전체 중 맞힌 비율 — 클래스가 균형잡혀 있을 때만 신뢰 가능
분류Precision (정밀도)"양성"이라 예측한 것 중 실제 양성 비율 — 오탐(false positive)이 비쌀 때 중요
분류Recall (재현율)실제 양성 중 모델이 찾아낸 비율 — 놓치면 안 되는 경우(질병, 사기)에 중요
분류F1 ScorePrecision과 Recall의 조화평균 — 둘의 균형을 한 숫자로 표현
분류ROC-AUC임계값을 바꿔가며 본 전체적인 분류 성능(1에 가까울수록 좋음)
회귀MAE / RMSE예측값과 실제값의 평균적인 차이(RMSE는 큰 오차에 더 민감)
회귀R² (결정계수)모델이 데이터 분산을 얼마나 설명하는지(1에 가까울수록 좋음)

Tip

클래스 비율이 불균형한 데이터(사기 탐지, 질병 진단 등)에서는 Accuracy 대신 Precision·Recall·F1을 반드시 함께 보세요. 무엇을 더 중시할지는 "오탐의 비용"과 "누락의 비용" 중 어느 쪽이 더 큰지로 결정합니다.

과적합과 정규화

과적합과 정규화은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

과적합(overfitting)은 모델이 학습 데이터의 노이즈까지 외워버려 새로운 데이터에서는 성능이 떨어지는 현상입니다. 학습 손실은 계속 낮아지는데 검증 손실이 다시 올라가기 시작하면 과적합 신호입니다. 이는 편향-분산 트레이드오프(bias-variance tradeoff)로도 설명됩니다 — 너무 단순한 모델은 편향(bias)이 커서 과소적합(underfitting)되고, 너무 복잡한 모델은 분산(variance)이 커서 과적합됩니다.
기법작동 방식
Train/Val/Test 분리검증 데이터로 과적합 시점을 조기에 감지
K-겹 교차검증 (K-Fold CV)데이터를 K등분해 번갈아 검증에 써서 평가의 신뢰도를 높임
Dropout학습 중 일부 뉴런을 무작위로 꺼서 특정 뉴런 의존을 방지
L1/L2 정규화가중치 크기에 페널티를 부과해 모델을 단순하게 유지
Early Stopping검증 손실이 더 이상 개선되지 않으면 학습을 조기 종료
데이터 증강학습 데이터를 변형·확장해 일반화 능력을 높임

Tip

"모델이 학습 데이터에서는 99점인데 실전에서는 70점"이라면 거의 항상 과적합입니다. 모델을 더 복잡하게 만들기 전에 정규화·데이터 증강·더 많은 데이터부터 시도하세요.

하이퍼파라미터 튜닝

여기서는 하이퍼파라미터 튜닝을 실제 코드와 함께 확인합니다. 예제를 그대로 따라 하기보다, 입력과 출력, 그리고 바뀌기 쉬운 부분이 어디인지 보면서 읽어보세요.

하이퍼파라미터는 학습으로 자동으로 정해지는 가중치와 달리, 사람이 미리 정해줘야 하는 설정값입니다(학습률, 은닉층 크기, 배치 크기, 트리 개수 등). 좋은 하이퍼파라미터를 찾는 것만으로도 성능이 크게 달라질 수 있습니다.
random_search.pyPYTHON
from sklearn.model_selection import RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier

param_dist = {
    "n_estimators": [100, 200, 400],
    "max_depth": [None, 5, 10, 20],
    "min_samples_split": [2, 5, 10],
}

search = RandomizedSearchCV(
    RandomForestClassifier(random_state=42),
    param_distributions=param_dist,
    n_iter=20, cv=5, scoring="f1", random_state=42,
)
search.fit(X_train, y_train)
print(search.best_params_)
방법설명언제 쓰나
Grid Search가능한 조합을 모두 격자로 나열해 전수 탐색탐색 범위가 작을 때
Random Search조합을 무작위로 샘플링해 탐색Grid Search보다 효율적, 대부분의 경우 기본 선택
Bayesian Optimization이전 결과를 바탕으로 다음 탐색 지점을 똑똑하게 선택학습 비용이 커서 시도 횟수를 아껴야 할 때

Tip

가장 영향이 큰 하이퍼파라미터는 대개 학습률입니다 — 다른 것보다 먼저 학습률 범위를 로그 스케일(0.1, 0.01, 0.001...)로 넓게 탐색해보세요.

실무 ML 워크플로우

이 섹션은 실무 ML 워크플로우을 실무 관점에서 정리합니다. 개념을 외우기보다, 어떤 상황에서 이 기준을 꺼내 쓸지에 초점을 맞춰보세요.

실무에서는 모델 구조보다 데이터 파이프라인과 검증 전략이 결과를 더 크게 좌우하는 경우가 많습니다. 아래 순서를 기본 체크리스트로 삼으세요.

Tip

  • 데이터를 Train/Validation/Test로 먼저 분리하고, Test는 최종 평가 전까지 절대 들여다보지 않습니다.
  • baseline(단순 회귀/결정트리)을 먼저 돌려 최소 성능 기준을 확보한 뒤 복잡한 모델로 넘어갑니다.
  • 학습/검증 손실 곡선을 항상 함께 그려서 과적합 여부를 육안으로 확인합니다.
  • 틀린 예측 사례를 직접 눈으로 확인하는 에러 분석은 지표 하나만 보는 것보다 훨씬 많은 개선 힌트를 줍니다.

배포와 MLOps 개관

배포와 MLOps 개관은 선택지가 갈리는 지점입니다. 표를 기준으로 각 방법의 쓰임새와 운영상의 차이를 비교해두면 이후 판단이 훨씬 쉬워집니다.

모델을 학습시키는 것과 실서비스에서 안정적으로 운영하는 것은 전혀 다른 문제입니다. MLOps는 모델의 배포·모니터링·재학습을 체계화하는 실천 방법론입니다.
개념설명
모델 서빙학습된 모델을 API 형태로 감싸 실시간 예측 요청에 응답
데이터 드리프트실서비스 입력 데이터의 분포가 학습 당시와 달라지는 현상
모델 드리프트드리프트 등으로 인해 시간이 지나며 모델 성능이 서서히 저하되는 현상
A/B 테스트 / 섀도우 배포새 모델을 일부 트래픽에만 적용하거나 실사용에 영향 없이 결과만 비교
버전 관리데이터·코드·모델 아티팩트를 함께 버전 관리해 재현성을 확보

Tip

  • "한 번 배포하면 끝"이 아닙니다 — 실서비스 데이터 분포는 계속 변하므로 성능 모니터링과 주기적 재학습 계획을 반드시 함께 세우세요.
  • 다음 단계로 Transformer/LLM의 사전학습·파인튜닝 구조를 다루는 LLM Fundamentals 가이드로 이어가세요.
← 이전 가이드AI 입문 & 로드맵다음 가이드 →LLM Fundamentals