데이터 꿈나무
[Model Study] SNAPSHOT ENSEMBLE(SSE) 본문
- 딥러닝에서 사용되는 앙상블 학습 방법 중 하나로, 학습 중에 여러 개의 “스냅샷” 모델을 생성하고 이들을 결합하여 예측 성능을 향상 시키는 기법이다.
- SSE의 핵심은 Cyclical learning rate(e.g. Cosine Annealing)을 사용함으로써 다양한 관점(driverse prediction)을 학습한 단일 모델을 얻을 수 있다는 것이다.

- 위 그림을 보면 cyclical(주기적) lr을 사용하는 모델은 여러 개의 local optima에 도달할 수 있고, 각각의 local optima를 ensemble(앙상블)하고 있다.
✅ 스냅샷 모델이란?
- Snapshot Ensemble에서 사용되는 여러 개의 중간 모델 중 하나를 가리킨다.
- 학습 중에 특정 지점에서 신경망의 가중치를 저장한 것이다.
- local optima에 도달한 모델의 가중치를 저장
- local optima : 손실 함수가 어떤 지점에서 최소값을 가지고 있는 상황
- Snapshot Ensemble은 이러한 다양한 local optima에 도달한 모델을 저장하여,
- 모델의 다양성을 확보한다.
- 각 스냅샷 모델은 서로 다른 local optima 주변에서 가중치를 가지고 있으며, 이렇게 다양한 가중치 조합을 사용하여 예측을 수행한다. → 과적합은 줄이고, 모델 안정성은 높아짐 → 예측 성능 향상.
- 이 가중치 저장 지점은 일반적으로 학습 과정에서 정기적으로 저장되며, 스냅샷 모델은 각 저장 지점에서의 가중치를 가지고 있다.
- 스냅샷 모델은 개별적으로 테스트 데이터에 대한 예측을 수행할 수 있으며, 이러한 예측은 Snapshot Ensemble의 일부로 최종 예측을 생성하는데 사용된다.
- 동일한 기본 신경망 아키텍쳐를 사용하지만 서로 다른 가중치를 가지므로 다양한 관점에서 데이터를 학습한다.
- → 모델의 다양성을 확보하고, 일반적으로 예측 성능을 향상 시키는데 도움이 된다.
📌 장점
- 모델의 다양성을 증가시켜 과적합을 줄이며, 일반적으로 더 강력한 예측 모델을 얻을 수 있도록 도와준다.
- 모델의 일종의 정규화 효과를 제공하며, 앙상블 학습의 이점을 활용할 수 있다.
📌 작동 과정
- 모델 아키텍쳐 선택 : 우선, 기본 모델 아키텍쳐 (ex. ResNet, DenseNet 등)를 선택한다. 이 아키텍쳐를 기반으로 여러 개의 모델을 생성한다.
- 앙상블 스냅샷 생성 : 학습 중에 여러 번의 에폭(epochs) 동안 모델을 훈련하면서 특정 지점에서 모델의 가중치를 저장한다. 이러한 가중치 저장 지점을 “스냅샷”이라고 한다.
- 스냅샷 모델 복제 : 스냅샷 모델을 여러 복제본으로 만든다. 각 복제본은 서로 다른 스냅샷에서 파생됐다.
- 개별 예측 : 각 스냅샷 모델은 테스트 데이터에 대한 개별 예측을 수행한다.
- 앙상블 : 각 스냅샷 모델의 예측을 평균하거나 투표 등의 방식으로 결합하여 최종 예측을 생성한다.
'Activity > Intern' 카테고리의 다른 글
| [Python_ts2] 여러 폴더 내의 파일 정보 가져오기 (os.walk) (2) | 2023.10.09 |
|---|---|
| [Python_ts1] os.path.split과 os.path.spiltext 알기 (0) | 2023.10.01 |
| [Model Study] MobileNet (0) | 2023.09.30 |
| [Model Study] EfficientNet 모델 (0) | 2023.09.30 |
| [Model Study] VIT(Visual Transformer) 모델 (0) | 2023.09.29 |
Comments