1. Introduction and Motivations
Filter pruning은 선택된 필터를 직접 제거하는 방법과 제거 하지 않고 가중치를 0으로 변경하여 구조는 유지하면서 가중치는 제거하는 방법이 있다. Hard pruning의 문제점을 해결하고자 Soft pruning 방법을 제안한 논문이 등장했다. 이 방법은 “Smaller-norm-less-important”의 기준에 따라 l2-norm값이 작은 필터를 제거하되 완전히 제거하는 것이 아니라 일정 에폭 이후에 가중치를 다시 update한다.
하지만 “Smaller-norm-less-important” 기준에서 중요한 가정이 있다; 1) 필터의 norm 분산이 충분히 커야하고, 2) 제거하고자 하는 norm이 충분히 작아야한다는 점이다. 다시말해 norm이 상대적으로 작지만 높은 기여를 하고 있으면 안되고, 납득할 수 있을 정도로 충분히 작아서 기여도가 적다고 판단할 수 있어야한다. 모델 pruning은 위의 조건을 이상적으로 고려하고 진행하지만 현실적으로 위와 같은 조건을 항상 만족하는 것은 아니다.
따라서 본 논문에서는 가장 기여도 교체가 가능한(Most replaceable contribution) 필터를 선택하는 FPGM(Filter Pruning via Geometric Median)기법을 제시한다. 이 방법은 같은 layer에 있는 필터들의 Geometric Median(GM) 값을 계산하여 GM 값 근처에 있는 필터들은 서로가 비슷한 특징을 포함하고있다고 생각하여 제거하는 방식이다.
여기서 오해하지 말아야할 점은 Large norm filter가 많은 지역을 바탕으로 제거하는것이 아니라, 기하학적(Geometric) 위치를 바탕으로 제거하는 것이다. 아래 그림이 오해소지가 좀있는데, 마치 Large norm이 세개라서 하나를 제거한 것처럼 해석할 수 있지만 사실은 GM 값을 minize하기 위한 필터가 제거된 것이다.

2. Methodology
2.1 Analysis of Norm-based Criterion
앞서 언급했든 norm을 기준으로 pruning을 하는 것이 항상 훌륭한 결과를 보이는 것은 아니다. 두 가지 조건을 만족해야한다; 1) Deviation of filter norms should be significant. 2) The norms of those filters which can be pruned should be arbitrarily small.

Small Norm Deviation. Figure 2(a)의 그림을 보면 이상적인 norm devivation이 파란색이라고 할때, 실제 환경에서는 초록색과 같은 상황이 나타날 수 있다. 이런 경우 pruning을 위한 threshold를 정하는 공간(search space)가 작기 때문에 제대로된 기준으로 활용하기 어렵다.
Large Minimum Norm. Norm 값이 0에 가까워야 해당 필터를 제거하는것이 전체 성능에 영향을 미치지 않는다라고 판단 할 수 있다. Figure 2(b)를 살펴보면 파란색 dash line 처럼 0에 norm의 분포가 0에 가까워야 한다.하지만, 실제 환경에서는 초록색 부분과 같이 0에서 먼 분포를 갖고 있을 수 있다. 이런 경우 상대적으로 small norm을 삭제하는것이 전체 모델에 약영향을 미칠 수 있다.
2.3 Filter Pruning via Geometric Median
Norm-based criterion의 단점을 극복하기 위해서 논문의 저자들은 geometric median을 활용한 제거법을 제시한다. 주요 idea인 geometric median은 다음과 같다: 주어진
위에 개념을 바탕으로 필터 전체에서 흔한 정보(common infromation)을 확보하기 위한 geometric median
이 때,
같은
즉,
그러면 위의 식을 아래와 같이 바꿀 수 있다.
즉, 제거하고자 하는 필터 선택된 필터(
이때,
이는 전체
위와 같이 나타 낼 수 있고, 이를 minimize 하면
우리는
필터가 제거되더라도 Geometric Median 값은 영향이 없다는 것을 알 수 있다.
논문에서 제시한 FPGM 알고리즘은 아래와 같다.

논문에 제시한 알고리즘에는 잘 나타나와 있지 않지만, 아이디어를 구현한 소스코드를 보면 먼저 전체 필터에서 norm이 큰 후보군을 먼저 뽑는다. 이후, 이 후보군들을 바탕으로 GM을 구하고 제거하는 형태다.

구현체에서 Uclidean distance를 구하기 위해 scipy.spartial 모듈의 distance 함수를 사용했는데, 이는 구현의 편의상 이렇게 활용한것으로 보인다. Euclidean distance PyTorch로 구현하게 되면 이중 for문을 활용함으로써 복잡하다고 생각한듯하다.

Numpy의 argsort() 함수를 사용하면 내림차순으로 정렬함으로 Uclidean distance가 작은 수 순서대로 정렬을 진행한다. 즉, 비슷한 순서대로 정렬을 한다. 비슷하지 않는 필터,

3. Experiments
실험은 single-branch network인 VGGNet과 multiple-branch network인 ResNet 사용했다. 데이터는 Cifar-10과 ILSVRC-2012를 활용했다.
3.1 Single-Branch Network Pruning

Pretrained된 모델과 처음부터 학습한 결과다. 근소하지만 기존의 방법보다 약간 성능향상을 보였다.
3.2 Multiple-Branch Network Pruning

오히려 ResNet에서 더 좋은 결과를 보이는 것으로 확인된다. Accuracy drop도 적으면서, FLOPS는 크게 낮췄다. 이는 ILSVRC-2012 데이터에서도 나타난다.
(필자 개인의견)여기서 SFP는 동일한 저자들이 GM을 고려하지않고 Large norm filter만 제거한 논문인데, 다소 아쉬운 것은 SFP와 성능 차이가 크지 않다는 점이다. 물론 ResNet-50에서는 FLOPS를 크게 늘리긴했다. Depth가 낮은 모델에서는 FPGM이 크게 활용되기 어려울 수도 있다.

4. Conclusion
본 논문에서는 Filter pruning 연구에서 “smaller-norm-less-imortant” 기준에 의문점을 가지면서 1) norm deviation이 충분히 커야한다는 것과 2)norm이 0에 충분히 가까워야한다는 두가지 조건을 언급했다. 하지만 현실에서는 충족하지 못할 수 있는 조건이기 때문에 Geometric Median 값을 바탕으로 Most replaceable contribution filter를 제거하는 방법을 제시한다. 기존 방법론들에 비해 accuracy의 향상은 미미했으나, FLOPS를 줄일 수 있었고, 특히 깊은 모델에서 그 효과가 더 잘 나타는것을 보여줬다. 그럼에도 불구하고 단순히 norm값을 계산하는 방법에 추가적인 방법이 더해져야하는 상황에서 본 방법론을 활용할 가치가 있는지 고민이 더 필요해보인다.
'Model Pruning' 카테고리의 다른 글
[논문리뷰] Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks (0) | 2023.05.17 |
---|---|
[논문리뷰] Convolutional Neural Network Pruning: A Survey (0) | 2023.05.12 |