近年の大規模ニューラルネットワークを用いたシステムの運用には、GPUがほぼ必須であると考えられている。 しかし、プロダクションシステムがAWSなどのクラウド上に置かれている場合、GPUを使ったニューラルネットワークは使いづらい。AWS EC2のGPUインスタンスは高額だし、AzureやGCEは今のところGPUインスタンスを提供していない。という訳で、学習時にはGPUを使っても構わないのだが、テスト時にはCPUでもそこそこ高速に動いてくれるネットワークが構築できると嬉しい。 最近のニューラルネットワークの計算が重たいのは、2D Convolutionの計算量がとても大きいからである。高速に動かすためには、とにかく計算量を減らさないといけない。 考えられる方向は3つ存在する。1つ目がConvolution自体の高速化、2つ目が計算の低精度化、3つ目がスパース化である。 Convolution自