(57)【要約】【課題】ニューラルネットワークによる演算処理を実現する演算処理装置において、正規化処理を行うための構成に改良を施し、より優位な特徴量抽出処理を可能とする。【解決手段】ニューラルネットワークによる演算を実行する演算処理装置１００は、畳み込み演算処理部１０２、活性化処理部１０３、プーリング処理部１０４、正規化処理部１０５を有する複数の演算ブロック１０１を備え、正規化処理部は、自身と同じ演算ブロックのプーリング処理部による処理結果データを第１データとして出力するフリップフロップ回路１０５ｃと、自身と同じ演算ブロックのプーリング処理部による処理結果データと、自身と異なる演算ブロックのプーリング処理部による処理結果データとを加算した加算データを第２データとして出力するフリップフロップ回路１０５ｅと、第２データに基づいて第１データに対して正規化処理を実行する正規化処理実行部１０５ｆと、を備える。【選択図】図４
2015215837.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置（１００，２００，３００）であって、
前階層から入力される入力データに対して畳み込み演算処理を実行する畳み込み演算処理部（１０２，２０２，３０２）、前記畳み込み演算部による処理結果データに対して活性化処理を実行する活性化処理部（１０３，２０３，３０３）、前記活性化処理部による処理結果データに対してプーリング処理を実行するプーリング処理部（１０４，２０４，３０４）、前記プーリング処理部による処理結果データに対して正規化処理を実行する正規化処理部（１０５，２０５，３０５）を有する複数の演算ブロック（１０１，２０１，３０１）を備え、
前記正規化処理部は、
自身と同じ前記演算ブロックが備える前記プーリング処理部による処理結果データを第１データとして出力する第１出力部（１０５ｃ，２０５ｃ，３０５ｃ）と、
自身と同じ前記演算ブロックが備える前記プーリング処理部による処理結果データと、自身と異なる前記演算ブロックが備える前記プーリング処理部による処理結果データとを加算した加算データを第２データとして出力する第２出力部（１０５ｅ，２０５ｅ，３０５ｅ）と、
前記第２データに基づいて前記第１データに対して正規化処理を実行する正規化処理実行部（１０５ｆ，２０５ｆ，３０５ｆ）と、
を備える演算処理装置。
【請求項２】
前記第２出力部（１０５ｅ）は、自身と同じ前記演算ブロックを含む複数の前記演算ブロックが備える全ての前記プーリング処理部による処理結果データを加算した加算データを前記第２データとして出力する請求項１に記載の演算処理装置。
【請求項３】
前記第２出力部（２０５ｅ）は、自身と同じ前記演算ブロックが備える前記プーリング処理部による処理結果データと、自身と同じ前記演算ブロックの近傍に設けられた所定数の前記演算ブロックが備える前記プーリング処理部による処理結果データとを加算した加算データを前記第２データとして出力する請求項１に記載の演算処理装置。
【請求項４】
所定数の前記演算ブロックが備える前記プーリング処理部による処理結果データのうち何れか１つを選択する選択部（３１０）をさらに備え、
前記第２出力部（３０５ｅ）は、前記選択部が選択した前記処理結果データに基づいて生成された前記第２データを出力する請求項１に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関する。
【背景技術】
【０００２】
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が中核的な存在となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１８４８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の畳み込みニューラルネットワークでは、前段の階層により得られる異なる複数の演算結果データ、つまり特徴量の抽出結果データに対して畳み込み演算処理を実行し、活性化処理を実行し、プーリング処理を実行することで、より高次元の特徴量の抽出を行っている。そして、さらに、プーリング処理による処理結果データに対して正規化処理を施すことにより、特徴量の認識率を向上することができ、特徴量の抽出処理を一層優位に行うことができる。
【０００５】
そこで、本発明は、ニューラルネットワークによる演算処理を実現する演算処理装置において、正規化処理を行うための構成に改良を施すことにより、より優位な特徴量抽出処理を可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る演算処理装置は、複数の演算ブロックを備える。演算ブロックは、それぞれ、畳み込み演算処理部、活性化処理部、プーリング処理部、正規化処理部を備える。畳み込み演算処理部は、前階層から入力される入力データに対して畳み込み演算処理を実行する。活性化処理部は、畳み込み演算部による処理結果データに対して活性化処理を実行する。プーリング処理部は、活性化処理部による処理結果データに対してプーリング処理を実行する。正規化処理部は、プーリング処理部による処理結果データに対して正規化処理を実行する。
【０００７】
そして、正規化処理部は、第１出力部、第２出力部、正規化処理実行部を備える。第１出力部は、自身と同じ演算ブロックが備えるプーリング処理部による処理結果データを第１データとして出力する。第２出力部は、自身と同じ演算ブロックが備えるプーリング処理部による処理結果データと、自身と異なる演算ブロックが備えるプーリング処理部による処理結果データとを加算した加算データを第２データとして出力する。正規化処理実行部は、第２データに基づいて第１データに対して正規化処理を実行する。
【０００８】
この構成によれば、自身と同じ演算ブロックが備えるプーリング処理部による処理結果データを、自身と異なる演算ブロックが備えるプーリング処理部による処理結果データも利用して正規化することができる。よって、プーリング処理による処理結果データを精度良く正規化することができ、より優位な特徴量抽出処理を実現することができる。また、正規化処理部は、第１出力部と第２出力部と正規化処理実行部とからなる構成である。そのため、回路構成を複雑にしなくとも、正規化処理部を実現することができる。
【０００９】
また、本発明に係る演算処理装置よれば、第２出力部は、自身と同じ演算ブロックを含む複数の演算ブロックが備える全てのプーリング処理部による処理結果データを加算した加算データを第２データとして出力する。
【００１０】
また、本発明に係る演算処理装置よれば、第２出力部は、自身と同じ演算ブロックが備えるプーリング処理部による処理結果データと、自身と同じ演算ブロックの近傍に設けられた所定数の演算ブロックが備えるプーリング処理部による処理結果データとを加算した加算データを第２データとして出力する。
【００１１】
また、本発明に係る演算処理装置によれば、選択部は、所定数の演算ブロックが備えるプーリング処理部による処理結果データのうち何れか１つを選択する。そして、第２出力部は、選択部が選択した処理結果データに基づいて生成された第２データを出力する。
【００１２】
例えば以上のように第２出力部を構成することにより、より簡素な回路構成によって正規化処理部を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】畳み込みニューラルネットワークの構成例を概念的に示す図
【図２】演算処理装置による演算処理の流れを視覚的に示す図
【図３】特徴量抽出処理に用いられる一般的な演算および関数を示す図
【図４】第１実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【図５】正規化関数の一例を示す図
【図６】プーリングデータを正規化することにより正規化データを得ることを視覚的に示す図
【図７】正規化処理を並列的に実行することを視覚的に示す図
【図８】演算処理装置によるパイプライン処理を示す図
【図９】第２実施形態に係る図４相当図
【図１０】正規化関数の一例を示す図
【図１１】演算処理装置によるパイプライン処理を示す図
【図１２】第３実施形態に係る図４相当図
【発明を実施するための形態】
【００１４】
以下、演算処理装置の複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
（ニューラルネットワーク）
図１には、詳しくは後述する演算処理装置１００，２００，３００に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。即ち、畳み込みニューラルネットワークＮは、複数の特徴量抽出処理層Ｎ１，Ｎ２，Ｎ３が階層的に接続された構成であり、入力データである画像データＤ１から所定の形状やパターンを認識する画像認識技術に応用されるものである。第１層目の特徴量抽出処理層Ｎ１では、演算処理装置は、入力される画像データＤ１を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して特徴量抽出処理を施すことにより特徴量を抽出する。なお、第１層目の特徴量抽出処理層Ｎ１では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。
【００１５】
第２層目の特徴量抽出処理層Ｎ２では、演算処理装置は、前階層の特徴量抽出処理層Ｎ１から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して特徴量抽出処理を施すことにより特徴量を抽出する。なお、第２層目の特徴量抽出処理層Ｎ２では、第１層目の特徴量抽出処理層Ｎ１で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。
【００１６】
第３層目の特徴量抽出処理層Ｎ３では、演算処理装置は、前階層の特徴量抽出処理層Ｎ２から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して特徴量抽出処理を施すことにより特徴量を抽出する。なお、第３層目の特徴量抽出処理層Ｎ３では、第２層目の特徴量抽出処理層Ｎ２で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データＤ１に含まれる検出対象物体の画像認識を行う。
【００１７】
また、図２には、演算処理装置による演算処理の流れを視覚的に示している。即ち、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データＤｎを所定サイズ、この場合、図にてハッチングで示す５×５画素ごとに走査する。そして、演算処理装置は、走査したデータに対して、それぞれ畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータＣｎ１，Ｃｎ２，・・・に対して、所定サイズ、この場合、２×２画素ごとにプーリング処理を行う。そして、演算処理装置は、プーリング処理後のデータＰｎ１，Ｐｎ２，・・・を次の階層の特徴量抽出処理層に出力する。
【００１８】
ここで、演算処理装置は、プーリング処理後のデータＰｎ１，Ｐｎ２，・・・に対して周知の正規化処理を施すことにより、プーリングデータＰｎを所定の基準形式である正規化データＮｎ１，Ｐｎ２，・・・に変換してから次の階層に出力する。これにより、より統一された形式でプーリングデータＰｎを次の階層に出力することができる。従って、特徴量の認識率を向上することができ、特徴量の抽出処理を一層優位に行うことができる。後述する各実施形態においては、演算処理装置には、この正規化処理を行うための構成に改良が施されている。
【００１９】
図３には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を参考として示している。即ち、畳み込み関数ｙｊは、直前の層の出力ｙｉに、学習により得られる重み係数ｗｉｊを乗算した値の和に所定のバイアス値Ｂｊを加算する関数となっている。また、活性化処理には、周知のロジスティックジグモイド関数やＲｅＬＵ関数（Rectified Linear Units）など、あるいは、その他の非線形関数が用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。
【００２０】
（第１実施形態）
図４に例示する演算処理装置１００は、複数の演算ブロック１０１［ｎ］を備える。この場合、演算処理装置１００は、３つの演算ブロック１０１［１］，１０１［２］，１０１［３］を備える。なお、説明の便宜上、演算ブロック１０１［１］を「最初の演算ブロック」、演算ブロック１０１［３］を「最後の演算ブロック」と称する。演算ブロック１０１［ｎ］は、それぞれ、畳み込み演算処理部１０２、活性化処理部１０３、プーリング処理部１０４、正規化処理部１０５を備える。
【００２１】
畳み込み演算処理部１０２は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データを活性化処理部１０３に出力する。活性化処理部１０３は、畳み込み演算処理部１０２による処理結果データに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部１０４に出力する。プーリング処理部１０４は、活性化処理部１０３による処理結果データに対して周知のプーリング処理を実行して、その処理結果データを正規化処理部１０５に出力する。以下、プーリング処理部１０４による処理結果データを、プーリングデータＰｊと称する。
【００２２】
正規化処理部１０５は、乗算器１０５ａ、加算器１０５ｂ、フリップフロップ回路１０５ｃ，１０５ｄ，１０５ｅ、正規化処理実行部１０５ｆを備える。乗算器１０５ａは、自身と同じ演算ブロック１０１［ｎ］が備えるプーリング処理部１０４によるプーリングデータＰｊを２乗した値Ｐｊ２を得る。加算器１０５ｂは、最初の演算ブロック１０１［１］が備えるものと、その他の演算ブロック１０１［２］，１０１［３］が備えるものとで、その機能が異なる。
【００２３】
即ち、最初の演算ブロック１０１［１］の加算器１０５ｂは、自身と同じ演算ブロック１０１［１］の乗算器１０５ａから得られる値Ｐｊ２を、そのままフリップフロップ回路１０５ｄに出力する。一方、最初の演算ブロック１０１［１］以外の演算ブロック１０１［２］，１０１［３］の加算器１０５ｂは、自身と異なる演算ブロック１０１［ｎ］の加算器１０５ｂからフリップフロップ回路１０５ｄを介して得られる累積値に、自身と同じ演算ブロック１０１［ｎ］の乗算器１０５ａから得られる値Ｐｊ２を加算して新たな累積値を得る。
【００２４】
フリップフロップ回路１０５ｃは、第１出力部の一例であり、自身と同じ演算ブロック１０１［ｎ］のプーリング処理部１０４によるプーリングデータＰｊを第１データとして記憶する。そして、フリップフロップ回路１０５ｃに記憶されたプーリングデータＰｊは、自身と同じ演算ブロック１０１［ｎ］の正規化処理実行部１０５ｆに出力される。なお、フリップフロップ回路１０５ｃは、複数のフリップフロップ回路により構成してもよい。
【００２５】
フリップフロップ回路１０５ｄは、最後の演算ブロック１０１［３］が備えるものと、その他の演算ブロック１０１［１］，１０１［２］に備えられたものとで、その機能が異なる。即ち、最後の演算ブロック１０１［３］以外の演算ブロック１０１［１］，１０１［２］のフリップフロップ回路１０５ｄは、自身と同じ演算ブロック１０１［１］，１０１［２］が備える加算器１０５ｂから得られる累積値を記憶する。そして、フリップフロップ回路１０５ｄに記憶された累積値は、最後の演算ブロック１０１［３］側に設けられた直近の演算ブロック１０１［２］，１０１［３］の加算器１０５ｂに出力される。
【００２６】
一方、最後の演算ブロック１０１［３］のフリップフロップ回路１０５ｄは、自身と同じ演算ブロック１０１［３］が備える加算器１０５ｂから得られる累積値を記憶する。つまり、最後の演算ブロック１０１［３］が備えるフリップフロップ回路１０５ｄは、自身と同じ演算ブロック１０１［３］を含む複数の演算ブロック１０１［１］〜１０１［３］が備える全てのプーリング処理部１０４によるプーリングデータＰｊの２乗値Ｐｊ２を加算した加算データＳを記憶する。そして、最後の演算ブロック１０１［３］が備えるフリップフロップ回路１０５ｄに記憶された加算データＳは、全ての演算ブロック１０１［１］〜［３］が備えるフリップフロップ回路１０５ｅに、それぞれ出力される。
【００２７】
フリップフロップ回路１０５ｅは、第２出力部の一例であり、最後の演算ブロック１０１［３］に備えられたフリップフロップ回路１０５ｄから得られた加算データＳを記憶する。そして、フリップフロップ回路１０５ｅは、記憶した加算データＳを、自身と同じ演算ブロック１０１［１］〜［３］が備える正規化処理実行部１０５ｆに出力する。これにより、最後の演算ブロック１０１［３］から得られる加算データＳが、全ての演算ブロック１０１［１］〜１０１［３］の正規化処理実行部１０５ｆに、それぞれ第２データとして出力される。
【００２８】
正規化処理実行部１０５ｆは、自身と同じ演算ブロック１０１［ｎ］が備えるフリップフロップ回路１０５ｃから得られるプーリングデータＰｊに対して、加算データＳに基づいて正規化処理を実行する。この場合、正規化処理実行部１０５ｆは、例えば図５に示す関数により正規化処理を実行する。なお、定数ｋ，α，βの値は、適宜変更して設定することができる。
【００２９】
図６に示すように、演算処理装置１００の各演算ブロック１０１［１］〜１０１［３］は、それぞれのプーリング処理部１０４から得られたプーリングデータＰｊ（ｘ，ｙ）に正規化処理部１０５による正規化処理を施す。これにより、各演算ブロック１０１［１］〜１０１［３］は、正規化された処理結果データＮｊ（ｘ，ｙ）を生成して次の階層に出力する。そして、図７に示すように、この場合、各演算ブロック１０１［１］〜１０１［３］は、プーリングデータＰｊ（ｘ，ｙ）に対する正規化処理を並列的に実行する。なお、説明の便宜上、演算ブロック１０１［１］の正規化処理部１０５に入力されるプーリングデータＰｊ（ｘ，ｙ）をＰ１（ｘ，ｙ）、演算ブロック１０１［２］の正規化処理部１０５に入力されるプーリングデータＰｊ（ｘ，ｙ）をＰ２（ｘ，ｙ）、演算ブロック１０１［３］の正規化処理部１０５に入力されるプーリングデータＰｊ（ｘ，ｙ）をＰ３（ｘ，ｙ）として示す。
【００３０】
図８に示すように、演算処理装置１００による１回目の演算サイクルにより、最初の演算ブロック１０１［１］の加算器１０５ｂには、自身と同じ演算ブロック１０１［１］が備えるプーリング処理部１０４によるプーリングデータＰ１（１，１）を２乗した値Ｐ１（１，１）２が格納される。なお、最初の演算ブロック１０１［１］の加算器１０５ｂには、他の演算ブロック１０１［２］，［３］から累積値が入力されない。そのため、最初の演算ブロック１０１［１］の加算器１０５ｂには、自身と同じ演算ブロック１０１［１］が備えるプーリング処理部１０４によるプーリングデータＰ１（１，１）を２乗した値Ｐ１（１，１）２が、そのまま格納される。
【００３１】
そして、演算処理装置１００による２回目の演算サイクルでは、最初の演算ブロック１０１［１］の加算器１０５ｂには、自身と同じ演算ブロック１０１［１］が備えるプーリング処理部１０４によるプーリングデータＰ１（２，１）を２乗した値Ｐ１（２，１）２が格納される。また、中間の演算ブロック１０１［２］の加算器１０５ｂには、最初の演算ブロック１０１［１］から得られる値Ｐ１（１，１）２と、自身と同じ演算ブロック１０１［２］が備えるプーリング処理部１０４によるプーリングデータＰ２（１，１）を２乗した値Ｐ２（１，１）２とを加算した値が格納される。
【００３２】
そして、演算処理装置１００による３回目の演算サイクルでは、最初の演算ブロック１０１［１］の加算器１０５ｂには、自身と同じ演算ブロック１０１［１］が備えるプーリング処理部１０４によるプーリングデータＰ１（３，１）を２乗した値Ｐ１（３，１）２が格納される。また、中間の演算ブロック１０１［２］の加算器１０５ｂには、最初の演算ブロック１０１［１］から得られる値Ｐ１（２，１）２と、自身と同じ演算ブロック１０１［２］が備えるプーリング処理部１０４によるプーリングデータＰ２（２，１）を２乗した値Ｐ２（２，１）２とを加算した値が格納される。また、最後の演算ブロック１０１［３］の加算器１０５ｂには、最初の演算ブロック１０１［１］から得られる値Ｐ１（１，１）２と、中間の演算ブロック１０１［２］から得られる値Ｐ２（１，１）２と、自身と同じ演算ブロック１０１［３］が備えるプーリング処理部１０４によるプーリングデータＰ３（１，１）を２乗した値Ｐ２（１，１）２とを加算した値が格納される。
【００３３】
これにより、全ての演算ブロック１０１［１］〜１０１［３］が備える全てのプーリング処理部１０４によるプーリングデータＰｊ（１，１）の２乗値Ｐｊ（１，１）２を累積した累積値、つまり加算データＳが得られる。そして、４回目の演算サイクルにより、全ての演算ブロック１０１［１］〜１０１［３］が備える全ての正規化処理実行部１０５ｆは、最後の演算ブロック１０１［３］の加算器１０５ｂから得られる加算データＳに基づいて、プーリングデータＰｊに対して正規化処理を実行する。これにより、プーリング処理の処理結果データＰｊ（１，１）に対する正規化処理データＮｊ（１，１）が得られる。
【００３４】
演算処理装置１００によれば、自身と同じ演算ブロック１０１［ｎ］が備えるプーリング処理部１０４によるプーリングデータＰｊを、自身と異なる演算ブロック１０１［ｎ］が備えるプーリング処理部１０４によるプーリングデータＰｊも利用して正規化することができる。よって、プーリング処理によるプーリングデータＰｊを精度良く正規化することができ、より優位な特徴量抽出処理を実現することができる。
【００３５】
また、正規化処理部１０５は、第１出力部として機能するフリップフロップ回路１０５ｃと、第２出力部として機能するフリップフロップ回路１０５ｅと、第２出力部から得られる加算データＳに基づいて、第１出力部から得られるプーリングデータＰｊを正規化する正規化処理実行部１０５ｆとからなる構成である。そのため、回路構成を複雑にしなくとも、正規化処理部１０５、ひいては演算処理装置１００を実現することができる。
【００３６】
また、演算処理装置１００よれば、第２出力部として機能するフリップフロップ回路１０５ｅは、自身と同じ演算ブロックを含む複数の演算ブロック１０１［１］〜１０１［３］が備える全てのプーリング処理部１０４によるプーリングデータＰｊの２乗値を加算した加算データＳを第２データとして出力する構成である。このように第２出力部を構成することで、より簡素な回路構成によって正規化処理部１０５、ひいては演算処理装置１００を実現することができる。
なお、演算処理装置１００が備える演算ブロック１０１［ｎ］の数は３つに限られるものではなく、その数を適宜変更して実施することができる。
【００３７】
（第２実施形態）
図９に例示する演算処理装置２００は、複数の演算ブロック２０１［ｎ］を備える。この場合、演算処理装置１００は、少なくとも５つ以上の演算ブロック２０１［１］，２０１［２］，２０１［３］，２０１［４］，２０１［５］，・・・を備える。なお、説明の便宜上、図９にて上側に示す演算ブロック２０１［ｎ］を「上位側の演算ブロック」、下側に示す演算ブロック２０１［ｎ］を「下位側の演算ブロック」と称する。演算ブロック２０１［ｎ］は、それぞれ、畳み込み演算処理部２０２、活性化処理部２０３、プーリング処理部２０４、正規化処理部２０５を備える。これら畳み込み演算処理部２０２、活性化処理部２０３、プーリング処理部２０４は、第１実施形態の畳み込み演算処理部１０２、活性化処理部１０３、プーリング処理部１０４と同様の構成である。
【００３８】
正規化処理部２０５は、乗算器２０５ａ、加算器２０５ｂ、フリップフロップ回路２０５ｃ，２０５ｅ、正規化処理実行部２０５ｆ、減算器２０５ｇ、ＦＩＦＯ記憶部２０５ｈを備える。乗算器２０５ａは、自身と同じ演算ブロック２０１［ｎ］が備えるプーリング処理部２０４によるプーリングデータＰｊを２乗した値Ｐｊ２を得る。加算器２０５ｂは、自身と同じ演算ブロック１０１［ｎ］よりも下位側の演算ブロック２０１［ｎ］から得られる累積値に、自身と同じ演算ブロック２０１［ｎ］の乗算器２０５ａから得られる値Ｐｊ２を加算して新たな累積値を得る。なお、最も下位側の演算ブロック２０１［１］の加算器２０５ｂは、最も上位側の演算ブロック２０１［ｎ］から入力される累積値に、自身と同じ演算ブロック２０１［１］の乗算器２０５ａから得られる値Ｐｊ２を加算して新たな累積値を得る。即ち、演算処理装置２００が備える複数の演算ブロック２０１［ｎ］は、ループ状に接続されている。
【００３９】
フリップフロップ回路２０５ｃは、第１出力部の一例であり、自身と同じ演算ブロック２０１［ｎ］のプーリング処理部２０４によるプーリングデータＰｊを第１データとして記憶する。そして、フリップフロップ回路２０５ｃに記憶されたプーリングデータＰｊは、自身と同じ演算ブロック２０１［ｎ］の正規化処理実行部２０５ｆに出力される。なお、フリップフロップ回路２０５ｃは、複数のフリップフロップ回路により構成してもよい。
【００４０】
ＦＩＦＯ記憶部２０５ｈは、いわゆる先入先出型の記憶部であり、自身と異なる演算ブロック２０１［ｎ］の乗算器２０５ａから順次得られる複数の値Ｐｊ２を記憶する。この場合、演算ブロック２０１［４］，２０１［５］のＦＩＦＯ記憶部２０５ｈには、下位側に３つ離れて設けられた演算ブロック２０１［１］，２０１［２］の乗算器２０５ａから１演算サイクルごとに得られる値Ｐｊ２が順次記憶される。このように、各演算ブロック２０１［ｎ］のＦＩＦＯ記憶部２０５ｈには、下位側に３つ離れて設けられた演算ブロック２０１［ｎ−３］の乗算器２０５ａから得られる値Ｐｊ２が順次記憶される。
【００４１】
なお、下位側の演算ブロック２０１［１］〜２０１［３］については、最も下位の演算ブロック２０１［１］の下位に最も上位の演算ブロック２０１［ｎ］が存在すると仮定する。即ち、演算ブロック２０１［３］のＦＩＦＯ記憶部２０５ｈには、最も上位の演算ブロック２０１［ｎ］の乗算器２０５ａから値Ｐｊ２が入力され、演算ブロック２０１［２］のＦＩＦＯ記憶部２０５ｈには、２番目に上位の演算ブロック２０１［ｎ―１］の乗算器２０５ａから値Ｐｊ２が入力され、演算ブロック２０１［１］のＦＩＦＯ記憶部２０５ｈには、３番目に上位の演算ブロック２０１［ｎ―２］の乗算器２０５ａから値Ｐｊ２が入力される。
【００４２】
そして、各演算ブロック２０１［ｎ］のＦＩＦＯ記憶部２０５ｈは、先頭のデータ、つまり最も先に記憶した値Ｐｊ２を、１演算サイクルごとに１つずつ、自身と同じ演算ブロック２０１［ｎ］の減算器２０５ｇに出力する。
減算器２０５ｇは、自身と同じ演算ブロック２０１［ｎ］の加算器２０５ｂから得られる累積値から、自身と同じ演算ブロック２０１［ｎ］のＦＩＦＯ記憶部２０５ｈから得られる値Ｐｊ２を減算する。そして、減算器２０５ｇは、減算により得られた減算データＧをフリップフロップ回路１０５ｄに出力する。減算データＧは、第２データの一例である。なお、減算データＧは、減算処理の結果、自身と同じ演算ブロック２０１［ｎ］が備えるプーリング処理部２０４によるプーリングデータＰｊの２乗値と、自身と同じ演算ブロック２０１［ｎ］の下流側の近傍に設けられた所定数の演算ブロック２０１［ｎ−２］，２０１［ｎ−１］が備えるプーリング処理部２０４によるプーリングデータＰｊの２乗値とを加算した加算データとなる。
【００４３】
フリップフロップ回路２０５ｅは、第２出力部の一例であり、自身と同じ演算ブロック２０１［ｎ］の減算器２０５ｇから得られた減算データＧを記憶する。そして、フリップフロップ回路２０５ｅは、記憶した減算データＧを、自身と同じ演算ブロック１０１［ｎ］が備える正規化処理実行部１０５ｆに出力する。また、フリップフロップ回路２０５ｅは、記憶した減算データＧを、上位側に設けられた直近の演算ブロック２０１［ｎ＋１］の加算器２０５ｂに出力する。なお、最も上位の演算ブロック２０１［ｎ］のフリップフロップ回路２０５ｅは、記憶した減算データＧを、最も下位の演算ブロック２０１［１］の加算器２０５ｂに出力する。
【００４４】
正規化処理実行部２０５ｆは、自身と同じ演算ブロック２０１［ｎ］が備えるフリップフロップ回路２０５ｃから得られるプーリングデータＰｊに対して、減算データＧに基づいて正規化処理を実行する。この場合、正規化処理実行部２０５ｆは、例えば図１０に示す関数により正規化処理を実行する。なお、定数である「ｋ」，「α」，「β」の値は、適宜変更して設定することができる。また、「ｉ」は、正規化適用演算ブロック数を示す。即ち、演算処理装置２００は、ある演算ブロック２０１により正規化処理を実行する際には、当該演算ブロックと、その演算ブロックの下位側の近傍に設けられている所定数の他の演算ブロックとからなる「ｉ」個の演算ブロックを正規化適用演算ブロックとして設定する。
【００４５】
つまり、例えば「ｉ」として「３」を設定した場合には、演算ブロック２０１［４］について、当該演算ブロック２０１［４］と演算ブロック２０１［４］の近傍に存在する演算ブロック２０１［３］，２０１［２］とからなる３つの演算ブロックが正規化適用演算ブロックとして設定される。これにより、演算ブロック２０１［４］の正規化処理実行部２０５ｆには、減算データＧとして、演算ブロック２０１［２］から得られた値Ｐ２（ｘ，ｙ）２と、演算ブロック２０１［３］から得られた値Ｐ３（ｘ，ｙ）２と、演算ブロック２０１［４］から得られた値Ｐ４（ｘ，ｙ）２とを累積した累積値が与えられるようになる。即ち、正規化適用演算ブロック数「ｉ」は、減算データＧを構成する値Ｐｊ２の数を示す値でもある。なお、演算処理装置２００は、正規化適用演算ブロック数を示す「ｉ」を適宜変更して設定することができるが、一旦設定した「ｉ」は、再度の設定操作が行われるまで変更不能とする構成となっている。但し、演算処理装置２００は、一旦設定した「ｉ」を動的に随時変更するように構成してもよい。
【００４６】
図１１に示すように、演算処理装置２００の各演算ブロック２０１［ｎ］は、正規化適用演算ブロック数ごとに正規化処理を並列的に実行するように構成されている。ここでは、正規化適用演算ブロック数「ｉ」が「３」で設定されていると仮定し、演算ブロック２０１［４］〜２０１［６］により正規化処理を行う場合を例に説明する。即ち、演算処理装置２００による１回目の演算サイクルでは、演算ブロック２０１［４］の加算器２０５ｂには、自身と同じ演算ブロック２０１［４］が備えるプーリング処理部１０４によるプーリングデータＰ４（１，１）を２乗した値Ｐ４（１，１）２と、他の演算ブロック２０１［１］〜２０１［３］から得られる値Ｐ１（１，１）２、値Ｐ２（１，１）２、値Ｐ３（１，１）２を累積した値が格納される。即ち、演算ブロック２０１［４］の加算器２０５ｂには、値Ｐ１（１，１）２、値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２の累積値が格納される。
【００４７】
また、演算ブロック２０１［４］のＦＩＦＯ記憶部２０５ｈには、演算ブロック２０１［１］から得られる値Ｐ１（１，１）２が格納される。そのため、演算ブロック２０１［４］の減算器２０５ｇは、加算器２０５ｂに格納されている値Ｐ１（１，１）２、値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２の累積値から、ＦＩＦＯ記憶部２０５ｈに格納されている値Ｐ１（１，１）２を減算した値を出力する。即ち、減算器２０５ｇは、値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２の累積値を出力する。これにより、自身と同じ演算ブロック２０１［４］が備えるプーリング処理部２０４による処理結果データの２乗値Ｐ４（１，１）２と、自身と同じ演算ブロック２０１［４］の近傍に設けられた所定数の演算ブロック２０１［２］，２０１［３］が備えるプーリング処理部２０４による処理結果データの２乗値Ｐ２（１，１）２、値Ｐ３（１，１）２とを加算した加算データ、つまり第２データである減算データＧが得られる。
【００４８】
そして、演算処理装置２００による２回目の演算サイクルでは、演算ブロック２０１［４］の正規化処理実行部２０５ｆは、自身と同じ演算ブロック２０１［４］の減算器２０５ｇから得られる減算データＧに基づいて、プーリングデータＰｊに対して正規化処理を実行する。これにより、プーリング処理の処理結果データＰｊ（１，１）に対する正規化処理データＮｊ（１，１）が得られる。
【００４９】
また、演算処理装置２００による２回目の演算サイクルでは、演算ブロック２０１［５］の加算器２０５ｂには、自身と同じ演算ブロック２０１［５］が備えるプーリング処理部１０４によるプーリングデータＰ５（１，１）を２乗した値Ｐ５（１，１）２と、他の演算ブロック２０１［２］〜２０１［４］から得られる値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２を累積した値が格納される。即ち、演算ブロック２０１［４］の加算器２０５ｂには、値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２、値Ｐ５（１，１）２の累積値が格納される。
【００５０】
また、演算ブロック２０１［５］のＦＩＦＯ記憶部２０５ｈには、演算ブロック２０１［２］から得られる値Ｐ２（１，１）２が格納される。そのため、演算ブロック２０１［５］の減算器２０５ｇは、加算器２０５ｂに格納されている値Ｐ２（１，１）２、値Ｐ３（１，１）２、値Ｐ４（１，１）２、値Ｐ５（１，１）２の累積値から、ＦＩＦＯ記憶部２０５ｈに格納されている値Ｐ２（１，１）２を減算した値を出力する。即ち、減算器２０５ｇは、値Ｐ３（１，１）２、値Ｐ４（１，１）２、値Ｐ５（１，１）２の累積値を出力する。これにより、自身と同じ演算ブロック２０１［５］が備えるプーリング処理部２０４による処理結果データの２乗値Ｐ５（１，１）２と、自身と同じ演算ブロック２０１［５］の近傍に設けられた所定数の演算ブロック２０１［３］，２０１［４］が備えるプーリング処理部２０４による処理結果データの２乗値Ｐ３（１，１）２、値Ｐ４（１，１）２とを加算した加算データ、つまり第２データである減算データＧが得られる。
【００５１】
そして、演算処理装置２００による３回目の演算サイクルでは、演算ブロック２０１［５］の正規化処理実行部２０５ｆは、自身と同じ演算ブロック２０１［５］の減算器２０５ｇから得られる減算データＧに基づいて、プーリングデータＰｊに対して正規化処理を実行する。これにより、プーリング処理の処理結果データＰｊ（１，１）に対する正規化処理データＮｊ（１，１）が得られる。
【００５２】
演算処理装置２００によれば、自身と同じ演算ブロック２０１［ｎ］が備えるプーリング処理部２０４によるプーリングデータＰｊを、自身と異なる演算ブロック２０１［ｎ］が備えるプーリング処理部２０４によるプーリングデータＰｊも利用して正規化することができる。よって、プーリング処理によるプーリングデータＰｊを精度良く正規化することができ、より優位な特徴量抽出処理を実現することができる。また、正規化処理部２０５は、第１出力部として機能するフリップフロップ回路２０５ｃと、第２出力部として機能するフリップフロップ回路２０５ｅと、第２出力部から得られる減算データＧに基づいて、第１出力部から得られるプーリングデータＰｊを正規化する正規化処理実行部２０５ｆとからなる構成である。そのため、回路構成を複雑にしなくとも、正規化処理部２０５、ひいては演算処理装置２００を実現することができる。
【００５３】
また、演算処理装置２００によれば、第２出力部として機能するフリップフロップ回路２０５ｅは、自身と同じ演算ブロック２０１［ｎ］が備えるプーリング処理部２０４によるプーリングデータＰｊの２乗値と、自身と同じ演算ブロック２０１［ｎ］の下流側の近傍に設けられた所定数の演算ブロック２０１［ｎ−２］，２０１［ｎ−１］が備えるプーリング処理部２０４によるプーリングデータＰｊの２乗値とを加算した加算データ、即ち減算データＧを第２データとして出力する構成である。このように第２出力部を構成することで、より簡素な回路構成によって正規化処理部２０５、ひいては演算処理装置２００を実現することができる。
なお、所定数は、適宜変更して設定することができる。また、演算処理装置２００が備える演算ブロック２０１［ｎ］の数は、適宜変更して実施することができる。
【００５４】
（第３実施形態）
図１２に例示する演算処理装置３００は、演算処理装置２００の構成に、さらに選択回路３１０を備えた構成である。選択回路３１０は、選択部の一例である。選択回路３１０は、所定数の演算ブロック３０１［ｎ］が備えるプーリング処理部３０４によるプーリングデータＰｊを２乗した値Ｐｊ２のうち何れか１つを選択する。即ち、選択回路３１０には、複数の演算ブロック３０１［ｎ］の乗算器３０５ａから、プーリング処理部３０４によるプーリングデータＰｊの２乗値Ｐｊ２が入力される。そして、選択回路３１０は、入力された複数の２乗値Ｐｊ２のうち何れか１つを選択する。そして、選択回路３１０は、選択した２乗値Ｐｊ２を各演算ブロック３０１［ｎ］のＦＩＦＯ記憶部３０５ｈに出力する。
【００５５】
各演算ブロック３０１［ｎ］では、減算器３０５ｇにより、加算器３０５ｂが出力する累積値から、ＦＩＦＯ記憶部３０５ｈが出力する２乗値Ｐｊ２、つまり、選択回路３１０により選択された２乗値Ｐｊ２が減算される。そして、その減算により得られた減算データＧが第２データとして正規化処理実行部３０５ｆに与えられる。なお、選択回路３１０による２乗値Ｐｊ２の選択基準は、適宜変更して設定することができる。即ち、選択回路３１０は、入力された複数の２乗値Ｐｊ２のうち、例えば、最大値のもの、最小値のもの、中間値のもの、所定の条件を満たすものなどを選択することができる。
【００５６】
演算処理装置３００によれば、自身と同じ演算ブロック３０１［ｎ］が備えるプーリング処理部３０４によるプーリングデータＰｊを、自身と異なる演算ブロック３０１［ｎ］が備えるプーリング処理部３０４によるプーリングデータＰｊも利用して正規化することができる。よって、プーリング処理によるプーリングデータＰｊを精度良く正規化することができ、より優位な特徴量抽出処理を実現することができる。また、正規化処理部３０５は、第１出力部として機能するフリップフロップ回路３０５ｃと、第２出力部として機能するフリップフロップ回路３０５ｅと、第２出力部から得られる減算データＧに基づいて、第１出力部から得られるプーリングデータＰｊを正規化する正規化処理実行部３０５ｆとからなる構成である。そのため、回路構成を複雑にしなくとも、正規化処理部３０５、ひいては演算処理装置３００を実現することができる。
【００５７】
また、演算処理装置３００によれば、選択回路３１０は、所定数の演算ブロック３０１［ｎ］が備えるプーリング処理部３０４によるプーリングデータＰｊの２乗値Ｐｊ２のうち何れか１つを選択する。そして、第２出力部として機能するフリップフロップ回路３０５ｅは、加算器３０５ｂが出力する累積値から選択回路３１０が選択したプーリングデータＰｊの２乗値Ｐｊ２を減算することにより得られた減算データＧを第２データとして出力する。このように構成することで、より簡素な回路構成によって正規化処理部３０５、ひいては演算処理装置３００を実現することができる。
なお、所定数は、適宜変更して設定することができる。また、演算処理装置３００が備える演算ブロック３０１［ｎ］の数は、適宜変更して実施することができる。また、演算処理装置１００の構成に選択回路３１０を適用してもよい。
【００５８】
（その他の実施形態）
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００５９】
図面中、１００，２００，３００は演算処理装置、１０１，２０１，３０１は演算ブロック、１０２，２０２，３０２は畳み込み演算処理部、１０３，２０３，３０３は活性化処理部、１０４，２０４，３０４はプーリング処理部、１０５，２０５，３０５は正規化処理部、１０５ｃ，２０５ｃ，３０５ｃはフリップフロップ回路（第１出力部）、１０５ｅ，２０５ｅ，３０５ｅはフリップフロップ回路（第２出力部）、１０５ｆ，２０５ｆ，３０５ｆは正規化処理実行部、３１０は選択回路（選択部）を示す。
【図１】
2015215837.tif 000003
【図２】
2015215837.tif 000004
【図３】
2015215837.tif 000005
【図４】
2015215837.tif 000006
【図５】
2015215837.tif 000007
【図６】
2015215837.tif 000008
【図７】
2015215837.tif 000009
【図８】
2015215837.tif 000010
【図９】
2015215837.tif 000011
【図１０】
2015215837.tif 000012
【図１１】
2015215837.tif 000013
【図１２】
2015215837.tif 000014