近年、畳み込みニューラルネットワーク(CNN)は視覚学習タスクで優れた能力を示しています。精度に関するCNNは前例のないパフォーマンスを提供しますが、最新のコンピューターシステムでは計算量が多く、エネルギーを多く消費することでも知られています。この論文では、CNNベースの画像分類とオブジェクト検出タスクの速度とエネルギー消費を改善するためのモデルレベルのアプローチである仮想プーリング(ViP)を、証明可能なエラー制限とともに提案します。 4つのCNNモデル、3つの代表的なデータセット、デスクトッププラットフォームとモバイルプラットフォームの両方、および2つの視覚学習タスク、つまり画像分類とオブジェクト検出の実験を通じて、ViPの有効性を示します。たとえば、ViPは、VGG-16のImageNet分類で1.5%未満の精度低下で2.1倍の高速化を実現し、Faster-RCNNでのPASCAL VOCオブジェクト検出で0.025 mAPの低下で1.8倍の高速化を実現します。 ViPは、モバイルGPUとCPUのエネルギー消費をそれぞれ最大55%と70%削減します。既存のアクセラレーションアプローチを補完する方法として、ViPはThiNetで1.9倍の高速化を実現し、VGG-16で5.23倍の高速化を実現しています。さらに、ViPは機械学習者向けのノブを提供し、システム速度/エネルギー消費と精度のトレードオフが異なるCNNモデルのセットを生成して、タスクの要件によりよく対応します。コードはhttps://github.com/cmu-enyac/VirtualPoolingで入手できます。
In recent years, Convolutional Neural Networks (CNNs) have shown superior capability in visual learning tasks. While accuracy-wise CNNs provide unprecedented performance, they are also known to be computationally intensive and energy demanding for modern computer systems. In this paper, we propose Virtual Pooling (ViP), a model-level approach to improve speed and energy consumption of CNN-based image classification and object detection tasks, with a provable error bound. We show the efficacy of ViP through experiments on four CNN models, three representative datasets, both desktop and mobile platforms, and two visual learning tasks, i.e., image classification and object detection. For example, ViP delivers 2.1x speedup with less than 1.5% accuracy degradation in ImageNet classification on VGG-16, and 1.8x speedup with 0.025 mAP degradation in PASCAL VOC object detection with Faster-RCNN. ViP also reduces mobile GPU and CPU energy consumption by up to 55% and 70%, respectively. As a complementary method to existing acceleration approaches, ViP achieves 1.9x speedup on ThiNet leading to a combined speedup of 5.23x on VGG-16. Furthermore, ViP provides a knob for machine learning practitioners to generate a set of CNN models with varying trade-offs between system speed/energy consumption and accuracy to better accommodate the requirements of their tasks. Code is available at https://github.com/cmu-enyac/VirtualPooling.