電子情報通信学会 - IEICE会誌 試し読みサイト
© Copyright IEICE. All rights reserved.
|
abstract
Convolutional Neural Networkの推論演算の高効率化手法が数多く提案されている.本稿では,認識精度の劣化を抑えながら更に効率を上げるために,重みのビット幅をフィルタごとに最適に量子化するアルゴリズム,及び,そのアルゴリズムの特長を最大限に生かすようなハードウェアアーキテクチャを紹介する.
キーワード:ディープラーニング,畳込みニューラルネットワーク,量子化,可変ビット幅,FPGA
Convolutional Neural Network(CNN)は画像認識(1)~(3),物体検出(4),画像セグメンテーション(5)などのアプリケーションで幅広く使われている.これらのアプリケーションの認識精度を改善するために,大規模なネットワークが用いられることも多く,膨大な演算が必要になっている.そのため,エネルギー効率の良いハードウェアの研究の重要性が増している.
CNN推論の演算量を削減する手法として,これまでにフィルタプルーニング,スパース化などが提案されている.どの手法でも演算量の削減は可能だが,実際には,認識精度や各アルゴリズムを実行するハードウェアについても同時に検討する必要がある.例えば,フィルタプルーニングでは幾つかのフィルタを削除したり,スパース化では多くの重みやアクティベーションを0近傍に収束させたりして演算量を削減しているが,演算密度(Computational Intensity)が劣化してしまう.
そこで,本稿では,CNN推論演算のエネルギー効率を改善するために,重みの量子化を最適に行う手法を紹介する.同手法はフィルタプルーニング,スパース化やseparable convolution(6)のような方法と違い,演算量を減らしながらもCNN構造の規則性を保つことが可能で,高い演算密度を維持できるため大規模並列計算に向き,ハードウェアとの親和性が高い.ただ,1ビット(7)や2ビット(8)のような低ビットでの量子化は演算効率の観点からは有用であるが,従来から認識精度が劣化する課題がある.例えば,浮動小数点32ビット精度のAlexNet(3)によるImageNet(1)のTop-5認識精度83%に対して,文献(7)では1ビットで13.8%,文献(8)では2ビットで9.9%,認識精度が劣化すると報告されている.一般的に,認識精度を維持するためには8ビット以上のビット幅が必要とされている.最近は,層ごとに重みを最適に量子化(以降,Layer-wise量子化)することがトータルのビット幅を減らすのに効果があると報告されている(9),(10).しかし,実際には,認識精度を維持するのに必要とされるビット幅は層間だけでなく,ピクセル(例えばspatial positions)・チャネル・フィルタ間でも変わる.
そこで,2.では,より演算回数を削減するために,重みのビット幅をより細かく制御してフィルタごとに最適に重みを量子化(以降,Filter-wise量子化)するアルゴリズムを紹介する.しかし,同アルゴリズムで最適化されたビット幅での演算を効率的に行うには,それに適したハードウェアが必要である.3.では,そのようなハードウェアアーキテクチャに関しても併せて紹介する.更に4.では,上記アルゴリズムとハードウェアアーキテクチャをFPGA実装して画像分類を行うことで,同手法の妥当性を確認した結果も示す(11).
本章では,演算密度を高く維持しながらも認識精度を劣化させないような量子化手法を紹介する.2.1では,Filter-wise量子化について概説し,2.2で同アルゴリズムの詳細を述べる.
続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。
電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。
電子情報通信学会 - IEICE会誌アプリをダウンロード