JP2017138867A - 演算処理回路、および情報処理装置 - Google Patents

演算処理回路、および情報処理装置 Download PDF

Info

Publication number
JP2017138867A
JP2017138867A JP2016020444A JP2016020444A JP2017138867A JP 2017138867 A JP2017138867 A JP 2017138867A JP 2016020444 A JP2016020444 A JP 2016020444A JP 2016020444 A JP2016020444 A JP 2016020444A JP 2017138867 A JP2017138867 A JP 2017138867A
Authority
JP
Japan
Prior art keywords
layer
neural network
circuit
recognition
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016020444A
Other languages
English (en)
Other versions
JP6658033B2 (ja
Inventor
安基 富田
Yasumoto Tomita
安基 富田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016020444A priority Critical patent/JP6658033B2/ja
Priority to US15/418,969 priority patent/US10817776B2/en
Publication of JP2017138867A publication Critical patent/JP2017138867A/ja
Application granted granted Critical
Publication of JP6658033B2 publication Critical patent/JP6658033B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

【課題】ニューラルネットワークにおいて、低コストで、高速化とチップ面積の利用効率向上とを実現する。
【解決手段】演算処理回路は、入力データを認識する認識ニューラルネットワークに設定される係数を計算するための基準となる入力データに対する認識結果と基準となる入力データに対する基準となる認識結果とに基づいて認識ニューラルネットワークに設定する係数を計算する学習ニューラルネットワークを配置した第1の層を備える。また、演算処理回路は、学習ニューラルネットワークで計算された係数により入力データを認識する認識ニューラルネットワークを配置した第2の層を備える。さらに、演算処理回路は、第1の層と第2の層との間に配置され、学習ニューラルネットワークと認識ニューラルネットワークの双方に接続されるメモリを配置した第3の層と、を備える。
【選択図】図5

Description

本発明は、演算処理回路、および情報処理装置に関する。
Internet of Things(IoT)が現実のものとなり、様々なものからデータが取得される結果、ビッグデータ解析のための機械学習への関心が高まっている。その機械学習の中でも、近年、人間の脳の視覚を扱う部分を模擬したニューラルネットワーク(NN)における学習技術が進展している。例えば、ニューラルネットワークは、画像を学習することで、新たにニューラルネットワークに入力される画像から特徴を認識し、特定の画像を識別する。
ニューラルネットワークは、精度面では、既存の画像認識手法を凌駕する。しかし、ニューラルネットワークでは、計算量が多いという課題がある。例えば、CPU(Central Processing Unit)による処理では、学習のフェーズで長時間の計算が実行される。そこで、計算時間の短縮のため、アクセラレータが用いられる。
従来のニューラルネットワークのアクセラレータは、例えば、System-on-a-
Chip(SoC)を採用し、一つのチップに全てのニューラルネットワークを搭載する。SoCは、メモリとデータの距離を近づけ、高速化を実現する。また、Silicon
in Package(SiP)技術では、Through Silicon Via(TSV)を介して、論理回路チップとメモリチップを接続することで、処理対象のデータを格納したメモリとニューラルネットワークの演算回路との距離が近づけられ、高速化が実現される。
特表平8-505248号公報 国際公開第2002/035616号
しかし、ニューラルネットワークは、メモリ容量を上げるために、Embedded Dynamic Random Access Memory (eDRAM)を採用する場合がある。eDRAMのようなメモリと論理回路の混載は、プロセスコスト増に繋がる。また、eDRAMから論理回路へのパスは配線の束となるため、チップ面積の利用効率が低下する。
一方、SiP技術は、ニューラルネットワークの構成要素となるチップ(メモリ、論理回路等)を分離するので、SiP技術の導入により、SoCのプロセスは通常のプロセスを利用でき安価で済む。しかしながら、SiP技術によるニューラルネットワークでも、認識回路と学習回路が共存している。このため、認識フェーズでは、学習回路は利用されないため、チップ面積の利用効率が低下する。
1つの側面では、本実施の形態に開示の技術は、ニューラルネットワークにおいて、低コストで、高速化とチップ面積の利用効率向上とを実現することを課題とする。
開示の技術の一側面は、演算処理回路によって例示される。本演算処理回路は、入力データを認識する認識ニューラルネットワークに設定される係数を計算するための基準となる入力データに対する、前記認識ニューラルネットワークによる認識結果と前記基準となる入力データに対する基準となる認識結果とに基づいて前記係数を計算する学習ニューラルネットワークを配置した第1の層を備える。また、本演算処理回路は、前記学習ニューラルネットワークで計算された係数により入力データを認識する前記認識ニューラルネットワークを配置した第2の層を備える。さらに、本演算処理回路は、前記第1の層と第2の層との間に配置され、前記学習ニューラルネットワークと前記認識ニューラルネットワークの双方に接続されるメモリを配置した第3の層を備える。
本演算処理回路によれば、ニューラルネットワークにおいて、低コストで、高速化とチップ面積の利用効率向上を実現することができる。
比較例に係るニューラルネットワークの処理を例示する図である。 フォーワッド方向の認識処理および識別処理とともに、バックワード方向の学習処理を例示する図である。 比較例に係るニューラルネットワークを適用した画像認識装置の構成を例示する図である。 実施の形態に係るニューラルネットワークを例示する図である。 実施の形態に係るニューラルネットワークを例示する図である。 畳み込み層の構成の詳細を例示する図である。 逆方向の畳み込み層の回路の構成を例示する図である。 逆方向のプーリング層の回路の構成を例示する図である。 次の重みを生成する更新器の構成を例示する図である。 畳み込み層、プーリング層1層、全結合層1層のニューラルネットワークのタイミングダイアグラムを例示する図である。 畳み込み層2層、プーリング層2層、全結合層1層のニューラルネットワークのパッケージレベルでの実装例を示す図である。 ニューラルネットワークの処理のフローチャートの例である。 ニューラルネットワークの処理シーケンスを例示する図である。 ニューラルネットワークのチップの平面図の一例である。
以下、図面を参照して、一実施の形態に係る情報処理装置について説明する。以下の実施の形態の構成は例示であり、本情報処理装置は実施の形態の構成には限定されない。以下、比較例と対比して実施の形態のニューラルネットワークを説明する。
[比較例]
図1に、比較例に係るニューラルネットワークの処理を例示する。ニューラルネットワークは、画像を認識し、識別するためのフォーワッド方向の処理と、フォーワッド方向の処理で使用するパラメータを決定するバックワード方向の処理を実行する。なお、バックワード方向の処理は、バックプロパゲーション(Back Propagation、BP)と呼ばれる。
図1のニューラルネットワークは、入力画像に対して、畳み込み層(Convolution Layer)の処理と、プーリング層(Pooling Layer)の処理とを実行し、画像の特徴を抽出し、画像を識別する。すなわち、図1では、フォーワッド方向の処理が例示されている。図1では、Input Layerとされている入力画像に対して、畳み込み層の処理とプーリング層の処理が実行され、4フィーチャマップ、6フ
ィーチャマップ等が順次生成される。ここでフィーチャマップは、例えば、画像の異なるチャンネルで授受されるデータ、あるいは、画像のうちのR,G,Bデータ等に相当するデータである。そして、図1のニューラルネットワークは、最終層であるFully Connected multilayer perceptron(MLP)において、識別結果を出力する。なお、プーリング層は、サブサンプリング層(Sub-sampl
ing Layer)とも呼ばれる。最終層は、全結合層(Fully Connected Layer)とも呼ばれる。
フォーワッド方向の処理のうち、最終層に至るまでの畳み込み層の処理と、プーリング層の処理を繰り返し実行する演算回路部分を特徴抽出部と呼ぶ。すなわち、特徴抽出部は、入力画像に対して、畳み込み層の処理と、プーリング層の処理を繰り返し実行することで、間引かれた画像を抽出する。畳み込み層の処理は、畳み込み演算とも呼ばれる。プーリング層の処理は、プーリング演算、あるいはサブサンプリング演算とも呼ばれる。
より具体的には、特徴抽出部は、フォーワッド方向のある層(第l−1層)において、N個×N個の画素を有する画像の情報に対して、例えば、a×b個の重みwab(a,b=0,...,m−1)のフィルタによる畳み込み演算を実行する。特徴抽出部は、この畳み込み演算を実行することで、現在処理中の層(第l−1層)の画像から、次の層(第l層)の画像の情報を作る。さらに、畳み込み演算による処理結果は、非線形活性化関数y=sigma(x)によって変換され、発火と呼ばれるモデル化がなされる。非線形活性化関数は、例えば、sigma(x)=max(0,x)である。すなわち、非線形活性化関数y=sigma(x)は、xが負の値の場合、sigm(x)=0であり、xが正の値の場合、sigma(x)=xの値をとる関数である。なお、重みwは畳み込み演算に用いられることから、係数wということもできる。
<畳み込み層の計算>
今、第l−1層における画素(i,j)からの出力をyl-1 i,jとし、第l層の画素(i,j)における畳み込み演算の処理結果をxl i,jとし、第l層における画素(i,j)の非線形活性
化関数y=sigm(x)の演算結果をyl i,jとする。xl i,jとyl i,jは以下の(式1)、(式2)で表すことができる。ただし、(式2)において、関数sigmaは、ギリシャ文字で表している。
Figure 2017138867
Figure 2017138867
式1の対象となる第l−1層の画像の情報のうち、a×b個の画素の領域を以下、単位矩形領域と呼ぶ。なお、単位矩形領域は1つのフィーチャに限定される訳ではなく、図1に例示した4ファーチャマップ、6フィーチャマップが畳み込み演算の対象となる場合に、複数のファーチャマップを用いて、畳み込み演算が実行されてもよい。また、以下、画素をセルともよぶ。単位矩形領域は配列データの部分の一例である。画素、あるいはセルは、配列データの要素の一例である。
プーリング演算は、N個×N個の画素を有する画像をN/k個×N/k個の画素を有す
る画像に間引く処理である。間引き方としては、例えば、N個×N個の画素をk個×k個ずつの部分画像に区切り、各部分画像に含まれるk個×k個の画素中の最大の画素値を有する1つの画素を選択する処理(以下、max poolingと呼ぶ)、k個×k個の画素の平均値によって1つの画素を生成する処理等が例示できる。
識別部は、作成された間引かれた画像中の全画素に対して、それぞれの画素に重みを適用し、畳み込み演算を実行することで、出力値を得る。今、特徴抽出部の最後の層を第l−1層として、第l−1層の各画素値をyl-1 jとし、全結合による畳み込み演算結果をxl iとし、重みをwl-1 jiとすると、xl iは以下の(式3)で表すことができる。
Figure 2017138867
また、識別部における非線形活性化関数y=sigma(x)の演算結果をyl iとすると、識別部の演算結果yl iは以下の(式4)で表すことができる。ただし、(式4)において、関数sigmaは、ギリシャ文字で表している。
Figure 2017138867
ここで、Il iはバイアス成分である。
図2に、フォーワッド方向の認識処理および識別処理とともに、バックワード方向の学習処理(BP)を例示する。図2のニューラルネットワークにおいても、フォーワッド方向の認識処理は、入力画像に畳み込み演算を実行する畳み込み層、間引き処理を実行するプーリング層によって実行される。また、識別結果を出力する識別処理は、全結合層(図2では、Fully connectedと記載)によって実行される。
全結合層による識別処理の結果は、正解データを比較され、比較結果である差分値がエラーとして出力される。エラーは、学習処理によって処理される。学習処理は、エラーから、フォーワッド方向の畳み込み層および全結合層における各層でのエラーおよび各層での次の重みを計算する処理である。図2では、現在の重みとして、畳み込み層(1層)における1つの重みwiと、全結合層(1層)における1つの重みwjが例示されている。また、次の重みとして、畳み込み層(1層)における1つの重みwi+1と、全結合層(1層
)における1つの重みwj+1が例示されている。
今、例えば、エラーの評価関数として、識別結果である出力値yiと正解データTiとの平方和Eを例示すると、(式5)のように定義できる。学習処理は、数5で例示されるエラーの評価関数を最小にするための重みwを決定する処理と考えることができる。
Figure 2017138867
次に、(式5)をyiで偏微分すると(式6)となり、右辺は出力値yiと正解データ
Tiとの差である誤差値となる。エラーの評価関数を(式5)から一般化した場合も、エ
ラーの評価関数を出力値yiで偏微分すると、出力値yiと正解データTiとの差である
誤差値となると考えることができる。
Figure 2017138867
さらに、式5をxiで偏微分し、(式7)の推移律を適用し、さらに、yiに式4を代入すると、(式8)が得られる。なお、画素値xと、非線形活性化関数の出力値yとの関係を(式2)で表す場合には、(式9)が得られる。
Figure 2017138867
Figure 2017138867
Figure 2017138867
一方、(式5)をyl iで偏微分し、全結合層の画素値xl iが1つ入力側の層(第l−1層)からの出力値yl-1 jによって(式3)のように表されることを考慮すると、(式10)が得られる。なお、第l層の画素値xl i,jyが1つ入力側の層(第l−1層)からの出力値yl-1 jによって(式1)で表される場合には、(式10)は、(式11)のようになる。
Figure 2017138867
Figure 2017138867
式10は、第l層の誤差が第l+1層の誤差に、第l層の画素iと第l+1層の画素jとの間の重みwi,jを乗算した結果を、第l層の画素iに関係する第l+1層の画素jにつ
いて集計したものとなっている。
また、(式5)を重みwl ijで偏微分し、推移律を適用し、さらに、数3を代入すると
、(式12)が得られる。ただし、(式3)は、第1−1層からの出力yと、第l層の画素値xの関係となっているが、(式12)は、第1層からの出力yと、第l+1層の画素値xの関係となっている。(式12)は、エラーの評価関数Eの勾配を示す。最勾降下法によるニューラルネットワークの学習処理においては、エラーの評価関数Eの勾配と、学習係数イータの積が重みWの変化量(現在の重みWtと次の重みWt+1の差分値)となる。したがって、以下の記述において、エラーの評価関数Eの勾配を重みWの更新量deltaWと定義する。なお、画素値xとyの関係が(式1)で表される場合には、(式12)は、(式13)のようになる。以上から、エラーの評価関数Eに最勾降下法を適用すると、(式14)が得られる。なお、(式14)では、演算がM回繰り返される式となっているが、M=1でもよい。
Figure 2017138867
Figure 2017138867
Figure 2017138867
(A)各層の重み
(式14)は、現在の重みwtと次回認識処理での重みwtとの関係を示している。したがって、(式14)の第2項が次回の重みへの増分値となる。また、(式14)でギリシャ文字イータは、エラーの評価関数Eの勾配から重みwtの増分値を得るための係数であり、例えば、経験的実験的に設定できる。すなわち、学習処理においては、学習回路の各層において、数12による勾配を求め、エラーの評価関数Eが小さくなる方向に、(式11)の第2項の増分値を算出し、次回の重みwtを求める処理を実行する。
(B)各層のエラーの評価関数の勾配(更新量deltaWの計算)
ここで、(式14)の第2項は、(式12)により、各層(第l層)の画素値(yl i)と、各層(第l層)に対して1つ出力側の層(第l+1層)のエラー(エラーの評価関数の画素値xl+1 jによる偏微分値)との積から得られる。ただし、現在の層((式13)では第l−1層)と、1層全結合層側の層((式13)では第l層)との関係が(式1)のように積和演算で表される場合、更新量deltaWは、(式13)で表される。すなわち、更新量deltaWは、現在の層(第l−1層)の画素の出力値yl-1 i,jと関係する第l層の画素値xl i,jからの寄与を集計したものとなっている。
(C)各層のエラー
一方、各層(第l層)のエラー(エラーの評価関数の画素値yl iによる偏微分値)は、
(式10)から、現在の層(第l層)に対して1つ出力側の層(第l+1層)のエラー(エラーの評価関数の画素値xl+1 jによる偏微分値)と、第l層の画素iと第l+1層の画素jとの間の重みwi,jとの積を、第l層の画素iに関係する第l+1層の画素jについ
て集計したものから求めることができる。
つまり、比較例のニューラルネットワークは、図2で例示される識別値と正解データとの差分であるエラーを基に各層の重みの増分値を求めることができる。すなわち、比較例のニューラルネットワークは、(式10)にしたがって、1つ入力側のエラーを計算し、(式12)あるいは(式13)にしたがって、エラーの評価関数の勾配(更新量deltaW)を求めることで、(式14)にしたがって、各層において、現在の重みWtから次の重みのWt+1を求めることができる。つまり、図1、図2のニューラルネットワークは、(式14)、(式12)、(式10)等を実行する積和演算回路を有する。
<プーリング層の計算>
プーリング層が最大値の所定範囲(k個×k個の範囲)から画素の最大値を選択する場合(Max−Poolingと呼ばれる場合)には、k個×k個の範囲から1つの画素が選択される。したがって、バックワード方向(BP)には、ニューラルネットワークは、選択された画素について、出力側の画素値を入力側に戻す。一方、ニューラルネットワークは、選択された画素以外の画素については、画素値=0を入力側に戻せばよい。したがって、ニューラルネットワークは、出力側の画素値および画素値=0を入力側に戻すための積和演算回路、あるいはセレクタ回路を有する。
以上の処理によって、図2のニューラルネットワークは、全結合層による識別処理の結果と正解データとの比較によって得られるエラーの評価関数Eを最小にするための学習処理を実行する。
図3に、比較例に係るニューラルネットワークを適用した画像認識装置の構成を例示する。図3において、画像メモリ0から3は、ニューラルネットワークが認識し、識別する画像データを保持する。しかしながら、すでに述べたように、図3において、eDRAM構成を採用した場合には、メモリと論理回路の混載は、プロセスコスト増に繋がる。また、eDRAMから論理回路へのパスは配線の束となるため、チップ面積の利用効率が低下する。さらに、図2、3のように、ニューラルネットワークにおいて認識処理および識別処理を実行するフォーワッド側の回路と、学習処理を実行するバックワード側の回路が混在した場合には、認識処理実行時には、バックワード側の学習回路が未使用となるため、チップの面積利用率が低下する。
[実施の形態]
以下、本実施の形態のニューラルネットワークを説明する。本実施の形態のニューラルネットワークは、演算処理回路の一例である。図4および図5に、一実施の形態に係るニューラルネットワークを例示する。本ニューラルネットワークは、学習チップ1と、認識チップ2と、メモリチップ3とを有する。本ニューラルネットワークは、3次元実装(SiP)技術を採用し、メモリチップ3を挟んで学習チップ1と、認識チップ2とが接合される。そして、メモリチップ3は、FIFO(First In First Out)の素子を有し、学習チップ1と、認識チップ2との間に介在する。メモリチップ3のFIFOは、タイミングを整合させるためのバッファとして作用する。
なお、本実施の形態のニューラルネットワークにおいても、学習フェーズおよび認識フェーズで実行される処理は、数1から数14にしたがう。したがって、学習チップ1は、(式14)にしたがって、次の重みWtを計算し、認識チップ2は、(式1)から(式4)にしたがって、入力画像の認識処理を実行する。入力画像は入力データ、および配列データの一例である。
学習チップ1は、入力データを認識する認識ニューラルネットワークに設定される係数を計算するための基準となる入力データに対する、前記認識ニューラルネットワークによる認識結果と前記基準となる入力データに対する基準となる認識結果とに基づいて前記係数を計算する学習ニューラルネットワークを配置した第1の層の一例である。認識チップ2は、前記学習ニューラルネットワークで計算された係数により入力データを認識する前記認識ニューラルネットワークを配置した第2の層の一例である。また、メモリチップ3は、第1の層と第2の層との間に配置され、前記学習ニューラルネットワークと前記認識ニューラルネットワークの双方に接続されるメモリを配置した第3の層の一例である。
学習チップ1と、認識チップ2とは、それぞれパイプライン処理を実行する。学習チップ1は、正解データと、認識チップ2が入力画像を認識した認識結果とを比較する比較回路12を有する。比較回路12は、基準となる入力データに対する基準となる認識結果と前記出力回路からの出力値とを比較する比較回路の一例である。そして、学習チップ1は、比較回路12の比較結果にしたがって、各層でのエラーおよび認識チップ2に引き渡す重みを生成する。重みは、FIFOを介して認識チップ2に引き渡される。認識チップ2は、入力側の層から全結合層に至る各層において学習チップ1から引き渡された重みを用いて認識処理を実行する。図5のように、認識チップ2は、畳み込み層とプーリング層とを複数対有する。畳み込み層での畳み込み演算の結果(y)は、上位のプーリング層に出力されるとともに、現在の重み(w)とともに、FIFOを介して、学習チップ1の対応する層(Back propergationの畳み込み層(BP Conv層))に引き渡される。また、プーリング層での間引き処理の結果は、LUT(Look UpTable)の形式で、FIFOを介して、学習チップ1の対応する層(BP pool層)に引き渡される。認識チップ2の最終層である全結合層と判定回路は、識別結果を出力する。全結合層と判定回路は、出力回路26と呼ばれる。出力回路26は、縮小された配列データの要素と前記要素に対応する係数との積和演算および所定の関数により出力値を出力する出力回路の一例である。
一方、認識チップ2の入力側の畳み込み層(Conv)とプーリング層(max pool)を組み合わせた全結合層(Fully con.)に至る直前までの演算回路は、生成回路25と呼ばれる。生成回路25は、配列データの部分ごとに前記部分に含まれる前記配列データの要素と前記要素に対応する前記係数との積和演算および所定の関数により第1部分配列を生成する演算回路と前記配列データの部分ごとに前記生成された第1部分配列から要素を間引いて第2部分配列を生成する間引き回路との組を1組または2組以上複数段に接続して、前記配列データから縮小された配列データを生成する生成回路の一例である。
また、学習チップ1の逆方向の全結合層を除く、逆方向の畳み込み層(BP Conv)とプーリング層(BP pool)を組み合わせた演算回路は、係数生成回路13と呼ばれる。エラーは差分値の一例である。係数生成回路13は、逆方向の演算回路、および、前記第1部分配列から第2部分配列を生成するための間引きの対応関係を示す対応関係情報と前記生成された差分値とを基に前記第1部分配列を復元する復元回路の組み合わせを1組または2組以上複数段に接続した係数生成回路の一例である。係数生成回路13は、認識ニューラルネットワークの各段で生成された第1部分配列と前記第1部分配列における差分値とから前記係数の変化量を生成する逆方向の生成回路の一例でもある。
図4、図5に例示のように、認識チップ2においては、入力画像が入力される層1から、層の番号が大きくなるにしたがって、FIFOの段数が減少する。例えば、図4、5に例示のように、層1:畳み込み層(Conv層)、層2:プーリング層(max pool層)、層3:畳み込み層(Conv層)、層4:プーリング層(max pool層)
、層5:全結合層(Fully con.)の場合に、認識チップ2の層1において、学習チップ1に引き渡される畳み込み演算の結果と現在の重み(y、w)のFIFOの段数は、5段である。また、認識チップ2の層2において、学習チップ1に引き渡されるLUTのFIFOの段数は、4段である。そして、FIFOの段数は、層番号の増加とともに減少し、層5において、学習チップ1に引き渡される畳み込み演算の結果と現在の重み(y、w)のFIFOの段数は、1段である。したがって、入力画像が層5:全結合層(Fully con.)において畳み込み演算が実行され、畳み込み演算の結果と現在の重み(y、w)がFIFOに設定されると、層1から層5の各FIFOの値がそろって学習チップ1に引き渡されることが可能となり、学習チップ1がパイプラインで学習処理を実行する。上記のように、「入力画像が層5:全結合層(Fully con.)において畳み込み演算が実行され、畳み込み演算の結果と現在の重み(y、w)がFIFOに設定されると、層1から層5の各FIFOの値がそろって学習チップ1に引き渡されること」は、認識ニューラルネットワークの各段は、前記対応関係情報と前記各段の演算回路で生成された第1部分配列(yl)と前記各段の演算回路で使用された係数とを前記学習ニューラルネットワークの各段の演算回路に所定の動作タイミングで引き渡すことの一例である。
同様に、学習チップ1においては、認識チップ2の全結合層に対応して、Back propergationの層5で生成された重みWを認識チップ2の層5に引き渡すFIFOの段数は、5段である。また、Back propergationの層3で生成された重みWを認識チップ2の層3に引き渡すFIFOの段数は、3段である。Back propergationの層1で生成された重みWを認識チップ2の層1に引き渡すFIFOの段数は、1段である。したがって、1枚の画像の判定結果に基づくエラーが学習チップの層1で処理されたときに、各層の新たな重みWl t+1がFIFOの各段にそろって認識チップ2に引き渡されることが可能となる。そして、各層の新たな重みWl t+1がFIFOの各段にそろうタイミング以降、認識チップ2がパイプラインで新たな入力画像に対して認識処理を実行することが可能となる。上記のような「1枚の画像の判定結果に基づくエラーが学習チップの層1で処理されたときに、各層の新たな重みWl t+1がFIFOの各段にそろって認識チップ2に引き渡されること」は、学習ニューラルネットワークの各段は、前記演算回路で生成した係数を前記認識ニューラルネットワークの各段の演算回路に所定の動作タイミングで引き渡すことの一例である。
このように、認識チップ2の層が1つ上がるごとに、畳み込み演算の結果と現在の重み(y、w)のFIFOの段数が1段ずつ下がる。このようなFIFOの構成よって、1つの入力画像の識別結果が出力されたタイミングで、この入力画像の処理結果と正解データとの比較に基づく学習処理が実行可能となる。図4、図5に例示した「認識チップ2の層が1つ上がるごとに、畳み込み演算の結果と現在の重み(y、w)のFIFOの段数が1段ずつ下がる」構成は、認識ニューラルネットワークの各段から前記学習ニューラルネットワークの各段へ第1の動作タイミングで前記対応関係情報(LUT)と前記第1部分配列(yl)と前記係数とを引き渡すための第1の先入れ先出し回路の一例ある。
また、学習チップ1の層が1つ下がるごとに、生成された重みWを認識チップ2の層1に引き渡すFIFOの段数が1段ずつ下がる。このようなFIFOの構成よって、この識別結果に基づくエラーにより新たな重みが各層で生成されたときに、全層でタイミングを合わせて、認識チップ2の重みが更新される。図4、図5に例示した「学習チップ1の層が1つ下がるごとに、生成された重みWを認識チップ2の層1に引き渡すFIFOの段数が1段ずつ下がる」構成は、学習ニューラルネットワークの各段から前記認識ニューラルネットワークの各段へ第2の動作タイミングで前記係数を引き渡すための第2の先入れ先出し回路の一例である。
図6は、図5の畳み込み層(Conv層)の構成の詳細を例示する図である。図6において、画像FIFOには、例えば、下位の層から出力されるa個×b個の画素の配列(画素配列等)のデータ(Yl-1)が設定される。この場合に、画像FIFOには、順次、入
力画像うちのa個×b個の画素の配列(単位矩形領域)に相当する部分画像が順次入力され、各部分画像ごとに畳み込み演算が実行される。ただし、画像FIFOに、入力画像の全画素(全画素)が設定され、畳み込み層(Conv層)が、入力画像に含まれる畳み込み演算対象の複数の部分画像に対して、並列に畳み込み演算を実行する構成であってもよい。
また、重みFIFOには、a個×b個の画素の配列の各画素に乗算されるa個×b個の重み(Wab)が設定される。重みWabは、学習チップ1において計算されたものである。そして、乗算回路がa個×b個の画素とa個×b個の重み(Wab)とを乗算し、加算回路が乗算結果を加算することで、例えば、(式1)に示した畳み込み処理が実行され、画素の配列(Xl)が算出される。さらに、例えば、(式2)に示した活性化関数を算
出する回路が画素の配列(Xl)から画素の配列(Yl)を生成し、次の層に出力する。一方、畳み込み層(Conv層)で用いられた重み(Wab)と画素の配列(Yl)は、F
IFOを介して学習チップ1に送られる。
図7は、逆方向(BP)の畳み込み層(BP pool層)の回路の構成を例示する図である。逆方向(BP)の畳み込み層(BP pool層)は、2つの積和演算回路111、112を有する。第1の積和演算回路111は、第l層での認識(forward)時の重みwと、1層分出力層に近い層(l+1層)からのエラー信号ERRORl+1とを
乗算し、次の層(l層)へのエラー信号ERRORlを生成する。第1の積和演算回路1
11の処理は、数10に対応する処理である。なお、図7では、省略されているが、数11に示したように、第l層のa個×b個の画素iと、第l+1層の要素jとがa個×b個の重みwa,bによって、(式1)の畳み込み演算によって関係付けされる場合には、回路
は複雑となる。すなわち、第1の積和演算回路111には、第l層のa個×b個の画素iのエラー信号ERRORl a,bとa個×b個の重みwa,bが入力され、積和演算が実行され
る。第1の積和演算回路111と第2の積和演算回路112の組は、比較回路の比較結果による差分値に基づいて、前記出力回路および前記各段に引き渡す係数と前記各段の第1部分配列における差分値とを生成する逆方向の演算回路の一例である。
第2の積和演算回路112は、1層分出力層に近い層(l+1層)からのエラー信号ERRORl+1と、第l層での認識時の入力ylを乗算し、重みの更新量deltaWを算出する。重みの更新量deltaWは、更新器(update)に引き渡される。なお、図7では、省略されているが、数13に示したように、第l層のa個×b個の画素iと、第l+1層の要素jとがa個×b個の重みwa,bによって、(式1)の畳み込み演算によっ
て関係付けされる場合には、回路は複雑となる。すなわち、第2の積和演算回路112には、上位層からのa個×b個の画素iのエラー信号ERRORa,bと、現在計算対象の層
のa個×b個の入力ya,bが入力され、積和演算が実行される。第2の積和演算回路11
2は、学習ニューラルネットワークの各段、すなわち、認識ニューラルネットワークの各段で生成された第1部分配列と前記第1部分配列における差分値とから前記係数の変化量(deltaW)を生成する逆方向の生成回路の一例である。
図8は、逆方向(BP)のプーリング層(BP pool層)の回路の構成を例示する図である。逆方向(BP)のプーリング層(BP pool層)の回路の一例は、1層分出力層に近い層(l+1層)からのエラー信号ERRORl+1とルックアップテーブルL
UTとの積和演算を実行する積和演算回路である。図8では、ERRORl+1の画素のう
ち、左上の画素のエラー値0.2と、左上の画素対するプーリング層からのルックアップテーブルLUTの部分LUT1とが積和演算され、次の層へのエラー信号の部分が復元さ
れる。復元結果は、ERRORlの画素のうち、左上の4つの画素の部分に、積和演算結
果である0.2、0、0、0が設定される結果となる。同様の積和演算がERRORl
他の画素の部分にも実行される。ルックアップテーブルLUTは、第1部分配列から第2部分配列を生成するための間引きの対応関係を示す対応関係情報の一例である。
なお、逆方向(BP)のプーリング層(BP pool層)の回路として、積和演算回路に代えて、セレクタを用いてもよい。すなわち、ルックアップテーブルで1が設定されている画素に対応するエラー信号ERRORlの画素には、エラー信号ERRORl+1の対応する画素のエラー信号を出力し、ルックアップテーブルで0が設定されている画素に対応する画素エラー信号ERRORlの画素には、0を出力する回路とすればよい。図8の
逆方向(BP)のプーリング層(BP pool層)の回路は、第1部分配列から第2部分配列を生成するための間引きの対応関係を示す対応関係情報(LUT)と前記生成された差分値とを基に前記第1部分配列を復元する復元回路の一例である。
図9は、次の重みWt+1を生成する更新器の構成を例示する図である。更新器は、図7で説明した重みの更新量deltaWと、学習係数イータとを積算し、累積する回路として実現できる。累積する回路は、加算回路と記憶素子を含む。図9の構成は、(式14)に対応する処理を実行する。図9の更新器は、生成した変化量を順次積算して前記認識ニューラルネットワークの各段に引き渡す係数を生成する更新回路の一例である。
以下、図4、図5のニューラルネットワークによる処理を説明する。まず、学習フェーズの処理を説明する。学習フェーズでは、入力画像が認識チップ2に入力されるともに、正解データが学習チップ1に入力される。認識チップ2では、畳み込み層(Conv層)が入力画像とメモリチップ3のFIFOからの重みwとの積和演算と活性化関数の演算を行い、その結果をプーリング層(max pooling層)に渡す。この時、畳み込み層(Con
v層)の演算回路は、その出力yと,重みwをメモリチップ3のFIFOに蓄えておく。
次のプーリング層(max pooling層)は、畳み込み層(Conv層)の出力から、各単
位矩形領域(例えば、a個×b個の画素)での最大値を取得(pick up)し、次層の畳み
込み層(Conv層)に取得結果を渡す。その時、どの座標(即ち、画素)から最大値を取得したかをルックアップテーブルLUTに保持しておく。次の畳み込み層(Conv層)、プーリング層(max pooling層)も同様の処理を行う。そして、全結合(Fully connected)層も、畳み込み層(Conv層)と同様の動作を行い、出力を判定器で判定し、識別結果を学習チップ1に送る。
学習チップ1では、認識チップ2から送られてきた識別結果と正解データとの差分を計算し、エラーを算出する。そして、Back Propagation(BP)のfully connected層では、そ
のエラーを、認識チップ2の出力yおよび重みwを一緒に用いて、次層へのエラーを計算するとともに、次の重みwt+1への更新量deltaWを更新器に送る。この重みwt+1は、メモリチップ3のFIFOに送られ、畳み込み層(Conv層)の係数を変えるタイミングで取り出されるように保持される。
逆方向の全結合層(BP fully connected層)から伝搬してきたエラーは、逆方向のプーリング層(BP Pool層)にて、認識チップ2のプーリング層(Pooling層)からメモリのバッファを介して送られてきたlook up table(LUT)を基に、サブサンプリング前の大きさの画像に復元される。すなわち、逆方向のプーリング層(BP Pool層)は、最大値を取った座標の画素へはエラーをそのまま伝搬させ、それ以外の画素には、0を返す事で、サブサンプリング前の大きさの画像に復元する。同様に、逆方向の畳み込み層(BP conv層)、逆方向のプーリング層(BP Pool層)、逆方向の畳み込み層(BP pool層)と処理が行われる。
このとき、逆方向の各畳み込み層(BP pool層)では次の係数が算出され、更新器とメモリチップ3のFIFOを介して、認識チップ2での新しい画像の認識に使用される。
認識フェーズでは、メモリチップの係数が固定されるので、その係数を用いて、認識チップ2において、学習フェーズと同じ処理が行われる事で、識別したい画像の識別結果を作り出し、結果を出力する。
図10に、畳み込み層、プーリング層1層、全結合層1層のニューラルネットワークのタイミングダイアグラムを例示する。ここでは、学習フェーズでの学習チップ1と認識チップ2の動作を例示する。一方、認識フェーズでは、学習チップ1は動作しないで、認識チップ2による動作が行われる。図10において、A、B、・・・、Mを囲む矩形はそれぞれ入力画像を表す。
認識チップ2では、畳み込み層が入力データとメモリチップ3のFIFOからの重みw
との積和演算と活性化関数の演算を行い、その結果をプーリング層に引き渡す。
この時、畳み込み層の出力yと,重みwはメモリのFIFOに蓄えておく(処理P1)。FIFOに蓄えた出力yと,重みwは、後の処理P6のフェーズで使用される。
次のプーリング層は、畳み込み層の出力から、各単位矩形領域(a個×b個の画素領域)での最大値を取得(pick up)し、次層の畳み込み層に取得結果を引き渡す。プーリン
グ層による処理時、どの座標(画素)から最大値を取得したかをルックアップテーブルLUTに保持しておく(処理P2)。ルックアップテーブルLUTは、後の処理P5のフェーズで使用される。全結合層は畳み込み層と同じ動作を行い、出力を判定器で判定し、識別結果を学習チップ1に送る(処理P3)。
学習チップ1では、認識チップ2から送られてきた識別結果と正解データとの差分を計算し、エラーを算出する。そして、逆方向(BP)の全結合層では、そのエラーを、認識チップ2の出力yと重みWtとを一緒に用いて、次層へのエラーを計算するとともに、次の重みWt+1への更新量deltaWを更新器に送る(処理P4)。この更新後の重みWt+1は、メモリチップ3のFIFOに送られ、畳み込み層の重みを更新して、次の画像に対する計算に用いられる際に取り出されるように保持される(処理P9)。
逆方向の全結合層(BP fully connected層)から伝搬してきたエラーは、逆方向のプーリング層(BP Pool層)にて、次の層の画素の配列に復元される。すなわち、逆方向のプーリング層は、認識チップ2のプーリング層(Pooling層)からメモリチップ3のFIFOを介して送られてきたルックアップテーブルLUTを基に、最大値を取った座標へはエラーを引き渡し、それ以外の画素には、0を引き渡すことで、サブサンプリング前の大きさの画素配列(画像)を復元する(処理P5)。最後の逆方向の畳み込み層では次の重みが算出され、更新器とメモリチップ3のFIFOを介して、認識チップ2での新しい画像の認識に使用される(処理P6から処理P7)。
以上のように重みが更新されながら、認識チップ2及び学習チップ1での処理が進むことで、学習の動作が実施される。
図11に、畳み込み層2層、プーリング層2層、全結合層1層のニューラルネットワー
クのパッケージレベルでの実装例を示す。図11において、外部からの信号は、例えば、データクロックと同期して、パッケージのバンプを通して、認識チップ2内のI/O回路Rx 23−1で受信される。図11では、外部の信号送受信先として、外部プロセッサ44および外部メモリ5が例示されている。
外部プロセッサ4は、I/O回路Rx 23−1を通して、認識チップ2内の全体制御回路22、あるいは認識ニューラルネットワーク21へ信号を送信し、さらに、学習チップ1に正解データを送信する。そして、識別された結果や、全体制御回路22からの完了信号は、I/O回路Tx 23−2を通して、データクロックと同期して、外部プロセッサ4へ送信され出力される。
全体制御回路22からは、認識ニューラルネットワーク21、メモリ部31、学習ネットワーク11へのリセットや各パラメータの設定が行われる。そして、全体制御回路22は、各ブロックからの完了通知を受け取り、I/O回路Tx 23−2を通して、チップ外へ完了を通知する。
認識ニューラルネットワーク21、メモリ部31、学習ニューラルネットワーク11は、TSV(Through silicon via)を介して接続されており、各ブロックからの信号を送受信することが可能である。メモリ部31は、メモリおよび第2のメモリの一例である。
ここで、外部プロセッサ4は、単一のCPUに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のCPUがマルチコア構成を有していても良い。本実施の形態において、ニューラルネットワークと連携する少なくとも一部の処理は、CPU以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、少なくとも一部の処理は、集積回路(IC)、その他のディジタル回路によるものであっても良い。また、上記各部の少なくとも一部にアナログ回路が含まれても良い。集積回路は、LSI,Application Specific Integrated Circuit(ASIC),プログラマブルロジックデバイス(PLD)と
呼ばれるものを含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む
。また、外部プロセッサ4は、CPUと集積回路との組み合わせであっても良い。組み合わせは、例えば、マイクロコントローラ(MCU),SoC(System-on-a-chip),システムLSI,チップセットなどと呼ばれる。外部プロセッサ4は、プロセッサの一例である。
また、外部メモリ5は、例えば、画像、音声、その他のデータを格納する装置であり、DRAM、SRAM等と呼ばれるものが含まれる。外部メモリ5は、USBメモリ、SSD等であってもよい。図11のニューラルネットワーク、外部プロセッサ4および外部メモリ5が情報処理装置の一例である。本情報処理装置は、本実施の形態で説明したニューラルネットワークを用いて、様々なデータ認識処理を高速に実行する。外部メモリ5は、第1のメモリの一例である。
図12に、本実施の形態のニューラルネットワークの処理のフローチャートを例示する。本ニューラルネットワークでは、まず、電源投入により、学習チップ1、認識チップ2、メモリチップ3に電源が供給される。そして、認識チップ2の全体制御回路22が全回路をリセットする(S1)。
次に、全体制御回路22が、メモリチップ3の重みに対して乱数を設定する。また、全体制御回路22は学習枚数を設定する(S2)。学習枚数は、学習フェーズで使用される画像の枚数である。そして、外部のコンピュータ(CPU,プロセッサ等)が、認識チップ2に学習データと正解データを入力し、学習を開始する(S3)。そして、全体制御回路22は、設定された学習枚数分の入力画像の学習がすべて終わったか否かを判定する(S4)。学習枚数分の入力画像の学習が終わっていない場合、全体制御回路22は、重み
をアップデートして学習を継続する(S5)。一方、学習枚数分の入力画像の学習がすべて終わった場合、全体制御回路22は、学習チップをオフさせ、メモリチップの重みを固定化させる(S6)。そして、全体制御回路22は、認識動作を開始する(S7)。
図13に、本ニューラルネットワークの処理シーケンスを例示する。全体制御回路22は、I/O23部を介して外部のコンピュータ(CPU、プロセッサ等)からSTART信号を受信すると、認識ニューラルネットワーク21、メモリ部31、学習ニューラルネットワーク11にRESET信号を送信し、初期化を実行する(T2)。なお、I/O部23は、図11のI/O回路Rx 23−1、I/O回路Tx 23−2に相当する。
その後、全体制御回路22が認識ニューラルネットワーク21、学習ニューラルネットワーク11に学習枚数を設定し、メモリ部31に対してニューラルネットワークの重みの初期値を乱数で与える(T3)。本実施の形態では、学習枚数および重みの初期値を変数と呼ぶ。
次に、全体制御回路22は、I/O部23を介して、外部のコンピュータ(CPU、プロセッサ等)に対し、初期完了信号を送信する(T4)。
初期完了信号を受けて、外部のコンピュータ(CPU、プロセッサ等)からI/O部23を介して学習信号が全体制御回路22に入力されと、ニューラルネットワークの学習が実行される。すなわち、学習ニューラルネットワーク11、認識ニューラルネットワーク21、メモリ部31は、ニューロン情報、重み、認識結果、TSVを介して通信する。そして、学習ニューラルネットワーク11は、新たに計算した新しい重みをメモリ部31のFIFOを介して認識ニューラルネットワーク21に供給する(T4)。設定された学習枚数の画像の学習が完了した後、学習ニューラルネットワーク11、および認識ニューラルネットワーク21は全体制御回路22に学習完了信号を通知する(T5)。
すると、全体制御回路22は、メモリ部31の重みを固定させ、学習チップ1をpower downさせ、外部のコンピュータ(CPU、プロセッサ等)に学習が完了したことを通知する(T6)。その後、本ニューラルネットワークは、認識フェーズとなる(T7)。外部のコンピュータ(CPU、プロセッサ等)は、認識させたい画像を認識チップ2に入力し、認識処理を実行させ、認識結果をI/O23を通して出力させる。
<実施の形態の効果>
図14は、実施の形態のニューラルネットワークのチップの平面図の一例である。本実施の形態のニューラルネットワークは、学習ニューラルネットワーク11と認識ニューラルネットワーク21とがメモリ部31を挟む3次元構造を有する。ただし、図14では、理解の容易のため、学習ニューラルネットワーク11と認識ニューラルネットワーク21とずらされて示されており、メモリ部31は省略されている。図14に例示のように、チップの上面から見た場合、学習ニューラルネットワーク11と認識ニューラルネットワーク21とがほぼ重なって形成されることがわかる。例えば、認識ニューラルネットワーク21中のI/O部23が10%、その他認識フェーズで利用しない回路が20%であると仮定しても、面積上70%の回路が、認識フェーズで使用可能となり、図3のような比較例の構成よりも高い面積利用率を実現できる。
また、本実施の形態によれば、本ニューラルネットワークは、メモリチップ3と、演算回路を含む学習チップ1および認識チップ2とを分離して半導体プロセスのコストを抑制できる。さらに、本ニューラルネットワークは、学習ニューラルネットワーク11を配置した第1の層である学習チップ1と、認識ニューラルネットワーク21を配置した第2の層である認識チップ2との間にメモリチップ2を配置する。このような構成により、本ニューラルネットワークは、処理の高速化を図ることができる。また、本ニューラルネット
ワークは、メモリチップ3と、メモリチップ3と、演算回路を含む学習チップ1および認識チップ2との間のパスが、配線の束となる構造を抑制し、チップ面積の利用効率の低下を抑制することができる。
また、学習ネットワーク11は、認識ニューラルネットワーク21からの出力値である識別結果と、外部のプロセッサ4から与えられる正解データとを比較する比較回路12により、識別結果に対するエラーを取得できる。そして、学習ニューラルネットワーク11は、識別結果に対するエラーに対して、逆方向の全結合層により、認識ニューラルネットワーク21における全結合層に入力される画素配列でのエラーを取得できる。そして、学習ニューラルネットワーク11は、メモリチップ3のFIFOからの認識ニューラルネットワーク21の全結合層に入力される画素配列と畳み込み演算の重み(すなわち係数)とから、さらに、次に設定する畳み込み演算の重み(すなわち係数)と、下位の層における画素配列のエラーを計算できる。この場合に、学習ニューラルネットワーク11は、図7に例示した2つの積和演算回路により、次に設定する畳み込み演算の重み(すなわち係数)と、下位の層における画素配列のエラーを計算できる。
また、逆方向のプーリング層は、認識ニューラルネットワーク21のプーリング層から、間引き処理を示すルックアップテーブルを取得できるので、全結合層に入力される画素配列のエラーから、間引き前の下位の層の画素配列を復元できる。この場合、学習ニューラルネットワーク11は、図8に例示した積和演算回路、あるいは、セレクタにより、間引き前の下位の層の画素配列を復元できる。
そして、逆方向の畳み込み層と、プーリング層とは、以上の処理を下位の層まで繰り返してパイプラインで実行し、各層での画素配列のエラーと、次に設定する畳み込み演算の重み(すなわち係数)とを計算できる。そして、計算された次に設定する畳み込み演算の重みは、メモリチップ3のFIFOを介して、所定のタイミングで認識チップ2に引き渡すことができる。一方、認識チップ2の各層は、メモリチップ3のFIFOを介して、所定のタイミングで各層での認識結果および認識に使用した重みを学習チップの各層に引き渡すことができる。
また、学習ニューラルネットワーク11の逆方向の各畳み込み層は、所定のタイミング(第1の動作タイミング)で、認識ニューラルネットワーク21でなされたプーリング層での対応関係情報であるLUTと、認識結果(畳み込み演算結果)である配列の部分を取得できる。したがて、学習ニューラルネットワーク11は、上記生成された各段のエラーを用いて、次に、認識ニューラルネットワークの各段に引き渡す重みWt+1を生成できる。この場合、学習ニューラルネットワーク11は、図9に例示した更新器により、重みWt+1を生成できる。
<変形例>
以上の実施の形態では、入力画像の認識を実行するニューラルネットワークを例示したが、本ニューラルネットワークの処理対象が画像の情報に限定される訳ではない。本ニューラルネットワークは、(式1)(式3)のような畳み込み演算が利用可能な入力データ、例えば、1次元配列、2次元配列、あるいは3次元以上の配列等のデータを処理可能である。
また、上記実施の形態の説明では、プーリング層として、max poolingを実行するものを例示したが、プーリング層は平均値によるプーリングを実行してもよい。プーリング層は平均値によるプーリングを実行する場合、ルックアップテーブルLUTを用いなくてもよい。例えば、プーリング層が、n個の区分における平均値を算出してプーリングを実行する場合には、逆方向プーリング層は、上位側のエラーEを区分数(間引かれ
る前の単位矩形領域の画素数)nで割算してE/nを算出し、算出した値E/nを現在の層のエラーとして、畳み込み層に各区分(各画素)の値として引き渡せばよい。
1 学習チップ
2 認識チップ
3 メモリチップ
11 学習ニューラルネットワーク
12 比較回路
13 係数生成回路
21 認識ニューラルネットワーク
22 全体制御回路
23 IO部
23−1 I/O回路Rx
23−2 I/O回路Tx
25 生成回路
26 出力回路
Figure 2017138867
式1の対象となる第l−1層の画像の情報のうち、m×m個の画素の領域を以下、単位矩形領域と呼ぶ。なお、単位矩形領域は1つのフィーチャに限定される訳ではなく、図1に例示した4フーチャマップ、6フィーチャマップが畳み込み演算の対象となる場合に、複数のフーチャマップを用いて、畳み込み演算が実行されてもよい。また、以下、画素をセルともよぶ。単位矩形領域は配列データの部分の一例である。画素、あるいはセルは、配列データの要素の一例である。
今、例えば、エラーの評価関数として、識別結果である出力値yiと正解データTiとの差分値の平方和Eを例示すると、(式5)のように定義できる。学習処理は、(式で例示されるエラーの評価関数を最小にするための重みwを決定する処理と考えることができる。
Figure 2017138867
さらに、式5をxiで偏微分し、(式7)の推移律を適用し、さらに、yi式4を代入すると、(式8)が得られる。なお、画素値xと、非線形活性化関数の出力yとの関係を(式2)で表す場合には、(式9)が得られる。
Figure 2017138867
一方、(式5)をyl iで偏微分し、全結合層の画素値xl iが1つ入力側の層(第l−1層)からの出力値yl-1 jによって(式3)のように表されることを考慮すると、(式10)が得られる。なお、第l層の画素値 l i,j が1つ入力側の層(第l−1層)からの出力値yl-1 jによって(式1)で表される場合には、(式10)は、(式11)のようになる。
Figure 2017138867
式10)の左辺は、第l層の誤差を示す。また、式10の右辺は、第l+1層の誤差に、第l層の画素iと第l+1層の画素jとの間の重みwi,jを乗算した結果の集計である
。この集計は、第l層の画素iに関係する第l+1層の画素jについて集計したものである。
また、(式5)を重みwl ijで偏微分し、推移律を適用し、さらに、(式3)を代入す
ると、(式12)が得られる。ただし、(式3)は、第1−1層からの出力yと、第l層の画素値xの関係となっているが、(式12)は、第1層からの出力yと、第l+1層の画素値xの関係となっている。(式12)は、エラーの評価関数Eの勾配を示す。最勾降下法によるニューラルネットワークの学習処理においては、エラーの評価関数Eの勾配と、学習係数イータの積が重みWの変化量(現在の重みWtと次の重みWt+1の差分値)となる。したがって、以下の記述において、エラーの評価関数Eの勾配を重みWの更新量deltaWと定義する。なお、画素値xとyの関係が(式1)で表される場合には、(式12)は、(式13)のようになる。以上から、エラーの評価関数Eに最勾降下法を適用すると、(式14)が得られる。なお、(式14)では、演算がM回繰り返される式となっているが、M=1でもよい。
Figure 2017138867
(A)各層の重み
(式14)は、現在の重みwtと次回認識処理での重みwt+1との関係を示している。したがって、(式14)の右辺の第2項が次回の重みへの増分値となる。また、(式14)でギリシャ文字イータは、エラーの評価関数Eの勾配から重みwtの増分値を得るための係数であり、例えば、経験的実験的に設定できる。すなわち、学習処理においては、学習回路の各層において、(式12)(あるいは式13)による勾配を求め、エラーの評
価関数Eが小さくなる方向に、(式14)の第2項の増分値を算出し、次回の重みwt+1を求める処理を実行する。
(B)各層のエラーの評価関数の勾配(更新量deltaWの計算)
ここで、(式14)の第2項は、(式12)により、各層(第l層)の画素値(yl i)と、各層(第l層)に対して1つ出力側の層(第l+1層)のエラー(エラーの評価関数の画素値xl+1 jによる偏微分値)との積から得られる。ただし、現在の層((式13)では第l−1層)と、1層全結合層側の層((式13)では第l層)との関係が(式1)のように積和演算で表される場合、更新量deltaWは、(式13)で表される。すなわち、更新量deltaWは、現在の層(第l−1層)の画素の出力値yl-1 i,jと関係する第l層の画素値xl i,jからのエラーへの寄与を集計したものとなっている。
(C)各層のエラー
一方、(式10)の左辺は、各層(第l層)のエラー(エラーの評価関数の画素値yl iによる偏微分値)を示す。また、(式10)の右辺は、現在の層(第l層)に対して1つ出力側の層(第l+1層)のエラー(エラーの評価関数の画素値xl+1 jによる偏微分値)と、第l層の画素iと第l+1層の画素jとの間の重みwi,jとの積の集計である。この
集計は、第l層の画素iに関係する第l+1層の画素jについて集計したものである
図7は、逆方向(BP)の畳み込み層(BP Conv層)の回路の構成を例示する図である。逆方向(BP)の畳み込み層(BP Conv層)は、2つの積和演算回路111、112を有する。第1の積和演算回路111は、第l層での認識(forward)時の重みwと、1層分出力層に近い層(l+1層)からのエラー信号ERRORl+1とを
乗算し、次の層(l層)へのエラー信号ERRORlを生成する。第1の積和演算回路1
11の処理は、(式10)に対応する処理である。なお、図7では、省略されているが、数11に示したように、第l層のa個×b個の画素iと、第l+1層の要素jとがa個×b個の重みwa,bによって、(式1)の畳み込み演算によって関係付けされる場合には、
回路は複雑となる。すなわち、第1の積和演算回路111には、第l層のa個×b個の画素iのエラー信号ERRORl a,bとa個×b個の重みwa,bが入力され、積和演算が実行
される。第1の積和演算回路111と第2の積和演算回路112の組は、比較回路の比較結果による差分値に基づいて、前記出力回路および前記各段に引き渡す係数と前記各段の第1部分配列における差分値とを生成する逆方向の演算回路の一例である。
第2の積和演算回路112は、1層分出力層に近い層(l+1層)からのエラー信号ERRORl+1と、第l層での認識時の入力ylを乗算し、重みの更新量deltaWを算出する。重みの更新量deltaWは、更新器(update)に引き渡される。なお、図7では、省略されているが、数13に示したように、第l層のa個×b個の画素iと、第l+1層の要素jとがa個×b個の重みwa,bによって、(式1)の畳み込み演算によっ
て関係付けされる場合には、回路は複雑となる。すなわち、第2の積和演算回路112には、上位層からのa個×b個の画素iのエラー信号ERRORa,bと、現在計算対象の層
のa個×b個の入力ya,bが入力され、積和演算が実行される。第2の積和演算回路11
は、認識ニューラルネットワークの各段で生成された第1部分配列と前記第1部分配列における差分値とから前記係数の変化量(deltaW)を生成する生成回路の一例である。
逆方向の全結合層(BP fully connected層)から伝搬してきたエラーは、逆方向のプーリング層(BP Pool層)にて、認識チップ2のプーリング層(Pooling層)からメモリのバッファを介して送られてきたlook up table(LUT)を基に、サブサンプリング前の大きさの画像に復元される。すなわち、逆方向のプーリング層(BP Pool層)は、最大値を取った座標の画素へはエラーをそのまま伝搬させ、それ以外の画素には、0を返す事で、サブサンプリング前の大きさの画像に復元する。同様に、逆方向の畳み込み層(BP Conv層)、逆方向のプーリング層(BP Pool層)、逆方向の畳み込み層(BP Conv層)と処理が行われる。このとき、逆方向の各畳み込み層(BP Conv層)では次の係数が算出され、更新器とメモリチップ3のFIFOを介して、認識チップ2での新しい画像の認識に使用される。
図11に、畳み込み層2層、プーリング層2層、全結合層1層のニューラルネットワー
クのパッケージレベルでの実装例を示す。図11において、外部からの信号は、例えば、データクロックと同期して、パッケージのバンプを通して、認識チップ2内のI/O回路Rx 23−1で受信される。図11では、外部の信号送受信先として、外部プロセッサおよび外部メモリ5が例示されている。
また、本実施の形態によれば、本ニューラルネットワークは、メモリチップ3と、演算回路を含む学習チップ1および認識チップ2とを分離して半導体プロセスのコストを抑制できる。さらに、本ニューラルネットワークは、学習ニューラルネットワーク11を配置した第1の層である学習チップ1と、認識ニューラルネットワーク21を配置した第2の層である認識チップ2との間にメモリチップを配置する。このような構成により、本ニューラルネットワークは、処理の高速化を図ることができる。また、本ニューラルネットワークは、メモリチップ3と、メモリチップ3と、演算回路を含む学習チップ1および認識チップ2との間のパスが、配線の束となる構造を抑制し、チップ面積の利用効率の低下を抑制することができる。

Claims (5)

  1. 入力データを認識する認識ニューラルネットワークに設定される係数を計算するための基準となる入力データに対する、前記認識ニューラルネットワークによる認識結果と前記基準となる入力データに対する基準となる認識結果とに基づいて前記係数を計算する学習ニューラルネットワークを配置した第1の層と、
    前記学習ニューラルネットワークで計算された係数により入力データを認識する前記認識ニューラルネットワークを配置した第2の層と、
    前記第1の層と第2の層との間に配置され、前記学習ニューラルネットワークと前記認識ニューラルネットワークの双方に接続されるメモリを配置した第3の層と、を備える演算処理回路。
  2. 前記入力データは配列データを含むデータであり、
    前記認識ニューラルネットワークは、
    前記配列データの部分ごとに前記部分に含まれる前記配列データの要素と前記要素に対応する前記係数との積和演算および所定の関数により第1部分配列を生成する演算回路と前記配列データの部分ごとに前記生成された第1部分配列から要素を間引いて第2部分配列を生成する間引き回路との組を1組または2組以上複数段に接続して、前記配列データから縮小された配列データを生成する生成回路と、
    前記縮小された配列データの要素と前記要素に対応する係数との積和演算および所定の関数により出力値を出力する出力回路と、を備え、
    前記学習ニューラルネットワークは、前記基準となる入力データに対する基準となる認識結果と前記出力回路からの出力値とを比較する比較回路と、
    前記出力回路および前記生成回路の各段に対応して設けられ、前記比較回路の比較結果による差分値に基づいて、前記出力回路および前記各段に引き渡す係数と前記各段の第1部分配列における差分値とを生成する逆方向の演算回路、および、前記第1部分配列から第2部分配列を生成するための間引きの対応関係を示す対応関係情報と前記生成された差分値とを基に前記第1部分配列を復元する復元回路の組み合わせを1組または2組以上複数段に接続した係数生成回路と、を備える請求項1に記載の演算処理回路。
  3. 前記認識ニューラルネットワークの各段は、前記対応関係情報と前記各段の演算回路で生成された第1部分配列と前記各段の演算回路で使用された係数とを前記学習ニューラルネットワークの各段の演算回路に所定の動作タイミングで引き渡し、
    前記学習ニューラルネットワークの各段は、前記演算回路で生成した係数を前記認識ニューラルネットワークの各段の演算回路に所定の動作タイミングで引き渡し、
    前記メモリは、
    前記認識ニューラルネットワークの各段から前記学習ニューラルネットワークの各段へ第1の動作タイミングで前記対応関係情報と前記第1部分配列と前記係数とを引き渡すための第1の先入れ先出し回路と、
    前記学習ニューラルネットワークの各段から前記認識ニューラルネットワークの各段へ第2の動作タイミングで前記係数を引き渡すための第2の先入れ先出し回路と、を備える請求項2に記載の演算処理回路。
  4. 前記学習ニューラルネットワークの各段は、前記認識ニューラルネットワークの各段で生成された第1部分配列と前記第1部分配列における差分値とから前記係数の変化量を生成する逆方向の生成回路と、
    前記生成した変化量を順次積算して前記認識ニューラルネットワークの各段に引き渡す係数を生成する更新回路と、を備える請求項3に記載の演算処理回路。
  5. プロセッサと、
    第1のメモリと、
    演算処理回路と、を有し、前記演算処理回路は、
    前記プロセッサの制御にしたがい、前記第1のメモリからの入力データを認識する認識ニューラルネットワークに設定される係数を計算するための基準となる入力データに対する、前記認識ニューラルネットワークによる認識結果と前記基準となる入力データに対する基準となる認識結果とに基づいて前記係数を計算する学習ニューラルネットワークを配置した第1の層と、
    前記学習ニューラルネットワークで学習された係数により入力データを認識する前記認識ニューラルネットワークを配置した第2の層と、
    前記第1の層と第2の層との間に配置され、前記学習ニューラルネットワークと前記認識ニューラルネットワークの双方に接続される第2のメモリを配置した第3の層と、を備える情報処理装置。
JP2016020444A 2016-02-05 2016-02-05 演算処理回路、および情報処理装置 Active JP6658033B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016020444A JP6658033B2 (ja) 2016-02-05 2016-02-05 演算処理回路、および情報処理装置
US15/418,969 US10817776B2 (en) 2016-02-05 2017-01-30 Arithmetic processing circuit and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016020444A JP6658033B2 (ja) 2016-02-05 2016-02-05 演算処理回路、および情報処理装置

Publications (2)

Publication Number Publication Date
JP2017138867A true JP2017138867A (ja) 2017-08-10
JP6658033B2 JP6658033B2 (ja) 2020-03-04

Family

ID=59497795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016020444A Active JP6658033B2 (ja) 2016-02-05 2016-02-05 演算処理回路、および情報処理装置

Country Status (2)

Country Link
US (1) US10817776B2 (ja)
JP (1) JP6658033B2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019040365A (ja) * 2017-08-24 2019-03-14 富士通株式会社 情報処理装置、方法、及びプログラム
KR20190041922A (ko) * 2017-10-13 2019-04-23 주식회사 스트라드비젼 액티베이션 연산과 컨벌루션 연산을 동시에 수행하기 위한 방법 및 장치 그리고 이를 위한 학습 방법 및 학습 장치
JP2019079505A (ja) * 2017-09-29 2019-05-23 インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag 畳み込みニューラルネットワーク計算スループットの加速化
JP2019109886A (ja) * 2017-12-15 2019-07-04 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージデバイス及びその制御方法
JP2019164520A (ja) * 2018-03-19 2019-09-26 株式会社東芝 演算処理装置
KR20210017835A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
CN112396169A (zh) * 2019-08-13 2021-02-23 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
JP2021176242A (ja) * 2020-04-23 2021-11-04 ソニーセミコンダクタソリューションズ株式会社 固体撮像装置、固体撮像装置の動作方法及びプログラム
US11610135B2 (en) 2018-12-25 2023-03-21 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
JP7361192B2 (ja) 2019-07-15 2023-10-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ハードウェア・アクセラレータとインターフェースするための方法
KR102673647B1 (ko) * 2018-03-14 2024-06-12 삼성전자주식회사 기계 학습 훈련을 위한 슬랩 기반의 메모리 관리

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017168665A1 (ja) * 2016-03-30 2017-10-05 株式会社ニコン 特徴抽出素子、特徴抽出システム、および判定装置
US10366328B2 (en) * 2017-09-19 2019-07-30 Gyrfalcon Technology Inc. Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit
TWI607389B (zh) * 2017-02-10 2017-12-01 耐能股份有限公司 卷積神經網路的池化運算裝置及方法
US10600147B2 (en) * 2017-08-22 2020-03-24 Intel Corporation Efficient memory layout for enabling smart data compression in machine learning environments
CN109426782B (zh) * 2017-08-29 2023-09-19 北京三星通信技术研究有限公司 对象检测方法和用于对象检测的神经网络系统
JP6969254B2 (ja) * 2017-09-22 2021-11-24 株式会社アイシン 画像処理装置及びプログラム
CN108388333B (zh) * 2018-01-25 2019-12-27 福州瑞芯微电子股份有限公司 一种基于电量设置乘法器精度的功耗调整方法和装置
CN109816093B (zh) * 2018-12-17 2020-12-04 北京理工大学 一种单路式卷积实现方法
CN109740481B (zh) * 2018-12-26 2019-12-10 山东科技大学 基于跳跃连接的cnn与lstm结合的房颤信号分类系统
US11593629B2 (en) * 2019-03-18 2023-02-28 SiliconIntervention Inc. Hybrid delta modulator as neuron with memory
US20200410319A1 (en) * 2019-06-26 2020-12-31 Micron Technology, Inc. Stacked artificial neural networks
KR20210047413A (ko) 2019-10-21 2021-04-30 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 셀들을 포함하는 컴퓨팅 장치
US11270759B2 (en) 2019-10-21 2022-03-08 Samsung Electronics Co., Ltd. Flash memory device and computing device including flash memory cells
CN111738417B (zh) * 2020-06-19 2024-03-08 格兰菲智能科技有限公司 神经网络计算装置及其快取管理方法
CN113344179B (zh) * 2021-05-31 2022-06-14 哈尔滨理工大学 基于fpga的二值化卷积神经网络算法的ip核

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146936A (ja) * 1993-11-24 1995-06-06 Babcock Hitachi Kk 階層型ニューラルネットワークによるパターン認識方法
JPH1091605A (ja) * 1997-05-09 1998-04-10 Hitachi Ltd 情報処理装置
JP2015215837A (ja) * 2014-05-13 2015-12-03 株式会社デンソー 演算処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355528A (en) 1992-10-13 1994-10-11 The Regents Of The University Of California Reprogrammable CNN and supercomputer
JPH07282258A (ja) * 1994-04-12 1995-10-27 Nippondenso Co Ltd サイン認識装置
EP1329965A1 (en) 2000-10-23 2003-07-23 Sony Corporation Neuron aggregation device
US7739324B1 (en) * 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
JP5623259B2 (ja) * 2010-12-08 2014-11-12 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146936A (ja) * 1993-11-24 1995-06-06 Babcock Hitachi Kk 階層型ニューラルネットワークによるパターン認識方法
JPH1091605A (ja) * 1997-05-09 1998-04-10 Hitachi Ltd 情報処理装置
JP2015215837A (ja) * 2014-05-13 2015-12-03 株式会社デンソー 演算処理装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019040365A (ja) * 2017-08-24 2019-03-14 富士通株式会社 情報処理装置、方法、及びプログラム
JP7047283B2 (ja) 2017-08-24 2022-04-05 富士通株式会社 情報処理装置、方法、及びプログラム
JP7280026B2 (ja) 2017-09-29 2023-05-23 インフィネオン テクノロジーズ アーゲー 畳み込みニューラルネットワーク計算スループットの加速化
JP2019079505A (ja) * 2017-09-29 2019-05-23 インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag 畳み込みニューラルネットワーク計算スループットの加速化
KR102112997B1 (ko) 2017-10-13 2020-06-02 주식회사 스트라드비젼 액티베이션 연산과 컨벌루션 연산을 동시에 수행하기 위한 방법 및 장치 그리고 이를 위한 학습 방법 및 학습 장치
JP2019075115A (ja) * 2017-10-13 2019-05-16 株式会社ストラドビジョン アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置
KR20190041922A (ko) * 2017-10-13 2019-04-23 주식회사 스트라드비젼 액티베이션 연산과 컨벌루션 연산을 동시에 수행하기 위한 방법 및 장치 그리고 이를 위한 학습 방법 및 학습 장치
JP7232633B2 (ja) 2017-12-15 2023-03-03 三星電子株式会社 ストレージデバイス及びその制御方法
US11681451B2 (en) 2017-12-15 2023-06-20 Samsung Electronics Co., Ltd. HBM based memory lookup engine for deep learning accelerator
JP2019109886A (ja) * 2017-12-15 2019-07-04 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージデバイス及びその制御方法
KR102673647B1 (ko) * 2018-03-14 2024-06-12 삼성전자주식회사 기계 학습 훈련을 위한 슬랩 기반의 메모리 관리
JP2019164520A (ja) * 2018-03-19 2019-09-26 株式会社東芝 演算処理装置
US10754920B2 (en) 2018-03-19 2020-08-25 Kabushiki Kaisha Toshiba Arithmetic processing device
US11610135B2 (en) 2018-12-25 2023-03-21 Fujitsu Limited Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
JP7361192B2 (ja) 2019-07-15 2023-10-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ハードウェア・アクセラレータとインターフェースするための方法
KR102408966B1 (ko) 2019-08-09 2022-06-15 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
KR20210017835A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
CN112396169A (zh) * 2019-08-13 2021-02-23 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN112396169B (zh) * 2019-08-13 2024-04-02 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
JP7105976B2 (ja) 2020-04-23 2022-07-25 ソニーセミコンダクタソリューションズ株式会社 固体撮像装置、固体撮像装置の動作方法及びプログラム
JP2021176242A (ja) * 2020-04-23 2021-11-04 ソニーセミコンダクタソリューションズ株式会社 固体撮像装置、固体撮像装置の動作方法及びプログラム

Also Published As

Publication number Publication date
US10817776B2 (en) 2020-10-27
US20170228634A1 (en) 2017-08-10
JP6658033B2 (ja) 2020-03-04

Similar Documents

Publication Publication Date Title
JP6658033B2 (ja) 演算処理回路、および情報処理装置
CN111684473B (zh) 提高神经网络阵列的性能
US11182917B2 (en) Stereo camera depth determination using hardware accelerator
US10096134B2 (en) Data compaction and memory bandwidth reduction for sparse neural networks
CN110674829B (zh) 一种基于图卷积注意网络的三维目标检测方法
US8872817B2 (en) Real-time three-dimensional real environment reconstruction apparatus and method
US20180197084A1 (en) Convolutional neural network system having binary parameter and operation method thereof
US20230394669A1 (en) Point cloud segmentation method and apparatus, device, and storage medium
CN114067153B (zh) 基于并行双注意力轻量残差网络的图像分类方法及系统
JP6981329B2 (ja) 分散深層学習システム
CN111652054A (zh) 关节点检测方法、姿态识别方法及装置
Aydogdu et al. Pipelining Harris corner detection with a tiny FPGA for a mobile robot
US20180005113A1 (en) Information processing apparatus, non-transitory computer-readable storage medium, and learning-network learning value computing method
JP6567381B2 (ja) 演算装置、方法及びプログラム
US11568323B2 (en) Electronic device and control method thereof
JP2017068608A (ja) 演算装置、方法及びプログラム
CN108921017B (zh) 人脸检测方法及系统
KR20210124888A (ko) 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
CN114897147B (zh) 骨干网络的生成方法、装置、设备以及存储介质
CN104616304A (zh) 一种基于fpga的自适应支撑权重的立体匹配方法
CN104160419A (zh) 具有实现不同精度的软件及硬件算法的评价层的图像处理器
CN116091762A (zh) 一种基于rgbd数据和视锥体的三维目标检测方法
CN115660991A (zh) 模型的训练方法、图像曝光矫正方法、装置、设备及介质
CN114972822A (zh) 一种基于卷积神经网络的端到端双目立体匹配方法
CN114648757A (zh) 三维目标的检测方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170303

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200120

R150 Certificate of patent or registration of utility model

Ref document number: 6658033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150