はじめに
AN ANALYSIS OF DEEP NEURAL NETWORK MODELS
FOR PRACTICAL APPLICATIONS を読んだときのメモです。
正確なところは原文をお願いします。<(_ _)>
https://arxiv.org/pdf/1605.07678.pdf
論文の概要
- ImageNet等のコンペの目的はaccuracyである
- 一方で、実運用では考えるべき、推論時間は?メモリ使用量は?命令数は?消費電力は?にも着目して、主要CNNについて比較した。
論文には書いていないが知っておくべきこと
- AlexNet,VGGは全結合層がとにかく重い。
- NIN以降、Global Average Poolongにより劇的に改善
- AlexNetだと、全結合層が全パラメータ数の93%を占める。
- Kerasでは、VGGも引数一つでGAPにできる
比較結果❶accuracy
比較結果❷推論時間と消費電力
- VGGが、1枚の推論に0.2秒近くかかっている。
- Alexnetは、バッチサイズを変更すると推論時間が3倍はやくなっている。(AlexNetで支配的なのは全結合層、新しめのCNNで支配的なのは畳み込み層であるため?)
- 消費電力は、多くの場合、バッチサイズと相関がある。
比較結果❸メモリ使用料
- メモリ使用量は、はじめにモデルそのものがメモリを確保し、あとはバッチサイズに従って増加する
- モデルのサイズが100Mを下回っていようと、確保するメモリのサイズは200Mを下回らない。また、モデルの種類によらずパラメータ数に対する傾きは1.3。
比較結果❹命令数
- 命令数と推論時間は比例関係にある。(バッチサイズ16では)
- よって、設計時に、リアルタイムアプリケーションや、リソースが限られた環境にて、許容できる推論時間を満たすための命令数を推定することができる。
比較結果❺命令数と消費電力
比較結果❻accuracyとスループット
比較結果❼パラメータ数
結論
- 予測精度と推論時間はhyperbolic relationship。わずかでも予測精度を上げようとすると、computational timeが大きくかかる。
- モデルの命令数から、推論時間を推定できる。
- energy constraintが accuracy and model complexity, in terms of operations countsの上限を決めてしまう。
- ENetが、最もパラメータあたりの情報量が多い。AlexNetの13倍。VGG-19の24倍。