(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6564049
(24)【登録日】2019年8月2日
(45)【発行日】2019年8月21日
(54)【発明の名称】ニューラルネットワーク構造とその方法
(51)【国際特許分類】
G06N 3/04 20060101AFI20190808BHJP
G06N 20/00 20190101ALI20190808BHJP
【FI】
G06N3/04 154
G06N20/00
【請求項の数】7
【全頁数】14
(21)【出願番号】特願2017-547076(P2017-547076)
(86)(22)【出願日】2014年11月26日
(65)【公表番号】特表2018-500708(P2018-500708A)
(43)【公表日】2018年1月11日
(86)【国際出願番号】FI2014050911
(87)【国際公開番号】WO2016083657
(87)【国際公開日】20160602
【審査請求日】2017年11月1日
(73)【特許権者】
【識別番号】517186824
【氏名又は名称】キュリアス アーイー オサケユイチア
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100151459
【弁理士】
【氏名又は名称】中村 健一
(74)【代理人】
【識別番号】100196601
【弁理士】
【氏名又は名称】酒井 祐市
(72)【発明者】
【氏名】ハッリ バルポラ
【審査官】
多胡 滋
(56)【参考文献】
【文献】
特開平08−227410(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
ベースレイヤと第2レイヤとを有するトレーニング可能なニューラルネットワーク構造であって、
前記ベースレイヤは、
前記ニューラルネットワーク構造の入力データを破損するための破損関数と、
復号化関数と、
コスト関数と、
を有し、
前記第2レイヤは、
符号化関数と、
復号化関数と、
を有し、
破損した入力データは、前記第2レイヤの前記符号化関数への入力として供給されるように構成され、
符号化された破損した入力データは、前記第2レイヤの前記復号化関数への入力として供給されるように構成され、
前記ニューラルネットワーク構造の前記破損した入力データと前記第2レイヤの前記復号化関数の出力とは、前記ベースレイヤの前記復号化関数への入力として供給されるように構成され、前記破損した入力データは前記ベースレイヤの前記復号化関数へのラテラル入力となり、
前記ベースレイヤの前記復号化関数の出力と前記ニューラルネットワーク構造の前記入力データとは、前記ベースレイヤの前記コスト関数への入力として供給されるように構成される、ことを特徴とするニューラルネットワーク構造。
【請求項2】
前記第2レイヤは、コスト関数を更に有し、
前記第2レイヤの前記復号化関数の出力と前記第2レイヤの前記符号化関数を用いて符号化された前記ニューラルネットワーク構造の前記入力データとは、前記コスト関数への入力として供給されるように構成される、ことを特徴とする請求項1に記載のニューラルネットワーク構造。
【請求項3】
前記ニューラルネットワーク構造は、少なくとも1つの追加第2レイヤを更に有し、
前記少なくとも1つの追加第2レイヤのそれぞれは、前の前記第2レイヤに接続されるように配置され、
前の前記第2レイヤの前記符号化関数の出力は、前記少なくとも1つの追加第2レイヤの符号化関数への入力として供給されるように構成され、
前記少なくとも1つの追加第2レイヤの前記符号化関数の出力と上位レイヤの復号化関数の出力とは、前記少なくとも1つの追加第2レイヤの復号化関数への入力として供給されるように構成される、ことを特徴とする請求項1又は2に記載のニューラルネットワーク構造。
【請求項4】
前記少なくとも1つの追加第2レイヤは、コスト関数を更に有し、
同じ前記少なくとも1つの追加第2レイヤの前記復号化関数の出力と、問題としている前記少なくとも1つの追加第2レイヤの前の各レイヤの符号化関数で符号化された前記ニューラルネットワーク構造の前記入力データとは、 前記少なくとも1つの追加第2レイヤの前記少なくとも1つのコスト関数への入力として供給されるように構成される、ことを特徴とする請求項3に記載のニューラルネットワーク構造。
【請求項5】
請求項1〜4のいずれか1項に記載のニューラルネットワーク構造をトレーニングするための方法であって、
前記構造に入力データを入力することによって前記ニューラルネットワーク構造がトレーニングされるとき、前記ニューラルネットワーク構造に対して定義されたコスト関数が最小化されるように、少なくとも1つのレイヤの少なくとも1つの関数の少なくとも1つのパラメータを調整するステップ、を有する方法。
【請求項6】
レイヤ固有のコスト関数の入力データが比較されること、を特徴とする請求項5に記載の方法。
【請求項7】
前記構造に対して定義されるコスト関数は、ニューラルネットワーク構造内の少なくとも1つのレイヤに対して定義されたレイヤ固有のコスト関数の合計であること、を特徴とする請求項5又は6に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にニューラルネットワークの技術分野に関する。特に、本発明は、ネットワークのトレーニングを改善するニューラルネットワーク構造に関する。
【背景技術】
【0002】
機械学習法は、例えば、マシンビジョン、パターン認識、ロボット工学、制御システム、自動化等の現代技術で広く利用されている。このようなアプリケーションでは、機械学習は、入力データを処理するためのシステム又は装置のコンピュータ実装の部分で使用される。
【0003】
機械学習法の分類の1つは、「教師あり」及び「教師なし」学習に分けることである。教師あり学習は、与えられた入力から所定の出力を生成する方法を見つける、又は「学習する」ことを目的とする、例えば、入力画像のセットを、画像が属するラベル付きカテゴリに正しく分類する。教師なし学習は、多くの場合、特徴を使用して、入力データの構造を表現することを目的とする。得られた特徴は、分類タスクのための入力として、又は、更に教師あり学習のための初期化として使用することができる。
【0004】
機械学習の分野におけるソリューションを開示する広範囲の先行技術が存在する。例えば、ビンセントらの第25回機械学習に関する国際会議(ICML'2008)における講演において、ノイズ除去オートエンコーダを使用した強力な機能の抽出と作成では、ノイズによってシステム全体の入力を壊すようにノイズ除去オートエンコーダが配置された機械学習ソリューションを紹介している。学習は入力のきれいなバージョンを破損したトップダウンのアクティベーションに一致させる。ボトムアップは、最上位レイヤでトップダウンにコピーされる。
【0005】
ベンジオの「オートエンコーダがターゲット伝播を介してディープネットワークでクレジット割り当てを行う仕組み(How auto-encoders could provide credit assignment in deep networks via target propagation)」2014は、順々に、ネットワークの多くのレベルにおける複数のコスト関数を開示するが、一貫したコスト関数を持たず、逆方向への誤差を伝播しない。ボトムアップは、最上位レイヤでのみトップダウンにコピーされる。
【0006】
更に、欧州特許公報第2126801号に記載されている機械学習システムは、情報を選択して学習を誘導する、緊急の注意報のようなプロセスを示す。これに記載された方法の1つの重要な側面は、自動学習プロセスを導くための2次入力情報、すなわち「コンテキスト」の利用である。
【0007】
しかし、従来技術のソリューションには依然としていくつかの欠点がある。すなわち、特に欧州特許公報第2126801号で導入されたソリューションの観点からの主な問題は、コンテキストが、同じ情報を表すように隣接する処理ユニットを駆動してしまうである。非相関は、単一の処理ユニット内で動作し、これを1つのユニット内で起こらないようにするが、計算上非常に要求が厳しいので、大規模なネットワーク内のすべてのユニット間の非相関は実用的ではない。この問題は、異なる処理ユニットが異なる入力セットを受け取ることを要求することによって軽減することができるが、多くの場合、これは厳しい制限である。
【0008】
更に、深層ニューラルネットワークにおける教師なし学習のための従来技術のソリューションは、遅れており、特に抽象的な特徴を学習することに挑戦している。更に、そのようなソリューションは教師あり学習とはうまく適合しない。
【0009】
コンテキスト接続は、(ボトムアップ情報以外の)他のソースからの相関情報を理想的に伝えなければならない。この課題の一つの見方は、どの情報が他のソースから来ているのか、及び、どれがネットワーク内で異なる経路をとったボトムアップ情報の単なるコピーなのかを認識できないことに起因するとするものである。したがって、機械学習ソリューションを開発する必要があり、特に、既存のシステムの前述の欠点を緩和し、ニューラルネットワークのトレーニングを改善するニューラルネットワーク構造を導入する必要がある。
【0010】
したがって、機械学習ソリューションを開発する必要があり、特に、既存のシステムの前述の欠点を緩和し、ニューラルネットワークのトレーニングを改善するニューラルネットワーク構造を導入する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明の目的は、改良されたトレーニング可能なニューラルネットワーク構造と、ニューラルネットワーク構造のトレーニングを改良する方法とを提示することである。
【0012】
本発明の目的は、それぞれの独立請求項によって定義されるニューラルネットワーク構造及び方法によって達成される。
【課題を解決するための手段】
【0013】
第1の態様によれば、ベースレイヤと第2レイヤとを備えるトレーニング可能なニューラルネットワーク構造が提供され、ベースレイヤは、ニューラルネットワーク構造の入力データを破損(corrupting)するための破損関数(corruption function)、復号化関数(decoding function)、及びコスト関数(cost function)を有し、第2レイヤは、符号化関数(encoding function)と復号化関数を有し、破損した入力データは第2レイヤの符号化関数への入力として供給されるように構成され、符号化された破損した入力データは第2レイヤの復号化関数に入力として供給されるように構成され、ニューラルネットワーク構造の破損した入力データと第2レイヤの復号化関数の出力は、ベースレイヤの復号化関数への入力として供給されるように構成され、ベースレイヤの復号化関数の出力とニューラルネットワークの入力データは、ベースレイヤのコスト関数への入力として供給されるように構成される。
【0014】
ニューラルネットワーク構造の第2レイヤは、コスト関数を更に有してもよく、第2レイヤのための復号化関数の出力と第2レイヤの符号化関数を用いて符号化されたニューラルネットワーク構造の入力データは、コスト関数への入力として供給されるように構成される。
【0015】
ニューラルネットワーク構造は、少なくとも1つの追加第2レイヤを更に有し、少なくとも1つの追加第2レイヤのそれぞれは、前の第2レイヤに接続されるように配置され、前の第2レイヤの符号化関数の出力は、少なくとも1つの追加第2レイヤの符号化関数への入力として供給されるように構成され、少なくとも1つの追加第2レイヤの符号化関数の出力と上位レイヤの復号化関数の出力とは、少なくとも1つの追加第2レイヤの復号化関数への入力として供給されるように構成される。
【0016】
少なくとも1つの追加第2レイヤは、コスト関数を更に有してもよく、同じ少なくとも1つの追加第2レイヤの復号化関数の出力と、問題としている少なくとも1つの追加第2レイヤの前の各レイヤの符号化関数で符号化されたニューラルネットワーク構造の入力データとは、少なくとも1つの追加第2レイヤの少なくとも1つのコスト関数への入力として供給されるように構成される。
【0017】
第2の形態によれば、上記のようなニューラルネットワーク構造をトレーニングする方法が提供され、該方法は、ニューラルネットワークがトレーニングされるとき、ニューラルネットワーク構造に対して定義されたコスト関数が最小化されるように、少なくとも1つのレイヤの少なくとも1つの少なくとも1つの関数の少なくとも1つのパラメータを調整するステップを含む。
【0018】
レイヤ固有のコスト関数の入力データが比較されてもよい。
【0019】
構造に対して定義されるコスト関数は、ニューラルネットワーク構造内の少なくとも1つのレイヤに対して定義されたレイヤ固有のコスト関数の合計であってもよい。
【0020】
本願に提示された本発明の例示的な実施形態は、添付の特許請求の範囲の適用可能性を制限すると解釈されるべきではない。「含む」という動詞は、本特許出願において、未記載の特徴も存在することを排除しないオープンな制限として使用される。従属請求項に記載された特徴は、他に明白に述べられていない限り、相互に自由に組み合わせ可能である。
【0021】
本発明の特徴と考えられる新規な特徴は、特に添付の特許請求の範囲に記載されている。しかしながら、本発明自体は、構成及び動作方法の両方に関して、付加的な目的及び利点と共に、添付の図面に関連して読まれる特定の実施形態の以下の説明から最もよく理解されるであろう。
【図面の簡単な説明】
【0022】
【
図1】本発明によるニューラルネットワーク構造の第1の例を概略的に示す図である。
【
図2】本発明によるニューラルネットワーク構造の別の例を概略的に示す図である。
【
図3】本発明によるニューラルネットワーク構造の更に別の例を概略的に示す図である。
【
図4】本発明によるニューラルネットワーク構造の基本的な構造を概略的に示す図である。
【
図5】本発明によるコンピューティングユニットの一例を概略的に示す図である。
【発明を実施するための形態】
【0023】
本発明は、ニューラルネットワークの効率的なトレーニングを可能にするニューラルネットワーク構造を開示する。
図1は、本発明の一実施形態によるニューラルネットワーク構造を概略的に示す。
図1に示すように、ニューラルネットワーク構造は、ベースレイヤ10及び第2レイヤ20を含む。ベースレイヤ10は、順に、破損関数110と、復号化関数210と、コスト関数310とを備える。第2レイヤ20は、
図1に示すように、符号化関数120及び復号化関数220を含む。入力データはニューラルネットワークに送られる。入力データは、破損関数110に送られる。第2レイヤ20の符号化関数120は、入力として破損した入力データを受け取る。さらに、第2レイヤ20の復号化関数220は、第2レイヤ20の符号化関数120で符号化された破損した入力データを入力として受け取る。第2レイヤ20の復号化関数220の出力は、復号化関数210へのラテラル(lateral)入力となるニューラルネットワーク構造の破損した入力データと共に、ベースレイヤ10の復号化関数210への入力となる。ベースレイヤ10のコスト関数310は、ベースレイヤ10の復号化関数210の出力とニューラルネットワークの入力データとを入力として受け取る。わかりやすくするために、
図1に示す構造は、ベースレイヤからの1つのコスト関数項のみを含むコスト関数を含んでもよい。
【0024】
図1に示すニューラルネットワーク構造は、構造に1つ又は複数の第2レイヤを追加することによって、本発明の思想の範囲内で変更することができる。
図2は、本発明の一実施形態によるニューラルネットワーク構造が第1の2レイヤ20に加えて1つの追加第2レイヤ30を含む本発明の実施形態を示す。追加第2レイヤ30は、追加第2レイヤの符号化関数130と、追加第2レイヤの復号化関数230とを含む。追加第2レイヤ30の符号化関数130は、第1の第2レイヤの符号化関数120の出力から入力を受け取る。更に、追加第2レイヤ30の符号化関数130の出力は、追加第2レイヤ30の復号化関数230の入力に送られる。
図2の本発明の実施形態では、第1の第2レイヤ20の復号化関数220は、入力として、別の第2レイヤ30の復号化関数230の出力と、復号化関数220へのラテラル入力となる第1の第2レイヤの符号化関数120の出力とを受け取る。
【0025】
図3に、更なる本発明の実施形態を概略的に示す。この実装では、各第2レイヤ、すなわち、第1の第2レイヤ20及び別の第2レイヤ30について、更にコスト関数320、330が配置される。第1の第2レイヤ20のコスト関数320は、第1の第2レイヤ20の復号化関数220の出力からと、第1の第2レイヤ20の符号化関数120で符号化されたニューラルネットワーク構造の入力から入力を受け取る。同様に、別の第2レイヤ30のコスト関数330は、別の第2レイヤ30の復号化関数230の出力からと、第1の第2レイヤ20の符号化関数120の出力を符号化するように配置された別の第2レイヤ20の符号化関数130の出力とから入力を受け取る。
図3に示されているような構造の総コストは、構造内に実装されたレイヤから、コスト関数すなわちレイヤ固有のコスト関数を合計することによって導き出してもよい。
【0026】
図4は、本発明によるニューラルネットワークの基本的な構造を概略的に示す。原理的には、この構造は4つのブロックからなる。 第1のブロック410は、破損した入力
【数1】
に所定の符号化関数を実行するように配置された符号化経路である。
図4のシンボル
【数2】
は、符号化関数の出力を参照する。第2のブロック420は、第1のブロック410と前の復号化関数からの入力、すなわちラテラル入力に対して、所定の復号化関数を実行するように配置された復号化経路又は雑音除去経路である。
図4のシンボル
【数3】
は、復号化関数の出力を参照する。第4のブロック440は、ニューラルネットワークの入力x(t)に(すなわちクリーン入力)対して所定の符号化関数を実行するように配置されたもう1つの符号化経路である。
図4のシンボルh
1(t)−h
L(t)は、第4のブロック440の符号化経路における符号化関数の出力を参照する。第3のブロック430は、コスト関数経路を参照し、第2のブロック420及び第4のブロック440から受け取った入力に対して、例えば、比較等の所定の機能を実行するように配置される。
図4のシンボル C
1−C
Lは、ニューラルネットワーク構造のコスト関数項を参照する。
図4の概略図では、コスト関数がニューラルネットワーク構造の各レイヤに配置されていることが示されている。前述したように、本発明の全ての実装において必ずしもそうであるとは限らないが、第4のブロック440において必要な符号化関数にも影響を及ぼす。いずれにしても、本発明に関する構造に対する(全)コスト関数は、構造に実装されたレイヤからコスト関数項を合計することによって定義することができる。
図4に関する議論を要約すると、本発明はラダー(ladder)型ニューラルネットワーク構造を開示する。
【0027】
上述のように、符号化及び復号化関数は、入力データに所定の操作を実行するように配置されている。より具体的には、符号化関数fは、入力xを取り込み、出力として符号化された入力データを生成する。これは、マッピング(mapping)y=f(x)による「表現」yへの入力xの「マッピング」とも呼ばれる。
【0028】
このようなマッピングは、例えば、
y=s(Wx+b)
であって、Wとbは符号化関数のパラメータであり、sはシグモイド又は双曲線正接関数等の非線形関数であり、ニューラルネットワークをトレーニングするとき、コスト関数が最小になるようにWとbが求められる。Wとbはコンピュータメモリ又は記憶装置に記憶された数値の行列又はベクトルであり、yの式はコンピュータ上で評価される。
【0029】
逆に、復号化関数gは、入力yを取り、符号化された入力データ
【数4】
の「再構成」を出力として生成する同様のマッピングである。このようなマッピングは、例えば、
【数5】
であって、W´とb´は復号化関数のパラメータであり、sはシグモイド関数又は双曲線正接関数のような非線形関数であり、パラメータはニューラルネットワークのトレーニングにおいて求められる。1つの選択肢は、ある規則で、例えば、W´を常にWの転置行列とすることで、W´の値をWの値に結び付けることである。yはxの「劣化した(lossy)」表現であってもよいので、
【数6】
も同様に元のデータの正確な再構成でなくともよい。
【0030】
コスト関数Cは、復号化関数が符号化関数の入力データをいかにうまく再構成できるかを評価するために使用される関数である。コスト関数は、例えば、
【数7】
である。
【0031】
ネットワークをトレーニングするとき、符号化及び復号化関数のパラメータは、コスト関数が最小になるまで調整される。パラメータに関してコスト関数を最小化する方法は文献に容易に見いだされ、基本的には非線形共役勾配法又は準ニュートン法等の任意の最適化法を用いることができる。本発明による構造の総コスト関数は、コスト関数が決定される1つ以上のレイヤからのコスト関数項の和として定義されてもよい。
【0032】
上記の説明から既に明らかになったように、ニューラルネットワーク構造の各レイヤにコスト関数を実装する必要はない。1つのコスト関数のみが構造に配置されていてもよく、又は、コスト関数、すなわちコスト関数項が構造内の各レイヤ又はこれらの2つの間のいずれかに配置されていてもよい。複数レイヤのコスト関数は、ニューラルネットワークがトレーニングされているときに学習をスピードアップするが、より多くのコンピューティングリソースを必要とする可能性がある。本発明によれば、ニューラルネットワーク構造、すなわちその中の関数に対するパラメータを決定するために、各レイヤからコスト関数項を合計し、総コスト関数を最小にすることが有利である。
【0033】
また、標準的な教師ありコスト関数を最上位レイヤに単に追加して、ターゲット出力との距離を測定してもよい。勾配は符号化経路に沿って後方に伝播するので、この構造は教師あり学習に完全に適合する。この構造のニューラルネットワークは、教師なし方法と教師あり方法の両方でトレーニングされる。
【0034】
実際には、ニューラルネットワーク構造の記述において上述したような関数と操作の実行は、ニューラルネットワークをトレーニングするように配置された計算ユニットにおいて実行されてもよい。そのような計算ユニット510が
図5に示されている。計算ユニット510は、プロセッサ等の1つ又は複数の処理ユニット520と、1つ又は複数のメモリユニット530とを備えることができる。上述の関数と操作は、メモリユニット530に記憶されたコンピュータプログラムコードの一部として定義される。コンピュータプログラムコードの一部が処理ユニット520によって実行されるとき、上述の関数と操作は、レイヤ順等の所定の順序で実行されるように配置される。関数と操作は、一実施形態によれば、1つ又は複数のプロセッサによって実行されてもよい。関数又は操作の結果は、プロセッサ内の次の関数又は操作への入力とみなすことができ、また、複数のプロセッサの場合は、中間結果、つまり関数又は操作の結果が、例えば、メモリを通して直接的又は間接的にプロセッサ間を転送されてもよい。メモリユニット530は、関数と操作の少なくともいくつかの出力を少なくとも一時的に記憶するように構成されてもよいが、総コスト関数の最適解が達成され得るような少なくとも関数のパラメータを記憶するように構成されてもよい。既に述べたように、1つ又は複数のメモリユニット530は、コンピュータプログラムコードの少なくともいくつかの部分がプロセッサ内で実行されるときに、説明したように関数又は操作をプロセッサに実行させるコンピュータプログラムコードの少なくともいくつかの部分を記憶するように有利に配置される。ここでの最適解は、所定の方法で、例えば、復号化ブロックの出力と入力信号との差が所定の制限以下であるように、構造に対して定義された総コスト関数を最小化することを指す。したがって、本発明の結果は、ニューラルネットワーク構造のパラメータが生成され、ひいては、ニューラルネットワークがアプリケーション内で使用されるときに利用され得ることである。計算ユニット510は、トレーニングが実行される所定のタスクを実行するように構成された任意の外部構成要素へ、定義されたパラメータを提供するように、例えば、送信するように構成される。
【0035】
次に、本発明を、画像分類及び検索アプリケーションとの関連において例示的に説明する。
【0036】
本実施例では、本発明は、例えば画像データベースから類似の画像を検索するために、デジタル画像を自動的に分類するタスクで使用される。
【0037】
図3に示す構造を有するニューラルネットワークは、3つのカラーチャネルr、g及びbのピクセルデータからなるデジタル画像を分類するようにトレーニングされる。まず、画像はこの種のタスクのために典型的な方法で前処理される。各画像は、サイズ10×10ピクセルの小さな画像又は「パッチ」に分割される。このような各パッチは、300個の数値(3つの色値×10×10ピクセル)の入力データベクトルを構成する。入力データベクトルは、その値から平均値を差し引いて正規化され、白色化変換を使用して白色化される。
【0038】
トレーニングされるニューラルネットワークは、
図3による構造に設定される。この例では、破損ステップ110は、分散1のガウス雑音を入力データベクトルに加えることによって行われる。
【0039】
この例では、符号化関数f1 120及びf2 130は、
fi=r(Aixi−bi)
として選択され、rは整流器(rectifier)関数、Aiとbiはパラメータ行列、xiは符号化関数への入力、iはレイヤ数を表し、この例では、ベースレイヤの復号化関数g0は、
g0=B´x´+B0h0+b0
となるように選択され、ここでx´は破損した入力であり、h0はg1の出力であり、B´、B0及びb0はパラメータ行列であり、この例では、追加のレイヤの復号化関数giは、
gi=hi*s(Bixi+bi)
として選択され、ここで、*は要素単位の乗算を示し、Bi及びbiはパラメータ行列を示し、コスト関数Cは、
【数8】
として選択される。
【0040】
ネットワークは、コスト関数の合計を最小化することによってトレーニングされる(
図3ではそのようなものとしては示されていない)。トレーニングの前に、パラメータ行列とベクトルAi、B´、Bi、biはランダムな値に初期化される。一般的に言えば、パラメータ行列のサイズはアプリケーションに依存する。この例では、A1はサイズ300×400、A2は400×15の行列であって、他の行列の次元を決定する。したがって、ニューラルネットワークの出力は長さ15のベクトルである。
【0041】
次に、この例では、ネットワークは、最適化されるパラメータとしてのパラメータ行列及びベクトルとトレーニングデータとして前処理された画像パッチとを用いて、ネットワーク内のコスト関数の総和を最小化するように設定された周知の勾配降下法を使用してトレーニングされる。
【0042】
トレーニングが完了した後、パラメータの最適化された値は、高レベルの特徴を有する画像パッチを表現することを学んだトレーニングされたニューラルネットワークのパラメータを構成する。本発明を明確に実証するために簡略化されているこの例では、符号化関数f1によって生成される特徴は、画像内のエッジ及び他の同様の急峻な遷移に概ね対応し、符号化関数f2によって生成されるより高いレベルの特徴は、画像内のそのような特徴の存在の指示に対応するが、画像中のどこに正確に現れるかについては不変である。これは、構造内のラテラル(lateral)接続がこれらのより位置不変のより高いレベルの特徴を学習することを可能にした点において、本発明の重要な側面を例示するものである。
【0043】
トレーニングされたニューラルネットワークは、新しい画像を同じ方法で前処理し、これらのパラメータと新しく前処理されたデータを入力として符号化関数を評価することによって、更に新しい画像を分類するために使用されてもよい。同様の画像は同様の出力ベクトルを生成する。構造内のラテラル接続により、ニューラルネットワークは位置不変のより高いレベルの特徴を学習することができているので、わずかに異なる位置にある同じ物体(object)の画像は同様の出力ベクトルを生成し、同様に分類されるので、したがって、例えば、検索アプリケーションで見つけることができる。
【0044】
この例では、教師なし学習のみを対象としているが、教師あり学習も組み込むことができる。例えば、いくつかの画像パッチがラベル付けされていてもよい。この情報は、最上位レイヤの符号化関数の符号化された出力データと現在の入力データのラベルとを入力として受け取るように、最上位レイヤのコスト関数に平行なコスト関数項Csを追加することによって考慮することができる。入力データがラベル付けされていない場合は、Csの出力を0に設定してもよい。ここで、ニューラルネットワークがトレーニングされるとき、入力画像パッチがラベル付けされている場合には、ネットワークは教師なしの方法でデータから表現を学習し、一方、教師あり学習のコスト関数項Csは、ラベルが付けられた正しい分類に近づける分類結果をもたらす表現に学習を導く。この例では、ラベルは長さ15のベクトル、例えば、15ビットであり、1つのビットは、画像が15のクラスのうちの1つに属するとラベル付けされている場合には1であり、そうでない場合には0である。次に、ニューラルネットワークの出力ベクトルは、例えば、ソフトマックス(softmax)関数により正規化された後、入力画像がこのクラスに属する確率として解釈されてもよく、Csは、例えば出力とラベルのクロスエントロピーとして計算されてもよい。
【0045】
この例では、単純なMLPスタイルのニューラルネットワークが使用されたが、本発明は他のタイプのニューラルネットワークにも等しく適用可能である。例えば、畳み込みネットワーク(convolutional network)は、この例のような画像処理とパターン認識アプリケーションでの機械学習アプリケーションで広く使用されている。本発明は、パラメータが畳み込みカーネルであり畳み込みとなる符号化関数を選択すること及びネットワークを同様の仕方でトレーニングすることによって、簡単に畳み込みネットワークに適用することができる。
【0046】
前の例におけるトレーニングされたニューラルネットワークの最後のアプリケーションは、符号化関数fの学習されたパラメータのみを利用したが、復号化関数gの学習されたパラメータもまた、アプリケーションにおいて利用されてもよい。本発明の応用の別の例として、トレーニングされたニューラルネットワークを使用して、「サンプリングする」ことによって入力データ内の欠落したデータを埋めるためのシステムを作成するために本発明を使用することができるアプリケーションを考える。この例では、入力データは写真で構成され、トレーニングされたネットワークは、他の破損した写真の穴を埋めるために使用される。ニューラルネットワークの前処理とトレーニングは、前の例と同様に行うことができるが、破損ステップ110は、破損が破損した写真の破損と類似するように修正される。例えば、ガウス雑音を付加する代わりに写真に小さな穴がある場合、入力データのランダムに選択された範囲はゼロに設定され、すなわち入力データに「穴」が挿入される。あるいは、初期推定が、例えば、後でアプリケーションを高速化することとなる「穴」の「エッジ」でのピクセル値の平均であるデータにより前もって提供されている。トレーニングを受けた、ニューラルネットワークは、破損した入力データの穴を新たに生成されたデータで埋めることを効果的に学習する。ニューラルネットワークはトレーニングされた後ソフトウェアプログラムに組み込まれることができ、ユーザが写真を提供して、この例では、生成されたデータで塗りつぶされるために写真のピクセル領域をマークする。トレーニングされたネットワーク(すなわち、符号化と復号化関数)が、入力データとして提供された写真により評価されると、復号化関数210の出力は、マークされた領域が「サンプリングされた」生成されたデータで満たされたデータのバージョンを生成する。次に、マークされた領域の画素値が復号化関数210の出力から選択されるように、他の領域のピクセル値が元のユーザ提供写真から選択されるように、今度は元のユーザ提供写真と復号化関数210の出力とを組み合わせて破損ステップ110を置き換えることにより、この手順は更に反復される。
【0047】
本発明によるニューラルネットワーク構造は、ニューラルネットワークのトレーニングを少なくとも改善するという点で、従来技術のソリューションに勝る利点を提供する。これは、上記の画像例の不変特徴等の抽象的特徴の上位レイヤへの学習と教師あり学習ソリューションのコスト関数と共にソリューションの効果的な協力とを可能にする復号化関数へのラテラル入力によって達成される。更に、上位レイヤに配置されたコスト関数項は、ニューラルネットワークの学習を促進し、加速する。したがって、本発明の利点は、従来技術に勝ることは明らかである。
【0048】
上記説明で説明した特徴は、明示的に説明した組み合わせ以外の組み合わせで使用することができる。関数は特定の特徴を参照して説明されているが、それらの関数は記載されているか否かに関係なく他の関数によっても実行可能である。特徴は、特定の実施形態を参照して記載されているが、記載されているか否かにかかわらず、他の実施形態において表現されていてもよい。