인공지능 기본개념 및 용어

3.2.2 머신러닝 모델 학습과 평가 - Part2. 모델 학습

Seven AI Workers 2025. 5. 26. 09:16

머신러닝 모델은 데이터에서 최적의 정답을 맞히기 위해 수많은 수치(파라미터)를 학습합니다. 머신러닝 모델의 학습을 위한 기본 방법으로 경사하강법(Gradient Descent)역전파(Backpropagation) 라는 두 개의 강력한 알고리즘이 있습니다. 하지만 실제 데이터와 복잡한 모델에서는 단순한 경사하강법만으로는 충분하지 않습니다. 그래서 더 빠르고 안정적으로 학습을 돕는 다양한 최적화 기법들이 개발되었습니다.

🏔️ 경사하강법이란?

경사하강법은 모델이 예측한 값과 실제 값의 차이(오차)를 줄이기 위해 모델 파라미터를 조금씩 수정하는 방법입니다.

📌 핵심 개념

  • 손실 함수(Loss Function): 얼마나 틀렸는지를 수치로 나타냄
    예: 평균제곱오차(MSE), 교차 엔트로피 등
    • 파라미터(Parameter): 모델이 학습을 통해 조정하는 값들 (예: 가중치 W, 편향 b)
    • 학습률(Learning Rate, α): 한 번에 얼마만큼 수정할지 결정하는 크기

📉 수식 예시

$θ:=θ−α⋅∇θ​J(θ)$θ:=θαθJ(θ)
    • θ : 현재 파라미터
    • α : : 학습률
    • ∇θJ(θ) : : 손실 함수 J에 대한 파라미터의 미분 (기울기)

🎯 쉽게 예를 들면…

고양이 사진을 강아지로 분류했다면 → 오차가 크기 때문에 파라미터를 조정 → 다음번에는 더 정확한 분류를 하도록 학습됨

🔄 역전파(Backpropagation)이란?

"오차를 뒤로 전달해 각 층이 얼마나 잘못했는지 계산하고 수정하는 과정"

신경망은 여러 층(layer)으로 구성됩니다. 단순히 앞에서부터 데이터를 흘려보내는 것만으로는 어느 부분이 틀렸는지 알 수 없습니다. 따라서 학습 과정에서는 출력에서부터 입력 방향으로 오차를 역방향으로 전파(backpropagate) 하며, 각 층의 가중치를 조정합니다.

🧮 동작 과정

  1. 순방향 계산 (Forward Pass)
    • 입력 → 예측값 생성 → 손실 계산
  2. 역방향 계산 (Backward Pass)
    • 손실을 기준으로 각 층의 기여도 계산 (미분, chain rule 활용)
    • 가중치마다 얼마나 조정해야 하는지 계산
  3. 파라미터 업데이트
    • 경사하강법을 사용하여 각 가중치를 조금씩 수정

A⚠️ 학습률 주의사항

    • 너무 크면: 오차가 줄지 않고 발산하거나 발동산 (overshooting)
    • 너무 작으면: 너무 느려서 오랜 시간 필요

🔧 해결책:

    • 적응형 옵티마이저 사용 (Adam, RMSProp 등) → 자동으로 학습률을 조절해줌

📌 경사하강법과 역전파 요약

    • 경사하강법: 모델 오차를 줄이기 위해 파라미터를 반복적으로 업데이트하는 알고리즘
    • 역전파: 오차를 네트워크의 모든 층에 전달해 어떤 파라미터가 문제인지 계산
    • 두 알고리즘은 딥러닝 학습의 핵심이며, 프레임워크(TensorFlow, PyTorch)가 이를 자동으로 처리해줌

 

🚀 최적화 기법 (SGD, Momentum, Adam 등)

🏃‍♂️ 확률적 경사하강법 (Stochastic Gradient Descent, SGD)

기본 경사하강법은 모든 데이터를 한 번에 보고 학습합니다. 하지만 데이터가 수천, 수만 건이 넘는 경우 이 방식은 너무 느리고 비효율적입니다.

🔑 SGD는 한 번에 하나의 데이터(혹은 소수의 데이터)만 보고 학습합니다.

    • 장점: 빠르고 메모리 효율적
    • 단점: 각 업데이트가 불안정하고 진동이 클 수 있음

 

💫 모멘텀 (Momentum) : 관성을 이용해 흔들림을 줄이고 빠르게 수렴하는 기법

기본 SGD는 매번 새로운 방향으로 흔들리며 학습합니다. 모멘텀은 이전 방향을 기억해서 관성을 유지하며 이동합니다. 마치 경사로에서 굴러가는 공처럼, 방향이 비슷하면 더 빠르게 이동하고, 갑작스러운 방향 전환은 완화합니다.

🌀 결과적으로:

    • 수렴 속도 증가
    • 불필요한 진동 억제

🧠 적응형 학습률: AdaGrad, RMSProp, Adam

모든 파라미터에 동일한 학습률을 적용하면 학습이 비효율적일 수 있습니다. 적응형 최적화 기법파라미터마다 다른 학습률을 자동으로 조정해줍니다.

📘 AdaGrad : 누적된 기울기 정보를 사용해 학습률 조절

    • 자주 바뀌는 파라미터는 학습률 ↓
    • 잘 안 바뀌는 파라미터는 학습률 유지
    • 단, 학습률이 너무 빨리 작아져 멈출 수 있다는 것이 단점

💧 RMSProp : AdaGrad의 단점을 보완

    • 최근 기울기만을 기준으로 학습률 조절
    • 신경망 학습에 매우 적합

⚡ Adam (Adaptive Moment Estimation) : 가장 많이 쓰이는 현대적 최적화 기법

    • 모멘텀 + RMSProp을 결합한 방식
    • 기울기의 평균(모멘텀)과 분산(RMSProp)을 동시에 고려
    • 복잡한 신경망 학습에 강력함

🛠️ 최적화 기법 비교 요약

기법
특징
장점
단점
SGD
한 샘플씩 기울기 계산
간단, 메모리 효율적
진동 크고 수렴 느림
Momentum
과거 기울기 반영
빠른 수렴, 진동 억제
하이퍼파라미터 조정 필요
RMSProp
최근 기울기 기반 학습률 조절
순환신경망에 적합
수렴 속도 느릴 수 있음
Adam
모멘텀 + RMSProp
빠르고 자동 조정 가능
복잡도 높고 일부 문제에 과적합 가능

💡 어떤 최적화 기법을 쓸까?

    • Adam: 복잡한 신경망(CNN, RNN 등)에서 기본값처럼 사용
    • SGD + Momentum: 최종 성능을 조금 더 끌어올릴 때 사용
    • RMSProp: 순환 신경망(RNN) 계열에서 좋은 성능
    • AdaGrad: 희소 데이터(예: 추천시스템)에서 사용

📌 최적화 기법 요약

    • 경사하강법은 기본이지만, 현실에서는 더 강력한 최적화 알고리즘이 필요
    • SGD → 모멘텀 → Adam 순으로 성능 향상
    • 대부분의 딥러닝 프레임워크는 다양한 옵티마이저를 내장하고 있어 쉽게 설정 가능