모델: 기법
ㅁ 기법
1. Gradient Clipping
ㅇ 정의:
– 신경망 학습 시 기울기 폭주(Gradient Explosion)를 방지하기 위해 기울기의 크기를 특정 임계값으로 제한하는 기법.
ㅇ 특징:
– 역전파 시 계산된 기울기의 L2 노름이 임계값을 초과하면 비율에 맞춰 스케일링.
– RNN, LSTM 등 장기 의존성 문제가 있는 네트워크에서 자주 사용.
ㅇ 적합한 경우:
– 깊은 네트워크나 순환 신경망에서 학습 불안정이 발생할 때.
– 학습률을 높게 설정해야 하지만 기울기 폭주 위험이 있는 경우.
ㅇ 시험 함정:
– Gradient Clipping은 과적합 방지 기법이 아니라 학습 안정화 기법임.
– 기울기 소실(Gradient Vanishing) 문제 해결 방법과 혼동하기 쉬움.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “기울기 폭주를 방지하기 위해 역전파 시 기울기 크기를 제한한다.”
X: “기울기 소실 문제를 해결하기 위해 기울기를 제한한다.”
2. Label Smoothing
ㅇ 정의:
– 분류 문제에서 정답 레이블을 0 또는 1의 원-핫 벡터 대신, 일정 비율로 부드럽게 조정하는 기법.
ㅇ 특징:
– 모델이 과도하게 확신(Overconfidence)하는 것을 방지.
– 일반화 성능 향상에 기여.
– Cross-Entropy Loss 계산 시 적용.
ㅇ 적합한 경우:
– 클래스 간 유사성이 있는 데이터셋.
– 과적합이 심하거나 예측 확률이 극단적으로 치우치는 경우.
ㅇ 시험 함정:
– Label Smoothing은 데이터 라벨 자체를 변경하는 것이 아니라 Loss 계산 시 확률 분포를 변경하는 것임.
– 정답 클래스 확률을 낮추지만 틀린 클래스 확률의 합은 늘어남.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “모델이 과도하게 한 클래스에 확신하지 않도록 정답 확률을 완화한다.”
X: “라벨을 무작위로 섞어 데이터 다양성을 높인다.”
3. Learning Rate Warm-up
ㅇ 정의:
– 학습 초기에 학습률을 점진적으로 증가시켜 모델이 안정적으로 학습하도록 하는 기법.
ㅇ 특징:
– 초기에 큰 학습률로 인한 발산 방지.
– 대규모 배치 학습 시 효과적.
– 일정 스텝 이후 목표 학습률에 도달.
ㅇ 적합한 경우:
– Transformer, BERT 등 대규모 모델 학습.
– GPU 병렬 학습에서 배치 크기가 큰 경우.
ㅇ 시험 함정:
– Warm-up은 학습률을 처음부터 낮추는 것이 아니라 점진적으로 올리는 방식임.
– 학습 전반에 걸쳐 계속 증가시키는 것이 아님.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “학습 초기에 작은 학습률로 시작해 점차 목표 학습률로 증가시킨다.”
X: “학습 전 과정에서 학습률을 계속 증가시킨다.”
4. Cosine Annealing
ㅇ 정의:
– 학습률을 코사인 함수 곡선 형태로 점진적으로 감소시키는 스케줄링 기법.
ㅇ 특징:
– 학습 후반에 학습률이 매우 작아져 세밀한 수렴 가능.
– 주기적 리스타트(Cosine Annealing with Warm Restarts)와 함께 사용 가능.
ㅇ 적합한 경우:
– Fine-tuning 단계.
– 과적합 방지를 위해 학습 후반에 조심스럽게 수렴시키고자 할 때.
ㅇ 시험 함정:
– Cosine Annealing은 단순 선형 감소가 아님.
– Warm Restarts를 적용하면 주기적으로 학습률이 다시 커질 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “학습률을 코사인 곡선 형태로 감소시켜 후반에 미세 조정한다.”
X: “학습률을 일정하게 유지하다가 갑자기 0으로 만든다.”
ㅁ 추가 학습 내용
Gradient Clipping은 기울기 폭주를 방지하기 위해 기울기의 크기를 제한하는 기법으로, norm 기반 클리핑은 기울기의 L2 norm이 임계값을 넘을 경우 비율에 맞춰 스케일링하는 방식이며, value 기반 클리핑은 각 기울기 원소별 값이 일정 범위를 넘지 않도록 잘라내는 방식이다.
Label Smoothing은 정답 라벨의 원-핫 벡터를 부드럽게 만들어 모델이 과도하게 확신하는 것을 방지하는 기법으로, ε 값 설정이 중요하며 실무에서 자주 쓰이는 값은 0.1, 0.2이다.
Learning Rate Warm-up은 학습 초기에 학습률을 서서히 증가시켜 안정적인 학습을 유도하며, Cosine Annealing이나 Step Decay 같은 학습률 스케줄러와 함께 사용되는 경우가 많다.
Cosine Annealing은 학습률을 코사인 함수 형태로 점진적으로 감소시키는 방법으로, T_max는 한 주기의 스텝 수, eta_min은 최소 학습률을 의미한다. Warm Restarts를 사용할 경우 T_mult는 주기 길이를 점차 늘리는 배수를 지정한다.
시험에서는 이러한 기법들이 과적합 방지, 학습 안정화, 최적화 속도 개선 중 어느 목적에 해당하는지 분류하는 문제가 자주 출제된다.