
Stochastic Weight Averaging (SWA) 논문 해설: SGD 궤도의 평균화와 손실 지형
요약
Stochastic Weight Averaging(SWA) 기법을 통해 SGD 궤도상의 가중치들을 평균하여 모델의 일반화 성능을 높이는 방법을 설명합니다. SWA는 훈련 손실을 낮추는 대신, 손실 지형의 더 평탄하고 중심적인 지점을 찾아 테스트 오차를 개선합니다.
핵심 포인트
- SGD의 최종점 대신 학습 궤도상의 여러 가중치를 평균하여 사용
- 훈련 손실은 다소 상승할 수 있으나 테스트 오차(일반화 성능)는 개선됨
- 앙상블과 달리 추론 시 추가적인 계산량이나 메모리 비용이 거의 없음
- 손실 지형의 더 넓고 강건한(Robust) 해를 찾는 것이 핵심 원리
1. 서론
심층 신경망 (Deep Neural Network)은 일반적으로 학습률을 점진적으로 감쇠시키면서 확률적 경사 하강법 (Stochastic Gradient Descent: SGD)을 실행하고, 학습 종료 시의 가중치를 최종 모델로 채택한다. 하지만 훈련 손실 (Training Loss)이 충분히 수렴한 가중치가 미지의 데이터에 대해 가장 높은 성능을 보여준다고 단정할 수는 없다. 실제로 심층 신경망의 가중치 공간에는 비슷한 수준으로 낮은 훈련 손실을 가진 해(Solution)가 넓은 영역으로 존재하며, SGD가 최종적으로 도달한 한 점은 그 영역의 중심이 아닌 주변부에 위치할 수 있다.
Stochastic Weight Averaging (SWA) 는 SGD의 최종점뿐만 아니라, 학습 궤도상에서 얻은 여러 가중치를 이용하는 기법이다. SGD가 통과한 가중치를
에 의해 주어진다. 여기서
SWA의 기본적인 직관은 Fig.1에 나타나 있다. 일반적인 SGD에 의해 얻어지는 가중치

Fig.1: CIFAR-100에서의 Preactivation ResNet-164의 SGD 해와 SWA 해 왼쪽: FGE에 의해 얻어진 3개의 샘플과, 그것들을 가중치 공간 내에서 평균하여 얻은 SWA 해에 대한 테스트 오차 (Test Error)의 손실 지형 (Loss Landscape). 중앙·오른쪽: 125 에포크 (Epoch) 학습 후에 얻어진 동일한 SGD 초기점에서 출발하여, SGD에 의해 얻어진 수렴 시의 가중치와 SWA에 의해 얻어진 가중치를 나타낸 테스트 오차 및 훈련 손실의 손실 지형.
여기서 중요한 것은 SWA의 "훈련 손실"이 SGD보다 낮아지지 않을 수도 있다는 점이다. 오히려 SWA에서는 훈련 손실이 약간 악화되는 반면, 테스트 오차가 개선되는 경우가 많다. 이는 훈련 손실의 최소점과 테스트 오차의 최소점이 가중치 공간상에서 완전히 일치하지 않음을 시사한다. SGD는 훈련 손실을 낮추는 방향으로 최적화를 계속하기 때문에, 최종적으로 훈련 데이터에 대해서는 양호하더라도 가중치의 섭동 (Perturbation)에 대해 급격한 위치에 도달할 수 있다. 반면, SWA는 여러 가중치를 평균함으로써 주변의 넓은 범위에서 성능이 유지되는, 보다 강건한 (Robust) 해를 취득한다.
또한, SWA는 모델의 예측을 평균하는 일반적인 앙상블 (Ensemble)과는 달리, 가중치를 평균한 단일 모델을 출력한다. 따라서 여러 모델을 유지하며 추론할 필요가 없으며, 추론 시의 계산량과 메모리 사용량은 일반적인 단일 모델과 거의 동일하다. 학습 시에 필요한 추가 처리도 평균 가중치를 한 세트 유지하며 일정 간격으로 업데이트하는 작업에 국한된다.
SWA의 특징은 다음 세 가지로 요약할 수 있다.
- SGD 궤도상의 여러 가중치를 단순하게 평균한다.
- 양호한 해 영역의 주변부에서, 보다 중심적이고 평탄한 위치로 이동한다.
- 추론 시의 계산량을 늘리지 않고, 단일 모델의 일반화 성능 (Generalization Performance)을 개선한다.
본 기사에서는 먼저 일정 및 주기적 학습률 하에서 SGD가 어떤 궤도를 그리는지 확인한다. 다음으로 SWA의 알고리즘과 계산량을 정리하고, 가중치 평균이 일반화 성능을 개선하는 이유를 손실 지형의 기하학적 구조와 앙상블 근사 (Ensemble Approximation)의 관점에서 설명한다. 마지막으로 CIFAR 및 ImageNet에서의 실험 결과 through SWA의 유효성과 적용 조건을 차례대로 살펴본다.
2. SGD는 어떤 해를 탐색하고 있는가
SWA가 유효하게 기능하기 위해서는 단순히 학습 후반부의 가중치를 평균하기만 하면 되는 것이 아니다. 평균하는 가중치가 동일한 양호한 해 영역을 적절히 넓게 탐색하고 있어야 한다. 본 장에서는 일반적인 감쇠 학습률이 SGD의 궤도를 한 점으로 수렴시키는 반면, 일정하거나 주기적인 학습률이 낮은 손실을 가진 영역 내의 여러 점을 탐색하게 함을 설명한다.
2.1 감쇠 학습률은 탐색을 정지시킨다
미니배치
로 표기된다. 여기서,
일반적인 신경망 학습에서는 학습의 진행에 따라
한편, 학습률이 충분히 작아지면 SGD는 현재 위치에서 거의 이동하지 않게 된다. 즉, 감쇠 학습률은 최종적인 한 점을 정밀화하는 한편, 비슷한 수준의 낮은 손실을 가진 주변 영역의 탐색을 정지시킨다.
심층 신경망에서는 낮은 훈련 손실을 가진 가중치가 고립된 한 점으로 존재하는 것은 아니다. 오히려 서로 다른 가중치이면서도 비슷한 정도의 훈련 손실과 예측 성능을 가진 해가 가중치 공간 내의 연속적인 영역을 형성하는 경우가 있다. 일반적인 SGD가 반환하는 것은 어쩌다 수렴한 한 점에 불과하다.
학습 중의 가중치를 평활화(Smoothing)하는 방법으로 지수 이동 평균 (Exponential Moving Average: EMA)도 널리 사용된다. EMA는
에 의해 가중치를 업데이트한다.
EMA는 최근의 가중치에 큰 가중치를 부여하고, 오래된 가중치의 기여도를 지수적으로 감쇠시킨다. 따라서 감쇠 학습률 (decaying learning rate)에 의해 이미 한 점으로 수렴하고 있는 궤도에 적용할 경우, 주요 효과는 최종적인 **SGD 궤도의 평활화 (smoothing)**가 된다.
이와 대조적으로 SWA에서는 비교적 큰 학습률을 유지하거나 주기적으로 변화시킴으로써, 가중치를 단일 해로 수렴시키지 않고 저손실 영역 (low-loss region) 내를 이동하게 한다. 그리고 그 궤도 위에서 얻은 여러 가중치를 동일한 비율로 평균한다. 따라서 EMA와 SWA의 본질적인 차이는 가중치의 평균 방법뿐만 아니라, 평균 대상이 되는 가중치의 궤도를 어떻게 생성하는가에도 있다.
2.2 일정·주기적 학습률에 의한 해 영역의 탐색
SWA에서는 일반적인 SGD를 통해 모델을 충분히 학습시킨 후, 일정 학습률 또는 주기적 학습률을 사용하여 학습을 지속한다. 학습률을 0 근처까지 감쇠시키지 않음으로써, SGD를 하나의 가중치에 고정하지 않고 저손실 영역 내에서 이동시킨다.
논문에서 사용되는 주기적 학습률은 반복
과 같이 정의된다.
여기서,

