Introduction
SNIP을 structured setting으로 두고 적용한 논문이다. pruning시에 compute-aware scoring을 하여 가속에 초점을 맞춘 것이 특징이다.
*3SP (Single Shot Structured Pruning)
Method
- 저자들은 SNIP의 setting을 효율적인 binary mask를 찾는 문제로 보았다.
- convolution layer에서는 각 output channel에 linear layer에서는 각 hidden unit에 binary mask를 두었다.
- SNIP에서 했던 것과 유사하게 세 가지 가정을 갖고서 변화율을 근사했다.
1. binary mask를 연속적인 변수로 근사하였다.
2. first-order taylor expansion을 사용하여 loss를 근사했다.
3. binary mask set의 엔트리를 바꿨을 때 만들어지는 변화율을 근사했다.
- Unstructured setting에서는 가중치 개수만큼 mask entry가 있지만 structured setting에서는 훨씬 적다. VGG-19의 경우 약 5000개의 mask entry를 갖기 때문에 2,3번째 가정이 적절하지 않을 수 있다. 하지만, 이렇게 세팅해도 괜찮다는 것을 first-order taylor expansion이 얼마나 loss를 잘 근사해내는지를 통해 실험적으로 보였다. 이는 아래 그림과 같다.
- Unstructured setting에 비해 노이즈가 많지만 실제 변화율과 높은 상관관계를 가짐을 알 수 있다.
- 학습 이전에 프루닝을 하는 것은 activation의 variance를 바꿀 수 있는데, structured case에서는 activation의 개수까지 바꿀 수 있다. 프루닝을 하고나면 가중치가 크고 작은 것이 균일하게 없어지지 않기 때문에 variance가 일정하지 않은 것인데 SNIP에서는 프루닝 이후 가중치를 초기화 해주었다.
- 위에까지는 3SP를 이야기한 것이고, 실제 computation cost 고려하는 부분은 채널당 compute cost를 잡고 정규화하였다. 이를 각 채널의 compute score로 잡았다. 다음과 같다.
- 그리고 이를 통해 제거된 compute unit당 loss에 대한 영향력을 계산했다. 이를 retention score라고 부른다.
- retention score는 loss에 큰 변화를 주거나 채널의 계산량에 큰 영향을 끼치지 않는 경우에 높은 값을 갖는다.
Structured Compute-Aware Pruning