(57)【要約】【課題】ニューラルネットワークによる演算処理を実現する演算処理装置に関し、回路規模の大型化を抑えつつ、複数の演算結果データから最大値の演算結果データを検出する最大値検出処理を行うことができる構成を提供する。【解決手段】複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置１０は、演算ブロック１１Ａ〜１１Ｅと、演算ブロックを構成する演算部１５と、演算部１５を演算出力モードと非演算出力モードに切り換える選択回路１５ｆと、演算ブロック１１Ａ〜１１Ｅに対応して設けられ、自身が対応する演算ブロックが出力する演算結果データと他の演算ブロックが出力する演算結果データの比較結果に基づいて最大値データを出力する比較回路１２Ａ〜１２Ｅと、比較回路１２Ａ〜１２Ｅが出力する演算結果データに識別番号を付与する付与回路１３Ａ〜１３Ｅと、を備える。【選択図】図５
2018124813.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置（１０）であって、
前記演算を実行する複数の演算ブロック（１１Ａ〜１１Ｅ）と、
前記演算ブロックを構成する複数の演算部（１５）と、
前記演算部を、入力データを演算して出力する演算出力モードと、入力データを演算しないで出力する非演算出力モードと、に切り換える切換部（１５ｆ）と、
前記演算ブロックに対応して設けられ、自身が対応する前記演算ブロックが出力する演算結果データと他の前記演算ブロックが出力する演算結果データの大小関係を比較し、その比較結果に基づいて、値が大きい演算結果データを出力する比較部（１２Ａ〜１２Ｅ）と、
前記比較部が出力する前記演算結果データに識別番号を付与する付与部（１３Ａ〜１３Ｅ）と、
を備える演算処理装置。
【請求項２】
前記演算部に入力する入力データを、前記演算結果データが取り得る値のうち最小値を示す最小値データに差し替える差替部（２１）をさらに備える請求項１に記載の演算処理装置。
【請求項３】
前記演算ブロックを含む複数の演算ユニット（１４Ａ〜１４Ｅ）により複数の演算ユニット群（１１４）が構成され、
複数の前記演算ユニット群が出力する演算結果データの大小関係を比較し、その比較結果に基づいて、最も値が大きい演算結果データを格納する格納部（３３）をさらに備える請求項１または２に記載の演算処理装置。
【請求項４】
複数の前記演算結果データの値が等しい場合には、前記演算結果データに付与されている前記識別番号の大小関係を比較し、その比較結果に基づいて、前記格納部に格納する演算結果データを選択する請求項３に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関する。
【背景技術】
【０００２】
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が中核的な存在となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１８４８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の畳み込みニューラルネットワークによる演算処理では、演算処理後に、複数の演算結果データのうち最も大きい値を示す最大値データ、つまり、特徴量が最も反映された演算結果データを特定する必要がある。ところで、このような最大値データを検出する最大値検出処理は、畳み込み演算処理、活性化処理、プーリング処理などの演算処理とは処理の性質が異なる。そのため、最大値検出処理のための専用の回路構成が別途必要となり、演算処理装置全体としての回路規模が大きくなってしまう。
【０００５】
また、最大値検出処理を実現するための手段として、例えばＳｏＣ（System On Tip）構成に含まれる汎用のＣＰＵなどに演算結果データをオフロードする手段が考えられている。しかし、この手段では、オフロードの際に生じるデータ転送処理の負荷やＣＰＵの処理負荷が増大するという課題がある。
【０００６】
そこで、本発明は、ニューラルネットワークによる演算処理を実現する演算処理装置に関し、回路規模の大型化を抑えつつ、複数の演算結果データから最大値データを検出する最大値検出処理を行うことができる構成を提供する。
【課題を解決するための手段】
【０００７】
本発明に係る演算処理装置は、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置（１０）であって、複数の演算ブロック（１１Ａ〜１１Ｅ）、複数の演算部（１５）、切換部（１５ｆ）、比較部（１２Ａ〜１２Ｅ）、付与部（１３Ａ〜１３Ｅ）を備える。演算ブロックは、前記演算を実行する。演算部は、前記演算ブロックを構成する。切換部は、前記演算部を、入力データを演算して出力する演算出力モードと、入力データを演算しないで出力する非演算出力モードと、に切り換える。比較部は、前記演算ブロックに対応して設けられ、自身が対応する前記演算ブロックが出力する演算結果データと他の前記演算ブロックが出力する演算結果データの大小関係を比較し、その比較結果に基づいて、値が大きい演算結果データを出力する。付与部は、前記比較部が出力する前記演算結果データに識別番号を付与する。
【０００８】
この構成によれば、最大値検出処理のための専用の回路構成を別途備えなくとも、演算ブロックの構成を利用して最大値検出処理を行うことができる。よって、演算処理装置の回路規模の大型化を抑えつつ、複数の演算結果データから最大値データを検出する最大値検出処理を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】畳み込みニューラルネットワークの構成例を概念的に示す図
【図２】中間層における演算処理の流れを視覚的に例示する図（その１）
【図３】中間層における演算処理の流れを視覚的に例示する図（その２）
【図４】特徴量抽出処理に用いられる一般的な演算式および関数を例示する図
【図５】第１実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【図６】演算部の構成例を概略的に示すブロック図
【図７】第２実施形態に係る演算部の構成例を概略的に示すブロック図
【図８】第３実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【発明を実施するための形態】
【００１０】
以下、演算処理装置に係る複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
（ニューラルネットワーク）
図１には、詳しくは後述する演算処理装置１０に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成例を概念的に示している。畳み込みニューラルネットワークＮは、入力データである画像データＤ１から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Ｎａと全結合層Ｎｂとを有する。中間層Ｎａは、複数の特徴量抽出処理層Ｎａ１，Ｎａ２・・・が階層的に接続された構成である。各特徴量抽出処理層Ｎａ１，Ｎａ２・・・は、それぞれ畳み込み層Ｃおよびプーリング層Ｐを備える。
【００１１】
次に、中間層Ｎａにおける処理の流れについて説明する。図２に例示するように、第１層目の特徴量抽出処理層Ｎａ１では、演算処理装置は、入力される画像データＤ１を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第１層目の特徴量抽出処理層Ｎａ１では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
【００１２】
第２層目の特徴量抽出処理層Ｎａ２では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ１から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第２層目の特徴量抽出処理層Ｎａ２では、第１層目の特徴量抽出処理層Ｎａ１で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
【００１３】
第３層目の特徴量抽出処理層Ｎａ３では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ２から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第３層目の特徴量抽出処理層Ｎａ３では、第２層目の特徴量抽出処理層Ｎａ２で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データＤ１に含まれる検出対象物体の画像認識を行う。
【００１４】
演算処理装置は、中間層Ｎａにおいて複数の特徴量抽出処理層Ｎａ１，Ｎａ２，Ｎａ３・・・による処理を繰り返すことで入力画像データＤ１に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Ｎａの処理により得られた結果を中間演算結果データとして全結合層Ｎｂに出力する。
【００１５】
全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データＤ１に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。よって、畳み込みニューラルネットワークによる演算処理では、演算処理後に、複数の演算結果データのうち最も大きい値を示す演算結果データを特定するための最大値検出処理が行われている。
【００１６】
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図３に例示するように、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データＤｎを所定サイズ、この場合、図にてハッチングで示す３×３画素ごとのフィルタサイズにより走査する。なお、画素サイズは、３×３画素に限られず、例えば５×５画素など適宜変更することができる。
【００１７】
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、畳み込み層Ｃの出力とする。そして、演算処理装置は、畳み込み層Ｃの出力データＣｎに対して、所定サイズ、この場合、２×２画素ごとに周知のプーリング処理を行い、プーリング層Ｐの出力とする。そして、演算処理装置は、プーリング層Ｐの出力データＰｎを次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、２×２画素に限られず適宜変更することができる。
【００１８】
図４には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を示している。即ち、畳み込み関数Ｙｉｊは、直前の層の出力Ｘｉｊに学習により得られる重み係数Ｗｐ，ｑを乗算した値を累積する関数となっている。なお、「Ｎ」は１サイクルの畳み込み演算処理により処理される画素サイズを示す。即ち、例えば１演算サイクルの画素サイズが「３×３」画素である場合、Ｎの値は「２」である。また、畳み込み関数Ｙｉｊは、累積値に所定のバイアス値を加算する関数としてもよい。また、畳み込み関数は、全結合処理にも対応し得る積和演算が可能な関数であれば、種々の関数を採用することができる。また、活性化処理には、周知のロジスティックジグモイド関数やＲｅＬＵ関数（Rectified Linear Units）などが用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。
【００１９】
上述した畳み込みニューラルネットワークＮによれば、コンボルーション層Ｃによる処理およびプーリング層Ｐによる処理が繰り返されることにより、より高次元の特徴量の抽出が可能となる。次に、この畳み込みニューラルネットワークＮを適用した演算処理装置に係る複数の実施形態について説明する。
【００２０】
（第１実施形態）
図５に例示する演算処理装置１０は、複数、この場合５つの演算ブロック１１Ａ〜１１Ｅと、複数、この場合、５つの比較回路１２Ａ〜１２Ｅと、複数、この場合、５つの識別番号付与回路１３Ａ〜１３Ｅと、を備えている。演算処理装置１０は、１つの演算ブロック１１Ａ〜１１Ｅに対し、１つの比較回路１２Ａ〜１２Ｅおよび１つの識別番号付与回路１３Ａ〜１３Ｅを備える構成となっている。そして、演算処理装置１０は、１つの演算ブロック１１Ａ〜１１Ｅ、１つの比較回路１２Ａ〜１２Ｅ、１つの識別番号付与回路１３Ａ〜１３Ｅからなる組を複数、この場合、５つ形成しており、これらの組を下流側から上流側に向けて列状に配列した構成となっている。
【００２１】
なお、説明の便宜上、図１の下側を下流側、図１の上側を上流側と定義する。よって、最も下位側の演算ブロックは演算ブロック１１Ｅであり、最も上位側の演算ブロックは演算ブロック１１Ａである。また、演算処理装置１０は、複数、この場合、５つの演算ブロック１１Ａ〜１１Ｅと、複数、この場合、５つの比較回路１２Ａ〜１２Ｅと、複数、この場合、５つの識別番号付与回路１３Ａ〜１３Ｅとから、１つの演算ユニット１４Ａ〜１４Ｅを構成している。
【００２２】
演算ブロック１１Ａ〜１１Ｅは、それぞれ複数、この場合、５つの演算部１５を備えている。演算部１５は、それぞれ、図示しない畳み込み演算処理部、活性化処理部、プーリング処理部など、畳み込みニューラルネットワークＮによる演算処理に用いられる各種の処理部を備えている。これらの処理部は、例えば回路などのハードウェアにより構成してもよいし、ソフトウェアにより構成してもよいし、ハードウェアとソフトウェアの組み合わせにより構成してもよい。
【００２３】
畳み込み演算処理部は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データを活性化処理部に出力する。活性化処理部は、畳み込み演算処理部から入力されるデータに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部に出力する。プーリング処理部は、活性化処理部による処理結果データに対して周知のプーリング処理を実行して、その処理結果データを出力する。演算ブロック１１Ａ〜１１Ｅは、多段接続された複数の演算部１５により、入力データに対し演算処理を施し、それぞれ対をなす比較回路１２Ａ〜１２Ｅに出力する。
【００２４】
比較回路１２Ａ〜１２Ｅは、比較部の一例であり、例えば、加算処理および比較処理が可能な比較器などで構成されている。即ち、比較回路１２Ａ〜１２Ｅは、加算器として機能する加算処理モードと、比較器として機能する比較処理モードと、に切り換え可能に構成されている。比較回路１２Ａ〜１２Ｅは、それぞれ複数の演算ブロック１１Ａ〜１１Ｅに対応して設けられている。
【００２５】
比較回路１２Ａ〜１２Ｅは、加算器として機能する場合には、自身が対応する演算ブロック１１Ａ〜１１Ｅが出力するデータに、他の演算ブロック１１Ａ〜１１Ｅ、この場合、１つ上位側の演算ブロック１１Ａ〜１１Ｅが出力するデータを加算する。そして、比較回路１２Ａ〜１２Ｅは、加算後のデータを、フリップフロップ回路１６Ａ〜１６Ｅを介して、１つ下位側の比較回路１２Ａ〜１２Ｅに出力する。
【００２６】
なお、最も上位側の比較回路１２Ａは、自身が対応する演算ブロック１１Ａが出力するデータに、所定の初期値、この場合、「０」を加算する。また、最も下位側の比較回路１２Ｅは、加算後のデータを、最も下位側のフリップフロップ回路１７Ｅを介して演算ユニット１４Ａ〜１４Ｅの外部に出力する。
【００２７】
また、比較回路１２Ａ〜１２Ｅは、比較器として機能する場合には、自身が対応する演算ブロック１１Ａ〜１１Ｅが出力するデータと、他の演算ブロック１１Ａ〜１１Ｅ、この場合、１つ上位側の演算ブロック１１Ａ〜１１Ｅが出力するデータの大小関係を比較する。そして、比較回路１２Ａ〜１２Ｅは、その比較結果に基づいて、より値が大きいデータを、フリップフロップ回路１６Ａ〜１６Ｅを介して、１つ下位側の比較回路１２Ａ〜１２Ｅに出力する。また、比較回路１２Ａ〜１２Ｅは、比較結果を示す比較結果情報Ｓａ〜Ｓｅ、つまり、自身と対をなす演算ブロック１１Ａ〜１１Ｅが出力するデータおよび１つ上位側の演算ブロック１１Ａ〜１１Ｅが出力するデータのうち何れのデータを選択したのかを示す情報を、自身と対をなす識別番号付与回路１３Ａ〜１３Ｅに出力する。
【００２８】
なお、最も上位側の比較回路１２Ａは、自身が対応する演算ブロック１１Ａが出力するデータと、所定の初期値、この場合、「０」とを比較して、より大きい値の方を選択して出力する。また、最も下位側の比較回路１２Ｅは、選択したデータを、最も下位側のフリップフロップ回路１６Ｅを介して演算ユニット１４Ａ〜１４Ｅの外部に出力する。
【００２９】
識別番号付与回路１３Ａ〜１３Ｅは、付与部の一例であり、例えば２進数データなどで構成される識別番号を発生可能な回路構成を備えている。識別番号付与回路１３Ａ〜１３Ｅは、自身と対をなす比較回路１２Ａ〜１２Ｅから比較結果情報Ｓａ〜Ｓｅが入力されると、その比較結果情報に基づいて、自身と対をなす演算ブロック１１Ａ〜１１Ｅが出力するデータおよび１つ上位側の演算ブロック１１Ａ〜１１Ｅが出力するデータのうち、自身と対をなす比較回路１２Ａ〜１２Ｅが選択したデータを特定する。そして、識別番号付与回路１３Ａ〜１３Ｅは、特定したデータに識別番号を付与する。識別番号付与回路１３Ａ〜１３Ｅは、付与した識別番号を示す識別番号情報Ｔａ〜Ｔｅを、フリップフロップ回路１７Ａ〜１７Ｅおよび下位側の識別番号付与回路１３Ａ〜１３Ｅを介して演算ユニット１４Ａ〜１４Ｅの外部に出力する。
【００３０】
次に、演算部１５の構成例について、さらに詳細に説明する。図６に例示するように、演算部１５は、それぞれ、フリップフロップ回路１５ａ、重み係数入力回路１５ｂ、乗算器１５ｃ、加算器１５ｄなどを備えている。フリップフロップ回路１５ａは、入力データの入力タイミングを調整する。重み係数入力回路１５ｂは、例えばフリップフロップ回路などを備えて構成され、演算処理に用いられる重み係数を記憶あるいは発生する。そして、重み係数入力回路１５ｂは、重み係数を乗算器１５ｃに入力する。乗算器１５ｃは、入力データと重み係数とを乗算する。加算器１５ｄは、乗算器１５ｃによる演算結果を加算する。そして、演算部１５は、加算器１５ｄによる演算結果データを、フリップフロップ回路１５ｅを介して出力する。
【００３１】
さらに、演算部１５は、加算器１５ｄとフリップフロップ回路１５ｅとの間に選択回路１５ｆを備える。選択回路１５ｆは、切換部の一例であり、演算部１５を、入力データを演算して出力する演算出力モードと、入力データを演算しないで出力する非演算出力モードと、に切り換えるモード切換機能を備えている。この場合、選択回路１５ｆは、畳み込みニューラルネットワークＮによる演算処理の実行時においては、演算部１５を演算出力モードに切り換え、入力データが演算されて出力される状態にする。また、選択回路１５ｆは、複数の演算結果データから最大値データを特定する最大値検出処理の実行時においては、演算部１５を非演算出力モードに切り換え、入力データが演算されないまま出力される状態にする。
【００３２】
次に、演算処理装置１０による演算処理の流れについて説明する。即ち、畳み込みニューラルネットワークＮによる演算処理の実行時においては、演算部１５は、それぞれ演算出力モードに切り換えられる。また、比較回路１２Ａ〜１２Ｅは、それぞれ加算器として機能するように切り換えられる。これにより、複数の演算ブロック１１Ａ〜１１Ｅに入力される入力データが、それぞれ各演算ブロック１１Ａ〜１１Ｅにおいて演算処理され、さらに、比較回路１２Ａ〜１２Ｅにより加算つまり累積されて演算ユニット１４Ａ〜１４Ｅから出力される。演算ユニット１４Ａ〜１４Ｅから出力される演算結果データは、次階層における演算処理の入力データとして用いられる。これにより、複数階層にわたる演算処理が順次進められていき、入力画像に含まれる特徴量の抽出が行われる。
【００３３】
一方、畳み込みニューラルネットワークＮによる演算処理の後に行われる最大値検出処理の実行時においては、演算部１５は、それぞれ非演算出力モードに切り換えられる。また、比較回路１２Ａ〜１２Ｅは、それぞれ比較器として機能するように切り換えられる。これにより、複数の演算ブロック１１Ａ〜１１Ｅに入力される入力データは、それぞれ演算処理が施されることなく、そのまま比較回路１２Ａ〜１２Ｅに到達する。そして、比較回路１２Ａ〜１２Ｅは、自身が対応する演算ブロック１１Ａ〜１１Ｅが出力するデータと１つ上位側の演算ブロック１１Ａ〜１１Ｅが出力するデータの大小関係を比較する。そして、比較回路１２Ａ〜１２Ｅは、その比較結果に基づいて、より大きい値を示すデータを下位側の比較回路１２Ａ〜１２Ｅに伝達していく。これにより、複数の演算ブロック１１Ａ〜１１Ｅに入力される複数の入力データのうち最も値が大きいデータが演算ユニット１４Ａ〜１４Ｅから出力される。即ち、最も特徴量が反映された最大値データが演算ユニット１４Ａ〜１４Ｅから出力されるようになる。
【００３４】
演算処理装置１０によれば、畳み込みニューラルネットワークＮによる演算処理を実行する演算ブロック１１Ａ〜１１Ｅの演算部１５を、入力データを演算しないで出力する非演算出力モードに切り換え可能に構成した。また、演算処理装置１０によれば、演算部１５が非演算出力モードに切り換えられた状態において複数の演算ブロック１１Ａ〜１１Ｅから出力されるデータ、つまり、演算処理が施されていないデータの大小関係を比較する比較回路１２Ａ〜１２Ｅを備えている。この構成によれば、最大値検出処理のための専用の回路構成を別途備えなくとも、演算ブロック１１Ａ〜１１Ｅの構成を利用して最大値検出処理を行うことができる。よって、演算処理装置１０の回路規模の大型化を抑えつつ、複数の演算結果データから最大値の演算結果データを検出する最大値検出処理を行うことができる。
【００３５】
（第２実施形態）
図７に例示するように、演算部１５は、さらに差替ユニット２１を備える。差替ユニット２１は、他の演算部１５に入力する入力データを、演算結果データが取り得る値のうち最も小さい値を示す最小値データに差し替えるものであり、第１差替回路２２および第２差替回路２３を有する。また、演算部１５は、さらに、有効信号生成回路２４およびアンド回路２５を備えている。アンド回路２５には、重み係数入力回路１５ｂから重み係数が入力される。また、アンド回路２５には、有効信号生成回路２４から有効信号が入力される。アンド回路２５は、重み係数入力回路１５ｂから重み係数が入力され、且つ、有効信号生成回路２４から有効信号が入力されると、その重み係数を第１差替回路２２に出力する。
【００３６】
有効信号生成回路２４は、例えばカウンタ回路などを主体として構成されており、所定のタイミングで有効信号を出力する。有効信号生成回路２４が有効信号を出力するタイミングは、例えば演算部１５の数や並列数などに応じて、適宜変更して設定することができる。
【００３７】
また、演算部１５は、さらに、最小値出力回路２６を備えている。最小値出力回路２６は、演算ブロック１１Ａ〜１１Ｅによる演算により出力され得る演算結果データのうち最も小さい値を示す最小値データを生成あるいは記憶している。なお、最小値データは、例えば、入力画像データの大きさ、演算結果データのビット数などに基づいて特定することができる。
【００３８】
第１差替回路２２には、フリップフロップ回路１５ａからの入力データおよび最小値出力回路２６からの最小値データが入力される。第１差替回路２２は、アンド回路２５から入力される重み係数が所定条件を満たす場合、この場合、重み係数の最下位ビットが「１」である場合には、フリップフロップ回路１５ａからの入力データおよび最小値出力回路２６からの最小値データのうち最小値データを選択して選択回路１５ｆおよび第２差替回路２３に出力する。即ち、第１差替回路２２は、フリップフロップ回路１５ａからの入力データを最小値出力回路２６からの最小値データに差し替えて選択回路１５ｆおよび第２差替回路２３に出力する。
【００３９】
また、第１差替回路２２は、アンド回路２５から入力される重み係数の最下位ビットが「１」でない場合には、フリップフロップ回路１５ａからの入力データおよび最小値出力回路２６からの最小値データのうち入力データを選択して選択回路１５ｆおよび第２差替回路２３に出力する。即ち、第１差替回路２２は、フリップフロップ回路１５ａからの入力データを差し替えることなく、そのまま選択回路１５ｆおよび第２差替回路２３に出力する。
【００４０】
以上の通り、第１差替回路２２は、アンド回路２５から重み係数が入力される場合、つまり、有効信号生成回路２４から有効信号が出力されている場合であって、且つ、その重み係数が所定条件を満たす場合に、選択回路１５ｆおよび第２差替回路２３に入力される入力データを最小値データに差し替えるようになっている。
【００４１】
選択回路１５ｆは、畳み込みニューラルネットワークＮによる演算処理の実行時においては、加算器１５ｄから入力される入力データおよび第１差替回路２２から入力される最小値データのうち入力データを選択して出力する。また、選択回路１５ｆは、最大値検出処理の実行時において第１差替回路２２から最小値データが入力されている場合には、加算器１５ｄから入力される入力データおよび第１差替回路２２から入力される最小値データのうち最小値データを選択して出力する。
【００４２】
また、第２差替回路２３は、畳み込みニューラルネットワークＮによる演算処理の実行時においては、フリップフロップ回路１５ａから入力される入力データおよび第１差替回路２２から入力される最小値データのうち入力データを選択して出力する。また、第２差替回路２３は、最大値検出処理の実行時において第１差替回路２２から最小値データが入力されている場合には、フリップフロップ回路１５ａから入力される入力データおよび第１差替回路２２から入力される最小値データのうち最小値データを選択して出力する。
【００４３】
選択回路１５ｆおよび第２差替回路２３から最小値データが出力される場合、その最小値データは、演算が施されることなく、そのまま、対応する比較回路１２Ａ〜１２Ｅに到達する。よって、比較回路１２Ａ〜１２Ｅにおける比較処理において、一方の比較対象データを確実に最小値データとすることができる。そして、この比較処理において、最小値データが、より大きな値のデータとして選択されることは無いため、最大値検出処理において最小値データが最大値データとして検出されてしまうことを確実に回避することができる。
【００４４】
（第３実施形態）
図８に例示する演算処理装置１０は、複数の演算ユニット１４Ａ〜１４Ｅからなる演算ユニット群１１４を複数備えている。また、演算ユニット群１１４は、それぞれ、比較回路３１、選択回路３２、格納回路３３を備えている。演算ユニット群１１４は、自身が出力する最大値データに、その最大値データに付与した識別番号を添付して出力する。即ち、演算ユニット群１１４は、最大値データと識別番号を対応付けて出力するようになっている。
【００４５】
比較回路３１は、格納回路３３に格納されている最大値データと、自身が対をなす演算ユニット群１１４が出力する最大値データと、下位の演算ユニット群１１４が出力する最大値データと、の大小関係を比較する。そして、比較回路３１は、３つの最大値データのうち最も値が大きい演算結果データを特定する。そして、比較回路３１は、格納回路３３に格納されている最大値データ、自身が対をなす演算ユニット群１１４が出力する最大値データ、下位の演算ユニット群１１４が出力する最大値データのうち何れのデータを特定したのかを示す比較結果データＤを選択回路３２に出力する。
【００４６】
選択回路３２は、比較回路３１から入力される比較結果データＤに基づいて、格納回路３３に格納されている最大値データ、自身が対をなす演算ユニット群１１４が出力する最大値データ、下位の演算ユニット群１１４が出力する最大値データのうち、最も値が大きい演算結果データを選択する。そして、選択回路３２は、選択した演算結果データを格納回路３３に上書きして格納する。これにより、格納回路３３には、既に実行された演算処理により得られた演算結果データのうち最も大きい値を示す演算結果データが常に格納されるようになる。即ち、格納回路３３には、常に、最新の最大値データが格納される。格納回路３３は、格納部の一例である。
【００４７】
この構成によれば、演算処理装置１０が複数の演算ユニット群１１４を備える場合であっても、それぞれの演算ユニット群１１４が出力する演算結果データから最大値データを特定することができる。よって、演算ユニット群１１４の数を増やして演算処理能力を向上させつつ、多数の演算結果データから最大値データの検出を行うことができる。
【００４８】
なお、演算処理装置１０は、複数の演算ユニット群１１４が出力する演算結果データの値が等しい場合には、比較回路３１により、その演算結果データに付与されている識別番号の大小関係を比較し、その比較結果に基づいて、格納回路３３に格納する演算結果データを選択する構成としてもよい。これにより、複数の演算ユニット群１１４から同じ値の最大値データが出力される場合であっても、何れか１つの最大値データを選択して格納することができる。
【００４９】
（その他の実施形態）
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、上述した複数の実施形態を適宜組み合わせて実施してもよい。また、演算ブロックの数や演算器の数は、５つに限られるものではなく、その数を適宜変更して構成することができる。また、比較回路の数や識別番号付与回路の数も、演算ブロックの数に応じて、その数を適宜変更して構成することができる。
【００５０】
また、演算部は、例えば累積処理部を備えたものであってもよい。累積処理部は、例えば加算器などで構成される。累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｅの累積処理部からデータが入力される場合には、そのデータを、自身と同じ演算ブロック１１Ａ〜１１Ｅの畳み込み演算処理部から入力されるデータに加算する。これにより、複数の演算ブロック１１Ａ〜１１Ｅは、それぞれの演算ブロック１１Ａ〜１１Ｅの畳み込み演算処理部による演算結果データを、下位側から上位側に向かって順次累積することが可能となる。
【００５１】
また、累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｅからデータが入力されない場合には、自身と同じ演算ブロック１１Ａ〜１１Ｅの畳み込み演算処理部から入力されるデータを、自身と同じ演算ブロック１１Ａ〜１１Ｅの活性化処理部に出力する。また、累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｅからデータが入力される場合には、自身と同じ演算ブロック１１Ａ〜１１Ｅの畳み込み演算処理部から入力されるデータに下位側の演算ブロック１１Ａ〜１１Ｅから入力されるデータを加算した累積データを、自身と同じ演算ブロック１１Ａ〜１１Ｅの活性化処理部に出力する。
【００５２】
なお、本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００５３】
図面中、１０は演算処理装置、１１Ａ〜１１Ｅは演算ブロック、１２Ａ〜１２Ｅは比較回路（比較部）、１３Ａ〜１３Ｅは識別番号付与回路（付与部）、１５は演算部、１５ｆは選択回路（切換部）を示す。
【図１】
2018124813.tif 000003
【図２】
2018124813.tif 000004
【図３】
2018124813.tif 000005
【図４】
2018124813.tif 000006
【図５】
2018124813.tif 000007
【図６】
2018124813.tif 000008
【図７】
2018124813.tif 000009
【図８】
2018124813.tif 000010