AI 모델 개발: 최적화 기법

ㅁ 최적화 기법

ㅇ 정의:
모델 학습 과정에서 손실 함수를 최소화하기 위해 가중치를 갱신하는 방법들의 집합.

ㅇ 특징:
– 경사 하강법을 기반으로 다양한 변형 알고리즘 존재
– 학습 속도와 안정성, 수렴 품질에 큰 영향을 미침
– 하이퍼파라미터 설정이 성능에 결정적

ㅇ 적합한 경우:
– 복잡한 신경망 학습 시 효율적인 수렴 필요할 때
– 데이터 크기, 분포, 노이즈 특성에 맞춘 최적화 전략 필요할 때

ㅇ 시험 함정:
– 각 기법의 차이점을 단순 암기보다 수식과 작동 원리로 이해해야 함
– Adam과 RMSProp의 차이를 학습률 조정 방식으로만 설명하는 경우 오답

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Adam은 모멘텀과 적응형 학습률을 모두 사용하는 최적화 알고리즘이다.”
X: “SGD는 항상 Adam보다 빠르게 수렴한다.”

================================

1. Adam

ㅇ 정의:
Adaptive Moment Estimation의 약자로, 1차 모멘트(평균)와 2차 모멘트(분산)를 모두 고려하여 학습률을 적응적으로 조정하는 최적화 알고리즘.

ㅇ 특징:
– 모멘텀과 RMSProp의 장점을 결합
– 학습률 조정이 자동으로 이루어져 초기 학습률 설정에 덜 민감
– 대규모 데이터셋과 파라미터에 적합

ㅇ 적합한 경우:
– 스파스한 그래디언트를 가진 문제
– 빠른 수렴과 안정성이 필요한 딥러닝 모델

ㅇ 시험 함정:
– Adam이 항상 최고의 성능을 보장하는 것은 아님
– 학습 후반에 일반화 성능이 떨어질 수 있음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Adam은 1차와 2차 모멘트를 모두 사용하여 학습률을 조정한다.”
X: “Adam은 모멘텀을 사용하지 않는다.”

================================

2. RMSProp

ㅇ 정의:
Root Mean Square Propagation의 약자로, 최근 기울기의 제곱 평균을 이용해 각 파라미터별 학습률을 조정하는 최적화 알고리즘.

ㅇ 특징:
– 학습률 폭주를 방지
– 비정 stationary한 목표(예: RNN)에 효과적

ㅇ 적합한 경우:
– 시계열 데이터, 온라인 학습
– 학습률이 불안정하게 변하는 환경

ㅇ 시험 함정:
– 모멘텀과 RMSProp 혼동
– RMSProp이 모든 경우 Adam보다 나은 것은 아님

ㅇ 시험 대비 “패턴 보기” 예시:
O: “RMSProp은 최근 그래디언트 제곱의 이동평균을 사용한다.”
X: “RMSProp은 모든 파라미터에 동일한 학습률을 적용한다.”

================================

3. SGD

ㅇ 정의:
Stochastic Gradient Descent로, 전체 데이터가 아닌 미니배치 또는 단일 샘플을 사용해 가중치를 업데이트하는 경사 하강법.

ㅇ 특징:
– 구현이 간단하고 메모리 효율적
– 노이즈로 인해 지역 최소값 탈출 가능
– 수렴 속도가 느릴 수 있음

ㅇ 적합한 경우:
– 대규모 데이터셋
– 온라인 학습

ㅇ 시험 함정:
– 배치 크기와 학습률 관계 혼동
– 모멘텀 유무에 따른 차이 구분 필요

ㅇ 시험 대비 “패턴 보기” 예시:
O: “SGD는 미니배치를 사용하여 파라미터를 갱신할 수 있다.”
X: “SGD는 항상 배치 전체를 사용해 갱신한다.”

================================

4. Learning Rate Scheduler

ㅇ 정의:
학습 진행에 따라 학습률을 동적으로 조정하는 기법.

ㅇ 특징:
– 일정 시점마다 학습률 감소 또는 증가 가능
– 과적합 방지 및 수렴 안정성 향상

ㅇ 적합한 경우:
– 초기 빠른 학습 후 미세 조정이 필요한 경우
– 장기 학습에서 학습률 조절 필요 시