Fig.2: 주기적 학습률과 대응하는 테스트 오차 상단은 각 반복에서의 학습률, 하단은 동일한 학습 과정에서의 테스트 오차를 나타낸다. 원형 표시는 학습률이 최솟값에 도달한 시점이며, 주기적 학습률을 사용하는 SWA에서는 이 시점의 가중치를 평균 대상으로 수집한다.
각 사이클의 시작 시에는 비교적 큰 학습률에 의해 현재 위치에서 벗어나 서로 다른 가중치를 탐색한다. 그 후, 학습률을 점진적으로 낮춤으로써 새로 도달한 위치를 국소적으로 조정한다. 따라서 주기적 학습률에는 탐색과 정밀화 (refinement)를 교대로 반복하는 역할이 있다.
주기적 학습률을 사용하는 경우, 통상적으로 학습률이 최소가 되는 시점의 가중치를 저장한다. 큰 학습률로 이동한 직후가 아니라 각 사이클의 종단에서 취함으로써, 낮은 손실을 가진 비교적 성능이 높은 후보들을 모을 수 있다.
한편, 일정 학습률에서는
두자의 차이는 다음과 같이 정리할 수 있다.
| 학습률 스케줄 | 해 영역의 탐색 | 개별 후보 해 |
|---|---|---|
| 주기적 학습률 | 탐색과 정밀화를 반복함 | 비교적 고정밀 |
| 일정 학습률 | 지속적으로 강하게 탐색함 | 정밀도가 낮을 수 있음 |
단, SWA에서는 평균에 포함되는 각 가중치가 단독으로 최고 성능을 가질 필요는 없다. 중요한 것은 그 가중치들이 서로 무관한 영역에 흩어져 있는 것이 아니라, 동일한 저손실 영역 내에 있는 서로 다른 위치에서 얻어졌다는 점이다.
2.3 SGD 궤도는 양호한 해 영역의 주변을 이동한다
일정 학습률과 주기적 학습률이 실제로 어떤 영역을 탐색하는지 조사하기 위해, 논문에서는 CIFAR-100으로 학습한 Preactivation ResNet-164의 SGD 궤도를 시각화하였다.
고차원 가중치 공간을 그대로 그릴 수는 없기 때문에, 궤도 상의 처음, 중간, 마지막 3점을 포함하는 2차원 평면을 구성하여 그 평면상에서의 훈련 손실 (training loss)과 테스트 오차 (test error)를 평가하였다.

