
AI의 응용 관점에서 CNN은 놀라운 성과를 거두었고, 점점 더 좋은 성능을 제시함에 따라 계산복잡도도 따라서 증가하고 있다. 이는 edge devices에서의 배치를 부담스럽게 하고 있다.
이를 해결하기 위한 방법에는 여러가지가 있지만 그중 네트워크 pruning은 성능 감소를 최소화하면서도 자원 요구량을 줄일 수 있는 효과적인 방법 중 하나이다.
structured pruning은 중복되는 channel들을 layer에서 제외시킴으로써 inference 시간을 감소시킨다.
structured pruning은 크게 2 가지의 접근으로 나뉠 수 있다.
1. importance-based: norm이나 geometric median과 같은 heuristic 방식을 이용하여 channel의 중요성을 평가한다.
2. regularization-based: pruning 과정에 regularization loss를 포함시켜서 네트워크를 pruning한다.
structured pruning 방식들은 주로 3단계 pipeline을 거치는데,
1. 규모가 큰 네트워크가 수렴하고 높은 성능으로 task를 처리할 정도가 될 때까지 사전학습을 진행한다.
2. 이러한 네트워크에서의 중복되는 채널들을 특정한 pruning 방식에 의거하여 제거한다.
3. 최종적으로 prune된 네트워크는 성능 감소를 최대한 무마하기 위해서 fine-tuning을 거친다.
이러한 방식들은 마지막 2개의 단계들에 집중해서 잘 진행되어 왔고 좋은 결과를 보여왔다. 하지만, 이렇게 규모가 큰 네트워크들을 수렴할 때까지 학습시키는것은 어렵고 시간이 오래걸리는 전반적인 효율을 떨어뜨리는 일이다.
importance-based 접근방식을 사용하면 채널의 중요성을 찾기가 어려워지기에, 시간이 지남에 따라 서서히 네트워크를 prune해주는 regularization-based 접근방식을 택했다고 한다.
하지만 direct하게 적용되면 정보 손실이 너무 심하기에 본 논문에서는 이를 해결하기 위해 indirect하게 pruning 모듈에 적용하는 방법을 적용한다.
structured pruning을 통한 실질적 가속화에는 실제로 masked channel들을 제거해주는 재구성 과정이 필요하다.
residual block들은 컨볼루전 layer들로 구성되어있고, 이들은 shortcut connection과의 관계를 기준으로 inner과 outer layer로 구별 될 수 있다.
inner layer들은 독립적으로 작용하기 때문에 재구성이 쉽지만, outer layer들은 channel alignment를 고려하지 않고 재구성하게되면 성능이 떨어지게 된다.(shorcut connection과 연결되어 있기에)
본 논문은 SPM을 제시함으로써 outer layer들을 prune하여, 성능을 보존함과 동시에 효율적인 네트워크 압축을 가능케 한다.
올바른 채널을 선택하도록 pruning module을 인도해주는 것은 중요하며, 효율적인 표현력을 유지하기 위해선 네트워크의 성능을 관리 및 유지하며 이루어져야 한다.
본 논문에서는 MAC를 pruning 하는 쪽으로 모듈을 인도하는 과 pruned network의 표현력을 유지하기 위해 모듈을 인도하는 총 2 가지의 loss를 제시한다.









