개요
해당 포스팅 시리즈는 “Unerstanding Deep Learning” 책을 학습하는 과정을 기록하는 스터디 노트이다.
이번에는 9장, Regularization에 대해 다룬다.
1. Regularization의 필요성
8장에서 모델 성능을 측정하는 방법을 다루며, 훈련 데이터와 테스트 데이터 사이에 성능 차이(gap) 가 발생할 수 있음을 보았다.
이는 모델이 훈련 데이터의 노이즈까지 외워버리는 과적합(overfitting) 이나, 데이터가 없는 영역에서 제약 없이 행동해 엉뚱한 예측을 내놓는 문제 때문이다.
정규화는 이러한 간극을 줄여 일반화 성능을 높이는 방법으로, 손실 함수에 항을 추가하거나(명시적 정규화), 학습 알고리즘 자체가 유도하는 효과(암묵적 정규화), 그리고 다양한 휴리스틱 방법까지 포함한다는 점이 흥미로웠다.
2. Explicit Regularization
가장 기본적인 정규화 방법은 손실 함수에 벌점 항을 추가하는 것이다.
예를 들어, 가중치가 지나치게 크지 않도록 제약하는 L2 정규화(Weight Decay) 나, 스파스를 유도하는 L1 정규화 등이 있다.
수학적으로는 MAP(Maximum A Posteriori) 추정으로 해석할 수 있고, 이는 “우리가 파라미터에 대해 갖는 사전 신념(prior)”을 반영하는 것이라는 점이 인상적이었다.
3. Implicit Regularization
흥미로웠던 부분은 SGD 자체도 정규화 효과를 만든다는 점이었다.
연속적인 Gradient Descent와 달리, 이산적인 step size 때문에 특정 해를 더 선호하게 되고, 이를 암묵적 정규화라고 부른다.
특히 작은 배치로 학습할수록, 배치별 기울기 차이가 줄어드는 해를 선호하게 되어 결과적으로 일반화가 더 잘 되는 경향을 설명할 수 있었다.
4. Heuristics
명시적/암묵적 정규화 외에도, 경험적으로 일반화를 돕는 다양한 휴리스틱 기법들이 소개되었다.
- Early Stopping: 학습이 수렴하기 전에 멈춰 과적합을 막음.
- Ensembling: 여러 모델의 출력을 평균하거나 투표해 성능을 개선.
- Dropout: 일부 뉴런을 무작위로 꺼서 특정 유닛에 대한 의존도를 줄임.
- Noise 추가: 입력·가중치·라벨에 노이즈를 주어 더 강건한 모델을 학습.
- Bayesian 접근: 파라미터를 확률변수로 두고 불확실성까지 고려(다만 근사 필요).
- Transfer Learning / Multi-task Learning: 다른 데이터셋이나 관련 작업으로부터 지식을 전이.
- Self-supervised Learning: 라벨이 없는 데이터에서 가짜 라벨을 생성해 사전학습.
이처럼 다양한 방법들이 결국 **“모델을 부드럽게, 데이터 양을 늘리고, 여러 모델을 결합하거나, 더 넓은 최소점으로 수렴하게 만든다”**는 네 가지 원리로 정리된다는 점이 기억에 남았다.
느낀 점
정규화는 단순히 손실 함수에 항을 추가하는 테크닉이 아니라,
- 학습 알고리즘의 특성 (암묵적 정규화)
- 훈련 과정의 중단 시점 (Early stopping)
- 모델 아키텍처와 데이터 활용 방식 (Transfer learning, Self-supervised learning)
까지 포함하는 훨씬 큰 개념이라는 걸 깨달았다.
결국 정규화는 “훈련 데이터 성능”이 아닌 “보지 못한 데이터에서의 성능”을 지키기 위한 총체적인 전략이라는 점에서, 실제 프로젝트를 할 때 반드시 고민해야 하는 주제임을 느꼈다.
Reference
[1] Prince, S. J. D. (2023). Understanding Deep Learning. The MIT Press. Retrieved from http://udlbook.com