Fig.3 주기적 학습률 및 일정 학습률로 얻어지는 SGD 궤도 주변의 손실 지형 (loss landscape)
왼쪽 2개는 주기적 학습률, 오른쪽 2개는 일정 학습률을 사용했을 경우를 나타낸다. 각각에 대해 교차 엔트로피 (cross-entropy) 훈련 손실과 테스트 오차가 그려져 있다. 검은색 ×는 궤도 상의 처음, 중간, 마지막 지점이다.
이 그림의 궤도는 낮은 훈련 손실과 테스트 오차를 가진 영역의 주변을 이동하고 있다. 주기적 학습률이든 일정 학습률이든, SGD는 학습된 모델로부터 크게 벗어나는 것이 아니라 고성능 모델이 존재하는 동일한 영역 내를 탐색하고 있다.
단, 그림에 그려진 곡선은 실제 SGD 궤도 그 자체는 아니다. 처음·중간·마지막 3점은 도식화된 2차원 평면 위에 있지만, 그 외의 가중치는 고차원 파라미터 공간 위에 있으며 그 위치를 이 평면에 투영(projection)하여 그리고 있다. 따라서 투영 후 위치에서의 배경 손실값은 원래 가중치가 실제로 가지는 손실값과 일치하지 않는다. Fig. 3은 SGD 궤도를 따른 엄밀한 손실 변화를 보여주는 것이 아니라, SGD가 탐색하는 영역의 기하학적 구조를 정성적으로 시각화한 그림으로 해석해야 한다.
그럼에도 불구하고, Fig.3를 통해 두 가지 중요한 경향을 읽어낼 수 있다.
- SGD (Stochastic Gradient Descent)를 통해 얻은 후보 가중치들은 양호한 해 영역 (good solution region)의 중심에 모이는 것이 아니라, 그 주변을 넓게 이동한다. 학습률을 유지한 채 SGD를 계속하더라도, 궤도 위의 한 점이 자연스럽게 영역의 중심으로 수렴하는 것은 아니다.
- 훈련 손실 (training loss)과 테스트 오차 (test error)의 손실 지형 (loss landscape)은 대체로 유사하지만, 그 위치가 완전히 일치하지는 않는다. 훈련 손실이 가장 낮은 위치가 테스트 오차에서도 최선이라고 단정할 수 없다. 이는 훈련 손실만을 최소화한 최종 SGD 해보다, 양호한 해 영역의 안쪽에 위치한 가중치가 미지의 데이터에 대해 더 높은 성능을 보일 가능성이 있음을 의미한다.
이상의 관찰로부터 SWA의 기본적인 발상을 얻을 수 있다. 일정하거나 주기적인 학습률을 통해 SGD가 양호한 해 영역을 탐색하게 하여 궤도 위의 여러 가중치를 획득한다. SGD 자체는 영역의 주변을 이동하지만, 이들을 가중치 공간 (weight space) 상에서 평균하면 개별 후보점의 안쪽에 위치하는 가중치를 구성할 수 있다.
다음 장에서는 이 가중치 평균을 순차적으로 계산하는 SWA의 알고리즘과, 학습 시에 필요한 계산량 및 Batch Normalization 처리에 대해 설명한다.
3. Stochastic Weight Averaging
전 장에서는 일정하거나 주기적인 학습률을 사용함으로써, SGD가 단일 가중치로 수렴하지 않고 양호한 해 영역의 주변을 지속적으로 탐색함을 확인했다. Stochastic Weight Averaging (SWA)는 이 궤도 위에서 여러 가중치를 취득하고, 그 평균을 최종 모델로 사용한다.
본 장에서는 SWA의 구체적인 알고리즘, 통상적인 학습에서 SWA로 전환하는 이유, 그리고 계산량과 Batch Normalization에 관한 구현상의 주의점을 정리한다.
3.1 SWA의 알고리즘
SGD를 통해 얻은
에 의해 정의된다.
이 평균을 계산하기 위해 모든 가중치를 저장해 둘 필요는 없다. 제
와 업데이트하면 된다. 이는
와 등가이다.
따라서 학습 중에 유지해야 하는 것은 현재의 모델
SWA의 처리는 다음과 같이 정리할 수 있다.
일정 학습률을 사용하는 경우에는 각 에포크 (epoch)의 종료 시점 등 일정 간격으로 가중치를 취득한다. 주기적인 학습률을 사용하는 경우에는 통상적으로 각 사이클 (cycle)에서 학습률이 최소가 되는 시점의 가중치를 취득한다.
주기적인 학습률에서는 큰 학습률을 통해 서로 다른 위치를 탐색한 후, 학습률을 낮추면서 후보해를 조정한다. 따라서 사이클 종단에서의 가중치는 서로 다른 위치에 있으면서도, 단독으로도 비교적 높은 성능을 갖기 쉽다.
반면, 일정 학습률에서는 개별 가중치의 성능이 낮더라도 더 넓은 범위를 효율적으로 탐색할 수 있다. SWA에서는 개별 후보해를 최종 모델로 사용하는 것이 아니므로, 평균에 포함된 모든 가중치가 고정밀도일 필요는 없다. 중요한 것은 동일한 양호한 해 영역 내에서 서로 다른 위치의 가중치를 취득하는 것이다.
3.2 왜 통상 학습 후에 SWA를 시작하는가
SWA는 원리상 랜덤 초기값부터 실행할 수도 있다. 하지만 실용적으로는 통상적인 학습을 통해 모델을 어느 정도 수렴시킨 후에 SWA로 전환하는 방법이 안정적이다.
통상적인 모델을 수렴시키기 위해 필요한 학습 예산(learning budget)을
학습 전체는 다음의 두 단계로 나누어 이해할 수 있다.
통상 학습의 역할은 랜덤 초기값으로부터 낮은 훈련 손실을 가진 해 영역까지 모델을 이동시키는 것이다. 이 단계에서는 비교적 큰 학습률에서 시작하여 학습률을 감쇠시키는 표준적인 스케줄 (schedule)을 사용한다.
모델이 양호한 해 영역에 도달한 후, 학습률을 일정하거나 주기적인 스케줄로 전환한다. 이를 통해 SGD를 한 점에 고정하는 것이 아니라, 도달한 해 영역 내에서 다시 탐색하게 한다.
SWA를 너무 이른 단계에서 시작하면 평균에 포함된 가중치 중 일부가 아직 고손실 (high loss) 영역에 존재할 가능성이 있다. 이 경우 가중치 평균을 통해 양호한 해 영역의 중심으로 이동하는 것이 아니라, 학습 초기 단계의 부적절한 가중치에 끌려가게 된다.
반대로 학습률을 충분히 감쇠시킨 후에 SWA를 시작하더라도, 궤도 위의 가중치들이 서로 거의 다르지 않다면 평균에 의한 효과는 작다. 따라서 SWA에서는 시작 시점뿐만 아니라, 시작 후에 SGD를 어느 정도 이동시킬지도 중요하다.
이러한 관점에서 SWA의 하이퍼파라미터 (hyperparameter)는 다음 세 가지로 정리할 수 있다.
- SWA를 시작하는 시점
- SWA 기간 중의 학습률
- 가중치를 취득하는 간격
시작 시점은 모델이 충분히 고성능인 해 영역에 도달한 후에 설정한다. 학습률은 해당 영역 내를 탐색할 수 있을 정도로 크면서, 동시에 영역 밖으로 이탈하지 않을 정도로 작아야 한다. 취득 간격은 거의 동일한 가중치를 과도하게 평균하지 않도록, SGD가 어느 정도 이동할 수 있는 길이로 설정한다.
3.3 배치 정규화(Batch Normalization, BN) 통계량 재계산
SWA를 배치 정규화를 포함하는 모델에 적용할 경우, 가중치를 평균한 후에 BN의 통계량을 다시 계산해야 한다.
BN 레이어는 학습 가능한 파라미터인 스케일(scale)과 연관된다.
학습 시에는 각 미니배치에서 계산된 평균과 분산을 사용하여 활성화를 정규화하는 동시에, 추론 시에 사용할 running mean과 running variance를 업데이트한다. 반면, 추론 시에는 미니배치의 통계량이 아니라 학습 중에 축적된 이 통계량을 사용한다.
SWA는 여러 가중치를 구성한다. 이때 **각 모델의 학습 중에 기록된 BN 통계량은 그대로는 **
가중치 평균과 BatchNorm 통계량이 교환될 수 없는 이유
어떤 배치 정규화 레이어에 입력되는 활성화를 $x$라고 정의하자. 여기서 $ ext{BN}(x)$는 정규화된 출력을 의미한다.
SWA를 통해 얻은 평균 가중치를 $ heta_{ ext{SWA}}$라고 하자. 이때, SWA 모델에서 필요한 BN 통계량은 $ ext{BN}_{ ext{SWA}}$이다.
반면, 평균하기 전 각 모델이 보유한 BN 통계량을 평균하면 $ ext{BN}{ ext{avg}}$가 얻어진다. 하지만 이 두 값은 일반적으로 일치하지 않는다. 즉, $ ext{BN}{ ext{SWA}}
eq ext{BN}_{ ext{avg}}$이다.
이 비가환성(non-commutativity)을 하나의 은닉 유닛을 가진 2층 ReLU MLP로 확인해 보자. 모델을 $f$라 하고 가중치를 $ heta$라고 하자. 입력 $x$에 대한 출력을 $y$라고 한다.
여기서, 두 모델의 가중치를 $ heta_1$과 $ heta_2$라고 하자.
첫 번째 모델의 활성화는 $ ext{BN}(f(x; heta_1))$이며, 이는 $ ext{mean}$ 및 $ ext{variance}$를 갖는다. 따라서, 그 평균과 분산은 $ ext{mean}_1$ 및 $ ext{var}_1$이다.
두 번째 모델에서는 $ ext{BN}(f(x; heta_2))$이며, 이는 $ ext{mean}$ 및 $ ext{variance}$를 갖는다. 따라서, $ ext{mean}_2$가 된다.
따라서, 각 모델의 BN 통계량을 평균하면 $rac{ ext{mean}_1 + ext{mean}_2}{2}$가 된다.
반면, 두 모델의 가중치를 먼저 평균하면 $ heta_{ ext{avg}} = rac{ heta_1 + heta_2}{2}$가 된다. 평균 가중치를 가진 모델의 활성화는 $ ext{BN}(f(x; heta_{ ext{avg}}))$이며, 모든 입력에 대해 0이 된다. 따라서, $ ext{mean}_{ ext{avg}}$가 된다.
그러므로, $rac{ ext{mean}_1 + ext{mean}2}{2}
eq ext{mean}{ ext{avg}}$이다. 즉, 식 (1), (2)로부터 두 값은 일치하지 않는다.
이 불일치가 발생하는 이유는 가중치를 평균하면, 평균하기 전 모델과는 다른 활성화 함수가 얻어지기 때문이다. 위의 예시에서는, 두 모델이 각각 양의 입력과 음의 입력에 반응했던 반면, 가중치를 평균한 모델은 입력에 대한 응답이 완전히 사라졌다.
일반적인 2층 ReLU MLP $f$에 대해서도 $ ext{BN}(f(x; heta))$가 되기 때문에, 평균 가중치가 생성하는 활성화 분포는 각 모델이 생성하는 활성화 분포의 평균과는 일반적으로 다르다.
따라서, 평균하기 전 모델이 보유했던 running mean과 running variance를 평균하더라도, SWA 모델에 대응하는 BN 통계량은 얻을 수 없다.
즉, 평균 후 가중치 $ heta_{ ext{SWA}}$가 존재한다. 따라서, SWA의 가중치 평균이 완료된 후, 학습 데이터 $x$를 처리하는 절차는 다음과 같이 정리할 수 있다.
- 모델의 가중치를 $ heta_{ ext{SWA}}$로 대체한다. BN의 running mean과 running variance를 초기화한다.
- 학습 데이터를 모델에 순전파시킨다.
- 각 BN 레이어의 통계량을 재추정한다.
- 재계산된 통계량을 사용하여 추론을 수행한다.
BN 통계량을 재계산하지 않을 경우, 평균 후 가중치가 생성하는 활성화 분포와 BN 레이어가 보유하는 평균·분산 사이에 불일치가 생긴다. 그 결과, 활성화가 부적절하게 정규화되어 SWA를 통해 얻을 수 있었던 성능이 저하될 가능성이 있다.
따라서, 배치 정규화를 포함하는 모델에서는 BN 통계량의 재추정까지를 SWA의 일련의 처리로 다룰 필요가 있다. 한편, Layer Normalization이나 Group Normalization처럼 추론 시 학습 데이터 전체로부터 running statistics를 사용하지 않는 정규화 기법에서는 이 재계산이 필요하지 않다.
이상과 같이, SWA의 처리는 가중치의 순차적 평균을 통해 구현할 수 있지만, BN을 포함하는 모델에서는 평균 후 모델에 대응하는 활성화 통계량을 재구성하는 것이 필수적이다.
다음 장에서는 SWA를 통해 얻어지는 가중치가 왜 높은 일반화 성능을 보이는지, 손실 지형에서의 평탄성과 예측 앙상블의 국소 근사라는 두 가지 관점에서 설명한다.## 4. 가중치 평균으로 일반화 성능이 개선되는 이유
SWA의 연산은 SGD 궤적상의 가중치를 평균하는 것일 뿐이다. 하지만, 신경망의 출력이나 손실은 가중치에 대해 비선형적이므로, 가중치 평균을 통해 성능이 개선된다는 것은 자명하지 않다. 서로 다른 가중치를 평균하면 낮은 손실 영역에서 벗어나 성능이 크게 저하될 가능성도 있다.
SWA가 작동하는 배경에는 평균을 내는 가중치들이 무관한 해가 아니라, SGD에 의해 동일한 양호한 해 영역(good solution region)으로부터 추출되었기 때문이라는 점이 있다. 본 장에서는 SWA의 일반화 성능(generalization performance)을 손실 지형(loss landscape)에서의 강건성(robustness), 훈련 손실(training loss)과 테스트 오차(test error)의 괴리, 그리고 예측 앙상블(prediction ensemble)과의 관계를 통해 설명한다.
4.1 SWA 해는 가중치의 섭동(perturbation)에 대해 강건하다
SWA를 통해 얻은 가중치를 $w_{SWA}$라 하자. 가중치 $w$에서 임의의 단위 방향 벡터 $d$로 이동할 때의 가중치를 다음과 같이 정의한다.
$w' = w + td$
여기서 각 기호의 정의는 다음과 같다.
- $w \in \mathbb{R}^P$: 현재 모델 파라미터
- $d \in \mathbb{R}^P$: 파라미터 공간상의 이동 방향
- $t \in \mathbb{R}$: 해당 방향으로 얼마나 이동하는지를 나타내는 스칼라
- $\nabla \mathcal{L}(w)$: 손실의 그래디언트 (gradient)
- $\mathbf{H}(w) = \nabla^2 \mathcal{L}(w)$: 손실의 헤시안 (Hessian)
- $O(t^3)$: $O(t^3)$ 이상의 차수를 갖는 고차항
이 테일러 전개(Taylor expansion)는 한 번에 안 되네...
1변수 함수로 귀착
손실 $\mathcal{L}(w + td)$를 분석하기 위해, 다음과 같은 1변수 함수를 정의한다.
$f(t) = \mathcal{L}(w + td)$
여기서 각 항을 계산하면 다음과 같다.
먼저, $f(0) = \mathcal{L}(w)$이다.
다음으로, 1계 미분(first-order derivative)을 구하면 다음과 같다.
$f'(t) = \nabla \mathcal{L}(w + td)^T d$
특히 $f'(0) = \nabla \mathcal{L}(w)^T d$가 된다. 이 내적은 가중치 $w$에서의 그래디언트와 방향 $d$의 내적이다.
이어 $f''(t)$를 구하면 다음과 같다.
$f''(t) = d^T \nabla^2 \mathcal{L}(w + td) d$
그래디언트 $\nabla \mathcal{L}(w)$에 대해, 손실이 2계 연속 미분 가능하다면 $\nabla^2 \mathcal{L}(w)$를 헤시안 $\mathbf{H}(w)$라고 쓸 수 있다. 여기서 헤시안을 $\mathbf{H}$로 정의하면,
$f''(0) = d^T \mathbf{H} d$
가 된다. 특히 $d$가 단위 벡터이므로 $d^T d = 1$이다. 이상의 내용을 테일러 전개에 대입하면 다음과 같이 얻을 수 있다.
$f(t) = \mathcal{L}(w) + t \nabla \mathcal{L}(w)^T d + \frac{1}{2} t^2 d^T \mathbf{H} d + O(t^3)$
해의 근방에서 그래디언트 항($t \nabla \mathcal{L}(w)^T d$)은 $w$가 해(solution)에 가깝다면 매우 작다. 따라서 손실의 변화는 주로 2차 항인 $\frac{1}{2} t^2 d^T \mathbf{H} d$에 의해 결정된다. 여기서 $d^T \mathbf{H} d$ 값이 크면 해당 방향으로 조금만 이동해도 손실이 급증한다. 반대로 이 값이 작으면 더 큰 섭동을 가해도 손실이 유지된다.
따라서, 어떤 허용 가능한 손실 증가량 $\Delta \mathcal{L}$을 만족하는 최대 이동 거리 $t_{max}$는 다음과 같다.
$t_{max} \approx \sqrt{\frac{2 \Delta \mathcal{L}}{d^T \mathbf{H} d}}$

