모델의 정확성을 유지하면서 일반 CPU에서 상당한 속도 향상을 동시에 이루는 것은 여전히 해결되지 않은 문제로 남아 있음 (It remains an open issue to concurrently maintain model accuracy as well as achieve significant speedups on general CPUs.)
해당 논문에서는 이러한 문제를 해결하기 위해 1 x N Pruning Pattern 제시
CNN은 다양한 Computer Vision 작업에서 상당한 발전을 이루어냄 [1], [2], [3]
이러한 성공에도, 새롭게 개발된 네트워크는 학습 가능한 매개변수가 증가하는 경향이 있으며, 더 많은 FLOPs를 요구함
CNN의 중복성 제거 → 최근 Network Pruning은 모델 배포를 위해 학계와 산업계 모두에서 널리 선호되는 방법으로 자리잡음
기존의 Network Pruning 방식(Pruning 단위에 따라 나뉨)
기본 단위: Filter 내의 임의 위치의 개별 가중치나 Fully Connected Layer 간의 연결
네트워크를 세밀한 수준에서 희소화(Sparsification)
매우 높은 압축률과 높은 정확도를 달성할 수 있음을 입증함 [4], [5], [6]
단일 명령 다중 데이터(SIMD)와 같은 벡터 처리 아키텍처를 효과적으로 활용하지 못하여 속도 향상이 제한적
메모리 버스를 비효율적으로 사용
종속적인 읽기 연산 시퀀스가 증가하여 지연 시간이 늘어남
최근 연구 → [7], [8], [9], [10]
기본 단위: Filter 전체
Filter 내 모든 가중치를 제거 → 네트워크 복잡성을 거친(Granularity) 수준에서 줄임
네트워크 구조가 변경되지 않아 희소화된 네트워크가 일반 하드웨어 및 상용 기본 선형 대수 서브 프로그램(BLAS) 라이브러리와 잘 호환되어 가속화를 얻음
중간 수준의 희소화율(Sparsity Rate)에서만 정확도를 유지
희소화율이 높아지면 Weight Pruning보다 성능 저하가 더 심각해질 수 있음
최근 연구 → [12], [13], [14], [15]
이전 연구에 적절한 학습 설정이 주어질 경우, 이러한 기술이 성능 향상에서 잠재력 발휘가 제한됨 [16], [17]
제안하는 1 x N Pattern → Network Pruning을 위한 중간 수준의 세분화(또는 단위, Granularity) 제공
1 x N Pruning 단계
Kernel 제거를 탐구한 연구들 [18], [19], [20]과는 달리, 제거되는 N개의 Kernel이 연속적이어야 한다는 더 강력한 요구사항 제시
Figure 1
