"Integral Pruning" and "Scalpel" Review

카테고리 없음 2019. 8. 30. 18:34 Posted by 랏츠베리

본 포스팅은 Deep Convolutional Neural Network의 Inference time 최적화를 위해 Operation 개수를 보다 공격적으로 최적화한 Integral Pruning Concept (ICLR 2019)과 최적화된 모델을 Processor-Aware하게 재구성한 Scalpel (ISCA 2017)를 리뷰하도록 하겠습니다. 포스팅에 앞서, 주제와 관련된 모든 연구 내용은 Integral Pruning on Activations and Weights for Efficient Neural NetworksScalpel: Customizing DNN Pruning to the Underlying Hardware Parallelism 참조했음을 먼저 밝힙니다.

 

History


  2015년 NIPS에 S Han et al.이 Deep Convolutional Neural Network의 모델 및 연산 최적화를 위해 Aggressive Pruning 컨셉을 도입한 이후, 지금까지 적극적으로 해당 컨셉을 바탕으로 DNN 모델을 최적화 하기 위한 노력이 꾸준히 지속되어 왔습니다. 현재까지 적용되었던 Pruning 컨셉의 핵심적인 기술은 Connection의 Intensity를 결정하는 가중치의 값들이 특정 임계치보다 낮은 경우 과감히 제거함으로써 Connection 개수를 최적화시키는 Masking 기법이었고, 이는 "Going Deeper"하게 만들어온 여러 종류의 DNN 구조에 대하여 Size Reduction을 처리하는데 상당한 이점을 만들었습니다. 그러나, Model Size가 Pruning으로 인해 대폭 감소하더라도, 딥러닝 연산을 수행하는 대다수 Operation인 MAC (Multiply-Accumulation)을 효과적으로 감소시키지 못하였고, 게다가 줄어든 Connection의 Memory Footprint 최적화를 위해 도입했던 Sparse Representation Format이 오히려 연산의 부가적인 Overhead로 작용함으로써, Backend 측면에서 Drawback이 발생하는 Issue들이 등장하였습니다. 결과적으로, 최근, 모델을 축소하기 위한 노력에서 발견된 Operation 개수 최적화 (MACs Reduction)와 연산 Resource 최적화 (Backend Optimization) 간의 Trade-off가 Pruning 효과와 DNN 연산의 극대화를 위해 중요한 쟁점으로 떠올랐으며, 본 포스팅의 논문은 해당 추세의 연장선에 있는 연구 결과에 속합니다.

 

Integral Pruning


  본 논문은 최근 Pruning History의 Related Work을 크게 두 부류의 Pruning Concept인 Weight Pruning과 Activation Pruning으로 정의하였습니다. Static Mask를 통해 Connection 최적화를 수행한 Weight Pruning의 Operation Reduction의 한계를 지적하며, Intermediate Generation Value인 Activation에 대하여도 필수적인 Outlier-value를 제외하고 Sparse하게 변형하려는 아이디어를 적용하였으며, 본 컨셉을 통해 Complexity가 낮은 Model에 대해서 충분한 최적화 효과를 얻었습니다.

 

 

Activation Mask Design을 위해 Winner Rate를 도입하여 Accuracy Loss를 tracking하는 sensitivity check를 수행하였으며, 이를 통해 mask의 threshold를 dynamic하게 setting하여 activation pruning를 처리하였습니다.

 

Scalpel


  본 논문은 현재까지 연구되었던 Pruning 기법이 우리가 흔히 알고 있는 Low/Moderate/High Parallelism을 갖는 General-Purpose Processor로부터 연산 성능이 효과적으로 나타나지 않으며, 특히 대체적으로 나빠진다는 Empirical한 발견을 통해 Pruning 컨셉을 Backend-Aware하게 재구성한 논문입니다. 본 논문은 ARM Cortex-M4/ Intel i7-6700 / NVIDIA GTX Titan X를 Target으로 하였으며, 각각의 Processor가 보유하는 Parallelism에 적합한 재구성된 Pruning 기법을 적용하여 Hardware Operating Resource 활용을 극대화하였습니다.

 


  서술한 연구 내용 외에 추가적인 연구 결과나 이해가 필요한 부분이 있으면 직접 링크된 논문을 읽어보시고 댓글을 남겨주시면 답변드리겠습니다. 제가 작성한 PPT 자료를 업로드 해드리니 필요하시면 참고해주세요.

seminar.pptx
4.51MB