ㅇ 시험 함정:
– 스케줄링 전략(스텝, 지수, 코사인 등) 혼동
– 학습률 감소가 항상 성능 향상을 보장하지 않음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Learning Rate Scheduler는 학습률을 점진적으로 줄여 수렴을 돕는다.”
X: “Learning Rate Scheduler는 항상 학습률을 일정하게 유지한다.”

================================

5. Weight Decay

ㅇ 정의:
가중치 값이 지나치게 커지는 것을 방지하기 위해 손실 함수에 가중치 제곱합에 비례한 항을 추가하는 정규화 기법.

ㅇ 특징:
– L2 정규화와 동일한 효과
– 과적합 방지
– 모델의 일반화 성능 향상

ㅇ 적합한 경우:
– 파라미터가 많은 모델
– 과적합 우려가 있는 경우

ㅇ 시험 함정:
– L1 정규화와 혼동
– Weight Decay가 학습률 조정과 동일하다고 착각

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Weight Decay는 손실 함수에 가중치 크기에 대한 패널티를 추가한다.”
X: “Weight Decay는 학습률을 자동으로 조정한다.”

ㅁ 추가 학습 내용

[정리]
1. Adam 최적화 기법
– 1차 모멘트 추정: m_t = β1 * m_(t-1) + (1 – β1) * g_t
– 2차 모멘트 추정: v_t = β2 * v_(t-1) + (1 – β2) * (g_t)^2
– 바이어스 보정:
m̂_t = m_t / (1 – β1^t)
v̂_t = v_t / (1 – β2^t)
– 파라미터 업데이트: θ_t = θ_(t-1) – α * m̂_t / (√(v̂_t) + ε)

2. 학습률 스케줄러 종류
– 스텝 감소(Step Decay): 일정 step마다 학습률을 일정 비율로 감소
– 지수 감소(Exponential Decay): lr_t = lr_0 * exp(-kt) 형태로 감소
– 코사인 애닐링(Cosine Annealing): 학습률을 코사인 곡선 형태로 점진적으로 감소
– 사이클릭 스케줄러(Cyclic LR): 학습률을 주기적으로 증가/감소시켜 지역 최소 탈출 유도

3. Weight Decay와 L2 정규화
– L2 정규화: Loss에 λ * ||w||² 항 추가
– Weight Decay: 매 업데이트 시 w ← w – α * λ * w 적용
– 수학적으로 동일하지만 구현 방식에서 차이가 있음 (Adam에서의 적용 시 주의 필요)

4. SGD + 모멘텀 업데이트 공식
– v_t = μ * v_(t-1) – α * g_t
– θ_t = θ_(t-1) + v_t

5. RMSProp vs AdaGrad
– AdaGrad: g_t²의 누적합 기반으로 학습률 조정 → 학습률이 점점 작아짐
– RMSProp: g_t²의 지수이동평균 사용 → 학습률이 너무 빨리 작아지는 문제 완화

6. 주요 하이퍼파라미터 의미
– β1: 1차 모멘트(평균) 추정의 지수감쇠율 (Adam)
– β2: 2차 모멘트(분산) 추정의 지수감쇠율 (Adam)
– ρ: RMSProp에서 제곱 기울기 이동평균의 감쇠율
– decay rate: 학습률 감소 비율

7. 프레임워크별 구현 차이
– PyTorch: optimizer.step(), scheduler.step() 순서 주의 필요
– TensorFlow(Keras): fit() 내에서 콜백(callback)으로 스케줄러 적용 가능, 일부 파라미터명 차이 존재

[시험 대비 체크리스트]
– Adam의 m_t, v_t, 바이어스 보정 공식 정확히 암기
– 학습률 스케줄러 4종의 개념과 수식, 장단점 구분 가능
– Weight Decay와 L2 정규화의 수학적 동일성 설명 가능
– SGD + 모멘텀 업데이트 공식 숙지
– RMSProp과 AdaGrad의 차이점과 장단점 파악
– β1, β2, ρ, decay rate 등 하이퍼파라미터의 의미와 조정 효과 설명 가능
– PyTorch와 TensorFlow에서의 구현 차이 이해 및 주의점 숙지

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*