Skip to main content

학습 유형

머신러닝 알고리즘은 데이터에 라벨(정답)이 있는지 여부학습 방식에 따라 크게 세 가지 유형으로 분류됩니다.

학습 목표

  • 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning)의 차이를 설명할 수 있습니다.
  • 각 학습 유형에 적합한 문제 유형과 데이터 요구사항을 파악할 수 있습니다.
  • 반지도학습(Semi-supervised Learning)과 자기지도학습(Self-supervised Learning)의 개념을 이해합니다.
  • 주어진 문제에 적절한 학습 유형을 선택할 수 있습니다.

왜 중요한가

학습 유형을 올바르게 선택하는 것은 ML 프로젝트의 첫 번째 의사결정입니다. 라벨이 있는 데이터에 비지도학습을 적용하거나, 라벨이 없는 데이터에 지도학습을 시도하면 시간과 자원을 낭비하게 됩니다.

핵심 개념

학습 유형 비교 요약

구분지도학습비지도학습강화학습
라벨 필요 여부필요 (입력-출력 쌍)불필요불필요 (보상 신호 사용)
목표입력 → 출력 매핑 학습데이터 구조/패턴 발견보상 최대화 전략 학습
대표 문제분류, 회귀군집화, 차원 축소게임, 로봇 제어
평가 방법정답과 비교내부 지표 (실루엣 등)누적 보상
데이터 비용높음 (라벨링 비용)낮음중간 (환경 설계 비용)

지도학습 (Supervised Learning)

정의: 입력 데이터와 해당하는 정답(라벨)의 쌍으로 학습하여, 새로운 입력에 대한 출력을 예측하는 방법입니다. 지도학습은 다시 두 가지 하위 유형으로 나뉩니다. 분류(Classification): 이산적인 클래스 라벨을 예측합니다.
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 데이터 로드 및 분할
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 모델 학습 및 예측
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)  # 라벨(y)과 함께 학습
accuracy = model.score(X_test, y_test)
print(f"정확도: {accuracy:.2f}")
회귀(Regression): 연속적인 수치 값을 예측합니다.
from sklearn.linear_model import LinearRegression
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split

# 캘리포니아 주택 가격 데이터
X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 수치 예측
model = LinearRegression()
model.fit(X_train, y_train)
print(f"R² 점수: {model.score(X_test, y_test):.3f}")
대표 알고리즘:

비지도학습 (Unsupervised Learning)

정의: 라벨 없이 입력 데이터만으로 데이터의 구조, 패턴, 분포를 발견하는 방법입니다.
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# 라벨 없는 데이터 생성
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)

# 군집화 - 라벨(y) 없이 학습
kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)
clusters = kmeans.fit_predict(X)  # 군집 할당 결과
print(f"군집별 샘플 수: {[sum(clusters==i) for i in range(3)]}")
비지도학습의 주요 하위 유형:
유형목적대표 알고리즘
군집화(Clustering)유사한 데이터를 그룹으로 묶기K-Means, DBSCAN
차원 축소(Dimensionality Reduction)고차원 → 저차원 투영PCA, t-SNE
이상 탐지(Anomaly Detection)비정상 데이터 포인트 발견Isolation Forest, LOF

강화학습 (Reinforcement Learning)

정의: 에이전트(Agent)가 환경(Environment)과 상호작용하면서 보상(Reward)을 최대화하는 행동 전략(정책, Policy)을 학습하는 방법입니다.
요소설명예시 (체스)
에이전트(Agent)의사결정 주체체스 플레이어
환경(Environment)에이전트가 상호작용하는 세계체스판
상태(State)현재 환경의 상황말들의 배치
행동(Action)에이전트가 취할 수 있는 선택말 이동
보상(Reward)행동의 결과에 대한 피드백승리(+1), 패배(-1)
이 사이트의 ML 탭은 지도학습과 비지도학습에 집중합니다. 강화학습은 별도의 학습 영역으로 다루어지며, 여기서는 개념 비교를 위해 소개합니다.

기타 학습 유형

학습 유형설명활용 예시
반지도학습(Semi-supervised)소량의 라벨 + 다량의 비라벨 데이터를 결합의료 이미지 분류 (라벨링 비용이 높은 경우)
자기지도학습(Self-supervised)데이터 자체에서 학습 신호를 생성BERT, GPT 등 언어 모델의 사전학습
전이학습(Transfer Learning)한 도메인에서 학습한 지식을 다른 도메인에 적용ImageNet 사전학습 모델 활용
반지도학습 알고리즘은 반지도 학습 섹션에서 자세히 다룹니다.

AI/ML에서의 활용

실무에서는 하나의 프로젝트에서 여러 학습 유형을 결합하는 경우가 많습니다.
  • 비지도 → 지도: 군집화로 라벨을 생성한 후 분류 모델 학습
  • 차원 축소 → 분류: PCA로 차원을 줄인 후 분류 모델 적용
  • 이상 탐지 → 분류: 이상 탐지로 1차 필터링 후 정밀 분류
라벨이 있는 데이터가 전체의 10% 미만이라면 반지도학습을 고려하세요. Label Propagation이나 Self-Training 알고리즘이 이런 상황에 적합합니다.
외부 라벨이 없으므로 내부 지표를 사용합니다. 군집화의 경우 실루엣 점수(Silhouette Score), 칼린스키-하라바스 인덱스(Calinski-Harabasz Index) 등이 대표적입니다. 자세한 내용은 모델 평가 섹션을 참고하세요.
지도학습부터 시작하는 것을 권장합니다. 결과를 정답과 비교할 수 있어서 모델의 성능을 직관적으로 이해할 수 있기 때문입니다. 이후 비지도학습으로 확장하면 자연스럽습니다.

체크리스트

  • 지도학습, 비지도학습, 강화학습의 차이를 설명할 수 있다
  • 분류와 회귀의 차이를 구분할 수 있다
  • 주어진 데이터셋에 적합한 학습 유형을 선택할 수 있다
  • 반지도학습의 활용 시나리오를 설명할 수 있다

다음 문서