스터디에서 발표된 Rethinking the Value of Network Pruning을 정리하겠습니다.
Pruning은 이미 학습되어 있는 모델에서 비교적 간편하게 성능을 증가시키는 방법 중 하나입니다.
간단하게 말하면 Network Pruning은 약한 연결을 가지치기 하듯 잘라내어 모델 크기를 줄이는 방식으로 경량화를 시킵니다.
- 일반적인 Pruning 과정은 다음의 3가지 스텝에 따라 진행됩니다.
- 무겁고 큰 모델을 학습시켜 정확도를 최대한 높입니다.
- 무겁고 큰 모델에서 중요하지 않은 가중치를 잘라냅니다.
- 작아진 모델의 정확도를 향상 시키기 위해 파인 튜닝을 합니다.(큰 모델의 가중치를 전달?)
이러한 과정을 진행하는 이유는 다음과 같습니다.
- 작은 모델에서 불필요한 가중치를 없애는 것보다 큰 모델에서 불필요한 가중치를 없애는 것이 모델에 영향을 덜 준다는 것과 기존 network가 클수록 정확도가 더 높다는 점.
- prune이후 구조와 그 구조의 가중치 값이 중요한 의미를 가진다는 점(중요한 가중치가 남기 때문에).
그러나 논문에서는 두 가지 전제가 채널 단위 이상에서 이루어지는 pruning (structured pruning)에서는 적용되지 않을 수 있다고 주장합니다. 저자들은 Pruned 모델을 Random Initialized해서 학습한 것보다 3-stage 방법을 통한 모델이 안 좋을 수 있다는 것을 관찰했습니다.
————다음의 주장은 모두 Structured Pruning의 상황에서의 주장들입니다.————
1) 무겁고 큰 네트워크가 효율적인 최종 모델을 얻는데 반드시 필요한 건 아니다.
2) 무거운 모델의 '중요한' 가중치는 Pruned 모델에 유용하지 않다.
3) Pruned 모델의 구조 자체가, '중요한' 가중치보다 더 중요하다. (상속되는 weight보단 pruning 후 구조가 더 중요)
4) 따라서 Structured Pruning 기법은 Architecture Search로 사용할 수 있다.
# 실험
- Training Budget : 실험을 위해 작은 모델을 훈련시킬 때, 작은 모델을 얼마나 훈련시켜야 하는지
- Scratch-E : 큰 모델과 epoch 같음
- Scratch-B : 큰 모델과 계산량 같음 (FLOPs)
- 실험 전체적으로 Scratch-B가 가장 우수한 경향성 있습니다.
1. Predefined Structured Pruning
- L1-norm based filter pruning
: 학습 후 얻어진 Network의 각 필터마다 L1-norm 기반, 즉 가중치의 절대값들의 합을 구해 작은 순서대로 pruning 하는 방법
- ThiNet
: 다음 layer의 activation 값에 가장 작은 영향을 주는 channel을 greedy하게 소거하는 방법. 즉, 특정 layer를 기준으로 pruned model의 output이 baseline model의 output과 차이가 최소화되도록 채널을 소거하는 방법
- Regression based feature reconstruction
: 다음 layer의 feature map reconstruction error를 최소화하도록 pruning하는 방법론. ThiNet 매우 유사하나 LASSO regression을 사용해 최적화한다는 차이가 있음
2. Automatic Structured Pruning
- Network Slimming
: 각 channel의 batch norm scaling factor를 기반으로 scaling factor가 작은 channel을 pruning 하는 방법
- Sparse Structure Selection
: 특정 structure에 부과된 scaling factor를 기반으로 pruning 하는 방법
3. Unstructured Magnitude-Based pruning
- 모든 weight의 절대값을 기준으로 작은 값들을 pruning 하는 방법
Network Pruning as Architecture Search
- 실험을 통해 가중치보다 Pruned 모델의 구조 자체가 중요함을 밝혔다. → uniformly pruned model과 pruning-obtained model을 비교하여 network pruning의 architecture search로서의 가치를 보입니다.
'논문 리뷰 > 경량화 논문 스터디' 카테고리의 다른 글
[논문 리뷰] GhostNet: More Features from Cheap Operations, CVPR 2020 (0) | 2021.10.06 |
---|---|
[논문 리뷰]AdderNet: Do We Really Need Multiplications in Deep Learning?, CVPR 2020 (0) | 2021.09.29 |
[논문 리뷰] 경량화 기술 동향 (0) | 2021.09.21 |
[논문 리뷰]EfficientNetV2: Smaller Models and Faster Training (0) | 2021.08.29 |
[논문 리뷰]EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (0) | 2021.08.17 |