기존 pruning 기법들이 성능에 있어 불투명한 hyperparmeter를 사용하거나 여러 번에 거쳐서 pruning을 진행하는 것을 지적하며 single-shot pruning을 제안!
1. 기존 pruning 기법의 한계
- Dataset
가 주어지고, 목표로 하는 sparsity level이 인 NN Pruning을 constrained optimization 문제로 표현할 수 있다.
여기서
- 정의된 최적화 문제는 보통 미리 학습한 network를 pruning하고 fine-tuning하는 과정을 반복하는 iterative하고 휴리스틱한 방법이 주로 사용됨.
- 대부분의 pruning 기법이 FCN, CNN 등 architecture에 의존성이 있으며, 또한 pruning 과정에 사용되는 hyper-parameter가 많이 사용하는데 이를 구하는 과정이 휴리스틱한 경우가 많다.
2. One-Shot Pruning Method
- 본 논문에서는 training 전에 한번의 pruning을 수행하여 parameter를 줄이는 방법을 제안한다.
- Network의 각 element의 삭제 여부를 나타내는 auxiliary indicator variance
를 정의하고 최적화 문제를 다음과 같이 수정함.
- parameter
로 인해 학습해야할 parameter가 2배가 되어 바로 optimize가 어려워짐. 하지만 pruning 여부, 즉 에 따른 성능 변화에 대해서 loss를 정의하면 weight와 무관하게 최적화 할 수 있음. - Pruning의 효과를 loss의 차이를 이용하여 표현할 수 있다. m개의 connection이 각각 loss에 미치는 영향을 얻기 위해 m번의 forward pass를 계산해야 함. → 연산이 복잡함
weight가 아닌 c에 대한 효과로 다시 표현 가능함. (index j의 효과를 제거)
여기서
- weight에 dependency가 적고 한번의 forward pass로 모든 connection을 평가할 수 있는 "connection sensitivity"를 정의하고, 한번의 forward pass를 통해 모든 connection의 sensitivity를 계산함.
3. Experimental Result
- 다음과 같은 순서로 pruning을 수행함.
- network의 parameter를 초기화
- mini-batch sampling
- Connection sensitivity를 계산
- Top-
의 parameter만 남기고 pruning - pruned network를 학습
- 다른 pruning 기법 대비 간단한 방법으로 좋은 성능을 나타냄.

random label을 적용한 결과 pruned network의 경우 loss가 감소하지 않음.
- network의 memorization 문제를 방지할 수 있다!