Fig.4: SWA 해 및 SGD 해로부터 랜덤한 방향으로 이동했을 때의 테스트 오차와 훈련 손실
CIFAR-100으로 학습한 Preactivation ResNet-164에 대해, 10개의 랜덤한 방향을 따라 가중치를 섭동시키고 있다. 왼쪽은 테스트 오차, 오른쪽은 훈련 손실을 나타낸다.
Fig.4에서 볼 수 있듯이, SWA 해에서는 더 먼 거리까지 낮은 손실과 오차가 유지된다.
이 결과는 SWA 해가 적어도 관측된 방향들에 대해서는 SGD 해보다 섭동에 대해 더 강건(robust)하다는 것을 보여준다. 즉, 가중치가 다소 변하더라도 예측 성능이 쉽게 무너지지 않는 위치에 있다.
다만, 여기서 측정된 것은 무작위로 선택된 유한한 개수의 방향에서의 평탄성(flatness)이다. 고차원 가중치 공간에서는 랜덤한 방향의 상당수가 급격한 고유 방향(eigen-direction)과 거의 직교할 가능성이 있으므로, Fig.4만으로 헤시안의 최대 고유값이나 모든 방향에서의 평탄성을 단정 지을 수는 없다.
또한, 뉴럴 네트워크의 평탄성은 파라미터화(parameterization)나 가중치 스케일링에 의존한다. 따라서 "평탄한 해는 항상 일반화가 잘 된다"라는 일반적인 명제로서가 아니라, 동일한 아키텍처와 파라미터화 하에서 SWA 해와 SGD 해를 상대적으로 비교한 결과로 해석하는 것이 적절하다.
4.2 훈련 손실의 최소점과 테스트 오차의 최소점은 일치하지 않는다
랜덤 방향을 따른 분석에서는 SGD 해로부터 이동할 때 거의 모든 방향에서 테스트 오차가 증가했다. 그러나,
$w_{SWA} - w_{SGD}$
방향은 달랐다. 이는 SWA 해와 SGD 해를 잇는 방향이 일반적인 랜덤 방향과는 다른, 손실 지형의 구조를 반영한 방향임을 의미한다.
두 지점을 잇는 직선상의 가중치를 다음과 같이 정의한다.
$w(\alpha) = (1-\alpha)w_{SGD} + \alpha w_{SWA}, \quad \alpha \in [0, 1]$
여기서,

