深層学習用LSI「DLU」のモックアップを掲げる富士通 執行役員(2016年11月当時)の野田敬人氏
深層学習用LSI「DLU」のモックアップを掲げる富士通 執行役員(2016年11月当時)の野田敬人氏
[画像のクリックで拡大表示]

 深層学習(ディープラーニング)の演算は、多くの場合8ビットの精度で十分。そう考える企業が増えている。実際、深層学習向けのアクセラレーターで現在、事実上の業界標準といえる米NVIDIA社のGPUも、2016年後半に出荷を始めた「Tesla P4」や「Tesla P40」で8ビットの整数演算を高速に実行する機能を設けた。ビット数が少ないほどチップ面積当たりの演算器などを増やせるため高速化や電力削減で有利になる。P4やP40の8ビット整数演算性能は32ビット浮動小数点演算の約4倍。同等の性能ならば消費電力を1/4にできる計算だ。

 ただし、8ビットで済むとされてきたのは、学習済みのDNN(ディープニューラルネットワーク)を使った推論を実行する場合。DNNの学習処理は、16ビット浮動小数点など、より精度の高い演算が必要とされてきた。この「常識」を覆す技術を富士通研究所が2017年4月に発表した。8ビット~16ビットの整数演算器を用いてDNNの学習を実行しても、学習後のDNNの精度がほとんど落ちないと主張する。

 この技術を使って手書き数字認識に用いる「LeNet」を学習させたところ、32ビット浮動小数点演算の場合に98.90%だった認識精度が、16ビットで98.89%、8ビットでは98.31%とほぼ変わらなかった(図1)。回路シミュレーターで調べた演算器の消費電力は32ビットの場合と比べて16ビットで50%、8ビットでは約75%削減できたという。

図1 低ビット数で学習しても精度を維持
図1 低ビット数で学習しても精度を維持
富士通研究所が開発した技術を使って(a)手書き数字認識用と(b)一般画像認識用のディープニューラルネットワーク(DNN)を学習させ、学習後のDNNの認識率を比較した結果。(a)では32ビット浮動小数点を用いる場合と比べてほとんど劣化が見られず、(b)では数%の差があるものの、学習回数を増やせば差は縮まる可能性があるという。(a)では学習と推論のデータには手書き数字データセット「MNIST」、DNNには「LeNet」を利用。(b)は「ImageNet」のデータを基に96×96画素、25カテゴリに絞ったデータセットを使って、それに合わせて改変した「VGG16」に似たDNNを用いた。(図:富士通研究所)
[画像のクリックで拡大表示]