[論文レビュー] Embedded Binarized Neural Networks
eBNNはBNN推論を再配置して二値の中間値を使用し、中間メモリを約32倍削減して、RAMが数十KBのデバイスでのオンデバイスDNN推論を可能にします。MNISTおよびCIFAR10-EasyでCurie/Intel Curieハードウェア上でデモを行い、自動生成サービスを提供します。
We study embedded Binarized Neural Networks (eBNNs) with the aim of allowing current binarized neural networks (BNNs) in the literature to perform feedforward inference efficiently on small embedded devices. We focus on minimizing the required memory footprint, given that these devices often have memory as small as tens of kilobytes (KB). Beyond minimizing the memory required to store weights, as in a BNN, we show that it is essential to minimize the memory used for temporaries which hold intermediate results between layers in feedforward inference. To accomplish this, eBNN reorders the computation of inference while preserving the original BNN structure, and uses just a single floating-point temporary for the entire neural network. All intermediate results from a layer are stored as binary values, as opposed to floating-points used in current BNN implementations, leading to a 32x reduction in required temporary space. We provide empirical evidence that our proposed eBNN approach allows efficient inference (10s of ms) on devices with severely limited memory (10s of KB). For example, eBNN achieves 95\% accuracy on the MNIST dataset running on an Intel Curie with only 15 KB of usable memory with an inference runtime of under 50 ms per sample. To ease the development of applications in embedded contexts, we make our source code available that allows users to train and discover eBNN models for a learning task at hand, which fit within the memory constraint of the target device.
研究の動機と目的
- severely memory-constrained embedded devices.を動機として深層ニューラルネットワークを動かすことを目的とする。
- 推論を再配置してテンポラリを二値として格納することによりメモリフットプリントを削減する。
- 元のネットワーク精度を保ちながらテンポラリメモリ使用量を最小化する。
- 15 KB SRAMデバイス上で実用的なパフォーマンス(msレンジのランタイム)を実証する。
- ツールとクラウドベースのサービスを提供しeBNN実装をトレーニング・生成する。
提案手法
- BNN内で推論を再配置し、中間の浮動小数点テンポラリを最小化するために結合バイナリブロックへ。
- 各結合ブロックごとに浮動小数点の累積器を1つ、ブロック間でバイナリ出力を使用。
- 畳込みとプーリング(あるいは全結合)をBinary Convolution-PoolまたはBinary FCブロックへ統合。
- 中間値を二値化してテンポラリの約32倍のメモリ削減を達成。
- 計算順序を変更するだけで元のネットワーク構造と精度を維持。
- Pythonでモデルを学習し、組み込みCコードを生成する自動パイプラインを提供。
実験結果
リサーチクエスチョン
- RQ1eBNNは超制約された組み込みデバイスにおいてテンポラリのメモリ使用量をBNNと同等に削減して標準BNNを収められるか。
- RQ2推論の再配置は精度を保ちつつ実用的なオンデバイスのランタイムを可能にするか。
- RQ3MNISTおよびCIFAR10-EasyにおけるさまざまなeBNNアーキテクチャのメモリ・実行時間・精度のトレードオフはどうなるか。
- RQ4ネットワークの深さとブロック統合戦略に対してeBNNのパフォーマンスはどうスケールするか。
- RQ5ターゲットデバイス上で自動的に学習・展開するツール/サービスモデルは入手可能か。
主な発見
| Model | Acc. | Time (ms) | Mem. (KB) | Enrg. (mWs) | |
|---|---|---|---|---|---|
| MNIST | MLP-1 | 91.54 | 17.35 | 14.73 | 5.37 |
| MNIST | MLP-2 | 84.65 | 9.17 | 13.53 | 4.95 |
| MNIST | Conv-1 | 94.56 | 53.72 | 11.48 | 19.96 |
| MNIST | Conv-2 | 96.49 | 193.02 | 13.77 | 63.02 |
| MNIST | ConvPool-1 | 97.44 | 739.34 | 12.79 | 213.63 |
| MNIST | ConvPool-2 | 97.86 | 886.53 | 13.07 | 243.98 |
| MNIST | Conv-1-LE-I | 91.95 | 23.91 | 5.99 | 6.02 |
| MNIST | Conv-1-LE-II | 90.74 | 16.47 | 4.63 | 4.15 |
| CIFAR10-Easy | MLP-1 | 52.30 | 21.29 | 13.84 | 4.37 |
| CIFAR10-Easy | MLP-2 | 41.80 | 19.65 | 14.00 | 2.31 |
| CIFAR10-Easy | Conv-1 | 74.20 | 79.21 | 12.72 | 13.54 |
| CIFAR10-Easy | Conv-2 | 79.80 | 250.08 | 14.30 | 48.64 |
| CIFAR10-Easy | ConvPool-1 | 84.30 | 847.72 | 12.84 | 186.31 |
| CIFAR10-Easy | ConvPool-2 | 77.20 | 968.18 | 13.47 | 223.41 |
| CIFAR10-Easy | Conv-1-LE-I | ? | ? | ? | ? |
| CIFAR10-Easy | Conv-1-LE-II | ? | ? | ? | ? |
- BNNにおけるテンポラリはメモリを支配的に占有する。eBNNは中間結果を二値形で格納してこの問題を低減し、非常に小さなデバイス(例:15 KBの使用可能SRAM)で推論を実行できる。
- MNISTおよびCIFAR10-Easyで、同じメモリ制約下のBNNと同等の精度をeBNNモデルが達成(表1の結果)。
- 評価されたネットワーク全体で、テンポラリは総推論メモリの最大3%を占め、パラメータが残りを占める。
- 推論の実行時間は、試験デバイスでサンプルあたり数十ミリ秒から1秒未満の範囲で、より小さな構成では数十ミリ秒を達成。
- 自動化されたクラウドベースのサービスを提供してeBNNを学習し、組み込みCコードを生成して制約のあるハードウェア上での迅速なプロトタイピングを支援。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。