1. 머신러닝이란 무엇인가?

명시적으로 프로그래밍하지 않고도 컴퓨터가 데이터로부터 학습하여 작업을 수행하도록 하는 인공지능의 한 분야

전통적인 프로그래밍 vs 머신러닝

  • 전통적 프로그래밍: 규칙(Rule) + 데이터(Data) → 답(Answer)
  • 머신러닝: 데이터(Data) + 답(Answer) → 규칙(Rule/Model)

핵심 용어

데이터셋: 학습에 사용되는 데이터 집합

  • 특징(Feature): 입력 변수, 독립 변수 (예: 집의 면적, 방 개수)
  • 레이블(Label): 출력 변수, 종속 변수, 타겟 (예: 집 가격)

모델(Model): 데이터의 패턴을 학습한 수학적 함수

학습(Training): 데이터로부터 모델의 파라미터를 최적화하는 과정

추론(Inference): 학습된 모델을 사용해 새로운 데이터에 대한 예측을 하는 과정


2. 머신러닝의 종류

지도 학습 (Supervised Learning)

입력(X)과 출력(Y)이 쌍으로 주어진 데이터로 학습합니다.

분류(Classification)

  • 목적: 데이터를 미리 정의된 카테고리로 분류
  • 예시: 이메일 스팸 판별, 이미지 분류, 질병 진단
  • 출력: 이산적 값 (클래스 레이블)

회귀(Regression)

  • 목적: 연속적인 값을 예측
  • 예시: 집 가격 예측, 주가 예측, 온도 예측
  • 출력: 연속적 값 (실수)

비지도 학습 (Unsupervised Learning)

레이블 없이 입력 데이터만으로 학습합니다.

군집화(Clustering)

  • 유사한 데이터끼리 그룹으로 묶기
  • 예시: 고객 세그먼테이션, 문서 그룹화

차원 축소(Dimensionality Reduction)

  • 데이터의 특징 수를 줄이면서 중요한 정보는 보존
  • 예시: PCA(주성분 분석), t-SNE

강화 학습 (Reinforcement Learning)

환경과 상호작용하며 보상을 최대화하는 방향으로 학습합니다.

  • 예시: 게임 AI, 로봇 제어, 자율주행

3. 머신러닝의 핵심: 손실 함수와 최적화

손실 함수 (Loss Function)

모델의 예측값과 실제값 사이의 오차를 측정하는 함수 손실 함수가 작을수록 모델의 성능이 좋다는 의미

회귀 문제의 손실 함수

평균 제곱 오차 (Mean Squared Error, MSE)

  • : 실제 값
  • : 예측 값
  • : 데이터 개수

평균 절대 오차 (Mean Absolute Error, MAE)

분류 문제의 손실 함수

교차 엔트로피 (Cross-Entropy Loss)

  • 이진 분류의 경우 Binary Cross-Entropy
  • 다중 클래스 분류의 경우 Categorical Cross-Entropy

최적화 (Optimization)

손실 함수를 최소화하는 모델 파라미터를 찾는 과정

경사 하강법 (Gradient Descent)

가장 기본적인 최적화 알고리즘으로, 손실 함수의 기울기(gradient) 반대 방향으로 파라미터를 업데이트합니다.

  • : 모델 파라미터
  • : 학습률 (learning rate)
  • : 손실 함수의 기울기

학습률의 중요성

  • 너무 크면: 최적점을 지나쳐 발산할 수 있음
  • 너무 작으면: 학습이 너무 느리고 지역 최솟값에 갇힐 수 있음

경사 하강법의 변형

  1. 배치 경사 하강법 (Batch GD): 전체 데이터셋 사용
  2. 확률적 경사 하강법 (Stochastic GD): 한 번에 하나의 샘플만 사용
  3. 미니배치 경사 하강법 (Mini-batch GD): 작은 배치 단위로 학습 (가장 많이 사용)

4. 과적합과 정규화

과적합 (Overfitting)

모델이 학습 데이터에는 너무 잘 맞지만, 새로운 데이터에는 일반화되지 못하는 현상

원인

  • 모델이 너무 복잡함 (파라미터가 너무 많음)
  • 학습 데이터가 부족함
  • 노이즈까지 학습함

증상

  • 학습 손실은 낮지만, 검증 손실은 높음
  • 학습 데이터 정확도와 테스트 데이터 정확도의 차이가 큼

과소적합 (Underfitting)

모델이 너무 단순해서 데이터의 패턴을 제대로 학습하지 못하는 현상

원인

  • 모델이 너무 단순함
  • 특징이 부족함
  • 학습이 충분하지 않음

편향-분산 트레이드오프 (Bias-Variance Tradeoff)

편향(Bias)

  • 모델의 예측값과 실제값 사이의 평균적인 차이
  • 높은 편향 = 과소적합

분산(Variance)

  • 다른 학습 데이터에 대한 모델 예측의 변동성
  • 높은 분산 = 과적합

최적점 찾기

정규화 (Regularization)

과적합을 방지하기 위해 모델의 복잡도에 페널티를 부여하는 기법

L1 정규화 (Lasso)

  • 일부 가중치를 0으로 만들어 특징 선택 효과
  • : 정규화 강도

L2 정규화 (Ridge)

  • 가중치를 작게 만들어 모델을 단순화
  • 더 부드러운 가중치 분포

기타 정규화 기법

  • 조기 종료(Early Stopping): 검증 손실이 증가하기 시작하면 학습 중단
  • 드롭아웃(Dropout): 신경망에서 무작위로 뉴런을 비활성화
  • 데이터 증강(Data Augmentation): 학습 데이터를 인위적으로 늘림

