(57)【特許請求の範囲】
【請求項１】
ベースレイヤと第２レイヤとを有するトレーニング可能なニューラルネットワーク構造であって、
前記ベースレイヤは、
前記ニューラルネットワーク構造の入力データを破損するための破損関数と、
復号化関数と、
コスト関数と、
を有し、
前記第２レイヤは、
符号化関数と、
復号化関数と、
を有し、
破損した入力データは、前記第２レイヤの前記符号化関数への入力として供給されるように構成され、
符号化された破損した入力データは、前記第２レイヤの前記復号化関数への入力として供給されるように構成され、
前記ニューラルネットワーク構造の前記破損した入力データと前記第２レイヤの前記復号化関数の出力とは、前記ベースレイヤの前記復号化関数への入力として供給されるように構成され、前記破損した入力データは前記ベースレイヤの前記復号化関数へのラテラル入力となり、
前記ベースレイヤの前記復号化関数の出力と前記ニューラルネットワーク構造の前記入力データとは、前記ベースレイヤの前記コスト関数への入力として供給されるように構成される、ことを特徴とするニューラルネットワーク構造。
【請求項２】
前記第２レイヤは、コスト関数を更に有し、
前記第２レイヤの前記復号化関数の出力と前記第２レイヤの前記符号化関数を用いて符号化された前記ニューラルネットワーク構造の前記入力データとは、前記コスト関数への入力として供給されるように構成される、ことを特徴とする請求項１に記載のニューラルネットワーク構造。
【請求項３】
前記ニューラルネットワーク構造は、少なくとも１つの追加第２レイヤを更に有し、
前記少なくとも１つの追加第２レイヤのそれぞれは、前の前記第２レイヤに接続されるように配置され、
前の前記第２レイヤの前記符号化関数の出力は、前記少なくとも１つの追加第２レイヤの符号化関数への入力として供給されるように構成され、
前記少なくとも１つの追加第２レイヤの前記符号化関数の出力と上位レイヤの復号化関数の出力とは、前記少なくとも１つの追加第２レイヤの復号化関数への入力として供給されるように構成される、ことを特徴とする請求項１又は２に記載のニューラルネットワーク構造。
【請求項４】
前記少なくとも１つの追加第２レイヤは、コスト関数を更に有し、
同じ前記少なくとも１つの追加第２レイヤの前記復号化関数の出力と、問題としている前記少なくとも１つの追加第２レイヤの前の各レイヤの符号化関数で符号化された前記ニューラルネットワーク構造の前記入力データとは、 前記少なくとも１つの追加第２レイヤの前記少なくとも１つのコスト関数への入力として供給されるように構成される、ことを特徴とする請求項３に記載のニューラルネットワーク構造。
【請求項５】
請求項１〜４のいずれか１項に記載のニューラルネットワーク構造をトレーニングするための方法であって、
前記構造に入力データを入力することによって前記ニューラルネットワーク構造がトレーニングされるとき、前記ニューラルネットワーク構造に対して定義されたコスト関数が最小化されるように、少なくとも１つのレイヤの少なくとも１つの関数の少なくとも１つのパラメータを調整するステップ、を有する方法。
【請求項６】
レイヤ固有のコスト関数の入力データが比較されること、を特徴とする請求項５に記載の方法。
【請求項７】
前記構造に対して定義されるコスト関数は、ニューラルネットワーク構造内の少なくとも１つのレイヤに対して定義されたレイヤ固有のコスト関数の合計であること、を特徴とする請求項５又は６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にニューラルネットワークの技術分野に関する。特に、本発明は、ネットワークのトレーニングを改善するニューラルネットワーク構造に関する。
【背景技術】
【０００２】
機械学習法は、例えば、マシンビジョン、パターン認識、ロボット工学、制御システム、自動化等の現代技術で広く利用されている。このようなアプリケーションでは、機械学習は、入力データを処理するためのシステム又は装置のコンピュータ実装の部分で使用される。
【０００３】
機械学習法の分類の１つは、「教師あり」及び「教師なし」学習に分けることである。教師あり学習は、与えられた入力から所定の出力を生成する方法を見つける、又は「学習する」ことを目的とする、例えば、入力画像のセットを、画像が属するラベル付きカテゴリに正しく分類する。教師なし学習は、多くの場合、特徴を使用して、入力データの構造を表現することを目的とする。得られた特徴は、分類タスクのための入力として、又は、更に教師あり学習のための初期化として使用することができる。
【０００４】
機械学習の分野におけるソリューションを開示する広範囲の先行技術が存在する。例えば、ビンセントらの第２５回機械学習に関する国際会議（ICML'2008）における講演において、ノイズ除去オートエンコーダを使用した強力な機能の抽出と作成では、ノイズによってシステム全体の入力を壊すようにノイズ除去オートエンコーダが配置された機械学習ソリューションを紹介している。学習は入力のきれいなバージョンを破損したトップダウンのアクティベーションに一致させる。ボトムアップは、最上位レイヤでトップダウンにコピーされる。
【０００５】
ベンジオの「オートエンコーダがターゲット伝播を介してディープネットワークでクレジット割り当てを行う仕組み（How auto-encoders could provide credit assignment in deep networks via target propagation）」２０１４は、順々に、ネットワークの多くのレベルにおける複数のコスト関数を開示するが、一貫したコスト関数を持たず、逆方向への誤差を伝播しない。ボトムアップは、最上位レイヤでのみトップダウンにコピーされる。
【０００６】
更に、欧州特許公報第２１２６８０１号に記載されている機械学習システムは、情報を選択して学習を誘導する、緊急の注意報のようなプロセスを示す。これに記載された方法の１つの重要な側面は、自動学習プロセスを導くための２次入力情報、すなわち「コンテキスト」の利用である。
【０００７】
しかし、従来技術のソリューションには依然としていくつかの欠点がある。すなわち、特に欧州特許公報第２１２６８０１号で導入されたソリューションの観点からの主な問題は、コンテキストが、同じ情報を表すように隣接する処理ユニットを駆動してしまうである。非相関は、単一の処理ユニット内で動作し、これを１つのユニット内で起こらないようにするが、計算上非常に要求が厳しいので、大規模なネットワーク内のすべてのユニット間の非相関は実用的ではない。この問題は、異なる処理ユニットが異なる入力セットを受け取ることを要求することによって軽減することができるが、多くの場合、これは厳しい制限である。
【０００８】
更に、深層ニューラルネットワークにおける教師なし学習のための従来技術のソリューションは、遅れており、特に抽象的な特徴を学習することに挑戦している。更に、そのようなソリューションは教師あり学習とはうまく適合しない。
【０００９】
コンテキスト接続は、（ボトムアップ情報以外の）他のソースからの相関情報を理想的に伝えなければならない。この課題の一つの見方は、どの情報が他のソースから来ているのか、及び、どれがネットワーク内で異なる経路をとったボトムアップ情報の単なるコピーなのかを認識できないことに起因するとするものである。したがって、機械学習ソリューションを開発する必要があり、特に、既存のシステムの前述の欠点を緩和し、ニューラルネットワークのトレーニングを改善するニューラルネットワーク構造を導入する必要がある。
【００１０】
したがって、機械学習ソリューションを開発する必要があり、特に、既存のシステムの前述の欠点を緩和し、ニューラルネットワークのトレーニングを改善するニューラルネットワーク構造を導入する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、改良されたトレーニング可能なニューラルネットワーク構造と、ニューラルネットワーク構造のトレーニングを改良する方法とを提示することである。
【００１２】
本発明の目的は、それぞれの独立請求項によって定義されるニューラルネットワーク構造及び方法によって達成される。
【課題を解決するための手段】
【００１３】
第１の態様によれば、ベースレイヤと第２レイヤとを備えるトレーニング可能なニューラルネットワーク構造が提供され、ベースレイヤは、ニューラルネットワーク構造の入力データを破損（corrupting）するための破損関数（corruption function）、復号化関数（decoding function）、及びコスト関数（cost function）を有し、第２レイヤは、符号化関数（encoding function）と復号化関数を有し、破損した入力データは第２レイヤの符号化関数への入力として供給されるように構成され、符号化された破損した入力データは第２レイヤの復号化関数に入力として供給されるように構成され、ニューラルネットワーク構造の破損した入力データと第２レイヤの復号化関数の出力は、ベースレイヤの復号化関数への入力として供給されるように構成され、ベースレイヤの復号化関数の出力とニューラルネットワークの入力データは、ベースレイヤのコスト関数への入力として供給されるように構成される。
【００１４】
ニューラルネットワーク構造の第２レイヤは、コスト関数を更に有してもよく、第２レイヤのための復号化関数の出力と第２レイヤの符号化関数を用いて符号化されたニューラルネットワーク構造の入力データは、コスト関数への入力として供給されるように構成される。
【００１５】
ニューラルネットワーク構造は、少なくとも１つの追加第２レイヤを更に有し、少なくとも１つの追加第２レイヤのそれぞれは、前の第２レイヤに接続されるように配置され、前の第２レイヤの符号化関数の出力は、少なくとも1つの追加第２レイヤの符号化関数への入力として供給されるように構成され、少なくとも1つの追加第２レイヤの符号化関数の出力と上位レイヤの復号化関数の出力とは、少なくとも1つの追加第２レイヤの復号化関数への入力として供給されるように構成される。
【００１６】
少なくとも１つの追加第２レイヤは、コスト関数を更に有してもよく、同じ少なくとも１つの追加第２レイヤの復号化関数の出力と、問題としている少なくとも１つの追加第２レイヤの前の各レイヤの符号化関数で符号化されたニューラルネットワーク構造の入力データとは、少なくとも１つの追加第２レイヤの少なくとも１つのコスト関数への入力として供給されるように構成される。
【００１７】
第２の形態によれば、上記のようなニューラルネットワーク構造をトレーニングする方法が提供され、該方法は、ニューラルネットワークがトレーニングされるとき、ニューラルネットワーク構造に対して定義されたコスト関数が最小化されるように、少なくとも１つのレイヤの少なくとも１つの少なくとも１つの関数の少なくとも１つのパラメータを調整するステップを含む。
【００１８】
レイヤ固有のコスト関数の入力データが比較されてもよい。
【００１９】
構造に対して定義されるコスト関数は、ニューラルネットワーク構造内の少なくとも１つのレイヤに対して定義されたレイヤ固有のコスト関数の合計であってもよい。
【００２０】
本願に提示された本発明の例示的な実施形態は、添付の特許請求の範囲の適用可能性を制限すると解釈されるべきではない。「含む」という動詞は、本特許出願において、未記載の特徴も存在することを排除しないオープンな制限として使用される。従属請求項に記載された特徴は、他に明白に述べられていない限り、相互に自由に組み合わせ可能である。
【００２１】
本発明の特徴と考えられる新規な特徴は、特に添付の特許請求の範囲に記載されている。しかしながら、本発明自体は、構成及び動作方法の両方に関して、付加的な目的及び利点と共に、添付の図面に関連して読まれる特定の実施形態の以下の説明から最もよく理解されるであろう。
【図面の簡単な説明】
【００２２】
【図１】本発明によるニューラルネットワーク構造の第１の例を概略的に示す図である。
【図２】本発明によるニューラルネットワーク構造の別の例を概略的に示す図である。
【図３】本発明によるニューラルネットワーク構造の更に別の例を概略的に示す図である。
【図４】本発明によるニューラルネットワーク構造の基本的な構造を概略的に示す図である。
【図５】本発明によるコンピューティングユニットの一例を概略的に示す図である。
【発明を実施するための形態】
【００２３】
本発明は、ニューラルネットワークの効率的なトレーニングを可能にするニューラルネットワーク構造を開示する。図１は、本発明の一実施形態によるニューラルネットワーク構造を概略的に示す。図１に示すように、ニューラルネットワーク構造は、ベースレイヤ１０及び第２レイヤ２０を含む。ベースレイヤ１０は、順に、破損関数１１０と、復号化関数２１０と、コスト関数３１０とを備える。第２レイヤ２０は、図１に示すように、符号化関数１２０及び復号化関数２２０を含む。入力データはニューラルネットワークに送られる。入力データは、破損関数１１０に送られる。第２レイヤ２０の符号化関数１２０は、入力として破損した入力データを受け取る。さらに、第２レイヤ２０の復号化関数２２０は、第２レイヤ２０の符号化関数１２０で符号化された破損した入力データを入力として受け取る。第２レイヤ２０の復号化関数２２０の出力は、復号化関数２１０へのラテラル（lateral）入力となるニューラルネットワーク構造の破損した入力データと共に、ベースレイヤ１０の復号化関数２１０への入力となる。ベースレイヤ１０のコスト関数３１０は、ベースレイヤ１０の復号化関数２１０の出力とニューラルネットワークの入力データとを入力として受け取る。わかりやすくするために、図１に示す構造は、ベースレイヤからの１つのコスト関数項のみを含むコスト関数を含んでもよい。
【００２４】
図１に示すニューラルネットワーク構造は、構造に１つ又は複数の第２レイヤを追加することによって、本発明の思想の範囲内で変更することができる。図２は、本発明の一実施形態によるニューラルネットワーク構造が第１の２レイヤ２０に加えて１つの追加第２レイヤ３０を含む本発明の実施形態を示す。追加第２レイヤ３０は、追加第２レイヤの符号化関数１３０と、追加第２レイヤの復号化関数２３０とを含む。追加第２レイヤ３０の符号化関数１３０は、第１の第２レイヤの符号化関数１２０の出力から入力を受け取る。更に、追加第２レイヤ３０の符号化関数１３０の出力は、追加第２レイヤ３０の復号化関数２３０の入力に送られる。図２の本発明の実施形態では、第１の第２レイヤ２０の復号化関数２２０は、入力として、別の第２レイヤ３０の復号化関数２３０の出力と、復号化関数２２０へのラテラル入力となる第１の第２レイヤの符号化関数１２０の出力とを受け取る。
【００２５】
図３に、更なる本発明の実施形態を概略的に示す。この実装では、各第２レイヤ、すなわち、第１の第２レイヤ２０及び別の第２レイヤ３０について、更にコスト関数３２０、３３０が配置される。第１の第２レイヤ２０のコスト関数３２０は、第１の第２レイヤ２０の復号化関数２２０の出力からと、第１の第２レイヤ２０の符号化関数１２０で符号化されたニューラルネットワーク構造の入力から入力を受け取る。同様に、別の第２レイヤ３０のコスト関数３３０は、別の第２レイヤ３０の復号化関数２３０の出力からと、第１の第２レイヤ２０の符号化関数１２０の出力を符号化するように配置された別の第２レイヤ２０の符号化関数１３０の出力とから入力を受け取る。図３に示されているような構造の総コストは、構造内に実装されたレイヤから、コスト関数すなわちレイヤ固有のコスト関数を合計することによって導き出してもよい。
【００２６】
図４は、本発明によるニューラルネットワークの基本的な構造を概略的に示す。原理的には、この構造は４つのブロックからなる。 第１のブロック４１０は、破損した入力
【数１】
0006564049.tif 000002
に所定の符号化関数を実行するように配置された符号化経路である。図４のシンボル
【数２】
0006564049.tif 000003
は、符号化関数の出力を参照する。第２のブロック４２０は、第１のブロック４１０と前の復号化関数からの入力、すなわちラテラル入力に対して、所定の復号化関数を実行するように配置された復号化経路又は雑音除去経路である。図４のシンボル
【数３】
0006564049.tif 000004
は、復号化関数の出力を参照する。第４のブロック４４０は、ニューラルネットワークの入力ｘ（ｔ）に（すなわちクリーン入力）対して所定の符号化関数を実行するように配置されたもう１つの符号化経路である。図４のシンボルｈ1（ｔ）−ｈL（ｔ）は、第４のブロック４４０の符号化経路における符号化関数の出力を参照する。第３のブロック４３０は、コスト関数経路を参照し、第２のブロック４２０及び第４のブロック４４０から受け取った入力に対して、例えば、比較等の所定の機能を実行するように配置される。図４のシンボル Ｃ1−ＣLは、ニューラルネットワーク構造のコスト関数項を参照する。図４の概略図では、コスト関数がニューラルネットワーク構造の各レイヤに配置されていることが示されている。前述したように、本発明の全ての実装において必ずしもそうであるとは限らないが、第４のブロック４４０において必要な符号化関数にも影響を及ぼす。いずれにしても、本発明に関する構造に対する（全）コスト関数は、構造に実装されたレイヤからコスト関数項を合計することによって定義することができる。図４に関する議論を要約すると、本発明はラダー（ladder）型ニューラルネットワーク構造を開示する。
【００２７】
上述のように、符号化及び復号化関数は、入力データに所定の操作を実行するように配置されている。より具体的には、符号化関数ｆは、入力ｘを取り込み、出力として符号化された入力データを生成する。これは、マッピング（mapping）ｙ＝ｆ（ｘ）による「表現」ｙへの入力ｘの「マッピング」とも呼ばれる。
【００２８】
このようなマッピングは、例えば、
ｙ＝ｓ（Ｗｘ＋ｂ）
であって、Ｗとｂは符号化関数のパラメータであり、ｓはシグモイド又は双曲線正接関数等の非線形関数であり、ニューラルネットワークをトレーニングするとき、コスト関数が最小になるようにＷとｂが求められる。Ｗとｂはコンピュータメモリ又は記憶装置に記憶された数値の行列又はベクトルであり、ｙの式はコンピュータ上で評価される。
【００２９】
逆に、復号化関数ｇは、入力ｙを取り、符号化された入力データ
【数４】
0006564049.tif 000005
の「再構成」を出力として生成する同様のマッピングである。このようなマッピングは、例えば、
【数５】
0006564049.tif 000006
であって、Ｗ´とｂ´は復号化関数のパラメータであり、ｓはシグモイド関数又は双曲線正接関数のような非線形関数であり、パラメータはニューラルネットワークのトレーニングにおいて求められる。１つの選択肢は、ある規則で、例えば、Ｗ´を常にＷの転置行列とすることで、Ｗ´の値をＷの値に結び付けることである。ｙはｘの「劣化した（lossy）」表現であってもよいので、
【数６】
0006564049.tif 000007
も同様に元のデータの正確な再構成でなくともよい。
【００３０】
コスト関数Ｃは、復号化関数が符号化関数の入力データをいかにうまく再構成できるかを評価するために使用される関数である。コスト関数は、例えば、
【数７】
0006564049.tif 000008
である。
【００３１】
ネットワークをトレーニングするとき、符号化及び復号化関数のパラメータは、コスト関数が最小になるまで調整される。パラメータに関してコスト関数を最小化する方法は文献に容易に見いだされ、基本的には非線形共役勾配法又は準ニュートン法等の任意の最適化法を用いることができる。本発明による構造の総コスト関数は、コスト関数が決定される１つ以上のレイヤからのコスト関数項の和として定義されてもよい。
【００３２】
上記の説明から既に明らかになったように、ニューラルネットワーク構造の各レイヤにコスト関数を実装する必要はない。１つのコスト関数のみが構造に配置されていてもよく、又は、コスト関数、すなわちコスト関数項が構造内の各レイヤ又はこれらの２つの間のいずれかに配置されていてもよい。複数レイヤのコスト関数は、ニューラルネットワークがトレーニングされているときに学習をスピードアップするが、より多くのコンピューティングリソースを必要とする可能性がある。本発明によれば、ニューラルネットワーク構造、すなわちその中の関数に対するパラメータを決定するために、各レイヤからコスト関数項を合計し、総コスト関数を最小にすることが有利である。
【００３３】
また、標準的な教師ありコスト関数を最上位レイヤに単に追加して、ターゲット出力との距離を測定してもよい。勾配は符号化経路に沿って後方に伝播するので、この構造は教師あり学習に完全に適合する。この構造のニューラルネットワークは、教師なし方法と教師あり方法の両方でトレーニングされる。
【００３４】
実際には、ニューラルネットワーク構造の記述において上述したような関数と操作の実行は、ニューラルネットワークをトレーニングするように配置された計算ユニットにおいて実行されてもよい。そのような計算ユニット５１０が図５に示されている。計算ユニット５１０は、プロセッサ等の１つ又は複数の処理ユニット５２０と、１つ又は複数のメモリユニット５３０とを備えることができる。上述の関数と操作は、メモリユニット５３０に記憶されたコンピュータプログラムコードの一部として定義される。コンピュータプログラムコードの一部が処理ユニット５２０によって実行されるとき、上述の関数と操作は、レイヤ順等の所定の順序で実行されるように配置される。関数と操作は、一実施形態によれば、１つ又は複数のプロセッサによって実行されてもよい。関数又は操作の結果は、プロセッサ内の次の関数又は操作への入力とみなすことができ、また、複数のプロセッサの場合は、中間結果、つまり関数又は操作の結果が、例えば、メモリを通して直接的又は間接的にプロセッサ間を転送されてもよい。メモリユニット５３０は、関数と操作の少なくともいくつかの出力を少なくとも一時的に記憶するように構成されてもよいが、総コスト関数の最適解が達成され得るような少なくとも関数のパラメータを記憶するように構成されてもよい。既に述べたように、１つ又は複数のメモリユニット５３０は、コンピュータプログラムコードの少なくともいくつかの部分がプロセッサ内で実行されるときに、説明したように関数又は操作をプロセッサに実行させるコンピュータプログラムコードの少なくともいくつかの部分を記憶するように有利に配置される。ここでの最適解は、所定の方法で、例えば、復号化ブロックの出力と入力信号との差が所定の制限以下であるように、構造に対して定義された総コスト関数を最小化することを指す。したがって、本発明の結果は、ニューラルネットワーク構造のパラメータが生成され、ひいては、ニューラルネットワークがアプリケーション内で使用されるときに利用され得ることである。計算ユニット５１０は、トレーニングが実行される所定のタスクを実行するように構成された任意の外部構成要素へ、定義されたパラメータを提供するように、例えば、送信するように構成される。
【００３５】
次に、本発明を、画像分類及び検索アプリケーションとの関連において例示的に説明する。
【００３６】
本実施例では、本発明は、例えば画像データベースから類似の画像を検索するために、デジタル画像を自動的に分類するタスクで使用される。
【００３７】
図３に示す構造を有するニューラルネットワークは、３つのカラーチャネルｒ、ｇ及びｂのピクセルデータからなるデジタル画像を分類するようにトレーニングされる。まず、画像はこの種のタスクのために典型的な方法で前処理される。各画像は、サイズ１０×１０ピクセルの小さな画像又は「パッチ」に分割される。このような各パッチは、３００個の数値（３つの色値×１０×１０ピクセル）の入力データベクトルを構成する。入力データベクトルは、その値から平均値を差し引いて正規化され、白色化変換を使用して白色化される。
【００３８】
トレーニングされるニューラルネットワークは、図３による構造に設定される。この例では、破損ステップ１１０は、分散１のガウス雑音を入力データベクトルに加えることによって行われる。
【００３９】
この例では、符号化関数ｆ１  １２０及びｆ２  １３０は、
ｆｉ＝ｒ（Ａｉｘｉ−ｂｉ）
として選択され、ｒは整流器（rectifier）関数、Ａｉとｂｉはパラメータ行列、ｘｉは符号化関数への入力、ｉはレイヤ数を表し、この例では、ベースレイヤの復号化関数ｇ０は、
ｇ０＝Ｂ´ｘ´＋Ｂ０ｈ０＋ｂ０
となるように選択され、ここでｘ´は破損した入力であり、ｈ０はｇ１の出力であり、Ｂ´、Ｂ０及びｂ０はパラメータ行列であり、この例では、追加のレイヤの復号化関数ｇｉは、
ｇｉ＝ｈｉ＊ｓ（Ｂｉｘｉ＋ｂｉ）
として選択され、ここで、＊は要素単位の乗算を示し、Ｂｉ及びｂｉはパラメータ行列を示し、コスト関数Ｃは、
【数８】
0006564049.tif 000009
として選択される。
【００４０】
ネットワークは、コスト関数の合計を最小化することによってトレーニングされる（図３ではそのようなものとしては示されていない）。トレーニングの前に、パラメータ行列とベクトルＡｉ、Ｂ´、Ｂｉ、ｂｉはランダムな値に初期化される。一般的に言えば、パラメータ行列のサイズはアプリケーションに依存する。この例では、Ａ１はサイズ３００×４００、Ａ２は４００×１５の行列であって、他の行列の次元を決定する。したがって、ニューラルネットワークの出力は長さ１５のベクトルである。
【００４１】
次に、この例では、ネットワークは、最適化されるパラメータとしてのパラメータ行列及びベクトルとトレーニングデータとして前処理された画像パッチとを用いて、ネットワーク内のコスト関数の総和を最小化するように設定された周知の勾配降下法を使用してトレーニングされる。
【００４２】
トレーニングが完了した後、パラメータの最適化された値は、高レベルの特徴を有する画像パッチを表現することを学んだトレーニングされたニューラルネットワークのパラメータを構成する。本発明を明確に実証するために簡略化されているこの例では、符号化関数ｆ１によって生成される特徴は、画像内のエッジ及び他の同様の急峻な遷移に概ね対応し、符号化関数ｆ２によって生成されるより高いレベルの特徴は、画像内のそのような特徴の存在の指示に対応するが、画像中のどこに正確に現れるかについては不変である。これは、構造内のラテラル（lateral）接続がこれらのより位置不変のより高いレベルの特徴を学習することを可能にした点において、本発明の重要な側面を例示するものである。
【００４３】
トレーニングされたニューラルネットワークは、新しい画像を同じ方法で前処理し、これらのパラメータと新しく前処理されたデータを入力として符号化関数を評価することによって、更に新しい画像を分類するために使用されてもよい。同様の画像は同様の出力ベクトルを生成する。構造内のラテラル接続により、ニューラルネットワークは位置不変のより高いレベルの特徴を学習することができているので、わずかに異なる位置にある同じ物体（object）の画像は同様の出力ベクトルを生成し、同様に分類されるので、したがって、例えば、検索アプリケーションで見つけることができる。
【００４４】
この例では、教師なし学習のみを対象としているが、教師あり学習も組み込むことができる。例えば、いくつかの画像パッチがラベル付けされていてもよい。この情報は、最上位レイヤの符号化関数の符号化された出力データと現在の入力データのラベルとを入力として受け取るように、最上位レイヤのコスト関数に平行なコスト関数項Ｃｓを追加することによって考慮することができる。入力データがラベル付けされていない場合は、Ｃｓの出力を０に設定してもよい。ここで、ニューラルネットワークがトレーニングされるとき、入力画像パッチがラベル付けされている場合には、ネットワークは教師なしの方法でデータから表現を学習し、一方、教師あり学習のコスト関数項Ｃｓは、ラベルが付けられた正しい分類に近づける分類結果をもたらす表現に学習を導く。この例では、ラベルは長さ１５のベクトル、例えば、１５ビットであり、１つのビットは、画像が１５のクラスのうちの１つに属するとラベル付けされている場合には１であり、そうでない場合には０である。次に、ニューラルネットワークの出力ベクトルは、例えば、ソフトマックス（softmax）関数により正規化された後、入力画像がこのクラスに属する確率として解釈されてもよく、Ｃｓは、例えば出力とラベルのクロスエントロピーとして計算されてもよい。
【００４５】
この例では、単純なＭＬＰスタイルのニューラルネットワークが使用されたが、本発明は他のタイプのニューラルネットワークにも等しく適用可能である。例えば、畳み込みネットワーク（convolutional network）は、この例のような画像処理とパターン認識アプリケーションでの機械学習アプリケーションで広く使用されている。本発明は、パラメータが畳み込みカーネルであり畳み込みとなる符号化関数を選択すること及びネットワークを同様の仕方でトレーニングすることによって、簡単に畳み込みネットワークに適用することができる。
【００４６】
前の例におけるトレーニングされたニューラルネットワークの最後のアプリケーションは、符号化関数ｆの学習されたパラメータのみを利用したが、復号化関数ｇの学習されたパラメータもまた、アプリケーションにおいて利用されてもよい。本発明の応用の別の例として、トレーニングされたニューラルネットワークを使用して、「サンプリングする」ことによって入力データ内の欠落したデータを埋めるためのシステムを作成するために本発明を使用することができるアプリケーションを考える。この例では、入力データは写真で構成され、トレーニングされたネットワークは、他の破損した写真の穴を埋めるために使用される。ニューラルネットワークの前処理とトレーニングは、前の例と同様に行うことができるが、破損ステップ１１０は、破損が破損した写真の破損と類似するように修正される。例えば、ガウス雑音を付加する代わりに写真に小さな穴がある場合、入力データのランダムに選択された範囲はゼロに設定され、すなわち入力データに「穴」が挿入される。あるいは、初期推定が、例えば、後でアプリケーションを高速化することとなる「穴」の「エッジ」でのピクセル値の平均であるデータにより前もって提供されている。トレーニングを受けた、ニューラルネットワークは、破損した入力データの穴を新たに生成されたデータで埋めることを効果的に学習する。ニューラルネットワークはトレーニングされた後ソフトウェアプログラムに組み込まれることができ、ユーザが写真を提供して、この例では、生成されたデータで塗りつぶされるために写真のピクセル領域をマークする。トレーニングされたネットワーク（すなわち、符号化と復号化関数）が、入力データとして提供された写真により評価されると、復号化関数２１０の出力は、マークされた領域が「サンプリングされた」生成されたデータで満たされたデータのバージョンを生成する。次に、マークされた領域の画素値が復号化関数２１０の出力から選択されるように、他の領域のピクセル値が元のユーザ提供写真から選択されるように、今度は元のユーザ提供写真と復号化関数２１０の出力とを組み合わせて破損ステップ１１０を置き換えることにより、この手順は更に反復される。
【００４７】
本発明によるニューラルネットワーク構造は、ニューラルネットワークのトレーニングを少なくとも改善するという点で、従来技術のソリューションに勝る利点を提供する。これは、上記の画像例の不変特徴等の抽象的特徴の上位レイヤへの学習と教師あり学習ソリューションのコスト関数と共にソリューションの効果的な協力とを可能にする復号化関数へのラテラル入力によって達成される。更に、上位レイヤに配置されたコスト関数項は、ニューラルネットワークの学習を促進し、加速する。したがって、本発明の利点は、従来技術に勝ることは明らかである。
【００４８】
上記説明で説明した特徴は、明示的に説明した組み合わせ以外の組み合わせで使用することができる。関数は特定の特徴を参照して説明されているが、それらの関数は記載されているか否かに関係なく他の関数によっても実行可能である。特徴は、特定の実施形態を参照して記載されているが、記載されているか否かにかかわらず、他の実施形態において表現されていてもよい。
【図１】
0006564049.tif 000010
【図２】
0006564049.tif 000011
【図３】
0006564049.tif 000012
【図４】
0006564049.tif 000013
【図５】
0006564049.tif 000014