(57)【特許請求の範囲】
【請求項１】
複数の隠れ層を含むニューラルネットワークへの入力、及び、前記ニューラルネットワークへの前記入力のラベルを受信する入力インターフェースと、
前記ニューラルネットワークのパラメータを生成するのに、第１の層および第２の層で構成される二層に関する二層最適化を解くプロセッサであって、前記二層最適化は、前記第２の層の最適化を条件とする前記第１の層の最適化を含み、前記第１の層の前記最適化は、前記入力を処理する前記ニューラルネットワークの出力と、前記ニューラルネットワークへの前記入力の前記ラベルとの間の差を最小化し、前記第２の層の前記最適化は、前記入力と前記出力との間における前記複数の隠れ層内の各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化し、前記複数の隠れ層内の目下の層の前記入力ベクトルは、前記複数の隠れ層内の前記目下の層の直前の層の前記非負の出力ベクトルの線形変換である、プロセッサと、
前記ニューラルネットワークの前記パラメータを出力する出力インターフェースと、
を備える、コンピュータベースシステム。
【請求項２】
前記二層最適化を解くために、前記プロセッサは、
前記第２の層における目的関数を前記第１の層における目的関数に加算し、前記第２の層における制約を前記第１の層における制約と組み合わせることによって前記二層最適化を単一層最適化問題に変換することと、
前記単一層最適化問題を、交互最適化（ＡＯ）によって解くことと、
を行うように構成される、請求項１に記載のシステム。
【請求項３】
前記二層最適化を解くために、前記プロセッサは、
前記第２の層における目的関数を前記第１の層における目的関数に加算し、前記第２の層における制約を前記第１の層における制約と組み合わせることによって前記二層最適化を単一層最適化問題に変換することと、
前記単一層最適化問題において変数置換を実行して、前記ニューラルネットワークのアーキテクチャ及び前記パラメータを表す行列を含む、正則化項を有するティホノフ正則化問題を生成することと、
前記ティホノフ正則化問題を、ブロック座標降下を用いて解くことと、
を行うように構成される、請求項１に記載のシステム。
【請求項４】
前記入力インターフェースは、前記ニューラルネットワークの前記アーキテクチャを示すアーキテクチャ制約を受信し、前記プロセッサは、前記アーキテクチャ制約を条件として前記ティホノフ正則化問題を解く、請求項３に記載のシステム。
【請求項５】
前記プロセッサは、前記正則化項を前記ニューラルネットワークの層の数に初期化し、前記行列のブロックに対する接続性制約及び対称性制約を条件として前記ティホノフ正則化問題を解く、請求項３に記載のシステム。
【請求項６】
前記入力インターフェースは、前記ニューラルネットワークの層の前記数を受信する、請求項５に記載のシステム。
【請求項７】
前記二層最適化は、
【数１】
0006877623.tif 000018
となるような
【数２】
0006877623.tif 000019
であり、ここで、
【数３】
0006877623.tif 000020
は、第ｉのトレーニングデータであり、ｙｉ∈Ｙは、Ｙのセットからのラベルであり、
【数４】
0006877623.tif 000021
は、前記ニューラルネットワークにおける第ｎの（１≦ｎ≦Ｎ）隠れ層からのｘｉについての出力ベクトルであり、
【数５】
0006877623.tif 000022
は、第ｎの隠れ層と第ｍの隠れ層との間の重み行列であり、Ｍｎは、第ｎの隠れ層についてのインデックスセットであり、
【数６】
0006877623.tif 000023
は、最後の隠れ層と前記ニューラルネットワークの出力層との間の重み行列であり、Ｕ、Ｖ、Ｗは、非空の閉凸セットであり、
【数７】
0006877623.tif 000024
であり、ｌ（・，・）は、凸損失関数である、請求項１に記載のシステム。
【請求項８】
前記二層最適化を解くために、前記プロセッサは、
【数８】
0006877623.tif 000025
となるような
【数９】
0006877623.tif 000026
に従って、前記二層最適化の問題をティホノフ正則化問題に変換することであって、γｎ≧０、∀ｎは、事前定義された正則化定数であることと、
ｕ項及びγ項を行列Ｑに配置することによって変数置換を実行して、ティホノフ正則化目的関数を、
【数１０】
0006877623.tif 000027
として定式化することであって、ｕｉ、∀ｉは、
【数１１】
0006877623.tif 000028
となるような、隠れ出力と、前記ニューラルネットワークへの前記入力との連結ベクトルを示し、Ｐは、Ｐｕｉ＝ｕｉ，Ｎ、∀ｉとなるような、事前定義された定数行列であり、
【数１２】
0006877623.tif 000029
は、前記重み行列セット
【数１３】
0006877623.tif 000030
によって構築された行列であることと、
前記ティホノフ正則化問題を、ブロック座標降下を用いて解くことと、
を行うように構成される、請求項７に記載のシステム。
【請求項９】
前記ブロック座標降下を用いる前記プロセッサは、変数のセットを反復して決定し、反復ごとに、前記ブロック座標降下は、前記変数のセットから或る変数を更新する一方で、前記セット内の他の変数を固定する、請求項８に記載のシステム。
【請求項１０】
前記ニューラルネットワークを用いてコンピュータベースアプリケーションを実行するアプリケーションインターフェース、
を更に備える、請求項１に記載のシステム。
【請求項１１】
コンピュータベース方法であって、この方法は、前記方法を実施する記憶された命令に結合されたプロセッサを使用し、前記命令は、前記プロセッサによって実行されると、前記方法の少なくともいくつかのステップを実行し、前記方法は、
複数の隠れ層を含むニューラルネットワークへの入力のグラウンドトゥルースラベルを受信することと、
前記ニューラルネットワークへの前記入力を処理する前記ニューラルネットワークの出力と、前記ニューラルネットワークへの前記入力の前記グラウンドトゥルースラベルとの間の差を最小化する二層最適化問題を解いて、前記ニューラルネットワークのパラメータを生成することであって、第１の層および第２の層で構成される二層に関する前記二層最適化問題は、前記第２の層の最適化を条件とする前記第１の層の最適化を含み、前記第１の層の前記最適化は、前記入力を処理する前記ニューラルネットワークの出力と、前記ニューラルネットワークへの前記入力の前記グラウンドトゥルースラベルとの間の差を最小化し、前記第２の層の前記最適化は、前記入力と前記出力との間における前記複数の隠れ層内の各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化し、前記複数の隠れ層内の目下の層の前記入力ベクトルは、前記複数の隠れ層内の前記目下の層の直前の層の前記非負の出力ベクトルの線形変換であることと、
前記ニューラルネットワークの前記パラメータを出力することと、
を含む、方法。
【請求項１２】
前記解くことは、
前記第２の層における目的関数を前記第１の層における目的関数に加算し、前記第２の層における制約を前記第１の層における制約と組み合わせることによって前記二層最適化問題を単一層最適化問題に変換することと、
前記単一層最適化問題を、交互最適化（ＡＯ）によって解くことと、
を含む、請求項１１に記載の方法。
【請求項１３】
前記第２の層における目的関数を前記第１の層における目的関数に加算し、前記第２の層における制約を前記第１の層における制約と組み合わせることによって前記二層最適化問題を単一層最適化問題に変換することと、
前記単一層最適化問題において変数置換を実行して、前記ニューラルネットワークのアーキテクチャ及び前記パラメータを表す行列を含む、正則化項を有するティホノフ正則化問題を生成することと、
前記ティホノフ正則化問題を、ブロック座標降下を用いて解くことと、
を更に含む、請求項１１に記載の方法。
【請求項１４】
前記ニューラルネットワークの前記アーキテクチャを示すアーキテクチャ制約を受信することと、
前記アーキテクチャ制約を条件として前記ティホノフ正則化問題を解くことと、
を更に含む、請求項１３に記載の方法。
【請求項１５】
前記正則化項を前記ニューラルネットワークの層の数に初期化することと、
前記行列のブロックに対する接続性制約及び対称性制約を条件として前記ティホノフ正則化問題を解くことと、
を更に含む、請求項１３に記載の方法。
【請求項１６】
前記ニューラルネットワークの層の前記数を受信すること、
を更に含む、請求項１５に記載の方法。
【請求項１７】
前記二層最適化問題は、
【数１４】
0006877623.tif 000031
となるような
【数１５】
0006877623.tif 000032
であり、ここで、
【数１６】
0006877623.tif 000033
は、第ｉのトレーニングデータであり、ｙｉ∈Ｙは、Ｙのセットからのラベルであり、
【数１７】
0006877623.tif 000034
は、前記ニューラルネットワークにおける第ｎの（１≦ｎ≦Ｎ）隠れ層からのｘｉについての出力ベクトルであり、
【数１８】
0006877623.tif 000035
は、第ｎの隠れ層と第ｍの隠れ層との間の重み行列であり、Ｍｎは、第ｎの隠れ層についてのインデックスセットであり、
【数１９】
0006877623.tif 000036
は、最後の隠れ層と前記ニューラルネットワークの出力層との間の重み行列であり、Ｕ、Ｖ、Ｗは、非空の閉凸セットであり、
【数２０】
0006877623.tif 000037
であり、ｌ（・，・）は、凸損失関数である、請求項１１に記載の方法。
【請求項１８】
【数２１】
0006877623.tif 000038
となるような
【数２２】
0006877623.tif 000039
に従って、前記二層最適化問題をティホノフ正則化問題に変換することであって、γｎ≧０、∀ｎは、事前定義された正則化定数であることと、
ｕ項及びγ項を行列Ｑに配置することによって変数置換を実行して、ティホノフ正則化目的関数を、
【数２３】
0006877623.tif 000040
として定式化することであって、ｕｉ、∀ｉは、
【数２４】
0006877623.tif 000041
となるような、隠れ出力と、前記ニューラルネットワークへの前記入力との連結ベクトルを示し、Ｐは、Ｐｕｉ＝ｕｉ，Ｎ、∀ｉとなるような、事前定義された定数行列であり、
【数２５】
0006877623.tif 000042
は、前記重み行列セット
【数２６】
0006877623.tif 000043
によって構築された行列であることと、
前記ティホノフ正則化問題を、ブロック座標降下を用いて解くことと、
を更に含む、請求項１７に記載の方法。
【請求項１９】
前記ブロック座標降下を用いて前記解くことは、変数のセットを反復して解き、反復ごとに、前記ブロック座標降下は、前記変数のセットから或る変数を更新する一方で、前記セット内の他の変数を固定し、それにより、前記ブロック座標降下は、大域的に収束することが保証されるとともに、前記二層最適化問題のパラメータの空間における臨界点である解を返すようになっている、請求項１８に記載の方法。
【請求項２０】
方法を実行するためにプロセッサによって実行可能なプログラムが具現化された非一時的コンピュータ可読ストレージ媒体であって、前記方法は、
複数の隠れ層を含むニューラルネットワークへの入力のグラウンドトゥルースラベルを受信することと、
前記ニューラルネットワークへの前記入力を処理する前記ニューラルネットワークの出力と、前記ニューラルネットワークへの前記入力の前記グラウンドトゥルースラベルとの間の差を最小化する二層最適化問題を解いて、前記ニューラルネットワークのパラメータを生成することであって、第１の層および第２の層で構成される二層に関する前記二層最適化問題は、前記第２の層の最適化を条件とする前記第１の層の最適化を含み、前記第１の層の前記最適化は、前記入力を処理する前記ニューラルネットワークの出力と、前記ニューラルネットワークへの前記入力の前記グラウンドトゥルースラベルとの間の差を最小化し、前記第２の層の前記最適化は、前記入力と前記出力との間における前記複数の隠れ層内の各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化し、前記複数の隠れ層内の目下の層の前記入力ベクトルは、前記複数の隠れ層内の前記目下の層の直前の層の前記非負の出力ベクトルの線形変換であることと、
前記ニューラルネットワークの前記パラメータを出力することと、
を含む、非一時的コンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的には、コンピュータサイエンスにおける機械学習に関し、詳細には、機械学習の深層学習の部分領域に関する。
【背景技術】
【０００２】
機械学習は、コンピュータに、明示的にプログラミングされることなく特定のタスクを学習して、そのタスクを達成する能力を与える、コンピュータサイエンスの一分野である。例えば、機械学習は、複雑なタスクを、学習されたパラメトリック関数として表すことを可能にし、これにより、そのタスクを達成するのに要するメモリ使用量が削減されるとともに、そのタスクを実行するプロセッサの性能が簡素化される。機械学習は、オブジェクト認識、検証及び検出、画像セグメンテーション、音声処理並びに制御等の多岐にわたる応用において用いられる。
【０００３】
畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Networks）、リカレントニューラルネットワーク（ＲＮＮ：Recurrent Neural Networks）等の人工ニューラルネットワーク（ＡＮＮ：Artificial Neural Networks）は、生物学的な神経網（biological neural networks）から着想を得た機械学習フレームワークの一部を形成する。そのようなニューラルネットワークベースシステムは、概してタスク固有のプログラミングを用いることなく、例を検討することによってタスクを行うように学習する。そのような学習プロセスは、通常、トレーニング、すなわち、ニューラルネットワークのトレーニングと称される。例えば、画像認識において、ニューラルネットワークベースシステムは、手作業で「猫」又は「猫ではない」とラベル付け済みの画像例を解析し、その解析結果を用いて他の画像内の猫を識別することによって、猫を含む画像を識別するように学習することができる。
【０００４】
例えば、フィードフォワード深層ニューラルネットワーク（ＤＮＮ：Deep Neural Networks）は、重み付けされた組み合わせ入力が、全結合（ＦＣ）隠れ層のカスケードに編成された非線形活性化関数を通してフィルタリングされる関数近似器（function approximators）である。近年、ＤＮＮは、機械翻訳及びコンピュータビジョン等の多くの技術領域にとっての最適な選択肢のツールとなっている。しかしながら、ＤＮＮがタスクを達成することができるようになる前に、ＤＮＮは、トレーニングされる必要があり、このトレーニングは、長く単調なプロセスとなり得る。
【０００５】
バックプロパゲーションは、人工ニューラルネットワークにおいて、或るデータのバッチが処理された後に各ニューロンの誤差の寄与度を計算するのに用いられる一方法である。これらの誤差は、各ニューロンの重みを調整するのに用いられる。典型的には、バックプロパゲーション法は、ニューラルネットワークの出力とグラウンドトゥルースデータとの間の差を表す損失関数の勾配を計算する。そのために、バックプロパゲーションは、勾配降下最適化を用いることができ、誤差の後方伝播（backward propagation of errors：誤差逆伝播）と称することができる。なぜならば、誤差は、出力において計算され、ネットワークの層を逆向きに通して割り当てられるためである。
【０００６】
不都合なことに、ニューラルネットワークをトレーニングする種々の方法は、ニューラルネットワークのニューロンの重みを最適化することにおいて多くの計算上の困難に直面している。いくつかの状況では、バックプロパゲーションは、ニューラルネットワークについての大域最適解の発見に失敗し、又は、局所最適解でさえ発見に失敗する。例えば、よく知られた問題のうちの１つは、バックプロパゲーション（微分の連鎖律（chain rule differentiation：合成関数の微分））におけるいわゆる勾配消失であり、これはすなわち、隠れ層（及び対応する変数）同士の間の長い依存連鎖が、勾配を、最適解から程遠い０に至らせる傾向があるという問題である。この問題により、モデルパラメータの改善が非常に遅くなり、ネットワークの層が深くなるほど、問題がより深刻になる。
【０００７】
勾配消失問題は、ＲｅｓＮｅｔ等の、入力から出力までの経路が短くなるネットワークアーキテクチャによって部分的に改良することができる。しかしながら、入力から出力までの短い経路は、タスクによっては望ましくない可能性がある。したがって、勾配消失問題を被ることのない、ニューラルネットワークのためのトレーニング方法を提供する必要がある。
【発明の概要】
【０００８】
人工ニューラルネットワークの文脈において、正規化器（rectifier）は、ｆ（ｘ）＝ｘ＋＝ｍａｘ（０，ｘ）と定義される活性化関数であり、ここで、ｘは、ニューラルネットワークの或る層の或るニューロンへの入力である。これは、ランプ関数としても知られており、電気工学分野における半波整流（half-wave rectification）と類似している。正規化器を利用するユニットは、正規化線形ユニット（ＲｅＬＵ：rectified linear unit：正規化線形関数）とも呼ばれる。
【０００９】
正規化関数は、生物学的動機及び数学的正当性を有し、ニューラルネットワークにおいて、広範に用いられているロジスティックシグモイド関数よりも時として効果的に用いることができる。いくつかの実施形態は、正規化関数が、トレーニング中のニューラルネットワークのパラメータの改善を非常に遅くするバックプロパゲーションにおける勾配消失問題を少なくとも部分的に改良するのに役立つという認識に基づいている。しかしながら、いくつかの実施形態は、正規化関数を用いる深層ニューラルネットワークが、それでもなお勾配消失問題を被る可能性があるという認識に基づいている。
【００１０】
いくつかの実施形態は、ニューラルネットワークの全ての層の出力ベクトルが正である場合、入力ベクトルに対する正規化関数の最大化演算を、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離の最小化に置き換えることができるという理解に基づいている。このようにして、正規化関数は、最小化演算として定式化することができ、これにより、トレーニング手順を二層最適化問題として定式化することが可能になる。二層最適化問題の第１の層は、ニューラルネットワークの出力と、ニューラルネットワークへの入力のグラウンドトゥルースラベルとの間の差を最小化することを含み、二層最適化問題の第２の層は、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化することを含む。
【００１１】
いくつかの実施形態は、そのような二層最適化問題を、勾配消失問題を被ることのない種々の近似技法を用いて解くことができるという理解に基づいている。例えば、いくつかの実施形態は、第２の層における目的関数を第１の層における目的関数に加算し、第２の層における制約を第１の層における制約と組み合わせることによって二層最適化問題を単一層最適化問題に変換し、この新たな単一層最適化問題を、交互最適化によって解く。
【００１２】
加えて、いくつかの実施形態は、単一層最適化問題において変数置換を実行することによって、この単一層最適化問題をティホノフ正則化に変換することができるという理解に基づいている。そのような再定式化の後、ティホノフ正則化を、ブロック座標降下（block coordinate descent）を用いて解くことができる。ブロック座標降下法は、変数を更新するための閉形式解を有するとともに、理論上の収束の保証も有するので、有利である。経験的に、そのような解法は、最大化演算を実行する正規化関数を用いるバックプロパゲーションと比較して、ニューラルネットワークをトレーニングするために要する計算時間を削減する。
【００１３】
いくつかの実施形態は、ティホノフ正則化が、ネットワーク重みのみではなく、ネットワークアーキテクチャ、例えば、ノード／層の数及び異なる層同士の間の接続性も符号化する行列を定義するという理解に基づいている。この符号化は、本質的には多対１マッピングであり、すなわち、ネットワークの或るアーキテクチャを所与とすると、その適用例についての最適な行列は一意である。数学的に、この行列は、対称であるとともに接続されている（すなわち、行列内の非０のエントリの任意のペアの間に少なくとも１つの経路が存在する）という幾何制約を満たす。
【００１４】
複数の応用において、ネットワークアーキテクチャは、事前定義されており、そのようなアーキテクチャを、ティホノフ正則化によって定義された行列の構造に対する制約として好都合に課すことができる。
【００１５】
付加的に、又は代替的に、いくつかの実施形態は、ティホノフ正則化を用いる最適化は、所与のタスクについての重みだけでなく、ネットワークアーキテクチャも自動的に学習することさえできる。
【００１６】
したがって、１つの実施形態は、ニューラルネットワークへの入力、及び、ニューラルネットワークへの入力のラベルを受信する入力インターフェースと、ニューラルネットワークのパラメータを生成するのに二層最適化を解くプロセッサであって、二層最適化は、第２の層の最適化を条件とする第１の層の最適化を含み、第１の層の最適化は、入力を処理するニューラルネットワークの出力と、ニューラルネットワークへの入力のラベルとの間の差を最小化し、第２の層の最適化は、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化し、目下の層の入力ベクトルは、直前の層の非負の出力ベクトルの線形変換である、プロセッサと、ニューラルネットワークのパラメータを出力する出力インターフェースとを備える、コンピュータベースシステムを開示する。
【００１７】
別の実施形態は、コンピュータベース方法であって、方法は、方法を実施する記憶された命令に結合されたプロセッサを使用し、命令は、プロセッサによって実行されると、方法の少なくともいくつかのステップを実行し、方法は、ニューラルネットワークへの入力のグラウンドトゥルースラベルを受信することと、ニューラルネットワークへの入力を処理するニューラルネットワークの出力と、ニューラルネットワークへの入力のグラウンドトゥルースラベルとの間の差を最小化する二層最適化問題を解いて、ニューラルネットワークのパラメータを生成することであって、差を最小化することは、二層最適化問題の第２の層を形成する、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化することを条件とする二層最適化問題の第１の層であり、目下の層の入力ベクトルは、直前の層の非負の出力ベクトルの線形変換であることと、ニューラルネットワークのパラメータを出力することとを含む、方法を開示する。
【００１８】
更に別の実施形態は、方法を実行するためにプロセッサによって実行可能なプログラムが具現化された非一時的コンピュータ可読ストレージ媒体を開示する。方法は、ニューラルネットワークへの入力のグラウンドトゥルースラベルを受信することと、ニューラルネットワークへの入力を処理するニューラルネットワークの出力と、ニューラルネットワークへの入力のグラウンドトゥルースラベルとの間の差を最小化する二層最適化問題を解いて、ニューラルネットワークのパラメータを生成することであって、差を最小化することは、二層最適化問題の第２の層を形成する、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化することを条件とする二層最適化問題の第１の層であり、目下の層の入力ベクトルは、直前の層の非負の出力ベクトルの線形変換であることと、ニューラルネットワークのパラメータを出力することとを含む。
【図面の簡単な説明】
【００１９】
【図１】いくつかの実施形態による、二層最適化を介して深層ニューラルネットワーク（ＤＮＮ）をトレーニングするコンピュータベース処理システム１００のブロック図である。
【図２Ａ】いくつかの実施形態による、ニューラルネットワークをトレーニングするために二層最適化問題を解く方法のブロック図である。
【図２Ｂ】いくつかの実施形態によって用いられる、ＤＮＮをトレーニングするための、１層バックプロパゲーション最適化から二層最適化問題への変換の一例示の概略図である。
【図３】いくつかの実施形態による、ティホノフ正則化を用いた、ＤＮＮをトレーニングするための二層最適化の緩和の概略図である。
【図４】１つの実施形態による、ＤＮＮと、ティホノフ正則化項によって定義される行列との間のマッピングの一例を示す図である。
【図５Ａ】いくつかの実施形態による、制約を条件とするニューラルネットワークをトレーニングする方法の図である。
【図５Ｂ】１つの実施形態による、二層最適化を解く方法５９９のブロック図である。
【図６Ａ】１つの実施形態による、ティホノフ正則化ＤＮＮをトレーニングするブロック座標降下法を示す図である。
【図６Ｂ】１つの実施形態による、ティホノフ正則化ＤＮＮをトレーニングするために改変されたブロック座標降下の方法のブロック図である。
【図６Ｃ】図６Ｂの方法の例示の実施態様の擬似コードである。
【図７】いくつかの実施形態によって利用される原理に従ってトレーニングされた、画像分類についての一例示のニューラルネットワークの図である。
【図８】いくつかの実施形態による、画像処理応用及び／又はコンピュータビジョン応用のために構成された一例示のシステムのブロック図である。
【発明を実施するための形態】
【００２０】
図１は、いくつかの実施形態による、二層最適化を介して深層ニューラルネットワーク（ＤＮＮ）をトレーニングするコンピュータベース処理システム１００のブロック図を示している。処理システム１００は、記憶された命令を実行するように構成されたプロセッサ１０２と、このプロセッサによって実行可能な命令を記憶するメモリ１０４とを備える。プロセッサ１０２は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスター、又は任意の数の他の構成体とすることができる。メモリ１０４は、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、又は他の任意の適したメモリシステムを含むことができる。プロセッサ１０２は、バス１０６を通じて１つ以上の入力デバイス及び出力デバイスに接続される。
【００２１】
これらの命令は、ＤＮＮをトレーニングするために二層最適化ソルバーを実施する。種々の実施形態において、二層最適化ソルバーは、それぞれ異なる応用について適応されたニューラルネットワークの重みを学習する。例えば、１つの実施形態では、ニューラルネットワークは、顔認識及び／又は人物再同定（person re-identification）等の画像処理のためにトレーニングされる。付加的に、又は代替的に、いくつかの実施形態では、ニューラルネットワークは、ビジュアルオドメトリ、３Ｄ再構成、オブジェクト検出、オブジェクト認識、センサ融合、及び画像ベースロケーション特定のうちの１つ又は組み合わせ等の、種々のコンピュータビジョンタスクのためにトレーニングされる。
【００２２】
そのために、システム１００は、ニューラルネットワークのパラメータを出力デバイス１３０に出力する出力インターフェース１２８を備える。出力インターフェース１２８及び／又は出力デバイス１３０の例は、非一時的コンピュータ可読ストレージ媒体、有線又は無線通信チャネルを通じて、トレーニングされたＤＮＮを受け入れる受信機、ディスプレイデバイス、及びトレーニングされたＤＮＮを用いてタスクを実行するアプリケーションデバイスを含む。例えば、いくつかの実施形態では、システム１００は、アプリケーションインターフェース１８０を通じてアプリケーションデバイス１８５に接続される。アプリケーションデバイスの例は、顔認識及び同定システム、位置エンコーダ、センサシステム等とすることができる。
【００２３】
処理システム１００は、ＤＮＮのトレーニングを実行するように構成される。そのために、処理システム１００は、種々の実施形態のいくつかの原理を利用する二層最適化ソルバー１３１を記憶するように適応されたストレージデバイス１０８も備えることができる。ストレージデバイス１０８は、ハードドライブ、光学ドライブ、サムドライブ、ドライブのアレイ、又はこれらの任意の組み合わせを用いて実装することができる。また、ストレージデバイス１０８は、ＤＮＮをトレーニングするのに必要な情報を記憶することができる。トレーニング情報の例は、ラベル付けされた入力データ、及び／又は、ＤＮＮの構成、例えば、ＤＮＮの層の数、層間の接続性、及び層のタイプを含む。
【００２４】
そのために、システム１００は、ニューラルネットワークへの入力、及び、ニューラルネットワークへの入力のラベル等のトレーニング情報を受信する入力インターフェースも備える。例えば、処理システム１００内のヒューマンマシンインターフェース１１０は、当該システムをキーボード１１１及びポインティングデバイス１１２に接続することができ、ポインティングデバイス１１２は、とりわけ、マウス、トラックボール、タッチパッド、ジョイスティック、ポインティングスティック、スタイラス、又はタッチスクリーンを含むことができる。処理システム１００は、当該システム１００をディスプレイデバイス１５０に接続するように適合されたディスプレイインターフェース１４０にバス１０６を通じてリンクすることができる。ディスプレイデバイス１５０は、とりわけ、コンピュータモニタ、カメラ、テレビ、プロジェクタ、又はモバイルデバイスを含むことができる。
【００２５】
付加的に、又は代替的に、ネットワークインターフェースコントローラ１６０は、処理システム１００を、バス１０６を通じてネットワーク１９０に接続するように適応される。ネットワーク１９０及び／又は入力インターフェースの他の実施態様を通じて、記憶及び／又は更なる処理のために、ラベル付けされたトレーニングデータ及び／又はＤＮＮの構成１９５をダウンロードしてコンピュータストレージシステム１０８内に記憶することができる。
【００２６】
いくつかの実施形態では、処理システム１００は、学習されたネットワーク重みに基づいて動作することができるアプリケーションデバイス１８５に処理システム１００を接続するように適応されたアプリケーションインターフェース１８０に、バス１０６を通じて接続される。例えば、デバイス１８５は、学習されたネットワークに基づいて、ユーザーにデバイス１８５へのアクセスを許可する保護されたシステムである。
【００２７】
人工ニューラルネットワークの文脈において、正規化器は、ｆ（ｘ）＝ｘ＋＝ｍａｘ（０，ｘ）と定義される活性化関数であり、ここで、ｘは、ニューラルネットワークの或る層の或るニューロンへの入力である。この活性化関数は、ランプ関数と称することができ、電気工学分野における半波整流と類似している。正規化器を利用するユニットは、正規化線形ユニット（ＲｅＬＵ）とも呼ばれる。
【００２８】
正規化関数は、生物学的動機及び数学的正当性を有し、ニューラルネットワークにおいて、広範に用いられているロジスティックシグモイド関数よりも時として効果的に用いることができる。いくつかの実施形態は、正規化関数が、トレーニング中のニューラルネットワークのパラメータの改善を非常に遅くするバックプロパゲーションにおける勾配消失問題を少なくとも部分的に改良するのに役立つという認識に基づいている。しかしながら、いくつかの実施形態は、正規化関数を用いる深層ニューラルネットワークが、それでもなお勾配消失問題を被る可能性があるという認識に基づいている。
【００２９】
いくつかの実施形態は、ニューラルネットワークの全ての層の出力ベクトルが正である場合、入力ベクトルに対する正規化関数の最大化演算を、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離の最小化に置き換えることができるという理解に基づいている。このようにして、正規化関数は、最小化演算として定式化することができ、これにより、トレーニング手順を二層最適化問題として定式化することが可能になる。二層最適化問題の第１の層は、ニューラルネットワークの出力と、ニューラルネットワークへの入力のグラウンドトゥルースラベルとの間の差を最小化することを含み、二層最適化問題の第２の層は、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化することを含む。
【００３０】
図２Ａは、いくつかの実施形態による、ニューラルネットワークをトレーニングするために二層最適化問題を解く方法のブロック図を示している。この方法は、ニューラルネットワークのパラメータを生成するのに二層最適化を解くソルバー１３１を実行するプロセッサ１０２等のプロセッサによって実行することができる。二層最適化は、第２の層２５０の最適化を条件とする第１の層２４０の最適化を含む。第１の層２４０の最適化は、入力を処理するニューラルネットワークの出力と、ニューラルネットワークへの入力のラベルとの間の差を最小化する。第２の層２５０の最適化は、各層の非負の出力ベクトルと、対応する各層への入力ベクトルとの間の距離を最小化する。とりわけ、目下の層の入力ベクトルは、直前の層の非負の出力ベクトルの線形変換である。
【００３１】
図２Ｂは、いくつかの実施形態によって用いられる、ＤＮＮをトレーニングするための、１層バックプロパゲーション最適化から二層最適化問題への変換の一例示の概略図を示している。１層バックプロパゲーション最適化２１０において、
【数１】
0006877623.tif 000002
は、第ｉのトレーニングデータであり、ｙｉ∈Ｙは、Ｙのセットからのラベルであり、
【数２】
0006877623.tif 000003
は、ニューラルネットワークにおける第ｎの（１≦ｎ≦Ｎ）隠れ層からのｘｉについての出力ベクトルであり、
【数３】
0006877623.tif 000004
は、第ｎの隠れ層と第ｍの隠れ層との間の重み行列であり、Ｍｎは、第ｎの隠れ層についてのインデックスセットであり、
【数４】
0006877623.tif 000005
は、最後の隠れ層とニューラルネットワークの出力層との間の重み行列であり、Ｕ、Ｖ、Ｗは、非空の閉凸セットであり、
【数５】
0006877623.tif 000006
であり、ｌ（・，・）は、凸損失関数である。一般に、バックプロパゲーションは、ネットワークアーキテクチャに従ってネットワーク重みを学習することによって損失を最小化することを目標とする。
【００３２】
いくつかの実施形態は、ＲｅＬＵ活性化関数の最大化を、最小化演算に置き換えることができるという認識を利用する。また、いくつかの実施態様は、ＤＮＮを通じた短い経路を提供するために、複数の直前の層からの出力を自身の入力として取ることができるマルチ入力ＲｅＬＵユニットを可能にする。例えば、いくつかの実施形態は、ネットワークアーキテクチャ２１１を有するニューラルネットワークをトレーニングし、このアーキテクチャにおいて、例えば、（ＲｅＬＵ活性化関数を有する）第３の隠れ層は、入力データと、第１の隠れ層及び第２の隠れ層からの出力とを自身の入力として取る。したがって、本発明によるマルチ入力ＲｅＬＵ活性化関数２１２は、０と、Ｍｎと定義される他の結合された層からの重み付けされた入力の総和との間で大きい方の値を出力するように定義される。
【００３３】
同等に、ＲｅＬＵ関数は、凸集合に対する写像として考えることができ、それゆえ、変数に対する非負制約を有する単純な平滑凸最適化問題（smooth convex optimization problem）２２５として記述し直すことができる。これにより、マルチ入力ＲｅＬＵ関数を第２の層の最適化問題に置き換えることによって、本発明による二層最適化問題２２０がもたらされる。
【００３４】
いくつかの実施形態は、そのような二層最適化問題を、勾配消失問題を被ることのない種々の近似技法を用いて解くことができるという理解に基づいている。例えば、いくつかの実施形態は、第２の層における目的関数を第１の層における目的関数に加算し、第２の層における制約を第１の層における制約と組み合わせることによって二層最適化問題を単一層最適化問題に変換し、この単一層最適化問題を、交互最適化によって解く。
【００３５】
加えて、いくつかの実施形態は、単一層最適化問題において変数置換を実行することによって、この単一層最適化問題をティホノフ正則化に変換することができるという理解に基づいている。そのような再定式化の後、ティホノフ正則化を、ブロック座標降下を用いて解くことができる。ブロック座標降下法は、変数を更新するための閉形式解を有するとともに、理論上の収束の保証も有するので、有利である。経験的に、そのような解法は、最大化演算を実行する正規化関数を用いるバックプロパゲーションと比較して、ニューラルネットワークをトレーニングするために要する計算時間を削減する。
【００３６】
図３は、いくつかの実施形態による、ティホノフ正則化を用いた、ＤＮＮをトレーニングするための二層最適化の緩和の概略図を示している。二層最適化問題２２０を取り上げて展開することによって、いくつかの実施形態は、緩和問題３００を得る。ここで、ｕｉは、全ての隠れ出力及び入力データの連結ベクトルを示し、γｎ３１１は、損失項及び正則化項の寄与度を制御するトレードオフパラメータであり、
【数６】
0006877623.tif 000007
３１２は、目的関数を再編成することによって導入される半正定値行列を示し、
【数７】
0006877623.tif 000008
３１３は、
【数８】
0006877623.tif 000009
となるような
【数９】
0006877623.tif 000010
によってもたらされる別の行列を示し、ここで、（・）Ｔは、行列転置演算子を示す。γｎ値が大きくなるほど、ｕｉ，ｎが、第ｎの隠れ層におけるＲｅＬＵの出力をより厳密に近似するように強制される。
【数１０】
0006877623.tif 000011
又は
【数１１】
0006877623.tif 000012
は、ティホノフ正則化項を定義する。いくつかの実施形態は、緩和された問題３００が、ブロックマルチ凸問題であり、これは、ブロック座標降下（ＢＣＤ）を用いて効率的に解くことができるという理解に基づいている。
【００３７】
具体的に述べると、一般的な座標降下法は、各反復内で、目下の点において１つの座標方向に沿って直線探索を行うことによって関数の極小を発見する、微分を使用しない（derivative-free）最適化を用いる。いくつかの実施形態によって用いられるブロック座標降下は、全てのブロックをまとめて更新する（バッチ更新）のではなく、一度に変数の１つ又は少数のブロックのみを更新する。例えば、１つの実施形態では、ブロック座標降下は、変数のセットを反復して決定すると同時に、反復ごとに、ブロック座標降下は、変数のセットから或る変数を更新する一方で、そのセット内の他の変数を固定する。ＢＣＤ実施態様のいくつかの例が、以下で提供される。
【００３８】
いくつかの実施形態は、ティホノフ正則化が、ネットワーク重みのみではなく、ネットワークアーキテクチャ、例えば、ノード／層の数及び異なる層同士の間の接続性も符号化する行列を定義するという理解に基づいている。この符号化は、本質的には多対１マッピングであり、すなわち、ネットワークの或るアーキテクチャを所与とすると、その適用例についての最適な行列は一意である。数学的に、この行列は、対称であるとともに接続されている（すなわち、行列内の非０のエントリの任意のペアの間に少なくとも１つの経路が存在する）という幾何制約を満たす。
【００３９】
図４は、１つの実施形態による、ＤＮＮと、ティホノフ正則化項によって定義される行列との間のマッピングの一例を示している。ネットワーク内で、各全結合層４２０は、学習された重みに関連付けられており、情報を直前の（隠れ）層４３０から次の層に伝播する。隣接していない２つの層のために、情報を、一切変化させることなく直接伝播することを可能にするスキップ層４１０が存在する。対応する正方行列
【数１２】
0006877623.tif 000013
４４０は、ネットワーク内のノードの総数の正方形サイズを有して構築される。この行列は、入力層におけるノードの数に出力層におけるノードの数を乗算した数（又は逆順で乗算した数）に等しいサイズのブロック４５０に更に分割することができる。例えば、スキップ層４１０の場合、隠れ層４１５が入力層であるとともに隠れ層４３０が出力層であり、これらの対応するブロック４６０を、定数α１，３に単位行列Ｉを乗算したものとして記述することができる。
【００４０】
いくつかの実施形態は、そのようなマップが、実際に、ネットワークアーキテクチャと行列との間の多対１マッピングであるという観察に基づいている。これは、（学習された）重みを有するネットワークアーキテクチャを所与とすると、その対応する半正定値行列は一意であることを意味する。しかしながら他方で、半正定値行列を所与とすると、ネットワークのパラメータが非常に多数であることに起因して、多くのネットワークが生成され得る。
【００４１】
図５Ａは、いくつかの実施形態による、制約を条件とするニューラルネットワークをトレーニングする方法の図を示している。トレーニングデータ５１０を所与とした適用例の場合、ネットワークは、層の数及びノードの数等の、ニューラルネットワークのアーキテクチャを規定するアーキテクチャ制約５２０を用いて学習することができる。付加的に、又は代替的に、ネットワークに対して、ネットワークの層に対する、対称であるとともに接続されているという幾何制約等のアーキテクチャ制約を課すことができる。これらのアーキテクチャ制約は、二層最適化ソルバー５３０によって用いられ、トレーニングされたネットワークへの「最適」Ｑ行列がもたらされる。Ｑ行列を与えられると、いくつかの実施形態は、重み５４０、及び、必要な場合にはネットワークのアーキテクチャ５５０を復元することができる。これは、二次制約付き二次計画（ＱＣＱＰ：quadratic constrained quadratic programs）を解くことによって行うことができる。なぜならば、対称性制約及び接続性制約の双方を二次項として定式化することができ、ここでの目的は、学習された行列と復元された行列との間の最小二乗損失とすることができるためである。
【００４２】
図５Ｂは、１つの実施形態による、二層最適化を解く方法５９９のブロック図を示している。この方法は、第２の層における目的関数を第１の層における目的関数に加算し、第２の層における制約を第１の層における制約と組み合わせることによって二層最適化５５５を単一層最適化５６５に変換する（５６０）。方法は、単一層最適化問題において変数置換を実行して、ニューラルネットワークのアーキテクチャ及びパラメータを表す行列を含む、正則化項を有するティホノフ正則化問題５７５を生成し（５７０）、このティホノフ正則化問題を、ブロック座標降下を用いて解く（５８０）。
【００４３】
いくつかの実施態様では、方法５９９は、ニューラルネットワークのアーキテクチャを示すアーキテクチャ制約を受信し、このアーキテクチャ制約を条件としてティホノフ正則化問題を解く。アーキテクチャ制約は、所定のものとすることができ、及び／又は、入力インターフェースを介して受信することができる。例えば、１つの実施形態は、正則化項をニューラルネットワークの層の数に初期化し、行列のブロックに対する接続性制約及び対称性制約を条件としてティホノフ正則化問題を解く。この実施形態は、入力インターフェースを通じて受信されたアーキテクチャ制約を更新することができる。例えば、ニューラルネットワークの層の数を、入力インターフェースを通じて、例えばネットワーク１９０を通じて受信することができる。
【００４４】
図６Ａは、１つの実施形態による、ティホノフ正則化ＤＮＮをトレーニングするブロック座標降下法を示している。この実施形態は、交互最適化６０１を用いて緩和問題３００を最小化し、交互最適化６０１は、この問題を、以下の３つの凸部分問題、すなわち、ティホノフ正則化逆問題６１０、学習された特徴を用いる分類６２０、及び最小二乗回帰６３０に分解する。３つの部分問題の全てを、これらの凸性に起因して効率的に解くことができる。実際に、逆部分問題は、従来の深層学習における勾配消失問題を軽減する。なぜならば、これらの部分問題は、ティホノフ行列を通じて互いに依存している、各隠れ層の出力特徴の推定解を得るためである。換言すれば、交互最適化は、入力データと出力ラベルとの間の情報を伝播する。
【００４５】
いくつかの実施形態は、交互最適化６０１が、緩和問題を解くための停留点への収束を保証することができないという認識に基づいている。したがって、いくつかの実施形態は、追加の二次項を各部分問題に加えることによって交互最適化６０１を改変し、追加の二次項を有する各部分問題を逐次的に解く。これらの追加項及び凸の組合せ規則が、改変された交互最適化の大域的収束を保証する。
【００４６】
図６Ｂは、１つの実施形態による、ティホノフ正則化ＤＮＮをトレーニングするために改変されたブロック座標降下の方法のブロック図を示している。図６Ｃは、図６Ｂの方法の例示の実施態様の擬似コードを示している。
【００４７】
この方法は、ティホノフ正則化ＤＮＮをトレーニングするために、緩和問題における全てのパラメータを初期化する（６４０）。例えば、方法は、全てのパラメータをランダムに初期化する（６４１）。次に、方法は、部分問題６１１、６２２、及び６３３を解いて、逐次的に変数
【数１３】
0006877623.tif 000014
６１５、Ｖ６２５、及び
【数１４】
0006877623.tif 000015
６３５を更新する。例えば、方法は、更新６１２を用いて変数
【数１５】
0006877623.tif 000016
を更新し、更新６２３を用いて変数Ｖを更新し、更新６２４を用いて変数
【数１６】
0006877623.tif 000017
を更新する。方法は、変数が収束するまで、すなわち終了条件が満たされるまで、反復される（６５０）。
【００４８】
図７は、いくつかの実施形態によって利用される原理に従ってトレーニングされた、画像分類についての一例示のニューラルネットワークの図を示している。ネットワークは、１つ以上の画像を入力７１０として取る入力層を含む。この入力層には、畳み込み層及びプーリング層のシーケンス７５０、７６０、７７０、７８０が後続する。畳み込み層は、自身の入力を畳み込み行列のセットを用いて畳み込む。各畳み込み行列は、特徴マップと多くの場合に呼ばれる異なる出力画像を計算するのに用いられる。畳み込み行列の要素は、トレーニング中に学習される。特徴マップにＲｅＬＵが適用されて、新たな特徴マップが生成される。プーリング層は、自身の入力をサブサンプリングして、より小さな、サブサンプリングされた特徴マップを出力する。畳み込みニューラルネットワークは、任意の数の畳み込み層又はプーリング層を任意の順序で有することができる。畳み込みニューラルネットワークは、１つ以上の全結合層７９０、７９５で終了する場合が多い（常にではない）。全結合層のパラメータも、トレーニング中に学習される。
【００４９】
いくつかの実施形態では、畳み込みニューラルネットワークの最後から２番目の層は、特徴ベクトル７３０と多くの場合に呼ばれる１次元ベクトルである。いくつかの実施形態では、トレーニング中、畳み込みニューラルネットワークの最後の層７４０は、入力画像が異なるトレーニングクラスの各々に属する確率を示す複数の確率のベクトルである。この複数の確率のベクトルは、典型的には、計算される数のベクトルのソフトマックス関数を計算することによって、特徴ベクトルの異なる線形結合として生成される。顔認識ネットワークをトレーニングする場合、トレーニングクラスは、顔画像のトレーニングセット内のそれぞれ異なる同一人物のセットである。
【００５０】
いくつかの実施態様では、畳み込みニューラルネットワークは、ユーザーが定義した損失関数を最小化する二層最適化ソルバーを用いてトレーニングされる。例えば、顔認識ネットワークの場合、ユーザーが定義した損失関数は、ネットワークの出力確率と、トレーニング顔画像のグラウンドトゥルース確率との間のユークリッド距離とすることができる。
【００５１】
トレーニング中、最終出力ユニットＯｉ７４２について、Ｏｉ７４２に接続されるネットワークの最後の全結合層の重みは、人物ｉの画像についての特徴ベクトルを１にマッピングするとともに、他の全ての人々の画像についての特徴ベクトルを−１にマッピングするように試みる線形関数を学習する。これは、この最後の全結合層の重みが、人物ｉの画像と他の全ての人々の画像との間の分離超平面を規定することを意味する。これは、ネットワークによって学習される特徴ベクトルが、特定の同一人物の画像についての特徴ベクトルは他の全ての人物の特徴ベクトルとは線形的に分離可能であるという特性を有することも暗に意味している。これらの特徴ベクトルが、特定の同一人物についての特徴ベクトルが全て互いに近いという特性を有するとは限らない。試験中、学習された特徴は、顔検証等のそれぞれ異なる応用に用いることができる。
【００５２】
図８は、いくつかの実施形態による、画像処理応用及び／又はコンピュータビジョン応用のために構成された一例示のシステムのブロック図である。システム８００は、カメラ８１０、慣性測定ユニット（ＩＭＵ）８３０、プロセッサ８５０、メモリ８６０、送受信機８７０、及びディスプレイ／スクリーン８８０のうちの１つ又は組み合わせを備えることができる。これらは、接続８２０を通じて他の構成要素に動作的に結合することができる。接続８２０は、バス、ライン、ファイバ、リンク又はそれらの組み合わせを含むことができる。
【００５３】
送受信機８７０は、例えば、１つ以上のタイプの無線通信ネットワークを通じて１つ以上の信号を送信することを可能にする送信機と、１つ以上のタイプの無線通信ネットワークを通じて送信された１つ以上の信号を受信する受信機とを備えることができる。送受信機８７０は、様々な技術に基づいて無線ネットワークとの通信を可能にすることができる。これらの技術は、標準規格のＩＥＥＥ８０２．１１ファミリーに基づくことができるフェムトセル、Ｗｉ−Ｆｉネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）、標準規格のＩＥＥＥ８０２．１５ｘファミリーに基づくＢｌｕｅｔｏｏｔｈ（登録商標）、近距離場通信（ＮＦＣ）、ネットワーク等の無線パーソナルエリアネットワーク（ＷＰＡＮ）、及び／又はＬＴＥ、ＷｉＭＡＸ等の無線ワイドエリアネットワーク（ＷＷＡＮ）等であるが、これらに限定されるものではない。システム８００は、有線ネットワークを通じて通信するための１つ以上のポートを備えることもできる。
【００５４】
いくつかの実施形態では、システム８００は、ＣＣＤセンサ若しくはＣＭＯＳセンサ、レーザ及び／又はカメラ等の画像センサ８１０を備えることができる。この画像センサは、以下では「センサ８１０」と呼ばれる。例えば、センサ８１０は、光画像を電子画像又はデジタル画像に変換することができ、取得された画像をプロセッサ８５０に送信することができる。付加的又は代替的に、センサ８１０は、シーン内のターゲット物体から反射された光を検知し、捕捉された光の強度をプロセッサ８５０にサブミットすることができる。
【００５５】
例えば、センサ８１０は、「カラー情報」を提供するカラーカメラ又はグレースケールカメラを含むことができる。「カラー情報」という用語は、本明細書において用いられるとき、カラー情報及び／又はグレースケール情報を指す。一般に、カラー画像又はカラー情報は、本明細書において用いられるとき、１〜Ｎ個のチャネルを含むものとみなすことができる。ここで、Ｎは、画像を記憶するのに用いられている色空間に依存する或る整数である。例えば、ＲＧＢ画像は、３つのチャネルを含み、赤情報、青情報及び緑情報についてそれぞれ１つのチャネルを有する。
【００５６】
例えば、センサ８１０は、「深度情報」を提供する深度センサを含むことができる。深度情報は、深度センサを用いて様々な方法で取得することができる。「深度センサ」という用語は、深度情報を単独で及び／又は他のいくつかのカメラと併せて取得するのに用いることができる機能ユニットを指すのに用いられる。例えば、いくつかの実施形態では、深度センサ及び光カメラは、センサ８１０の一部分とすることができる。例えば、いくつかの実施形態では、センサ８１０はＲＧＢＤカメラを備える。このＲＧＢＤカメラは、カラー（ＲＧＢ）画像に加えて、深度センサが有効にされているときはピクセルごとの深度（Ｄ）情報を捕捉することができる。
【００５７】
別の例として、いくつかの実施形態では、センサ８１０は、３Ｄ飛行時間（３ＤＴＯＦ）カメラを含むことができる。３ＤＴＯＦカメラを用いた実施形態では、深度センサは、３ＤＴＯＦカメラに結合されたストロボライトの形態を取ることができる。このストロボライトは、シーン内の物体を照明することができ、反射された光は、センサ８１０内のＣＣＤ／ＣＭＯＳセンサが捕捉することができる。深度情報は、光パルスが物体に進んでセンサに戻って来るまでに要する時間を測定することによって取得することができる。
【００５８】
更なる例として、深度センサは、センサ８１０に結合された光源の形態を取ることができる。１つの実施形態では、この光源は、１つ以上の狭い光の帯を含むことができる構造化された光パターン又はテクスチャー付けされた光パターンをシーン内の物体に投射する。深度情報は、物体の表面形状によって引き起こされる投射パターンの幾何学的歪みを利用することによって取得される。１つの実施形態は、赤外線構造化光プロジェクタと、ＲＧＢカメラに位置合わせされた赤外線カメラとの組み合わせ等のステレオセンサから深度情報を求める。
【００５９】
いくつかの実施形態では、センサ８１０は立体カメラを備える。例えば、深度センサは、２つ以上のカメラを用いてシーンの深度情報を取得することができる受動ステレオビジョンセンサの一部分を成すことができる。捕捉されたシーンにおける双方のカメラに共通の点のピクセル座標を、カメラ姿勢情報及び／又は三角測量技法とともに用いて、ピクセルごとの深度情報を取得することができる。
【００６０】
いくつかの実施形態では、システム８００は、デュアルフロントカメラ及び／又は前面カメラ及び背面カメラ等の複数のセンサ８１０に動作的に接続することができ、これらの複数のセンサは、様々なセンサを組み込むこともできる。いくつかの実施形態では、センサ８１０は、静止画像及びビデオ画像の双方を捕捉することができる。いくつかの実施形態では、センサ８１０は、例えば、３０フレーム毎秒（ｆｐｓ）で画像を捕捉することが可能なＲＧＢＤ又は立体ビデオカメラを備えることができる。１つの実施形態では、センサ８１０によって捕捉された画像は、生の未圧縮フォーマットとすることができ、処理及び／又はメモリ８６０への記憶の前に圧縮することができる。いくつかの実施形態では、画像圧縮は、プロセッサ８５０によって可逆圧縮技法又は非可逆圧縮技法を用いて実行することができる。
【００６１】
いくつかの実施形態では、プロセッサ８５０は、ＩＭＵ８３０から入力を受信することもできる。他の実施形態では、ＩＭＵ８３０は、３軸加速度計（複数の場合もある）、３軸ジャイロスコープ（複数の場合もある）、及び／又は磁気計（複数の場合もある）を備えることができる。ＩＭＵ８３０は、速度、方位、及び／又は他の位置関連情報をプロセッサ８５０に提供することができる。いくつかの実施形態では、ＩＭＵ８３０は、測定情報を、センサ８１０による各画像フレームの捕捉と同期して出力することができる。いくつかの実施形態では、ＩＭＵ８３０の出力は、プロセッサ８５０がセンサ測定値を融合し及び／又は融合された測定値を更に処理するのに部分的に用いられる。
【００６２】
また、システム８００は、カラー画像及び／又は深度画像等の画像をレンダリングするスクリーン又はディスプレイ８８０を備えることができる。いくつかの実施形態では、ディスプレイ８８０は、センサ８１０によって捕捉されたライブ画像、画像等の融合画像、拡張現実（ＡＲ）画像、グラフィカルユーザーインターフェース（ＧＵＩ）、及び他のプログラム出力を表示するのに用いることができる。いくつかの実施形態では、ディスプレイ８８０は、ユーザーが、仮想キーボード、アイコン、メニュー、又は他のＧＵＩ、ユーザージェスチャー及び／又はスタイラス及び他の筆記用具等の入力デバイスの或る組み合わせを介してデータを入力することを可能にするタッチスクリーンを備えることができ及び／又はこのようなタッチスクリーンとともに収容することができる。いくつかの実施形態では、ディスプレイ８８０は、液晶ディスプレイ（ＬＣＤ）又は有機ＬＥＤ（ＯＬＥＤ）ディスプレイ等の発光ダイオード（ＬＥＤ）ディスプレイを用いて実施することができる。他の実施形態では、ディスプレイ８８０は、ウェアラブルディスプレイとすることができる。
【００６３】
いくつかの実施形態では、融合の結果をディスプレイ８８０にレンダリングすることもできるし、システム８００の内部又は外部に存在することができる異なるアプリケーションにサブミットすることもできる。例えば、プロセッサ８５０上で動作するコンピュータビジョン（ＣＶ）アプリケーション８５５は、コンピュータビジョンベースの追跡方法、モデルベースの追跡方法、及び／又は同時ローカライゼーション／マッピング（ＳＬＡＭ）方法を実施及び実行することができる。ＣＶアプリケーション８５５は、種々の実施形態に従ってトレーニングされたニューラルネットワークを用いて実施される。
【００６４】
例示的なシステム８００は、図示した機能ブロックのうちの１つ以上の追加、組み合わせ、又は省略等によって、本開示と整合性を有するように様々な方法で変更することもできる。例えば、いくつかの構成では、システム８００は、ＩＭＵ８３０又は送受信機８７０を備えていない。さらに、いくつかの特定の例示の実施態様では、システム８００は、周辺光センサ、マイクロフォン、音響センサ、超音波センサ、レーザーレンジファインダー等の様々な他のセンサ（図示せず）を備える。いくつかの実施形態では、システム８００のいくつかの部分は、１つ以上のチップセット等の形態を取る。
【００６５】
プロセッサ８５０は、ハードウェア、ファームウェア及びソフトウェアの組み合わせを用いて実現することができる。プロセッサ８５０は、センサ融合及び／又は融合した測定値を更に処理する方法に関連付けられる計算手順又はプロセスの少なくとも一部を実行するように構成可能な１つ以上の回路を表すことができる。プロセッサ８５０は、メモリ８６０から命令及び／又はデータを引き出す。プロセッサ８５０は、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、中央及び／又はグラフィカル処理ユニット（ＣＰＵ及び／又はＧＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、埋め込みプロセッサコア、電子デバイス、本明細書において記述される機能を実行するように設計された他の電子ユニット、又はその組み合わせを用いて実現することができる。
【００６６】
メモリ８６０は、プロセッサ８５０の内部に、及び／又はプロセッサ８５０の外部に実装することができる。本明細書において使用されるときに、「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性又は他のメモリを指しており、任意の特定のタイプのメモリ若しくはメモリの数、又はメモリが記憶される物理媒体のタイプに制限されるべきではない。いくつかの実施形態では、メモリ８６０は、センサ融合及び／又は１つ以上の画像処理を容易にし、プロセッサ８５０上のＣＶ８５５によって実行されるＳＬＡＭ、追跡、３Ｄ再構成、及び他のタスクを実行するプログラムコードを保持する。
【００６７】
例えば、メモリ８６０は、静止画像、深度情報、ビデオフレーム、プログラム結果、並びにＩＭＵ８３０及び他のセンサによって提供されるデータ等のセンサの測定値を記憶することができる。一般に、メモリ８６０は、任意のデータ記憶機構を表すことができる。メモリ８６０は、例えば、一次メモリ及び／又は二次メモリを含むことができる。一次メモリは、例えば、ランダムアクセスメモリ、リードオンリーメモリ等を含むことができる。図８においてプロセッサ８５０とは別であるように示されるが、一次メモリの全て若しくは一部をプロセッサ８５０内に設けることができるか、又はそうでなくても、プロセッサ８５０と同一の場所に配置し、及び／又はプロセッサ８５０に結合することができることは理解されたい。
【００６８】
二次メモリは、例えば、一次メモリと同じ、又は類似のタイプのメモリ、及び／又は例えば、フラッシュ／ＵＳＢメモリドライブ、メモリカードドライブ、ディスクドライブ、光ディスクドライブ、テープドライブ、ソリッドステートドライブ、ハイブリッドドライブ等の１つ以上のデータ記憶デバイス又はシステムを含むことができる。或る特定の実施態様において、二次メモリは、取外し可能な媒体ドライブ（図示せず）内の非一時的コンピュータ可読媒体に動作的に収容可能であるか、又は別の方法で、動作的に構成可能とすることができる。いくつかの実施形態において、非一時的コンピュータ可読媒体は、メモリ８６０及び／又はプロセッサ８５０の一部を形成する。
【００６９】
いくつかの実施形態では、ＣＶ８５５は、様々なコンピュータビジョン方法を実施し及び／又はセンサ８１０によって捕捉された画像を処理することができる。例えば、ＣＶ８５５は、センサ８１０によって捕捉された１つ以上の画像を処理して、これらの捕捉された画像に関連付けられた深度情報を用いてモデル化されている環境の再構成を実行するように構成することができる。
【００７０】
深度データに基づいて、再構成中、各ピクセルに３Ｄ座標を割り当てることができる。１つの実施形態では、プロセッサ８５０上のＣＶ８５５は、単眼（単一カメラ）視覚ＳＬＡＭシステムを用いて、カメラ８１０の正確でロバストな６ＤＯＦ（Degrees Of Freedom）追跡のためのＭＳ周辺の環境の粗いマップを作成することによってカメラ８１０の位置を追跡する。単眼という用語は、単一の非立体カメラを用いて画像を捕捉すること又は深度情報を伴わずに捕捉された画像を指す。その場合、他の再構成方法は、カメラ姿勢及びピクセルごとの深度情報を用いて、捕捉された画像（複数の場合もある）を視認方向に沿って押し出すことができる。例えば、１つの実施形態では、プロセッサ８５０は、融合された測定値組を用いてシーン内の物体を追跡するように構成されている。
【００７１】
本発明の上記で説明した実施形態は、多数の方法のうちの任意のもので実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施することができる。ソフトウェアで実施される場合、ソフトウェアコードは、単一のコンピュータに設けられるのか又は複数のコンピュータ間に分散されるのかにかかわらず、任意の適したプロセッサ又はプロセッサの集合体において実行することができる。そのようなプロセッサは、１つ以上のプロセッサを集積回路部品に有する集積回路として実装することができる。ただし、プロセッサは、任意の適したフォーマットの回路類を用いて実装することができる。
【００７２】
また、本発明の実施形態は、例が提供された方法として実施することができる。この方法の一部として実行される動作は、任意の適切な方法で順序付けすることができる。したがって、動作が示したものと異なる順序で実行される実施形態を構築することができ、これには、例示の実施形態では一連の動作として示されたにもかかわらず、いくつかの動作を同時に実行することを含めることもできる。
【００７３】
請求項の要素を修飾する、特許請求の範囲における「第１」、「第２」等の序数の使用は、それ自体で、或る請求項の要素の別の請求項の要素に対する優先順位も、優位性も、順序も暗示するものでもなければ、方法の動作が実行される時間的な順序も暗示するものでもなく、請求項の要素を区別するために、単に、或る特定の名称を有する或る請求項の要素を、同じ（序数の用語の使用を除く）名称を有する別の要素と区別するラベルとして用いられているにすぎない。
【図１】
0006877623.tif 000044
【図２Ａ】
0006877623.tif 000045
【図２Ｂ】
0006877623.tif 000046
【図３】
0006877623.tif 000047
【図４】
0006877623.tif 000048
【図５Ａ】
0006877623.tif 000049
【図５Ｂ】
0006877623.tif 000050
【図６Ａ】
0006877623.tif 000051
【図６Ｂ】
0006877623.tif 000052
【図６Ｃ】
0006877623.tif 000053
【図７】
0006877623.tif 000054
【図８】
0006877623.tif 000055