[논문 리뷰] Faster CNNs with Direct Sparse Convolutions and Guided Pruning
이 논문은 임의의 희소 패턴을 가지는 직접 희소 컨볼루션 방법, 속도 향상을 예측하는 성능 모델, 속도, 크기 및 정확도를 위해 네트워크를 가지치기하는 Guided Sparsity Learning을 도입하여 다양한 플랫폼에서 상당한 속도 향상을 달성한다.
Phenomenally successful in practical inference problems, convolutional neural networks (CNN) are widely deployed in mobile devices, data centers, and even supercomputers. The number of parameters needed in CNNs, however, are often large and undesirable. Consequently, various methods have been developed to prune a CNN once it is trained. Nevertheless, the resulting CNNs offer limited benefits. While pruning the fully connected layers reduces a CNN's size considerably, it does not improve inference speed noticeably as the compute heavy parts lie in convolutions. Pruning CNNs in a way that increase inference speed often imposes specific sparsity structures, thus limiting the achievable sparsity levels. We present a method to realize simultaneously size economy and speed improvement while pruning CNNs. Paramount to our success is an efficient general sparse-with-dense matrix multiplication implementation that is applicable to convolution of feature maps with kernels of arbitrary sparsity patterns. Complementing this, we developed a performance model that predicts sweet spots of sparsity levels for different layers and on different computer architectures. Together, these two allow us to demonstrate 3.1--7.3$ imes$ convolution speedups over dense convolution in AlexNet, on Intel Atom, Xeon, and Xeon Phi processors, spanning the spectrum from mobile devices to supercomputers. We also open source our project at https://github.com/IntelLabs/SkimCaffe.
연구 동기 및 목표
- 단순한 매개변수 가지치기를 넘어서 CNN 추론 시간과 모델 크기를 감소시키는 것을 목표로 한다.
- 커널의 임의의 희소 패턴에서 작동하는 효율적인 희소 컨볼루션을 개발한다.
- 아키텍처 전반의 속도향상을 예측하고 가지치기를 안내하는 성능 모델을 만든다.
- 정밀하게 속도향상을 목표로 가지치기를 수행하는 Guided Sparsity Learning(GSL)을 제안하고, 정확도 손실 없이 계층을 대상으로 한다.
- 다양한 하드웨어에서 AlexNet과 GoogLeNet에 대해 상당한 속도향상을 시연한다.
제안 방법
- 직접 희소 컨볼루션을 가상 밀집 입력을 즉시 생성하는 희소-행렬-밀집 행렬 곱으로 공식화한다(다운로딩/저하 없이).
- 컨볼루션 커널에서 임의의 희소 패턴(요소별 희소성)을 가능하게 하여 가지치기 최대화를 달성한다.
- 지붕선(루프라인) 프레임워크를 활용한 성능 모델을 개발하여 희소 컨볼루션 속도향상을 한정하고 유용한 희소성 범위를 식별한다.
- 예상 속도향상 잠재력에 따라 계층을 가지치기하는 Guided Sparsity Learning(GSL)을 도입하고, GESL 및 GDNS와 같은 변형을 포함한다.
- 속도 모델에 의해 안내된 요소별 정규화를 사용해 정확도, 속도, 크기의 균형을 맞추면서 네트워크를 학습한다.
실험 결과
연구 질문
- RQ1직접 희소 컨볼루션이 다양한 희소 패턴에서 전통적 다운로딩 기반 희소 방법보다 어떻게 더 우수하게 작동할 수 있는가?
- RQ2정확도를 유지하면서 추론 속도향상을 극대화하는 희소성 수준과 대상 계층은 무엇인가?
- RQ3성능 모델이 서로 다른 아키텍처(Atom, Xeon, Xeon Phi) 및 CNN 계층에 대한 속도향상을 정확하게 예측할 수 있는가?
- RQ4Guided Sparsity Learning이 정확도 손실 없이 속도향상을 달성하기 위해 네트워크를 효과적으로 가지치기하는가?
- RQ5다수의 플랫폼에서 AlexNet과 GoogLeNet에서 달성 가능한 속도향상과 희소성 한계는 무엇인가?
주요 결과
- 직접 희소 컨볼루션은 Atom, Xeon, Xeon Phi 프로세서에서 AlexNet의 밀집 컨볼루션 대비 3.1~7.3× 속도향도를 제공합니다.
- 일반적인 성능 모델은 다양한 아키텍처에서 의미 있는 가속을 위한 속도향상과 상한/하한 희소성 경계를 예측합니다.
- Guided Sparsity Learning(GSL)은 속도향상 잠재력이 있는 계층을 대상으로 가지치기하여, 정확도 손실이 거의 없거나 없어도 상당한 희소성을 달성합니다.
- GoogLeNet은 가이드 가지치기를 적용하면 컨볼루션 및 완전연결층에서 매개변수의 80% 이상을 잃을 수 있는데도 정확도 저하가 없을 수 있습니다.
- AlexNet에서 BDW는 비제로 밀도 x=0.09에서 3.4× 속도향상을 달성; Atom은 x=0.09에서 7.3× 속도향상; KNL은 x=0.09에서 13.9× 유효 TF/s에 도달했다.
- 저자는 오픈소스 구현을 https://github.com/IntelLabs/SkimCaffe에서 제공한다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.