JP7389575B2 - データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム - Google Patents

データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム Download PDF

Info

Publication number
JP7389575B2
JP7389575B2 JP2019123945A JP2019123945A JP7389575B2 JP 7389575 B2 JP7389575 B2 JP 7389575B2 JP 2019123945 A JP2019123945 A JP 2019123945A JP 2019123945 A JP2019123945 A JP 2019123945A JP 7389575 B2 JP7389575 B2 JP 7389575B2
Authority
JP
Japan
Prior art keywords
data
layer
learning
feature
neural network
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.)
Active
Application number
JP2019123945A
Other languages
English (en)
Other versions
JP2021009622A5 (ja
JP2021009622A (ja
Inventor
俊太 舘
ソクイ チン
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019123945A priority Critical patent/JP7389575B2/ja
Priority to US16/918,206 priority patent/US12079717B2/en
Publication of JP2021009622A publication Critical patent/JP2021009622A/ja
Publication of JP2021009622A5 publication Critical patent/JP2021009622A5/ja
Application granted granted Critical
Publication of JP7389575B2 publication Critical patent/JP7389575B2/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/08Learning methods
    • 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/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • 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
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means

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)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Image Analysis (AREA)

Description

本発明は、データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラムに関し、特に、ニューラルネットワーク演算の処理コストの低減に関する。
畳み込みニューラルネットワーク(以下CNN)のようなニューラルネットワークは複数の層を有しており、各層は複数のニューロンで構成される。通常のニューラルネットワークにおいては、各ニューロンは前階層の全てのニューロンから入力信号を受け取り、後階層の全てのニューロンへと信号を送る。このため、ニューロンとニューロンとの間の重み係数の数は、ニューロンの数の2乗に比例する。
実時間でニューラルネットワークを用いた認識処理を行うためには、十分な処理速度が必要とされる。また、様々な機器でニューラルネットワークを用いた処理を行うためには、処理に必要なメモリ量を削減することが求められることがある。これらの目的のために、階層間の重み係数の数を削減する手法が知られている。
特許文献1は、ニューラルットワークを並列化する方法を開示している。特許文献1では、同じ入力画像が入力される複数の並列ニューラルネットワークが用いられる。それぞれの並列ニューラルネットワークは、相互結合層と非相互結合層とを有している。1つの並列ニューラルネットワークの相互結合層からの出力は全ての並列ニューラルネットワークに入力されるが、非相互結合層からの出力は同じ並列ニューラルネットワークにしか入力されない。
米国特許第9811775号明細書
特許文献1のように非相互結合層を用いることにより、全ての層において各ニューロンが前階層及び後階層の全てのニューロンと接続している通常の畳み込みニューラルネットワークと比較して、重み係数の数を減らすことができる。
一方で、ニューラルネットワークを用いた認識精度は、それぞれの並列ニューラルネットワークにより抽出された特徴を組み合わせることで向上すると考えられる。このため、相互結合層をニューラルネットワークの後段に配置することにより、認識精度が向上するものと考えられる。ここで、CNNのような一般的なニューラルネットワークにおいては、後段の層ほどニューロンの数が多い傾向がある。このため、特許文献1の手法に従ってニューラルネットワークの後段に相互結合層を設け、前段に非相互結合層を設けても、重み係数の削減効果があまり大きくないという課題がある。
本発明は、例えばニューラルネットワークに従う処理の速度を向上させる又は処理に必要なメモリ量を削減する等の目的で、ニューラルネットワークで用いられる重み係数の数を削減することを目的とする。
本発明の目的を達成するために、一実施形態に係るデータ処理装置は以下の構成を備える。すなわち、
ニューラルネットワークの第1の層と接続される第2の層の第3の部分の特徴量データを算出するために参照される前記第1の層の第1の部分と、前記第2の層の第4の部分の特徴量データを算出するために参照される前記第1の層の第2の部分と、をそれぞれ規定する結合パラメータを取得する取得手段と、
前記取得手段によって取得された前記結合パラメータに規定される前記第1の部分の特徴量データから前記第3の部分の特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第2の部分の特徴量データから前記第4の部分の特徴量データを算出する第2の算出処理とを並列に行う演算手段と、
を備える。
例えばニューラルネットワークに従う処理の速度を向上させる又は処理に必要なメモリ量を削減する等の目的で、ニューラルネットワークで用いられる重み係数の数を削減することができる。
一実施形態に係るデータ処理装置の基本機能を示す図。 一実施形態に係るニューラルネットワークの構成を示す図。 一実施形態に係るデータ処理方法のフローチャート。 一実施形態に係るデータ処理装置のハードウェア構成例を示す図。 結合設定部105の動作例を示す図。 様々な結合パラメータの例を示す図。 一実施形態に係るデータ処理装置の基本機能を示す図。 一実施形態に係る学習方法のフローチャート。 結合パラメータの変更方法の例を示す図。 一実施形態に係るデータ処理装置による処理方法を説明する図。 コンピュータの構成例を示す図。 一実施形態に係るデータ処理方法のフローチャート。 一実施形態に係るニューロングループの設定例を示す図。 遺伝的アルゴリズムを用いた学習方法を説明する図。 再帰的ニューラルネットワークへの適用例を説明する図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[実施形態1]
まず、図1を参照して、本実施形態に係る処理の概要を説明する。本実施形態に係るニューラルネットワークは、階層型のニューラルネットワークであり、第1の層111と、第2の層112と、を有している。また、第1の層111及び第2の層112のそれぞれは、第1のニューロングループ101と第2のニューロングループ102とを有している。第1のニューロングループ101は、ニューロン演算106aの対象となるニューロンのグループである。また、第2のニューロングループ102は、ニューロン演算106bの対象となるニューロンのグループである。ここで、第1の層111と第2の層112との間のニューロン演算106a,106bは、同じニューロングループ内のニューロンの間のみを結合する。図1の例において、ニューロングループ101,102は、第1の層111と第2の層112の両方にまたがって存在している。以下で説明するように、ニューロン演算106a,106bは、それぞれ別の演算ユニット(17a又は17b)が行うことができる。
ニューロン演算106a,106bは、ニューラルネットワークに従う演算である。ニューロン演算106a,106bとしては、畳み込み演算又は活性化関数の適用のような、ニューラルネットワークにおける一般的な処理であってもよい。具体的な演算の種類としては、A. Krizhevsky et al. "ImageNet Classification with Deep Convolutional Neural Networks", NIPS 2012.(以下Krizhevskyと呼ぶ)及びM.D. Zeiler, R. Fergus "Visualizing and Understanding Convolutional Networks", ECCV 2014.(以下Zeilerと呼ぶ)等に挙げられているものを用いることができる。
第1の層111の第1のニューロングループ101には、入力特徴11aと、入力特徴の参照順を示す参照入力特徴12aとが模式的に示されている。第2の層112の第1のニューロングループ101には、出力特徴13aが示されている。同様に、第1の層111の第2のニューロングループ102には入力特徴11b及び参照入力特徴12bが、第2の層112の第2のニューロングループ102には出力特徴13bが、それぞれ示されている。図1の例において、入力特徴11aには複数の特徴チャンネル(又は特徴面)が含まれており、それぞれの特徴チャンネルが1つのニューロンに相当する。特徴量の演算を行う際には、複数の特徴チャンネルのそれぞれに異なるフィルタ(例えば2×2画素のフィルタなど)が適用される。入力特徴11b、参照入力特徴12a,12b、及び出力特徴13a,13bについても同様である。
結合設定部105は、第1の層111について、ニューロン演算106aで用いられる第1の部分と、ニューロン演算106bで用いられる第2の部分とを設定する。図1の例において、結合設定部105は、ニューロン演算106a,106bで用いられる特徴チャンネルを設定している。結合設定部105は、結合パラメータに従ってこのような設定を行う。例えば、結合設定部105は結合パラメータに従って入力特徴11a,11bの参照順序を変更することができる。結合設定部105は、入力特徴11a,11bの参照先アドレスを設定するレジスタ等によって実現することができる。図1においては、結合設定部105は、模式的に、特徴チャンネルの順序を入れ換えるユニットとして示されている。参照入力特徴12a,12bは、参照順序に従って並び替えられた入力特徴11a,11bを模式的に示しており、それぞれ、ニューロン演算106aで用いられる第1の部分、及びニューロン演算106bで用いられる第2の部分に相当する。
このように本実施形態においては、ニューロン演算106aにより、第1の層111の参照入力特徴12a(第1の部分の特徴量データ)から、第2の層112の出力特徴13a(第3の部分の特徴量データ)が算出される。また、ニューロン演算106bにより、第1の層111の参照入力特徴12b(第2の部分の特徴量データ)から、第2の層112の出力特徴13b(第4の部分の特徴量データ)が算出される。図1の例においては、参照入力特徴12aの全ての特徴チャンネル(ニューロン)と、出力特徴13aの全ての特徴チャンネル(ニューロン)と、が互いに結合されている。同様に、参照入力特徴12bの全ての特徴チャンネルと、出力特徴13bの全ての特徴チャンネルと、が互いに結合されている。このように、出力特徴13aに含まれるそれぞれのチャンネルの特徴量データは、参照入力特徴12aに含まれる全てのチャンネルの特徴量データを用いて、かつ参照入力特徴12bに含まれるチャンネルの特徴量データを用いずに、算出される。
結合設定部105が参照する結合パラメータは、結合パラメータ保持部104に格納されており、結合パラメータ保持部104から取得することができる。図1の例において、結合パラメータ決定部103は、結合パラメータ保持部104に格納されている結合パラメータを結合設定部105に供給することができる。この結合パラメータは、第2の層112の第3の部分(出力特徴13a)の特徴量データを算出するために参照される第1の層111の第1の部分(参照入力特徴12a)を規定する。また、この結合パラメータは、第2の層112の第4の部分(出力特徴13b)の特徴量データを算出するために参照される第1の層111の第2の部分(参照入力特徴12b)も規定する。この結合パラメータはさらに、第2の層112の第3の部分(出力特徴13a)及び第4の部分(出力特徴13b)を規定してもよい。
一方で、本実施形態において、結合設定部105は入力特徴11a,11bの参照順序を変更し、又は入力特徴11a,11bを並び替えることで参照入力特徴12a,12bを決定している。したがって、第2の層112は、入力特徴11a(第1の層の第1のニューロンセット)の一部及び入力特徴11b(第1の層の第2のニューロンセット)の一部と結合している、出力特徴13a(第2の層の第3のニューロンセット)を有しているといえる。また、第2の層112は、入力特徴11a(第1の層の第1のニューロンセット)の一部及び入力特徴11b(第1の層の第2のニューロンセット)の一部と結合している、出力特徴13b(第2の層の第4のニューロンセット)を有しているといえる。ここで、入力特徴11a(第1の層の第1のニューロンセット)は、第1の層の前階層の第1のニューロンセットと結合していてもよい。また、入力特徴11b(第1の層111の第2のニューロンセット)は、第1の層111の前階層の第2のニューロンセットと結合していてもよい。これらの前階層、第1の層、及び第2の層は、ニューラルネットワークに含まれており、順に接続されている。本明細書において、ニューロンセットとは、1つの階層にある複数のニューロンのサブセットのことを指す。
以上のように、本実施形態において、結合設定部105はニューロングループの間で入出力信号を交換している。図1の構成は、入力特徴11aと入力特徴11bとの間で特徴量データを交換することにより、参照入力特徴12a及び参照入力特徴12bを設定することと等価である。
図1には、ニューラルネットワークの2層分の構造が示されているが、図2に示されるような、より大きなニューラルネットワークに本実施形態に係る処理を適用することもできる。図2には、4層の多層CNNが示されており、層間のニューロン演算は畳み込み演算を含んでいる。図2にはまた、ニューラルネットワークにデータを入力するデータ入力部100が示されている。本実施形態に係るニューラルネットワークが処理対象とするデータの種類は特に限定されず、例えば音声、静止画像、動画、又は文章等であってもよい。図2の例では、入力データ20として3チャンネルのカラー静止画像が入力されている。以下では、チャンネルのことをchと略すことがある。
図2にはさらに、ニューラルネットワークから出力された演算結果に基づく処理結果を出力する結果出力部110も示されている。処理結果は、ニューラルネットワークが処理するタスクに応じて形態が異なる。例えば、意味的領域分割を行う場合、処理結果は、入力画像中の各画素について、C個のクラスそれぞれについての尤度を示す、C個のチャンネルを有する尤度マップであってもよい。また、分類を行う場合、処理結果は、C個の分類カテゴリーそれぞれについての尤度であってもよい。
図2には、第1の層211から第4の層214の間に、3回のニューロン演算106-1a,b、106-2a,b、及び106-3a,bと、2回の結合設定部105による処理が示されている。図2には、ニューロングループ101とニューロングループ102の2つのニューロングループが存在し、ニューロングループ間のニューロン演算による結合は存在しない。また、このニューラルネットワークは、入力層から最終層までにわたって2つのニューロングループに分かれている。一方で、結合設定部105により、ニューロンの入出力の参照順序がニューロングループをまたいで変更されている。このため、2つのニューロングループ間でニューロンの入出力信号を交換することができる。
次に、本実施形態に係るニューラルネットワークに従って処理を行うデータ処理装置について、図3及び図4を参照して説明する。図4は、ニューラルネットワークを用いて認識処理を行う、本実施形態に係るデータ処理装置であるIP等のハードウェア構成例を示す。図4は、ニューラルネットワークを用いて認識処理を行う際の、データ処理装置の動作フローを示す。なお、CNNの層間の畳み込み演算の重みパラメータは、すでに学習により得られているものとする。また、結合パラメータ保持部104はあらかじめ結合パラメータを格納している。結合パラメータの決定方法については後述する。
データ処理装置の動作が開始すると、ステップS301で演算制御部108はデータ入力部100に制御信号を送る。制御信号に応じてデータ入力部100は入力データ10を受け取り、メモリ107に入力特徴として保存する。データ入力部100は、例えば、撮像装置等から入力データ10を受け取ることができる。以下の例において、入力データ10は多チャンネルの画像特徴であり、とりわけ6chのマルチスペクトル画像であるものとする。
次に、ステップS302~S312のループ処理において、情報処理装置は、メモリ107上の入力特徴に対して、ニューラルネットワークの第1層目の処理を行う。図2の例であれば、入力データ20を用いて、特徴データ21a,21bが算出される。
まずステップS303で、結合設定部105は、結合パラメータ決定部103を介して、結合パラメータ保持部104から、現在処理中の階層についての結合関係を示す、結合パラメータを読み出す。本実施形態において、結合パラメータ保持部104は、結合パラメータを示すテーブルを格納している。
図6(A)は、このようなテーブルの一例を示す。また、図5は、図6(A)に示すテーブル601に従う結合設定部105の動作を示している。図6(A)に示すテーブル601は、チャンネル単位で、参照入力特徴512a及び参照入力特徴512bを特定している。すなわち、テーブル601は、6chの入力特徴のそれぞれについて、参照順序を示す6つの値を有している。以下では、このようなテーブルのことを順序指定テーブルと呼ぶ。
後述するステップにおいて、演算部17a,17bは、図5に示されるように、順序指定テーブルが指定する順序に従って特徴チャンネルを参照し、演算処理を行う。図6(A)の例においては、第1のニューロングループ101については、入力特徴の[1ch,2ch,4ch]の3つのチャンネルに対応する、参照入力特徴512aに対する畳み込み演算により、出力特徴513aが算出される。また、第2のニューロングループ102については、入力特徴の[3ch,5ch,6ch]の3つのチャンネルに対応する、参照入力特徴512bに対する畳み込み演算により、出力特徴513bが算出される。すなわち、結合パラメータに従って、入力特徴511a,511bのうち、第1のニューロングループ101についてのニューロン演算506aに用いられる参照入力特徴512aが設定される。また、同様にニューロン演算506bに用いられる参照入力特徴512bも設定される。
ステップS304~S311までの処理は、ニューロングループ101,102のそれぞれについて並列に行われる。以下ではニューロングループ101についての処理であるステップS304a~S311aについて説明するが、ニューロングループ102についての処理であるステップS304b~S311bも同様に行われる。
ステップS305a~S310aのループ処理により、出力チャンネルの1チャンネルごとに特徴データが算出される。このようなループ処理を所定回数(N回)行うことにより、Nチャンネルの出力特徴が生成される。
ステップS306aで演算部17aは、メモリ107から畳み込み演算の重み係数(畳み込みカーネルとも呼ばれる)を読み込む。演算部17aは、読み込んだパラメータを演算部17中のレジスタ領域(不図示)にセットする。
ステップS307aで参照設定部16aは、畳み込み演算に使う入力特徴のアドレスを、演算部17aのレジスタ領域(不図示)にセットする。参照設定部16aは、ステップS303aで読み込まれた順序指定テーブルにより指示される順序で、メモリ107上の入力特徴の指定されたチャンネルが参照されるように、アドレスをセットする。
ステップS308aで演算部17aは、ステップS307aでセットされたアドレスに位置する入力特徴を、メモリ107から取得する。そして、演算部17aは、取得した入力特徴に対して、ステップS306aでセットされた重み係数を用いた畳み込み演算を行う。
演算部17aは、下式(1)に従って畳み込み演算を行うことができる。
OUT (x,y) =

ΣΣΔxΣΔyij(Δx,Δy)FIN LUT(i)(x+Δx,y+Δy) ……(1)
この式において、FIN及びFOUTは入力特徴及び出力特徴を表し、この例では、ともに縦×横×チャンネル方向を有する3次元特徴データである。FIN は、入力特徴FINのk番目のチャンネルを表し、FOUT は出力特徴FOUTのj番目のチャンネルを表す。LUT(i)は、畳み込み演算の対象となるi番目の参照入力特徴のチャンネルの番号に対応する、入力特徴のチャンネルの番号を示す。例えば、図5の例では、ニューロン演算506aでは、参照入力特徴512aの[1ch,2ch,3ch]が用いられ、これらは入力特徴511a.511bの[1ch,2ch,4ch]の3つのチャンネルに対応する。すなわち、i=[1,2,3]の時に、LUT(i)は[1,2,4]を表す。bはバイアス項である。Wijは重み係数であり、前階層のニューロンiと後階層のニューロンjとの間の結合重みを示す。Δx,Δy(Δx,Δy∈[-1,0,1])は、畳み込み範囲を示す変数である。
また、演算部17aは、畳み込み演算の結果に対して、活性化演算をさらに行うことができる。演算部17aは、下式(2)に従って活性化演算を行うことができる。
OUT(x,y)=θ(FOUT (x,y)) ……(2)
θ(x)=Max(0,x)
この式において、θは活性化関数と呼ばれる非線形関数である。なお、演算部17aは、最大値プールと呼ばれる演算処理、及び全結合層の演算のような、CNNにおいて用いられるその他の演算を行うこともできる。
ステップS309aで出力部18は、ステップS308aで得られた1チャンネル分の出力特徴を、メモリ107上の所定の位置に保存する。以上の処理により、出力特徴のj番目のチャンネルの特徴データであるFOUTがメモリ107上に生成される。
以上のステップS304a~S311aの処理を、所定回数(N回)繰り返すことで、第1のニューロングループ101についての出力特徴のN個のチャンネルの特徴データがメモリ107上に生成される。並行して、以上のステップS304a~S311aの処理を、所定回数(N回)繰り返すことで、第2のニューロングループ102についての出力特徴のN個のチャンネルの特徴データがメモリ107上に生成される。これらの処理により、ニューラルネットワークの1階層分の演算処理が完了する。
このようにしてステップS302~S312までのループを複数回繰り返すことで、ニューラルネットワークの全階層について同様の処理が行われる。ループの終了時点で、最終層の出力特徴がメモリ107上に生成されている。ステップS313で結果出力部110は、メモリ107上の最終層の出力特徴を出力する。こうして出力された出力特徴が、ニューラルネットワークによる入力データ10に対する処理結果である。こうして得られた処理結果に基づいて、分類処理などの様々な認識処理を行うことができる。結果出力部110は、処理結果を用いて分類処理などの認識処理を行い、認識結果を出力してもよい。こうして、ニューラルネットワークを用いた認識動作が終了する。
結合パラメータのデータ形式は、図6(A)の順序指定テーブル601に限られない。例えば、結合パラメータは、図6(A)に示す結合テーブル603又は結合リスト602により表されてもよい。なお、図6(A)において、順序指定テーブル601、結合リスト602、及び結合テーブル603は、全て同じ結合関係を示している。結合テーブル603は、入力特徴のチャンネルと、出力特徴のチャンネルと、結合の有無を表す。記号○は、チャンネル間の結合が存在することを示す。図6(A)では、入力特徴の[1ch,2ch,4ch]のそれぞれが、出力特徴の[1ch,2ch,3ch,4ch]のそれぞれと結合していることを示している。図6(A)はまた、次階層のニューロングループが、1ch~4chと、5ch~8chの2グループに分かれていることも示している。結合リスト602は、出力特徴のそれぞれのチャンネルについて、結合している入力特徴のチャンネルの番号を示している。
図6(A)の例では、入力特徴のチャンネルの順序を変更したものが、参照入力特徴に相当する。このため、入力特徴のそれぞれのチャンネルが1回ずつ参照され、畳み込み演算に用いられた。すなわち、結合設定部105は、結合パラメータに従って、第1の層について第1の部分及び第2の部分を設定するが、この場合第1の部分と第2の部分とは重複していない。一方で、図6(B)に示すように、入力特徴の1つのチャンネルが、次階層の複数のニューロングループにより参照されてもよい。すなわち、第1の部分と第2の部分とが部分的に重複していてもよい。図6(B)の例では、入力特徴の2ch及び5chが、第1のニューロングループ(出力特徴の1ch~4chを算出)と第2のニューロングループ(出力特徴の5ch~8chを算出)の双方から参照されている。図6(B)においても、順序指定テーブル611、結合リスト612、及び結合テーブル613は、全て同じ結合関係を示している。このように、入力特徴の参照方法の設定は、順序の変更のみに限られず、さまざまな結合関係を設定することができる。
上記の例では、2つのニューロングループが存在していた。しかしながら、ニューロングループの数は2つに限定されない。各階層のニューロンが、任意のn個のグループに分けられていてもよい。
また、上記の例では、入力データ20は6chのデータであったが、入力データのチャンネル数等の構成は特に限定されない。また、最初の階層においては、通常のCNNと同様に畳み込み処理を行ってもよく、2層目からニューロンを複数のニューロングループに分けてもよい。また、特徴データ20a,20bが、それぞれ同一の入力データ20であってもよい。例えば、特徴データ20a,20bの参照アドレスを、入力データ20が格納されている同一のアドレスにすることができる。こうして、第1層目から、同一の入力データ20が入力される2つのニューロングループについての並列処理を行ってもよい。これらの構成は、3chのRGB静止画像データのような、チャンネル数の少ない入力データに適用されてもよい。
本実施形態によれば、第1の層の第1の部分(例えば参照入力特徴12a)と、第2の層の第3の部分(例えば出力特徴13a)とが結合される。また、第1の層の第2の部分(例えば参照入力特徴12b)と、第2の層の第4の部分(例えば出力特徴13b)とが結合される。一方で、第1の層の第1の部分と、第2の層の第4の部分と、の間の結合が省略されるため、この結合に対応する畳み込み演算の演算量、及び重み係数を保持するメモリ量を削減することができる。その一方で、特許文献1のように非相互結合層を設ける場合とは異なり、ニューロングループ間での結合は維持されるため、認識精度の劣化が抑えられることが期待される。
さらに、本実施形態によれば、それぞれのニューロングループについてのニューロン演算を、同様の演算を用いて並列に行うことができる。例えば図4の例では、ニューロン演算106aのための構成(参照設定部16a、演算部17a、及び出力部18a)と、ニューロン演算106bのための構成(参照設定部16b、演算部17b、及び出力部18b)と、は同様である。すなわち、本実施形態に係るデータ処理装置は、並列に動作する演算部17a(第1の処理部)及び演算部17b(第2の処理部)を有している。演算部17aは、ニューロン演算106aにより、参照入力特徴12aから出力特徴13aを算出することができる。また、演算部17bは、ニューロン演算106bにより、参照入力特徴12bから出力特徴13bを算出することができる。
さらには、本実施形態によれば、異なる結合関係を用いたニューロン演算を、同様の構成を用いて実現することができる。例えば図2の例では、結合設定部105が読み出した結合パラメータを用いることで、第3の層213及び第4の層214を算出するためのニューロン演算を、異なる結合関係に従って行うことができる。また、第2の層212を算出するためのニューロン演算においては、特徴データ21aは特徴データ20aから、特徴データ21bは特徴データ20aからそれぞれ算出されている。結合パラメータは、このようにニューロングループ間での結合が存在しない結合関係も示すことができる。さらには、一部の階層についての結合パラメータが、前階層の全てのチャンネルと後階層の全てのチャンネルとが互いに結合されることを示してもよい。このような構成によれば、特許文献1のように相互結合層と非相互結合層とが混在する場合と比較して、演算ハードウェアの回路規模を小さくすることができ、並列処理の効率を向上できる。
図2の例では、2つのニューロングループは排他的なグループであり、1つのニューロンは2つのニューロングループのいずれか一方に含まれていた。このような構成は並列処理を容易にするが、ニューロングループの構成はこのような形態には限定されない。例えば、ニューロングループ同士がオーバーラップしていてもよい。例えば、図6(C)に示す結合テーブル623は、出力特徴についてのニューロングループには、1ch~3ch、3ch~5ch、5ch~7chの3つのグループが含まれることを示している。この例では、3ch及び5chは複数のニューロングループに含まれている。このように、様々な結合関係を示す結合パラメータを設計することができる。
本実施形態の適用対象は、特定の種別のニューラルネットワークには制限されない。例えば、本実施形態は、再帰的ニューラルネットワーク(Recursive Neural Network,Byeon et al. "Scene labeling with LSTM recurrent neural networks", CVPR 2015.(以下Byeon)を参照)又はオートエンコーダーのような様々な種類のニューラルネットワークに適用可能である。
[実施形態2]
以下では、実施形態1で説明したニューラルネットワークの結合パラメータの決定方法について説明する。実施形態2に係る学習装置は、ニューラルネットワークの学習を行うことができる。実施形態2に係る学習装置は、通常の機械学習の手法を用いて、ニューラルネットワークの重み係数の学習を行うことができる。さらに、実施形態2に係る学習装置は、結合パラメータの決定も行うことができる。
本実施形態における学習方法を概説する。学習には、学習データと、学習データに対する処理結果を示す教師データと、が用いられる。実施形態1で説明したように、所定の結合パラメータに従って処理を行うニューラルネットワークに学習データを入力すると、学習データに対する処理結果が得られる。そして、結合パラメータと、学習データに対する処理結果と、教師データと、に基づいて、結合パラメータ及びニューラルネットワークの階層間の重み係数との学習が行われる。結合パラメータの具体的な学習方法としては、学習中に結合パラメータに摂動的な変化を与えることにより、ニューラルネットワークの性能が向上する結合パラメータを探索する方法が挙げられる。例えば、結合パラメータに変化を与えたことによりニューラルネットワーク全体の性能が向上した場合に、この変化を採用するステップを繰り返すことができる。
以下、図7及び図8を参照して本実施形態について説明する。図7は、本実施形態に係る学習装置の機能構成例を示す。図7に示す学習装置は、教師信号提供部121及び制約指示部122を有することを除き、実施形態1と同様である。図7に示される第1のニューロングループ101及び第2のニューロングループ102も、図4に示される結合設定部105、参照設定部16a,16b、演算部17a,17b、及び出力部18a,18bを用いて実現できる。
データ入力部100は、学習データを取得し、メモリ107を介してニューラルネットワークに入力する。また、教師信号提供部121は、学習データに対する処理結果を示す教師データを取得し、結果出力部110に入力する。教師データは、学習データに対して、ニューラルネットワークが出力する結果の目標値である。このような教師データは予め作成されていてもよい。以下では、教師データを示す信号のことを教師信号と呼ぶ。
制約指示部122は、学習により得られるニューラルネットワークについての制約条件を指示する。制約条件に、例えば、ニューラルネットワークの階層数などを含むことができる。また、制約条件に、例えばそれぞれの階層におけるニューロングループの数のような、学習により得られる結合パラメータに対する制約条件を含むことができる。また、制約指示部122は、摂動の大きさを決めるパラメータτのような、学習装置による学習時に用いられるパラメータを指示することができる。これらの制約条件及びパラメータは、ユーザが指定することができ、制約指示部122は、このような制約条件を指示するユーザ入力を取得することができる。ユーザによる指定がない項目については、制約指示部122はデフォルト値を用いることができる。
図8は、本実施形態における学習処理のフローチャートの一例である。学習処理がスタートすると、ステップS801で制約指示部122は、制約情報及びパラメータを示すユーザ入力を取得する。
ステップS802で演算制御部108は、ステップS801で取得したユーザ入力に従う構成を有するニューラルネットワークについて、全ての重み係数を初期化する。重み係数の初期値としては乱数値を用いることができる。また、結合パラメータ決定部103は、結合パラメータを初期化する。本実施形態においては、図6(A)に示すような順序指定テーブル601が、結合パラメータを示すために用いられる。結合パラメータの初期値としては、図9の順序指定テーブル901のような、順序が変更されていない状態を用いることができる。
ステップS803でデータ入力部100は、複数の学習画像をメモリ107を介してニューラルネットワークへ入力する。また、教師信号提供部121は、複数の学習画像のそれぞれに対応する教師信号を結果出力部110に入力する。このように、ニューラルネットワークの学習のためには複数の学習画像を用いることができる。
ステップS804では演算制御部108は、実施形態1と同様にニューラルネットワークを用いた処理を行う。すなわち、結合設定部105は、結合パラメータに従って、ニューロン演算において参照される入力特徴のチャンネルを設定する。そして、このような設定に従って、各層のニューロン演算が行われる。こうして、それぞれの学習画像に対するニューラルネットワークによる処理結果が得られる。
ニューラルネットワークを用いた処理が終了すると、結果出力部110は、処理結果を教師信号と比較する。そして、結果出力部110は、比較結果を示す誤差信号を生成し、ニューラルネットワークに誤差信号を入力することで、ニューラルネットワークの重み係数の学習を行うことができる。ニューラルネットワークの重み係数の学習には、公知の方法を用いることができる。例えば、誤差の算出方法は特に限定されず、Krizhevsky又はZeiler等に記載の方法を用いることができる。具体例としては、学習タスクに応じて、交差エントロピー等の損失関数を用いて誤差を算出することができる。また、こうして算出された誤差に基づいて、例えば誤差逆伝播法を用いることにより、ニューラルネットワークの重み係数の学習を行うことができる。
ステップS804においては、複数の学習画像に対するニューラルネットワークを用いた処理と、処理結果と教師信号との比較に基づく重み係数の学習とを含む学習ステップが繰り返される。この学習ステップは、所定の回数、又は学習による誤差値の変化が所定の範囲以下に収束するまで、繰り返される。
ステップS805で結合パラメータ決定部103は、ステップS804終了時の誤差値を変数Loss1として記憶する。また、結合パラメータ決定部103は、ステップS804終了時のニューラルネットワークの重み係数を記憶する。
ステップS806で結合パラメータ決定部103は結合パラメータを変更する。例えば、結合パラメータ決定部103は、第1の結合パラメータを第2の結合パラメータに変更することができる。図9(A)は、結合パラメータを保持する結合関係テーブルの変更例を示す。結合パラメータ決定部103は、例えば、ランダムに選ばれた階層についての結合関係テーブルを結合パラメータ保持部104から取得し、ランダムに選ばれたテーブル上のm個の値を入れ替えることができる。図9(A)の例では、m=2である。
ステップS807で演算制御部108は、ステップS806における変更後の結合パラメータに従ってニューラルネットワークを用いた処理を行う。そして結果出力部110は、ステップS804と同様に、複数の学習画像に対するニューラルネットワークによる処理結果に基づいて、ニューラルネットワークの重み係数の学習を行う。ステップS806における結合パラメータの変更により、誤差値は一時的に上昇するかもしれないが、ステップS807においてステップS804と同様に重みの更新を行うことで、変更後の結合関係に適した重み係数が得られる。
ステップS808で結合パラメータ決定部103は、ステップS807終了時の誤差値をLoss2として記憶する。
ステップS809で結合パラメータ決定部103は、ステップS804で第1の結合パラメータに従って得られた処理結果と、ステップS807で第2の結合パラメータに従って得られた処理結果と、に基づいて結合パラメータの学習を行う。この例において結合パラメータ決定部103は、Loss1とLoss2とを比較し、この比較に基づいて第1の結合パラメータ又は第2の結合パラメータを採用することができる。例えば、結合パラメータ決定部103は、下式(3)に従ってLoss1とLoss2とを比較することができる。
Loss2 < Loss1 + τ ……(3)
この式が真である場合、処理はステップS810に進み、偽である場合、処理はステップS812に進む。上式において、τは摂動の許容度を決めるパラメータであり、ユーザが指定することができる。より大きい値のτは、結合関係をより頻繁に変更することを許容する。
ステップS810において結合パラメータ決定部103は、ステップS806における変更後の第2の結合パラメータを採用する。さらにステップS811において結合パラメータ決定部103はτの値を小さくする。例えば、結合パラメータ決定部103は、τの値にα(α<1)を乗算することができる。その後、処理はステップS805に戻り、重み係数及び学習パラメータの学習が継続される。
ステップS812において結合パラメータ決定部103は、ステップS806における変更後の第2の結合パラメータを棄却し、変更前の第1の結合パラメータを採用する。また、結合パラメータ決定部103は、ニューラルネットワークの重み係数を、ステップS805で記憶された、結合パラメータ変更以前の状態に戻す。ステップS813において演算制御部108は、学習を終了するかどうかを判定する。例えば、これまでの学習の総ステップ数が所定数以上である場合に学習を終了することができる。学習を終了しない場合、処理はステップS806に戻り、結合パラメータの学習が継続される。以上が、学習処理の流れである。
学習方法は上記の例には限定されない。例えば、図8の例ではランダムに選ばれた層の結合関係が変更されたが、入力に近い低次の階層から高次の階層へと順に結合関係の学習が行われてもよい。また、上記の例では結合パラメータの初期値として順序が変更されていない状態が用いられたが、所定の割合だけランダムに順序が入れ替えられた状態が初期値として用いられてもよい。この割合は、ユーザ入力により指定されていてもよい。
また、図8の例では、結合パラメータを変更し、変更を棄却するか採用するかが判定された。別の学習方法として、複数の結合パラメータを入れ替えながら同じステップ数の学習を行い、誤差が小さくなった結合パラメータを採用することもできる。
さらに、例えば図9(B)に示すように、結合を追加する摂動を結合パラメータに与えることもできる。図9(B)の結合リスト911は、入力特徴の1~3chを参照する第1のニューロングループと、入力特徴の4~6chを参照する第2のニューロングループが分かれていることを示している。一方で、変更後の結合リスト912は、第1及び第2のニューロングループが、それぞれ入力特徴の4ch及び2chをさらに参照することを示している。このような変更によればニューラルネットワークにおける結合数が増加する。この場合、ニューラルネットワークの規模の増加と、ニューラルネットワークの性能の向上とを比較し、規模の増加と比較して性能が向上している場合に変更を採用することができる。具体例としては、ステップS809において、下式(4)に従ってLoss1とLoss2とを比較することができる。
-τLog(Loss1/Loss2) < Log(|W1|/|W2|) ……(4)
この式において、|W1|及び|W2|は、それぞれ結合パラメータの変更前及び変更後におけるニューラルネットワークの結合数(又は重み係数の数)を示す。このように重み係数の総数の変化を許容する場合、最終的な重み係数の上限を指示するユーザ入力に従って結合パラメータの学習を行ってもよい。
さらに、蒸留学習を用いることもできる。具体的には、目的タスクについて、予め大規模なニューラルネットワークの学習を行うことができる。そして、それぞれ異なる結合パラメータに従うニューラルネットワークの候補を複数用意し、大規模なニューラルネットワークと近似する結果が得られるように、それぞれの候補の転移学習を行うことができる。その結果、もっとも誤差が小さくなった候補を選択することができる。転移学習の具体的な手法としては、例えば、Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. "Distilling the knowledge in a neural network." arXiv preprint arXiv:1503.02531 (2015).などに記載の方法を用いることができる。以上のように、機械学習による結合パラメータの学習方法は、特定の形態に限定されない。
このように、機械学習によりニューロングループの結合関係を決定することにより、実施形態1に係るニューラルネットワークの認識精度を向上させることができる。また、上記のように、ニューラルネットワークの演算量(又は重み係数の数)を考慮しながら、ニューロングループの結合関係を決定することもできる。これらの手法によれば、実用的な演算速度及び精度を有するニューラルネットワークを得ることを容易にすることができる。
[実施形態3]
実施形態1,2では、ニューロングループごとに並列処理が行われた。一方でCNNにおいては、後段の階層が多くの特徴チャンネルを持つことが多い。したがって、1つのニューロングループにおけるニューロン演算の出力チャンネルの数も、後段の階層においては膨大になることがある。実施形態3では、1つのニューロングループについても並列処理が行われる。
図10は、実施形態3におけるニューラルネットワークに従う処理の模式図である。図10には、2つのニューロングループ101,102が存在し、それぞれ8chの入力特徴に対応する8chの出力特徴を算出する。一方で、図10には、4つの並列処理ユニット1001a~1001dが存在する。1つの並列処理ユニット1001a~1001dは、それぞれ、1つの処理サイクルにおいて、4chの入力特徴1011a~1011dに対する畳み込み演算を行うことにより、8chの出力特徴1013a~1013cを出力することができる。それぞれの並列処理ユニット1001a~1001dは、図4に示される結合設定部105、参照設定部16a、演算部17a、及び出力部18aと同様の構成を有することができる。
図12は、実施形態3における、ニューラルネットワークの1階層についてのニューロン演算のフローチャートである。ステップS1201では、各並列処理ユニット1001a~1001dの動作が並列に開始される。ステップS1202において結合設定部105は、ステップS303と同様に結合パラメータを読み出す。ここで、結合パラメータは、各並列処理ユニット1001a~1001dのレジスタに予め保持されていてもよい。
ステップS1203~S1208において、各並列処理ユニット1001a~1001dは、実施形態1のステップS305a~S310aと同様に畳み込み演算処理を行う。この結果として、各並列処理ユニット1001a~1001dは、メモリ上に8chの出力特徴1013a~1013dを格納する。ここで、各並列処理ユニット1001a~1001dの処理が終了する。
ステップS1209において積算ユニット1021a及び積算ユニット1021bは、出力特徴1013a~1013b及び1013c~1013dを対応するニューロングループごとに積算することで、出力特徴1014a及び出力特徴1014bを生成する。こうして、ニューラルネットワークの1階層分の演算処理が終了する。
なお、結合設定部105は、実施形態1と同様に、ニューロングループ間でチャンネルを入れ替えることができる。すなわち、結合設定部105は、入力特徴1011a~1011bと、入力特徴1011c~1011dと、の間でチャンネルを入れ替えることにより、参照入力特徴1012a~1012bを設定することができる。
なお、結合設定部105は、特徴のチャンネル単位で結合関係を設定する代わりに、複数のチャンネルを含むブロック単位で結合関係を設定することもできる。すなわち、結合パラメータは、ブロック単位で参照入力特徴(1012a~1012d)を特定していてもよい。例えば、図10に示すように、並列処理ユニット1001a~1001dが1サイクルで処理する4chを1つのブロックとしてもよい。例えば、入力特徴1011bと1011cの順序を入れ替えてもよい。この場合、参照入力特徴1012a,1012b,1012c,1012dは、それぞれ入力特徴1011a,1011c,1011b,1011dに対応する。このように、チャンネルのブロック単位で結合関係を設定することにより、チャンネルごとに結合関係を設定する場合と比較して、ニューラルネットワークに従う処理を行うデータ処理装置の回路規模を小さくすることができる。
[その他の実施形態]
ニューロングループの設定方法は、上記の例には限定されない。例えば、図6(A)では、複数のニューロンが、出力特徴の前半部分(1chから4ch)に対応するニューロングループと、出力特徴の後半部分(5chから8ch)に対応するニューロングループとに、ブロック状に分割されていた。しかしながら、例えば、複数のニューロンが、奇数番号のチャンネルに対応するニューロングループと、偶数番号のチャンネルに対応するニューロングループと、に分割されてもよい。このように、チャンネル番号についての巡回的な規則に従って、ニューロングループが構成されていてもよい。ハードウェア又はメモリ等の構成に合わせて、様々なニューロングループを設定することができる。
図9(C)はこのような一例を示す。図9の例では、入力特徴及び出力特徴のチャンネル数はそれぞれ8chである。この例において、ニューロンは、入力特徴と出力特徴とのチャンネル間の結合の有無に従って、[1ch,5ch][2ch,6ch][3ch,7ch][4ch,8ch]の4つのニューロングループに分かれており、グループ間で信号の交換は行われない。このような例において、結合パラメータの学習を行う際に、入力特徴のチャンネルの入れ替えを摂動として与えることにより、結合テーブル921を結合テーブル922へと変更することができる。結合テーブル922に従って処理を行うと、1番目と2番目のグループ間で信号が交換されることになる。実施形態2と同様に、ニューラルネットワークの性能が向上すればこの入れ替えを採用することができ、演算量を増やさずにニューラルネットワークの性能が向上する結合関係を得ることができる。このように、ニューロングループがブロックに分割されていない場合にも、上述の各実施形態の方法は適用可能である。
また、入力特徴のチャンネルを入れ替える代わりに、出力特徴のチャンネルを入れ替えてもよい。例えば、結合テーブル921を結合テーブル923へと変更してもよい。このように、結合関係の変更方法としては、様々な方法を用いることができる。
また、べき集合に従ってニューロングループを設定することもできる。例えば、入力特徴がA,B,C,Dの4チャンネルを有し、出力特徴がW,X,Y,Zの4チャンネルを有する場合について考える。この場合、出力特徴のそれぞれのチャンネルについての特徴データを算出するために、入力特徴のチャンネルのべき集合を用いるように、ニューロングループを設定することができる。例えば、WチャンネルはABCチャンネルから、XチャンネルはBCDチャンネルが、YチャンネルはCDAチャンネルから、ZチャンネルはDABチャンネルから、それぞれ算出することができる。また、1つの出力チャンネルに対して、べき集合の一部(例えばべき集合x∈{A,B,C,D}のうちのの組み合わせ)を初期値として対応づけ、さらに結合パラメータの学習を行ってもよい。
さらに、図13(A)に示すように、各階層についてニューロングループの数が異なっていてもよい。一般に、より前の階層においては多くの特徴を用いる必要性が低いことが多いため、このような階層においてニューロングループの数を増やしても、性能に対する影響は低いことが期待される。
それぞれのニューロングループのサイズは同じであってもよいし、異なっていてもよい。すなわち、第1のニューロングループが出力特徴の第3の部分の特徴量データを算出し、第2のニューロングループが出力特徴の第4の部分の特徴量データを算出する際に、第3の部分と第4の部分との間で大きさが異なっていてもよい。例えば、第3の部分と第4の部分との間で特徴量データのデータ量が異なっていてもよい。
例えば図13(B)の例では、異なるチャンネル数の出力特徴を算出するように、複数のニューロングループが設定されている。すなわち、32chの入力特徴から32chの出力特徴を生成する層において、以下のようにニューロンを2つのグループに分けてもよい。すなわち、1つのニューロングループは24chの入力特徴から24chの出力特徴を算出し、もう1つのニューロングループは8chの入力特徴から8chの出力特徴を算出する。このような構成によれば、各ニューロングループで行われるニューロン演算の処理の回数は異なることになる。例えば、演算量は入力チャンネル数と出力チャンネル数との積により決まるため、この例では演算量は9対1になる。ハードウェアを用いてこのようなニューラルネットワークに従う演算を行う際には、演算量に応じた数の並列処理ユニットを設けることにより、それの並列処理ユニットによる演算量を均等にすることができる。
図13(C)の例では、各ニューロングループで行われるニューロン演算の演算量が等しくなるように、ニューロングループの数がコントロールされている。この例では、第1の層1311における8chの入力特徴から、第2の層1312における16chの出力特徴が算出される。また、第2の層1312における16chの入力特徴から、第3の層1313における32chの出力特徴が算出される。この場合、第1の層1311からの入力特徴から第2の層1312への出力特徴を与える2つのニューロングループと、第2の層1312からの入力特徴から第3の層131への出力特徴を与える4つのニューロングループと、を設けることができる。この場合、4chの入力特徴に対して、8chの出力特徴を算出する並列処理ユニットが、それぞれのニューロングループに対応する演算を行うことができる。この例では、後ろの階層においてチャンネル数が増えているが、チャンネル数に合わせてニューロングループの数も増えているので、それぞれのニューロングループに対応する演算の演算量は同一となる。このような構成によれば、並列処理を容易にすることができる。
このように、様々なニューロングループの設定方法を採用することができる。学習装置は、ニューロングループの数を学習により決定してもよいし、ニューロングループのサイズを学習により決定してもよい。すなわち、第1のニューロングループが出力特徴の第3の部分の特徴量データを算出し、第2のニューロングループが出力特徴の第4の部分の特徴量データを算出する構成において、第3の部分及び第4の部分の大きさを学習により決定することができる。
ニューロングループの設定を学習により決定する方法は特に限定されない。例えば、適切なニューロングループの設定方法を機械学習により決定するために、前述の蒸留学習を用いることができる。また、実施形態2と同様に、ニューロングループの数をランダムに増減させることにより、結合パラメータの1つであるニューロングループの分割数に摂動的な変化を与えることができる。このような方法により、ニューラルネットワークの性能が向上する分割数を学習により決定することができる。
別の学習方法として、遺伝的アルゴリズムを用いる方法が挙げられる。すなわち、それぞれ異なる結合パラメータに従うニューラルネットワークの学習を行い、性能のより高いニューラルネットワーク同士を組み合わせて新たなニューラルネットワークを生成することができる。例えば、1つのニューラルネットワークの前半の階層と、他のニューラルネットワークの後半の階層と、を組み合わせることにより、新たなニューラルネットワークを生成することができる。
図14は、遺伝的アルゴリズムの適用例を示す。図14には、世代1の候補として3つのニューラルネットワーク1401~1403が示されている。この中で、認識性能が低いと判定されたニューラルネットワーク1403が淘汰(削除)される。そして、性能が高いと判定されたニューラルネットワーク1401,1402の一部を組み合わせることにより、世代2の候補としてニューラルネットワーク1404~1406が生成されている。この場合には、式(4)などを用いることにより、ニューラルネットワークの規模を考慮してニューラルネットワークの評価を行うことができる。
さらに、上述の実施形態に係る方法は、再帰的ニューラルネットワークのような様々な形態のニューラルネットワークに適用できる。図15(A)は、再帰的ニューラルネットワークの一つである、Long short term memory(LSTM)ネットワークの構成を示す。Byeonに開示されているように、LSTMにおいては、複数のLSTMニューロンを相互結合することにより、階層的なパターン情報の処理又は二次元情報の処理を行うことができる。それぞれのLSTMニューロンは、1つのサイクルにおいては独立して並列処理を行う。図15(A)において、ここでy は、i番目のLSTMニューロンへの再帰的入力であり、高次元のベクトルである。図15(B)では、LSTMニューロンの再帰的結合が展開されている。図15(B)は、本質的には図15(A)と同じ構成を表す。図15(B)に示される構成においては、階層tの入力特徴から、階層t+1の出力特徴が生成されていると理解することができる。また、y はi番目のチャンネルの特徴量データであると理解することができる。
図15(C)は、上述の実施形態に係る構成を、図15(B)に示されるLSTMネットワークに適用した様子を表す。結合設定部105は、各LSTMニューロンが生成した再帰的入力y の一部を混交させ、入力y’ を生成することができる。このような処理は、図1の例において結合設定部105が入力特徴11a,11bから参照入力特徴12を生成した処理と同様に行うことができる。こうして生成された入力y’ は、LSTMニューロンへと再帰的に入力される。このような構成においては、これにより位相的に離れたLSTMニューロンからの信号にも基づいて、各LSTMニューロンの状態を変更することができる。このため、各LSTMニューロンによる並列処理を可能としながら、また演算処理の増加を抑えながら、図15(A)の構成と比較してより複雑な演算処理を行うことができる。
本発明の一実施形態に係るデータ処理装置及び学習装置は、例えばネットワークを介して接続された複数の情報処理装置によって構成されていてもよい。
上述の実施形態に係るデータ処理装置及び学習装置は、専用のハードウェアによって実現される。一方で、データ入力部100、結合パラメータ決定部103、演算制御部108、結果出力部110、及び制約指示部122のような一部又は全部の処理部が、コンピュータにより実現されてもよい。
図11はコンピュータの基本構成を示す図である。図11においてプロセッサ1110は、例えばCPUであり、コンピュータ全体の動作をコントロールする。メモリ1120は、例えばRAMであり、プログラム及びデータ等を一時的に記憶する。コンピュータが読み取り可能な記憶媒体1130は、例えばハードディスク又はCD-ROM等であり、プログラム及びデータ等を長期的に記憶する。本実施形態においては、記憶媒体1130が格納している、各部の機能を実現するプログラムが、メモリ1120へと読み出される。そして、プロセッサ1110が、メモリ1120上のプログラムに従って動作することにより、各部の機能が実現される。図11において、入力インタフェース1140は外部の装置から情報を取得するためのインタフェースである。また、出力インタフェース1150は外部の装置へと情報を出力するためのインタフェースである。バス1160は、上述の各部を接続し、データのやりとりを可能とする。
また、上述の実施形態で説明されたニューラルネットワークも、本発明の一実施形態である。ニューラルネットワークは、階層構造(例えば階層数及び各階層で行われる演算の種類)を示す情報と、階層間の重み係数を示す情報と、により規定することができる。上述の実施形態に係るニューラルネットワークは、さらに結合パラメータにより規定されている。このようなニューラルネットワークを規定する情報に従って、上述のデータ処理装置又はコンピュータは、入力データに対してニューラルネットワークに従う演算を行うことができる。したがって、このようなニューラルネットワークを規定する情報は、プログラムの一種に相当する。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101,102:ニューロングループ、103:結合パラメータ決定部、104:結合パラメータ保持部、105:結合設定部、106a,106b:ニューロン演算、111:第1の層、112:第2の層

Claims (18)

  1. ニューラルネットワークの第1の層と接続される第2の層の第3の部分の特徴量データを算出するために参照される前記第1の層の第1の部分と、前記第2の層の第4の部分の特徴量データを算出するために参照される前記第1の層の第2の部分と、をそれぞれ規定する結合パラメータを取得する取得手段と、
    前記取得手段によって取得された前記結合パラメータに規定される前記第1の部分の特徴量データから前記第3の部分の特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第2の部分の特徴量データから前記第4の部分の特徴量データを算出する第2の算出処理とを並列に行う演算手段と、を備える
    ことを特徴とするデータ処理装置。
  2. 前記第1の層の前記第1の部分と前記第2の部分とは重複しない
    ことを特徴とする、請求項1に記載のデータ処理装置。
  3. 前記第1の層の前記第1の部分と前記第2の部分とが部分的に重複する
    ことを特徴とする、請求項1に記載のデータ処理装置。
  4. 前記第2の層の前記第3の部分の大きさと前記第4の部分の大きさとが異なる
    ことを特徴とする、請求項1から3のいずれか1項に記載のデータ処理装置。
  5. 前記結合パラメータは、チャンネル単位で前記第1の層の前記第1の部分及び前記第2の部分を規定する
    ことを特徴とする、請求項1からのいずれか1項に記載のデータ処理装置。
  6. 前記結合パラメータは、複数のチャンネルを含むブロック単位で前記第1の層の前記第1の部分及び前記第2の部分を規定する
    ことを特徴とする、請求項に記載のデータ処理装置。
  7. 前記演算手段は、前記第1の層の前記第1の部分に含まれる全てのチャンネルの特徴量データを用いて、かつ前記第1の層の前記第2の部分に含まれるチャンネルの特徴量データを用いずに、前記第2の層の第3の部分に含まれるそれぞれのチャンネルの特徴量データを算出する
    ことを特徴とする、請求項又はに記載のデータ処理装置。
  8. 前記ニューラルネットワークは、畳み込みニューラルネットワーク又は再帰的ニューラルネットワークである
    ことを特徴とする、請求項1からのいずれか1項に記載のデータ処理装置。
  9. 前記取得手段は、前記ニューラルネットワークに入力される学習データに基づいて学習された結合パラメータを取得する
    ことを特徴とする、請求項1から8のいずれか1項に記載のデータ処理装置。
  10. 学習データと、前記学習データに対する処理結果を示す教師データと、を取得する取得手段と、
    ニューラルネットワークに前記学習データを入力することにより、前記学習データに対する処理結果を得るデータ処理手段であって、前記ニューラルネットワークの第1の層と接続される第2の層の第3の部分の特徴量データを算出するために参照される前記第1の層の第1の部分と、前記第2の層の第4の部分の特徴量データを算出するために参照される前記第1の層の第2の部分と、をそれぞれ規定する結合パラメータに規定される前記第1の部分の特徴量データから前記第3の部分の特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第2の部分の特徴量データから前記第4の部分の特徴量データを算出する第2の算出処理とを並列に行うデータ処理手段と、
    前記学習データに対する処理結果と、前記教師データと、に基づいて、前記結合パラメータ及び前記ニューラルネットワークの階層間の重み係数の学習を行う学習手段と、を備える
    ことを特徴とする学習装置。
  11. 前記学習手段は、第1の結合パラメータに従って前記データ処理手段が得た前記学習データに対する処理結果と、第2の結合パラメータに従って前記データ処理手段が得た前記学習データに対する処理結果と、に基づいて前記結合パラメータの学習を行う
    ことを特徴とする、請求項10に記載の学習装置。
  12. 前記学習手段は、前記第2の層の前記第1の部分及び前記第2の部分の大きさを学習により決定する
    ことを特徴とする、請求項10又は11に記載の学習装置。
  13. 前記取得手段は、さらに、学習により得られる前記結合パラメータに対する制約条件を指示するユーザ入力を取得し、
    前記学習手段は、前記制約条件に従って前記結合パラメータの学習を行う
    ことを特徴とする、請求項10から12のいずれか1項に記載の学習装置。
  14. 順に接続された前階層、第1の層、及び第2の層を有するニューラルネットワークであって、
    前記第1の層は、前記前階層の一部のニューロンセットと結合した第1のニューロンセットと、前記前階層の一部とは異なる前記前階層の他の一部のニューロンセットと結合した第2のニューロンセットと、を有し、
    前記第2の層は、結合パラメータにより規定される前記第1のニューロンセットの一部及び前記第2のニューロンセットの一部と結合した第3のニューロンセットと、前記結合パラメータにより規定され前記第1のニューロンセットの一部とは異なる前記第1のニューロンセットの他の一部及び前記第2のニューロンセットの一部とは異なる前記第のニューロンセットの他の一部と結合した第4のニューロンセットと、を有し、
    前記ニューラルネットワークは、前記結合パラメータを取得し、前記結合パラメータに規定される前記第1のニューロンセットの前記一部及び前記第2のニューロンセットの前記一部における特徴量データから前記第3のニューロンセットにおける特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第1のニューロンセットの前記他の一部及び前記第2のニューロンセットの前記他の一部における特徴量データから前記第4のニューロンセットにおける特徴量データを算出する第2の算出処理とを並列に行うよう、コンピュータを機能させることを特徴とするニューラルネットワーク。
  15. ニューラルネットワークの第1の層と接続される第2の層の第3の部分の特徴量データを算出するために参照される前記第1の層の第1の部分と、前記第2の層の第4の部分の特徴量データを算出するために参照される前記第1の層の第2の部分と、をそれぞれ規定する結合パラメータを取得する取得工程と、
    前記結合パラメータに規定される前記第1の部分の特徴量データから前記第3の部分の特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第2の部分の特徴量データから前記第4の部分の特徴量データを算出する第2の算出処理とを並列に行う演算工程と、
    を含むことを特徴とするデータ処理方法。
  16. 学習データと、前記学習データに対する処理結果を示す教師データと、を取得する取得工程と、
    ニューラルネットワークに前記学習データを入力することにより、前記学習データに対する処理結果を得るデータ処理工程であって、前記ニューラルネットワークの第1の層と接続される第2の層の第3の部分の特徴量データを算出するために参照される前記第1の層の第1の部分と、前記第2の層の第4の部分の特徴量データを算出するために参照される前記第1の層の第2の部分と、をそれぞれ規定する結合パラメータに規定される前記第1の部分の特徴量データから前記第2の層の前記第3の部分の特徴量データを算出する第1の算出処理と、前記結合パラメータに規定される前記第2の部分の特徴量データから前記第4の部分の特徴量データを算出する第2の算出処理とを並列に行うデータ処理工程と、
    前記学習データに対する処理結果と、前記教師データと、に基づいて、前記結合パラメータ及び前記ニューラルネットワークの階層間の重み係数の学習を行う学習工程と、
    を備えることを特徴とする学習方法。
  17. コンピュータを、請求項1から9のいずれか1項に記載のデータ処理装置として機能させるためのプログラム。
  18. コンピュータを、請求項10から13のいずれか1項に記載の学習装置として機能させるためのプログラム。
JP2019123945A 2019-07-02 2019-07-02 データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム Active JP7389575B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019123945A JP7389575B2 (ja) 2019-07-02 2019-07-02 データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム
US16/918,206 US12079717B2 (en) 2019-07-02 2020-07-01 Data processing apparatus, training apparatus, method of detecting an object, method of training, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019123945A JP7389575B2 (ja) 2019-07-02 2019-07-02 データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム

Publications (3)

Publication Number Publication Date
JP2021009622A JP2021009622A (ja) 2021-01-28
JP2021009622A5 JP2021009622A5 (ja) 2022-07-11
JP7389575B2 true JP7389575B2 (ja) 2023-11-30

Family

ID=74065752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019123945A Active JP7389575B2 (ja) 2019-07-02 2019-07-02 データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム

Country Status (2)

Country Link
US (1) US12079717B2 (ja)
JP (1) JP7389575B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305072A (ja) 2006-05-15 2007-11-22 Sony Corp 情報処理装置、情報処理方法、およびプログラム
JP2015210747A (ja) 2014-04-30 2015-11-24 国立研究開発法人情報通信研究機構 階層型ニューラルネットワークの学習システム及び方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811775B2 (en) 2012-12-24 2017-11-07 Google Inc. Parallelizing neural networks during training

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305072A (ja) 2006-05-15 2007-11-22 Sony Corp 情報処理装置、情報処理方法、およびプログラム
JP2015210747A (ja) 2014-04-30 2015-11-24 国立研究開発法人情報通信研究機構 階層型ニューラルネットワークの学習システム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Pablo Barros, 外3名,"A multichannel convolutional neural network for hand posture recognition",Proceedings of the 24th International Conference on Artificial Neural Networks(ICANN 2014),2014年09月30日

Also Published As

Publication number Publication date
US20210004681A1 (en) 2021-01-07
US12079717B2 (en) 2024-09-03
JP2021009622A (ja) 2021-01-28

Similar Documents

Publication Publication Date Title
Pei et al. Towards artificial general intelligence with hybrid Tianjic chip architecture
WO2018058426A1 (zh) 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
Ioannou et al. Decision forests, convolutional networks and the models in-between
CN107688855B (zh) 针对于复杂神经网络的分层量化方法与装置
Zhang et al. Sta-gcn: two-stream graph convolutional network with spatial–temporal attention for hand gesture recognition
WO2017187516A1 (ja) 情報処理システムおよびその運用方法
US20220092408A1 (en) Neural network weight distribution using a tree direct-memory access (dma) bus
CN110108292B (zh) 车辆导航路径规划方法、系统、设备及介质
EP0465489A1 (en) GENETIC SYNTHESIS OF NEURONAL NETWORKS.
JP7042210B2 (ja) 学習モデル生成装置、学習モデル生成方法、及びプログラム
CN111738276A (zh) 基于多核卷积神经网络的图像处理方法、装置及设备
US20220207327A1 (en) Method for dividing processing capabilities of artificial intelligence between devices and servers in network environment
Milutinovic et al. End-to-end training of differentiable pipelines across machine learning frameworks
CN113449612A (zh) 一种基于子流型稀疏卷积的三维目标点云识别的方法
CN116797850A (zh) 基于知识蒸馏和一致性正则化的类增量图像分类方法
DE112020003105T5 (de) Schicht für schicht-debugging von neuronalen netzwerken
Siu Residual networks behave like boosting algorithms
JP7389575B2 (ja) データ処理装置、データ処理方法、学習装置、学習方法、ニューラルネットワーク、及びプログラム
JPH04213750A (ja) 層化されたニューラル・ネットワークでの分類方法
Malpure et al. Investigating transfer learning capabilities of vision transformers and CNNs by fine-tuning a single trainable block
US20240143525A1 (en) Transferring non-contiguous blocks of data using instruction-based direct-memory access (dma)
JP2021005242A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
WO2022127603A1 (zh) 一种模型处理方法及相关装置
Wang et al. Diy your easynas for vision: Convolution operation merging, map channel reducing, and search space to supernet conversion tooling

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220701

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230929

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: 20231020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231117

R151 Written notification of patent or utility model registration

Ref document number: 7389575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151