Fig.5: SWA 해와 SGD 해를 잇는 직선상의 훈련 손실과 테스트 오차 CIFAR-100에 대해, 왼쪽은 Preactivation ResNet-164, 오른쪽은 VGG-16의 결과를 나타낸다. 가로축은 SWA 해로부터의 부호가 있는 거리(signed distance)이다.
Fig.5를 통해 SWA의 일반화 성능을 이해하는 데 중요한 세 가지 성질을 확인할 수 있다.
- SWA 해와 SGD 해 사이에는 높은 손실 장벽(loss barrier)이 존재하지 않는다.
두 지점을 잇는 직선상에서 훈련 손실이 크게 증가하지 않는 것으로 보아, SWA는 SGD와 전혀 다른 국소 해(local minimum)를 발견한 것이 아니라 동일한 저손실 영역 내에 위치하고 있다고 생각할 수 있다. - SGD 해가 훈련 손실은 약간 더 낮지만, SWA 해의 테스트 오차가 더 낮다.
따라서 $\argmin_w\mathcal{L}{\mathrm{train}}(w)$와 $\argmin_w\mathcal{L}{\mathrm{test}}(w)$는 동일한 위치에 있지 않을 수 있다. 그러므로 훈련 손실을 더욱 낮추는 방향이 미지의 데이터에 대해서도 좋은 방향이라는 보장은 없다.
손실 지형(Loss Landscape)은 SGD 해의 근방에서 비대칭적이다.
SGD 해는 넓은 저손실 영역의 중심이 아니라, 한쪽 측면에서 손실이 급격히 상승하는 경계 부근에 위치한다. 이에 반해 SWA 해는 그 안쪽에 위치하며, 양방향으로 비교적 크게 이동하더라도 손실이 유지된다.
SGD가 경계 부근에 도달하기 쉬운 이유는 확률적 경사(Stochastic Gradient)와 학습률(Learning Rate)에 의한 업데이트가 저손실 영역의 내부에서 멈춘다는 보장이 없기 때문이다. 일정하거나 주기적인 학습률을 사용하면, SGD는 영역의 주변에 있는 여러 점을 이동한다. 이 점들을 평균하면 각 점의 안쪽에 위치하는 가중치(Weight)를 얻을 수 있다.
단, "중심"이라는 표현은 기하학적인 무게중심을 의미하며, 훈련 손실의 국소 최소점(Local Minimum)을 의미하는 것은 아니다. 실제로 SWA 해는 SGD 해보다 훈련 손실이 더 높을 수 있다. SWA의 목적은 훈련 손실의 최소화가 아니라, 저손실 영역 내에서 섭동(Perturbation)에 대해 강건한(Robust) 위치를 확보하는 데 있다.
4.3 가중치 평균은 예측 앙상블을 국소적으로 근사한다
SWA는 여러 모델의 가중치를 평균하지만, Fast Geometric Ensembling (FGE) 등의 앙상블(Ensemble)에서는 여러 모델의 "예측(Prediction)"을 평균한다.
가중치 평균은 다음과 같다.
$$\bar{w} = \frac{1}{T} \sum_{t=1}^{T} w_t$$
반면, SWA에서는 가중치를 $\bar{w}$로 평균한 후, 다음과 같이 예측한다.
$$\hat{y}_{SWA} = f(\bar{w})$$
뉴럴 네트워크(Neural Network)는 가중치에 대해 비선형이므로, 일반적으로는 다음이 성립한다.
$$\hat{y}{SWA} \neq \frac{1}{T} \sum{t=1}^{T} f(w_t)$$
따라서 가중치 평균과 예측 평균이 완전히 일치하는 것은 아니다. 그러나 각 가중치를 $w_t = \bar{w} + \Delta_t$라고 표기하면,
$$\sum_{t=1}^{T} \Delta_t = 0$$
이 성립한다. 이를 모델 간에 평균하면,
$$\frac{1}{T} \sum_{t=1}^{T} f(\bar{w} + \Delta_t)$$
1차항은 $\sum \Delta_t = 0$에 의해 사라지므로,
$$\approx f(\bar{w})$$
이 된다. 여기서 Hessian이 이 근방에서 유계(Bounded)라면, 2차항은 다음과 같이 얻어진다.
$$\frac{1}{2T} \sum_{t=1}^{T} \Delta_t^T \nabla^2 f(\bar{w}) \Delta_t$$
2차항이 $O(\Delta^2)$이 되는 이유
Hessian의 연산자 노름(Operator Norm)을 사용하면, 임의의 $\Delta$에 대해 다음과 같이 평가할 수 있다.
$$|\nabla^2 f(\bar{w}) \Delta| \le \lambda_{\max} |\Delta$$
여기서 "Hessian이 유계"라는 것은 어떤 유한한 상수 $\lambda_{\max}$가 존재하여 $|\nabla^2 f(\bar{w})| \le \lambda_{\max}$를 만족함을 의미한다. 따라서,
$$|\nabla^2 f(\bar{w}) \Delta| \le \lambda_{\max} |\Delta$$
여기서 $\Delta_t$를 $\Delta$라고 하면, 모든 $t$에 대해
$$|\nabla^2 f(\bar{w}) \Delta_t| \le \lambda_{\max} |\Delta_t$$
따라서,
$$|\Delta_t^T \nabla^2 f(\bar{w}) \Delta_t| \le \lambda_{\max} |\Delta_t|^2$$
즉, 2차항의 크기는 상수 배의 $|\Delta|^2$이 된다.
한편, 두 후보 모델 $w_1, w_2$가 $\bar{w} \pm \Delta$라고 하면, 일반적으로 1차 크기는 $O(\Delta)$이다.
보충
따라서,
$$|f(\bar{w} + \Delta) - f(\bar{w})| \le O(\Delta)$$
로 평가할 수 있다.
또한 경사(Gradient)가 $|\nabla f(\bar{w})| \le L$이라면,
$$|f(\bar{w} + \Delta) - f(\bar{w}) - \nabla f(\bar{w})^T \Delta| \le O(\Delta^2)$$
이므로, $O(\Delta)$는 어디까지나 상한(Upper bound)에 대한 평가이다.
따라서 후보 모델들 사이의 예측에는 1차 차이가 존재하지만, 그들의 예측 평균과 SWA 모델의 예측 사이의 차이는 2차 크기로 억제된다.
이러한 국소 분석(Local Analysis)은 FGE 모델들이 서로 다른 예측을 가지면서도, SWA 모델이 그 예측들의 평균에 가까운 출력을 생성할 수 있는 이유를 설명한다.
논문에서는 CIFAR-100의 Preactivation ResNet-164를 사용하여 이 관계를 실험적으로도 평가하고 있다.
| 비교 대상 | 예측 확률의 차이 또는 일치율 |
|---|---|
| 연속된 FGE 모델 간의 예측 확률 차이 | 0.126 |
| ... |
SWA와 FGE 앙상블의 예측 차이는 개별 FGE 모델 간의 예측 차이보다 작다. 또한, 두 방식은 테스트 샘플의 95% 이상에 대해 동일한 라벨을 출력한다. 이 결과는 SWA가 단일 모델을 통해 FGE 앙상블을 근사하고 있다는 해석과 일치한다.
단, 이 근사에는 중요한 전제가 있다.
Taylor 전개에 의한 근사가 유효하려면 후보 가중치 $w_t$가 $\bar{w}$에 충분히 가까워야 한다.
또한, 뉴럴 네트워크에는 은닉 유닛(Hidden Unit)의 치환과 같이 동일한 함수를 서로 다른 가중치로 표현할 수 있는 대칭성(Symmetry)이 존재한다. 기능적으로 동일한 두 모델이라 하더라도 파라미터의 대응 관계가 다르면, 그 가중치 평균은 성능을 잃을 가능성이 있다.
SWA에서 가중치 평균이 성립하는 이유는 동일한 SGD 궤도에서 후보 점들을 취함으로써 모델 간의 파라미터 대응이 유지되고, 후보 가중치들이 국소적으로 인접해 있기 때문이다.
이상을 통해 SWA에 의한 일반화 성능(Generalization Performance)의 개선은 다음 두 가지 관점에서 이해할 수 있다.
- SGD 궤도상의 가중치를 평균함으로써, 저손실 영역의 주변부에서 가중치의 섭동에 대해 강건한 안쪽 위치로 이동한다.
- 여러 후보 모델을 앙상블한 예측을 2차 정도의 오차로 하나의 SWA 모델에 집약한다.
다음 장에서는 이러한 해석이 실제 성능 개선으로 이어지는지를 CIFAR 및 ImageNet에서의 벤치마크, 학습률 스케줄(Learning Rate Schedule) 비교, 그리고 일정 학습률을 이용한 학습 실험을 통해 살펴본다.
5. 실험을 통해 보는 SWA의 유효성
앞 장에서는 SWA가 저손실 영역 (low-loss region)의 더 안쪽에 위치하는 가중치를 구성하며, 인접한 여러 모델의 예측 앙상블 (ensemble)을 국소적으로 근사한다는 점을 설명했다. 본 장에서는 이러한 특성이 실제 일반화 성능 (generalization performance)의 개선으로 이어지는지를 실험 결과를 통해 검증한다.
주로 확인하고자 하는 점은 다음 세 가지이다.
- SWA의 개선 효과가 특정 데이터셋이나 아키텍처 (architecture)에 국한되지 않는가
- SWA 기간 중의 학습률 (learning rate)이 성능에 어떤 영향을 미치는가
- 평균에 포함된 개별 모델의 정확도가 높지 않더라도, SWA가 제대로 작동하는가
5.1 아키텍처 및 데이터셋을 초월하여 개선되는가
논문에서는 CIFAR-10, CIFAR-100 및 ImageNet을 사용하여 일반적인 SGD와 SWA를 비교하고 있다.
CIFAR에서의 평가 대상은 다음 네트워크들이다.
- VGG-16
- Preactivation ResNet-164
- Wide ResNet-28-10
- Shake-Shake 2x64d
- PyramidNet-272
이들은 네트워크의 깊이, 연결 구조, 정규화 (regularization), 학습 방법이 서로 다르다. 따라서 여러 아키텍처에서 일관된 개선이 확인된다면, 이는 SWA가 특정 모델 구조에 의존하는 기법이 아니라는 증거가 된다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기