6-01 畳み込みニューラルネットワークとは

 ディープラーニングには「全結合ニューラルネットワーク」や「畳み込みニューラルネットワーク」といった手法があります。第1部では前者をハードウエア化しましたが、第2部では後者に挑戦します。


●第1部でFPGAに実装したのは「全結合ニューラルネットワーク」

 第1部では
28×28画素を1列に並べてニューラルネットワークに入力し、784個全画素で積和をとっていました。この手法を「全結合ニューラルネットワーク」といいます。


●全結合ニューラルネットワークの問題点

 しかしこの手法では、元々2次元である画像が1次元に並び替えられてしまうため、「縦方向の画素データの関係性」が失われてしまいます。つまり、「
画素データの2次元的な形状が無視される」という問題点があります。


●3×3の画素データとフィルタ係数を畳み込む

 そこで2次元の画像のまま演算を行うことを考えます。一例として、画像から3×3の画素データを取り出し、3×3の
フィルタ係数との積和をとります。
 その処理を図6-01のように、画像の左上から右下にかけて、3×3のエリアをずらしながら続けます。この一連の所作を「
畳み込み」といいます。


  図6−01 画像における畳み込み


●画素データの形状を考慮に入れた「畳み込みニューラルネットワーク」

 ニューラルネットワークの最初の層をこのような「
畳み込み層」とすれば、「画素データの2次元的な形状」を推論に反映させることができ、さらなる正解率の向上が望めそうです。このような手法を「畳み込みニューラルネットワーク」といいます。


●演算量が多いのでFPGA化の際は工夫が必要

 「全結合ニューラルネットワーク」に比べて「畳み込みニューラルネットワーク」はより大量の積和演算が必要になります。第2部では
演算の並列化・パイプライン化により高速化を図ります。またFPGAに実装可能になるよう、回路の簡略化も検討します。
 なお第2部では、この書籍の242ページにある畳み込みニューラルネットワークを題材にハードウエア化を図ります。

目次へ戻る