5. 모델 평가와 검증

데이터셋 분할

학습 세트 (Training Set): 모델 학습에 사용 (보통 60-80%) 검증 세트 (Validation Set): 하이퍼파라미터 튜닝에 사용 (10-20%) 테스트 세트 (Test Set): 최종 성능 평가에 사용 (10-20%)

교차 검증 (Cross-Validation)

데이터를 k개의 폴드로 나누어, 각 폴드를 한 번씩 검증 세트로 사용하는 방법입니다.

k-Fold Cross-Validation

  1. 데이터를 k개로 분할
  2. k번 반복: (k-1)개로 학습, 1개로 검증
  3. k개의 성능 점수를 평균

장점

  • 모든 데이터를 학습과 검증에 활용
  • 더 신뢰할 수 있는 성능 추정

평가 지표

회귀 문제

  • MSE (Mean Squared Error)
  • RMSE (Root Mean Squared Error)
  • MAE (Mean Absolute Error)
  • R² (결정 계수)

분류 문제

정확도 (Accuracy)

혼동 행렬 (Confusion Matrix)

Positive (예측)Negative (예측)
Positive (실제)TPFN
Negative (실제)FPTN
  • TP (True Positive): 실제 양성, 예측 양성
  • TN (True Negative): 실제 음성, 예측 음성
  • FP (False Positive): 실제 음성, 예측 양성 (1종 오류)
  • FN (False Negative): 실제 양성, 예측 음성 (2종 오류)

정밀도 (Precision)

양성으로 예측한 것 중 실제 양성의 비율

재현율 (Recall)

실제 양성 중 양성으로 예측한 비율

F1 Score

정밀도와 재현율의 조화 평균


6. 기본 머신러닝 알고리즘

선형 회귀 (Linear Regression)

입력 특징들의 선형 결합으로 출력을 예측하는 가장 기본적인 회귀 알고리즘입니다.

모델

가정

  • 선형성: X와 Y가 선형 관계
  • 독립성: 관측값들이 서로 독립적
  • 등분산성: 오차의 분산이 일정
  • 정규성: 오차가 정규분포를 따름

장점

  • 해석이 쉽고 계산이 빠름
  • 과적합 위험이 낮음

단점

  • 비선형 관계를 모델링할 수 없음
  • 이상치에 민감함

로지스틱 회귀 (Logistic Regression)

이진 분류를 위한 알고리즘으로, 선형 회귀의 출력을 시그모이드 함수에 통과시킵니다.

모델

시그모이드 함수의 특성

  • 출력 범위: (0, 1)
  • 확률로 해석 가능
  • z가 클수록 1에 가까움
  • z가 작을수록 0에 가까움

결정 경계 (Decision Boundary)

  • 보통 0.5를 기준으로 클래스 결정
  • ŷ ≥ 0.5 → 클래스 1
  • ŷ < 0.5 → 클래스 0

k-최근접 이웃 (k-Nearest Neighbors, k-NN)

새로운 데이터 포인트를 분류할 때, 가장 가까운 k개의 이웃의 투표로 결정하는 알고리즘입니다.

동작 원리

  1. 새로운 데이터 포인트와 모든 학습 데이터 간의 거리 계산
  2. 가장 가까운 k개의 이웃 선택
  3. 다수결 투표로 클래스 결정

거리 측정

  • 유클리드 거리:
  • 맨하탄 거리:

k 값의 영향

  • k가 작으면: 복잡한 결정 경계, 과적합 위험
  • k가 크면: 단순한 결정 경계, 과소적합 위험

장점

  • 간단하고 직관적
  • 학습 시간이 거의 없음

단점

  • 예측 시간이 느림 (모든 데이터와 비교)
  • 차원의 저주에 취약
  • 특징 스케일링에 민감

의사결정나무 (Decision Tree)

데이터를 특징값에 따라 반복적으로 분할하여 트리 구조를 만드는 알고리즘입니다.

구조

  • 루트 노드: 최상단 노드
  • 내부 노드: 특징에 대한 조건 검사
  • 리프 노드: 최종 예측값

분할 기준

분류 문제: 지니 불순도 (Gini Impurity)

: 각 클래스의 비율

분류 문제: 엔트로피 (Entropy)

회귀 문제: 분산 감소

장점

  • 해석이 매우 쉬움
  • 비선형 관계 모델링 가능
  • 특징 스케일링 불필요

단점

  • 과적합되기 쉬움
  • 불안정함 (데이터 변화에 민감)

과적합 방지

  • 최대 깊이 제한
  • 최소 샘플 수 설정
  • 가지치기 (Pruning)

서포트 벡터 머신 (Support Vector Machine, SVM)

클래스 간의 마진을 최대화하는 결정 경계를 찾는 알고리즘입니다.

핵심 개념

  • 결정 경계: 클래스를 나누는 초평면
  • 마진: 결정 경계와 가장 가까운 데이터 포인트 사이의 거리
  • 서포트 벡터: 마진 경계에 있는 데이터 포인트

목표

커널 트릭 (Kernel Trick)

선형으로 분리 불가능한 데이터를 고차원 공간으로 매핑하여 선형 분리 가능하게 만듭니다.

인기 있는 커널

  • 선형 커널:
  • 다항식 커널:
  • RBF 커널:

장점

  • 고차원 데이터에 효과적
  • 마진 최대화로 일반화 성능 좋음
  • 커널로 비선형 문제 해결

단점

  • 대규모 데이터셋에는 느림
  • 하이퍼파라미터 튜닝이 중요