[論文レビュー] BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks
BranchyNet は標準のネットワークにサイド出口ブランチを追加し、分類が容易なサンプルを早期に退出させて推論時間とエネルギーを削減しつつ精度を維持する; jointly trained の場合、早期退出を決定するためにエントロピー閾値を使用する。
Deep neural networks are state of the art methods for many learning tasks due to their ability to extract increasingly better features at each network layer. However, the improved performance of additional layers in a deep network comes at the cost of added latency and energy usage in feedforward inference. As networks continue to get deeper and larger, these costs become more prohibitive for real-time and energy-sensitive applications. To address this issue, we present BranchyNet, a novel deep network architecture that is augmented with additional side branch classifiers. The architecture allows prediction results for a large portion of test samples to exit the network early via these branches when samples can already be inferred with high confidence. BranchyNet exploits the observation that features learned at an early layer of a network may often be sufficient for the classification of many data points. For more difficult samples, which are expected less frequently, BranchyNet will use further or all network layers to provide the best likelihood of correct prediction. We study the BranchyNet architecture using several well-known networks (LeNet, AlexNet, ResNet) and datasets (MNIST, CIFAR10) and show that it can both improve accuracy and significantly reduce the inference time of the network.
研究の動機と目的
- 深層ネットワークがモデルを深くするにつれて、より速くエネルギー効率の良い推論の必要性を動機づける。
- サイド退出ブランチを備えた BranchyNet アーキテクチャを導入し、早期予測を可能にする。
- すべての退出点に対して結合重み付き損失を最適化することによる正則化と性能向上を提案する。
- 標準的なネットワークとデータセットでの実行時および精度の利点を示す。
- 退出点と閾値のハイパーパラメータ感度と設計上の考慮事項を議論する。
提案手法
- baseline ネットワークの選択された地点に1つ以上のサイドブランチ(退出)を追加する。
- すべての退出点に対する結合重み付き損失を用いてネットワークを訓練し、退出特定の分類器を最適化する。
- 推論時に各退出点でソフトマックスとエントロピーを計算し、学習された閾値以下のエントロピーで退出する。
- BranchyNet の訓練には Adam 最適化を使用する。
- LeNet、AlexNet、ResNet を BranchyNet バリアントに適応させ、MNIST および CIFAR-10 で評価して性能を示す。
実験結果
リサーチクエスチョン
- RQ1BranchyNet のブランチ退出を用いた早期退出は、精度を損なうことなく推論遅延とエネルギー消費を削減できるか。
- RQ2異なるネットワークとデータセットで、速度と精度のバランスを取るために退出閾値とブランチ配置をどのように選択すべきか。
- RQ3ブランチ分類器の結合訓練は、別々に訓練する場合と比べて全体の性能を改善するか。
- RQ4最終的な精度とスピードアップに対するブランチ特性(深さ/幅)と閾値設定の影響は何か。
主な発見
| ネットワーク | 精度 (%) | 時間 (ms) | ゲイン | 閾値 T | 退出 (%) |
|---|---|---|---|---|---|
| CPU LeNet | 99.20 | 3.37 | - | - | - |
| CPU B-LeNet | 99.25 | 0.62 | 5.4x | 0.025 | 94.3, 5.63 |
| CPU AlexNet | 78.38 | 9.56 | - | - | - |
| CPU B-AlexNet | 79.19 | 6.32 | 1.5x | 0.0001, 0.05 | 65.6, 25.2, 9.2 |
| CPU ResNet | 80.70 | 137.20 | - | - | - |
| CPU B-ResNet | 79.17 | 73.5 | 1.9x | 0.3, 0.2 | 41.5, 13.8, 44.7 |
| GPU LeNet | 99.20 | 1.58 | - | - | - |
| GPU B-LeNet | 99.25 | 0.34 | 4.7x | 0.025 | 94.3, 5.63 |
| GPU AlexNet | 78.38 | 3.15 | - | - | - |
| GPU B-AlexNet | 79.19 | 1.30 | 2.4x | 0.0001, 0.05 | 65.6, 25.2, 9.2 |
| GPU ResNet | 80.70 | 70.9 | - | - | - |
| GPU B-ResNet | 79.17 | 37.2 | 1.9x | 0.3, 0.2 | 41.5, 13.8, 44.7 |
- BranchyNet は、 tested ネットワーク全体で推論速度を大幅に向上させつつ、精度を維持またはわずかに向上させる。
- B-LeNet は第一の退出で約 94% のサンプルを退出させ、CPU で約 5.4x、GPU で約 4.7x のスピードアップを実現。
- B-AlexNet は第一退出で約 65.6% のサンプル、第二退出で 25.2% を退出させ、CPU で約 1.5x、GPU で約 2.4x のスピードアップ。
- B-ResNet は第一退出で約 41.5%、第二退出で 13.8%、第三退出で 44.7% を退出させ、CPU・GPU の両方で約 1.9x のスピードアップを達成。
- ネットワークを跨いで、BranchyNet は一般にベースラインより精度で上回りつつ推論時間を短縮する傾向があり、精度を維持しつつスピードアップを最大化する膝点が特定される。
- 退出損失の共同最適化は正則化を提供し、勾配消失を緩和するのを助け、下位層の識別力を改善する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。