(57)【要約】【課題】ニューラルネットワークを入力インスタンスに適用するためのシステム（２００）が開示される。【解決手段】ニューラルネットワークは、最適化層を含み、最適化層は、１つ又は複数のパラメータによってパラメータ化された共同最適化によって、１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものである。入力インスタンスが取得される。最適化層への１つ又は複数の入力ニューロンの値が取得され、そこから、１つ又は複数の入力ニューロンのための入力ベクトルが決定される。１つ又は複数の出力ニューロンのための出力ベクトルは、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、決定された入力ベクトルから計算される。それぞれの計算された出力ベクトルから１つ又は複数の出力ニューロンの値が決定される。【選択図】図１
2020191088.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを入力インスタンスに適用するためのシステム（２００）であって、
当該システムは、
ニューラルネットワークを表すデータ（０５０）にアクセスするためのデータインタフェース（２２０）と、
プロセッササブシステム（２４０）と、
を含み、
前記ニューラルネットワークは、少なくとも１つの最適化層を含み、前記最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の１つ又は複数のパラメータを含み、
前記プロセッササブシステム（２４０）は、
入力インスタンスを取得し、
前記ニューラルネットワークを前記入力インスタンスに適用する
ように構成されており、
前記ニューラルネットワークを適用することは、
前記最適化層への前記１つ又は複数の入力ニューロンの値を取得し、そこから、前記１つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、前記１つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記１つ又は複数の出力ニューロンの値を決定することと、
を含む、
システム（２００）。
【請求項２】
前記入力インスタンスは、画像を含み、
前記ニューラルネットワークは、少なくとも１つの畳み込み層を含み、前記少なくとも１つの畳み込み層には、前記最適化層が後続する、
請求項１に記載のシステム（２００）。
【請求項３】
前記半正定値計画問題は、少なくとも、前記１つ又は複数の入力ニューロンの値と、前記１つ又は複数の出力ニューロンの値とに関する、ＭＡＸＳＡＴ問題又はＭＡＸ２ＳＡＴ問題又はＭＡＸＣＵＴ問題の緩和を含む、
請求項１又は２に記載のシステム（２００）。
【請求項４】
前記プロセッササブシステム（２４０）は、１つ又は複数の補助ベクトルを前記出力ベクトルと共同で最適化することによって、前記出力ベクトルを計算するように構成されている、
請求項１乃至３のいずれか一項に記載のシステム（２００）。
【請求項５】
前記プロセッササブシステム（２４０）は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとの内積（ＶＴＶ）の線形結合（＜Ｍ，ＶＴＶ＞）を最小化することによって、前記出力ベクトルを計算するように構成されている、
請求項１乃至４のいずれか一項に記載のシステム（２００）。
【請求項６】
２つのベクトルの内積のための前記線形結合の係数は、それぞれの前記ベクトルに関連する２つの重みベクトルの内積
【数１】
2020191088.tif 000111
によって与えられ、
前記２つの重みベクトルは、前記共同最適化のパラメータ内に含まれる、
請求項５に記載のシステム（２００）。
【請求項７】
前記２つの重みベクトル（ｓｉ）は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとの合計数よりも少ない要素を有する、
請求項６に記載のシステム（２００）。
【請求項８】
前記プロセッササブシステムは、前記入力ベクトルと、前記出力ベクトル及び前記補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新することによって、前記出力ベクトルを計算するように構成されている、
請求項１乃至７のいずれか一項に記載のシステム（２００）。
【請求項９】
前記共同最適化のパラメータは、それぞれの前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとに関連する重みベクトルを含み、
前記重みベクトルのそれぞれのエントリは、共同で最適化されるべき節を表す前記ベクトルの線形結合を定義し、
前記プロセッササブシステム（２４０）は、前記出力ベクトルの計算を、
状態行列を初期化し、
前記入力ベクトルと、前記出力ベクトル及び前記補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新する
ことによって実施するように構成されており、
前記状態行列の列は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとに関する節の値を示し、
前記反復的な更新は、更新された前記出力ベクトル又は前記補助ベクトルに基づいて前記状態行列を更新することを含む、
請求項８に記載のシステム（２００）。
【請求項１０】
ニューラルネットワークを訓練するためのシステム（１００）であって、
当該システムは、
前記ニューラルネットワークのパラメータを表すデータ（０５０）にアクセスするためのデータインタフェース（１２０）と、
前記ニューラルネットワークを訓練するように構成されたプロセッササブシステム（１４０）と、
を含み、
前記ニューラルネットワークは、少なくとも１つの最適化層を含み、前記最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の１つ又は複数のパラメータを含み、前記最適化層は、１つ又は複数の入力インスタンスを含む訓練データセット（０３０）にアクセスするためのものでもあり、
前記ニューラルネットワークを訓練することは、前記最適化層の前記１つ又は複数の出力ニューロンに関する損失の勾配から、前記共同最適化の前記１つ又は複数の入力ニューロン及び／又は前記１つ又は複数のパラメータに関する前記ニューラルネットワークの損失の勾配を決定することを含み、
前記勾配を決定することは、
前記出力ニューロンに関する前記勾配から、前記１つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
前記出力ベクトルに関する前記勾配から、前記１つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、前記入力ニューロンに関する前記ニューラルネットワークの損失の勾配を決定すること、及び／又は、前記出力ベクトルに関する前記勾配から、前記１つ又は複数のパラメータに関する損失の勾配を決定すること、と、
によって実施され、
前記１つ又は複数の出力ニューロンのための前記出力ベクトルは、前記１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、決定された前記入力ベクトルから計算される、
システム（１００）。
【請求項１１】
前記共同最適化は、入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新することを含み、
前記プロセッササブシステムは、前記入力ベクトル及び／又は１つ又は複数の重みに関する損失の勾配を、前記反復的な更新の逆伝播によって決定するように構成されている、
請求項１０に記載のシステム（１００）。
【請求項１２】
ニューラルネットワークを入力インスタンスに適用するためのコンピュータ実装方法（６００）であって、
当該方法は、
ニューラルネットワークを表すデータにアクセスすることと、
入力インスタンスを取得することと、
前記ニューラルネットワークを前記入力インスタンスに適用することと、
を含み、
前記ニューラルネットワークは、少なくとも１つの最適化層を含み、前記最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の１つ又は複数のパラメータを含み、
前記ニューラルネットワークを適用することは、
前記最適化層への前記１つ又は複数の入力ニューロンの値を取得し、そこから、前記１つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、前記１つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記１つ又は複数の出力ニューロンの値を決定することと、
を含む、
方法（６００）。
【請求項１３】
ニューラルネットワークを訓練するためのコンピュータ実装方法（７００）であって、
当該方法は、
ニューラルネットワークのパラメータを表すデータにアクセスすることと、
前記ニューラルネットワークを訓練することと、
を含み、
前記ニューラルネットワークは、少なくとも１つの最適化層を含み、前記最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の１つ又は複数のパラメータを含み、訓練データセットは、１つ又は複数のインスタンスを含み、
前記ニューラルネットワークを訓練することは、最適化層の１つ又は複数の出力ニューロンに関する損失の勾配から、前記共同最適化の前記１つ又は複数の入力ニューロン及び／又は前記１つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定することを含み、
前記勾配を決定することは、
前記出力ニューロンに関する前記勾配から、前記１つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
前記出力ベクトルに関する前記勾配から、前記１つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、前記入力ニューロンに関する前記ニューラルネットワークの損失の勾配を決定すること、及び／又は、前記出力ベクトルに関する前記勾配から、前記１つ又は複数のパラメータに関する損失の勾配を決定すること、と、
によって実施され、
前記１つ又は複数の出力ニューロンのための前記出力ベクトルは、前記１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、決定された前記入力ベクトルから計算される、
方法（７００）。
【請求項１４】
プロセッサシステムによって実行されるときに、前記プロセッサシステムに請求項１２又は１３に記載の方法を実施させるための命令を表す一時的又は非一時的なデータを含む、コンピュータ可読媒体（８００）。
【請求項１５】
ニューラルネットワークのパラメータを表す一時的又は非一時的なデータを含む、コンピュータ可読媒体（８００）であって、
前記ニューラルネットワークは、少なくとも１つの最適化層を含み、
前記最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の１つ又は複数のパラメータを含み、
前記ニューラルネットワークを入力インスタンスに適用することは、
前記最適化層への前記１つ又は複数の入力ニューロンの値を取得し、そこから、前記１つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、前記１つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記１つ又は複数の出力ニューロンの値を決定することと、
を含む、
コンピュータ可読媒体（８００）。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、ニューラルネットワークを入力インスタンスに、例えば入力画像に適用するためのシステムと、対応するコンピュータ実装方法とに関する。本発明はさらに、ニューラルネットワークを訓練するためのシステムと、対応するコンピュータ実装方法とに関する。本発明はさらに、方法を実施させるための命令、又は、ニューラルネットワークのパラメータを表すデータを含む、コンピュータ可読媒体に関する。
【背景技術】
【０００２】
発明の背景
自律型のデバイスは、観察された環境に基づいて意思決定を行う必要がある。例えば、車両のための自律型の運転システムは、カメラ及び／又は種々の他のセンサからのデータを使用して交通状況を分析し、この情報を使用して車両を制御することができる。同様に、非自律型の自動車のための安全システムは、交通状況を分析して、運転者を支援することができ、例えば、危険な状況が発生した場合にブレーキをかけることができる。この例及び他の設定においては、意思決定を行うことは、オブジェクトを認識することを含むだけでなく、例えば、どの認識されたオブジェクト又はオブジェクトの組合せが危険であるかについての推理も行うことを含む。自動的な推理は、例えば、他の制御システムや、医用画像分析などでも行われる。
【０００３】
これら及び他の種類のシステムにおいては、ニューラルネットワーク、特に深層ニューラルネットワークを使用して、環境に関するそのような推理を行うことができる。ニューラルネットワークは、典型的には、１つ又は複数の層を含み、それぞれの層においては、１つ又は複数の出力ニューロンの値が、１つ又は複数の入力ニューロンの値に基づいて計算される。例えば、ニューラルネットワークは、少なくとも１０個、１００個又は１０００個のニューロン、少なくとも２個、５個又は１０個の層などを有することができる。それぞれの層は、例えば、どの入力ニューロンがどの出力ニューロンに接続されているかという点において、及び／又は、出力ニューロンの値を計算するためにどの関数が使用されるかという点において、それぞれ異なり得る。典型的には、層の１つ又は複数のパラメータは、学習可能であり、例えば、そのようなパラメータは、重みを含むことができ、これらの重みは、出力ニューロンが接続されているそれぞれの入力ニューロンの値によって、出力ニューロンがどの程度まで影響を受けるかを決定するものである。種々の種類の層は、それ自体公知である。例えば、畳み込みニューラルネットワークは、典型的には、入力層と、出力層と、入力層と出力層との間にある、典型的には隠れ層と称される１つ又は複数の層とを含む。このような隠れ層は、畳み込み層、ＲｅＬＵ層、プーリング層、全結合層、正規化層などを含むことができる。例えば、そのような層の組合せを使用して、種々の種類の画像分類タスクを実行することができる。
【０００４】
Ｂｒａｎｄｏｎ  Ａｍｏｓ及びＪ．  Ｚｉｃｏ  Ｋｏｌｔｅｒによる論文『ＯｐｔＮｅｔ：Ｄｉｆｆｅｒｅｎｔｉａｂｌｅ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ａｓ  ａ  Ｌａｙｅｒ  ｉｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ』（参照によって本明細書に組み込まれ、https：//arxiv.org/abs/1703.00443において入手可能である。）においては、ニューラルネットワークの隠れ状態の間の制約及び依存関係を捉えるように設計された深層ニューラルネットワークが紹介されている。この目的のために、ネットワークの１つの層として二次計画法が組み込まれている。この層は、ニューラルネットワークの隠れ状態の間の制約及び複雑な依存関係を捉えるために、ニューラルネットワークに挿入される。層の出力と、二次計画法を定義する問題データとの両方は、前の層の値に依存し得る。層の出力値は、主双対内点法を使用して二次計画法を解くことによって取得される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】論文『ＯｐｔＮｅｔ：Ｄｉｆｆｅｒｅｎｔｉａｂｌｅ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ａｓ  ａ  Ｌａｙｅｒ  ｉｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ』、Ｂｒａｎｄｏｎ  Ａｍｏｓ及びＪ．  Ｚｉｃｏ  Ｋｏｌｔｅｒ著
【発明の概要】
【課題を解決するための手段】
【０００６】
発明の概要
本発明の第１の態様によれば、請求項１によって定義されるような、ニューラルネットワークを入力インスタンスに適用するためのシステムが提案される。本発明のさらなる態様によれば、請求項１０によって定義されるような、ニューラルネットワークを訓練するためのシステムが提案される。さらなる態様によれば、それぞれ請求項１２及び１３によって定義されるような、ニューラルネットワークを適用するコンピュータ実装方法と、ニューラルネットワークを訓練するコンピュータ実装方法とが提案される。本発明のさらなる態様によれば、請求項１４によって定義されるようなコンピュータ可読媒体と、請求項１５によって定義されるようなコンピュータ可読媒体とが提案される。
【０００７】
種々の実施形態においては、ニューラルネットワークは、少なくとも１つの最適化層を含み、当該最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものである。一般に、共同最適化においては、１つ又は複数の出力ニューロンの値は、相互に独立して計算されるわけではない。例えば、共同最適化は、１つ又は複数の出力ニューロンの値に基づく損失関数を最小化することを含むことができる。最適化は、損失関数を最小化する出力値が相互に依存しているという意味においては共同であり得るものであり、例えば、出力ニューロンが所与の場合、他の出力値のためのある１つの値のセットと組み合わせられた、この出力ニューロンの最適値は、他の値のセットと組み合わせられた、この出力ニューロンの最適値とは異なり得る。換言すれば、他の出力ニューロンの値が固定されている場合、損失関数を最小化する出力ニューロンの値は、出力ニューロンの値に依存して異なり得る。従って、出力ニューロンの値を、共同最適化において計算することができる。共同最適化をパラメータ化することができ、例えば、解かれるべき最適化問題は、１つ又は複数のパラメータに依存し得る。
【０００８】
興味深いことに、出力ベクトルを計算することは、１つ又は複数のパラメータによって定義された半正定値計画問題を解くことを含むことができる。半正定値計画問題は、比較的効率的に解くことができる比較的幅広いクラスの最適化問題を表現することができるので、興味深いものである。例えば、半正定値計画問題は、ＭＡＸＳＡＴ問題の緩和を含むことができる。ＭＡＸＳＡＴ問題と、ＭＡＸＣＵＴのような関連する問題とは、最適化層の入力値と出力値との間の離散的な論理関係の幅広いセットを捉えることを可能にするので、例えば、最適化層の入力値と出力値との間のハード及び／又は大域的な関係を効率的に捉えることを可能にするので、特に重要である。
【０００９】
興味深いことに、種々の実施形態においては、このような関係が、共同最適化のパラメータによって定義され、従って、ニューラルネットワークは、最適化層の入力ニューロンと出力ニューロンとの間の関係をエンドツーエンドで効果的に学習することが可能となる。例えば、ニューラルネットワークを、以下のようにして訓練することができ、即ち、同様のプロセスで、例えば畳み込み層、ＲｅＬＵ層などの出力として、最適化層への入力をどのようにして決定するのかが学習され、及び／又は、最適化層のこれらの入力と出力との間に、パラメータのセットによって定義されるどのような関係があるのかが学習され、及び／又は、ニューラルネットワークの他の層、例えば全結合層、他の最適化層などにおいて、最適化層の出力をどのようにして使用するのかが学習される。
【００１０】
しかしながら、本発明者らが認識したように、ＭＡＸＳＡＴ問題と、他の種類の離散的な最適化とは、典型的には、ニューラルネットワークに直接的に含めるためには適していない。例えば、ニューラルネットワークを訓練するために、典型的には、ニューラルネットワークの順方向パス、例えば、入力値からの出力値の計算が、逆伝播に適していることが望ましい。例えば、最適化層の入力／出力の関係が、関数として、好ましくは微分可能及び／又は連続的な関数として記述可能であることが望ましい。さらに、ＭＡＸＳＡＴと、関連する問題とは、正確に解くのが困難であることでよく知られている。特に、ＭＡＸＳＡＴは、ＮＰ困難であることが知られている。このこともまた、そのような問題をニューラルネットワークに効率的に含めることを困難にする。
【００１１】
従って、本発明者らは、値自体に対して最適化を実行するのではなく、入力値及び出力値に関連するベクトルに対して最適化を実行することを着想した。このようなベクトルの最適化は、ニューラルネットワークの層として適用するためにより好適であり得る。例えば、適当に、入力値をベクトルに変換し、ベクトル最適化を実行し、出力ベクトルを値に変換して戻すことにより、連続的及び／又は微分可能なパラメータ化を有するニューラルネットワーク層を得ることができる。さらに、ベクトルの最適化は、比較的効率的に解くことが可能であり、例えば、ＭＡＸＳＡＴのようなＮＰ困難な最適化問題の緩和は、問題の近似解しか提供しない可能性もあるが、元の問題を解くよりも格段に効率的にこのような解を提供することができる。ＭＡＸＳＡＴの緩和として得られるベクトル最適化の具体例を以下に示す。
【００１２】
最適化層は、１つ又は複数の入力ニューロンのための入力ベクトル、例えば、それぞれの入力ニューロンのための入力ベクトルを決定することにより、入力ニューロンの値に適用され得る。入力ベクトルは、それぞれ複数の値を含む。特に、ＭＡＸＳＡＴ緩和の場合、ベクトルは、少なくとも
【数１】
2020191088.tif 000003
個の要素を含むことができ、ここで、ｎは、最適化層の値の数であり、例えば、後で詳述されるような入力変数／値と、出力変数／値と、任意選択的に補助変数との数である。例えば、入力ニューロンのための入力ベクトル（ｖａ）は、入力ニューロンの値（ｚａ）に基づくスカラーによって、所定のベクトル（ｖ０）のスカラー倍数として、例えば、ｖａ＝−ｃｏｓ（πｚａ）ｖ０として決定され得る。所定のベクトルｖ０を、真の方向と称することができる。
【００１３】
入力ベクトルが与えられると、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルを決定することができる。出力ベクトルは、典型的には、入力ベクトルと同一の次元を有する。例えば、最適化は、ＭＡＸＳＡＴ緩和又はＭＡＸＣＵＴ緩和であり得る。換言すれば、出力ベクトルは、それぞれの最適化問題の近似解に対応し得る。しかしながら、他のＳＤＰ、例えば他の最適化問題のベクトル緩和として得られたＳＤＰを使用することも可能である。最適化の種々の例を以下に示す。
【００１４】
１つ又は複数の出力ニューロンの値は、それぞれの計算された出力ベクトルから決定され得る。例えば、半正定値計画問題が、所与の最適化問題の緩和である場合、例えば、値の離散的な最適化に対応するベクトル化された問題の緩和である場合には、値は、問題の緩和である、問題の近似解として決定され得る。例えば、出力ニューロンの値（ｚω）は、出力ニューロンの出力ベクトル（ｖω）と、所定のベクトル（ｖ０）との間の方向差、例えば、
【数２】
2020191088.tif 000004
に基づいて決定され得る。いくつかの例においては、乱択丸めが適用され、例えば、１つ又は複数の出力ニューロンの値は、例えば単位球から１つ又は複数のランダムな超平面を生成し、出力ベクトルと所定のベクトルとがこの１つ又は複数の超平面の同一の側にあるかどうかをチェックすることによって決定される。
【００１５】
複数の最適化層をニューラルネットワークに適用することができる（例えば、同一の層又は複数の層において）。例えば、複数の最適化層のシーケンスを、シーケンシャルに適用してもよい。種々の実施形態においては、複数の最適化層のための共同最適化のパラメータ同士が結び付けられ、例えば、複数の最適化層は、同一の又は少なくとも重複するパラメータのセットによってパラメータ化される。例えば、概念的には、これによって、複数の最適化層は、各自の入力の間の同様の種類の関係を学習することが可能となり得る。このような場合、必要とされるパラメータが少なくなり、過剰適合などを回避することができる。
【００１６】
本明細書で論じられる種々の手段によって、従来の深層学習及び／又は既存の論理学習方法を改善するニューラルネットワークが、いくつかの態様で提供され得る。ニューラルネットワークは、何ら事前の知識がなくても、種々のタスク、例えば改善された画像分類を確実に学習することが可能であり得る。半正定値計画問題、特にＭＡＸＳＡＴ緩和の、強力でジェネリックなプリミティブをラップすることにより、本発明のソルバーは、ドメインの正確な構造を把握する必要なく、比較的大きなフレームワーク内の必要な場所で、暗黙的な論理推論が行われることを可能にすることができる。
【００１７】
例えば、種々の実施形態においては、比較的複雑な深層アーキテクチャの内部に埋め込むことができる微分可能な平滑化されたＭＡＸＳＡＴソルバーが提供され、これにより、これらの関係をハードコーディングすることなく、例から、複雑な論理関係を効果的にエンドツーエンドで学習することが可能となる。
【００１８】
本発明者らが発見したように、本明細書に提示される技術を使用することにより、事前知識がなければ従来の深層学習／論理学習方法が確実に学習することが実質的に不可能であるような、種々の種類の問題を解くことができる。例えば、完全なエンドツーエンドの設定においては、古典的な畳み込みネットワークを、微分可能なＭＡＸＳＡＴソルバーと統合して、最新のニューラルネットワークアーキテクチャにとって困難な制約充足問題を学習することができる。
【００１９】
本明細書に記載される技術は、種々の種類のデータに適用可能であり、例えば、センサデータ、オーディオデータ、ビデオデータ、レーダデータ、ＬｉＤＡＲデータ、超音波データ、又は、種々の個々のセンサ測定値、又は、それらの履歴に適用可能である。例えば、一実施形態においては、ニューラルネットワークは、画像キャプション又は画像分類のために使用される。ネットワークは、これらの適用及び他の適用において、１つ又は複数の畳み込み層を含むことができ、この畳み込み層には、１つ又は複数の最適化と、１つ又は複数の出力層、例えば、当該技術分野において知られている全結合層又は文生成層、例えば、ＬＴＳＭネットワーク、リカレントニューラルネットワークなどの層とが後続する。
【００２０】
他の例として、一実施形態によるニューラルネットワークを使用して、ビデオにおけるアクション、例えば、画像のシーケンスを認識することができる。例えば、これらの実施形態及び他の実施形態においては、ニューラルネットワークは、１つ又は複数の畳み込み層を含むことができ、この畳み込み層には、１つ又は複数の最適化層が後続し、この最適化層には、少なくとも全結合層が後続する。
【００２１】
種々の実施形態においては、本明細書に記載されるニューラルネットワークは、データ内の比較的複雑な関係、例えばハード制約に基づいて、分類、回帰などを実行することが可能であり得る。従来のニューラルネットワークは、このような制約を効率的に捉えることができない場合がある。例えば、関係を表現するために多くの層が必要になる場合があり、結果として、より多くのパラメータ及び／又は訓練データが必要になる場合があり、及び／又は、ニューラルネットワークが過剰適合の影響を受けやすくなる場合がある。従って、一実施形態によるニューラルネットワークは、データ内の論理関係を表現するために必要とされる訓練可能なパラメータを少なく済ませることができ、又は、訓練可能なパラメータが同等であっても若しくはより少なくても、そのような論理関係をより良好に表現することができる。それと同時に、最適化層が学習することができる関係の種類を、事前に制約する必要がなくてもよくなり、例えば、最適化層がどの値の間で関係を学習するのかを明示的に定義する必要がなくてもよくなる。
【００２２】
ある１つの特定の例として、例えば自律型の車両の一部、非自律型の車両の安全システムの一部などとしての、交通状況を分析するシステムについて検討する。そのようなシステムは、例えば交通状況を、危険又は非危険として分類することができる。交通状況が危険である根本的な原因は、車両同士が接近していることであり得る。しかしながら、交通状況が危険である根本的な原因は、多くの訓練インスタンスにおいては、雨が降っていることが理由で、車両同士が相互に接近していること、である可能性がある。なぜなら、道路が混雑するのは、このときだからである。特に、訓練データセットが小さい場合、及び／又は、２つのこのような要因が頻繁に同時に発生する場合には、従来のニューラルネットワークは、どの要因が根本的な原因であり、どの要因が単に相関しているだけなのかを学習することができない場合がある。実際には、従来のニューラルネットワークは、このような論理制約を学習するために多数の層及び／又はニューロンを使用する場合があり、又は、ニューラルネットワークは、そのような論理制約を効果的に捉えることが全くできない場合がある。従って、従来のニューラルネットワークの場合、この種類の推理を学習しても効果がない場合がある。そのようなニューラルネットワークの代わりに、例えば、その根本的な原因が満たされている場合と、相関する要因が存在する場合との両方の場合に、交通状況が危険であるということについて推理を行うことがより効率的であり得る。その結果、訓練されたネットワークは、新しい状況への一般化が不十分となる可能性がある。
【００２３】
しかしながら、本明細書に記載される最適化層を使用することにより、データ間のそのような論理関係をより効率的に学習することが可能となり、例えば、車両が近接していることが重要な要素であって、雨は単に相関しているだけであることを学習するために、１つ又はいくつかの節で十分になり得る。例えば、最適化層の少数のパラメータによって、そのような論理関係を効果的に捉えることが可能となり得る。従って、訓練データを超えてより良好に一般化するような、及び／又は、所与の性能を得るために必要とされる訓練インスタンス及び／又はパラメータが少なくて済むような、ネットワークを得ることができる。
【００２４】
興味深いことに、本明細書で定義される種々のニューラルネットワークは、既知の関係又はルールの既存のセットを必要としなくてもよい。例えば、どの変数同士が相互作用可能であるかについての、従前の構造を用いたシードは必要なくてもよい。効果的には、種々の実施形態において、構造全体と、そのパラメータとを、幅広いクラスの問題についてエンドツーエンドで学習することができる。
【００２５】
任意選択的に、入力インスタンスは、画像を含み、ニューラルネットワークは、少なくとも１つの畳み込み層を含み、少なくとも１つの畳み込み層には、１つ又は複数の最適化層が後続する。このようにして、特に良好な画像分類器を得ることができる。
【００２６】
任意選択的に、半正定値計画問題は、少なくとも、１つ又は複数の入力ニューロンの値と、１つ又は複数の出力ニューロンの値とに関する、ＭＡＸＳＡＴ問題又はＭＡＸ２ＳＡＴ問題又はＭＡＸＣＵＴ問題の緩和を含む。ＭＡＸＣＵＴ、ＭＡＸ２ＳＡＴ及びＭＡＸＳＡＴによって、論理制約を特に効率的に表現することが可能となり、これらのベクトル化された緩和は、比較的効率的に解かれ得る。
【００２７】
任意選択的に、１つ又は複数の補助ベクトルを出力ベクトルと共同で最適化することによって、出力ベクトルが計算される。補助ベクトルは、典型的には、ニューラルネットワークの他の場所では使用されない。補助ベクトルを導入することにより、半正定値計画問題のサイズを縮小することができる。例えば、そのような補助ベクトルは、例えば、ＭＡＸＳＡＴ問題を定義する節において、レジスタメモリと同様の役割を効果的に果たすことができ、それによって、より良好な推理を可能にする。
【００２８】
任意選択的に、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの内積（ＶＴＶ）の線形結合（＜Ｍ，ＶＴＶ＞）を最小化することによって、出力ベクトルを計算することができる。例えば、行列Ｖは、それぞれの入力ベクトルと、出力ベクトルと、使用される場合にはそれぞれの補助ベクトルとを含むことができる。行列Ｖは、例えば、他の箇所においてさらに詳述されているように、「真の方向」、例えば、ランダムに初期化され固定されたベクトルを追加的に含むことができる。典型的には、ベクトルは、制約されており、例えば、これらのベクトルの各々は、単位ノルムを有するように制約され得る。このようにして、効果的に解くことができる半正定値計画問題を得ることができる。
【００２９】
任意選択的に、２つのベクトルの内積のための線形結合の係数は、それぞれのベクトルに関連する２つの重みベクトルの内積
【数３】
2020191088.tif 000005
によって与えられ、２つの重みベクトルは、共同最適化のパラメータ内に含まれる。例えば、重みベクトルは、行列Ｓを定義することができ、ここで、それぞれの行は、節を表し、それぞれの列は、それぞれの入力と、出力と、補助変数とに関する節の係数を表す。最適化問題は、例えば、単位ノルムを有するＶのベクトルに制約された、行列Ｖの出力ベクトル及び補助ベクトルにわたって＜ＳＴＳ，ＶＴＶ＞を最小化することとして定式化され得る。重みベクトルの値は、最適化層の重みであるとみなすことができる。例えば、このようにして、ＭＡＸＳＡＴ緩和を得ることができる。
【００３０】
任意選択的に、２つの重みベクトル（ｓｉ）は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの合計数よりも少ない要素を有し、例えば最大で半数である。このようにして、ニューラルネットワークが学習する、例えば節の形式の知識を、効果的に圧縮することができる。実際に、要素の数を少なくすることは、過剰適合を回避するために役立つことができ、従って、ネットワークは、データの最も重要な論理関係に対するキャプチャ／フォーカスを捉えることが可能となる。
【００３１】
任意選択的に、入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新することによって、出力ベクトルが計算される。換言すれば、出力ベクトルは、いわゆる座標降下によって計算される。座標降下は、好ましい収束特性を有するだけでなく、そのシーケンシャルな性質により、逆伝播による学習にも特に適しており、従って、ニューラルネットワーク学習フレームワークに特に良好に組み込まれ得る。座標降下は、ＧＰＵにおいて効率的に並列化及び／又は実装することができるという利点も有する。
【００３２】
任意選択的に、共同最適化のパラメータは、それぞれの入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルｖｉとに関連する重みベクトルｓｉを含み、重みベクトルのそれぞれのエントリ（ｓ１）ｊ，・・・，（ｓｎ）ｊは、共同で最適化されるべき節を表す前述のベクトルの線形結合
【数４】
2020191088.tif 000006
を定義する。出力ベクトルの計算は、以下のようにして実施することができ、即ち、
・状態行列、例えば、Ω＝ＶＳＴ、ここで、Ｖ＝［ｖ１・・・ｖｎ］及びＳ＝［ｓ１・・・ｓｎ］、を初期化し、
・入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新する
ことによって実施することができ、ここで、状態行列の列は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとに関する節の値を示し、反復的な更新は、更新された出力ベクトル又は補助ベクトルに基づいて状態行列を更新することを含む。状態行列、例えば、Ω＝ＶＳＴを追跡し続け、それを座標降下において使用することによって、比較的効率的な更新を得ることができ、例えば、Ｏ（ｎｍｋ）の更新を提供することができ、ここで、ｎは、変数の数であり、ｋは、ベクトルのサイズであり、ｍは、例えばＭＡＸＳＡＴ問題の、上述したような節の数である。
【００３３】
任意選択的に、座標降下の出力ベクトル及び／又は補助ベクトルに対する複数回の更新を並行して実行することができる。例えば、座標降下を使用することにより、ニューラルネットワークの訓練及び／又は適用は、ＧＰＵ実装のために特に適することができる。ニューラルネットワークを適用する際における座標降下の内部ループ中には、状態行列の計算及び／又は状態行列へのランク１の更新を並列化することによって、全てのｇω勾配項の計算を並列化することができ、また、訓練する際にも同様である。従って、例えば上述したような行列積ＳＴＳによって定義される、低ランクの半正定値計画問題の使用は、特に有用であり得るものであり、例えば、従来のフルランク座標勾配降下においては、一般に、このような並列化が不可能であり得る。この結果、性能を大幅に向上させることができる。
【００３４】
ニューラルネットワークの訓練は、入力値から出力値を決定する計算を逆伝播することによって効果的に実施され得る。興味深いことに、本明細書において論じられる手段を用いて、そのような更新を、効率的に実施することができ、例えば、順方向パスは、連続的及び／又は微分可能であり得るので、逆方向パスを、分析的に導出することが可能となり、及び／又は、効率的に計算することが可能となる。特に、共同最適化が、入力ベクトル及び／又は１つ又は複数の重みに関する損失の勾配を訓練している間に、入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新することを含む場合には、前述の反復的な更新の逆伝播によって決定することができ、これにより、他の層を訓練するために使用されるニューラルネットワーク訓練技術と良好に統合される手法により、最適化のパラメータを取得することが可能となり、例えば、ニューラルネットワーク全体をエンドツーエンドで訓練することができる。
【００３５】
本発明の上述した実施形態、実装及び／又は任意選択肢の態様のうちの２つ以上を、有用であると思われる任意の手法により組み合わせてもよいことは、当業者には理解されるであろう。
【００３６】
対応するシステムの上述の修正形態及び変形形態に対応する、任意のコンピュータ実装方法及び／又は任意のコンピュータ可読媒体の修正形態及び変形形態を、本明細書の説明に基づいて当業者によって実施することが可能である。
【００３７】
図面の簡単な説明
本発明のこれら及び他の態様は、以下の記載において例として説明される実施形態と、添付の図面とを参照して明らかになり、さらに説明されるであろう。
【図面の簡単な説明】
【００３８】
【図１】ニューラルネットワークを訓練するためのシステムを示す図である。
【図２】ニューラルネットワークを適用するためのシステムを示す図である。
【図３】ニューラルネットワークを適用するためのシステムを示す図である。
【図４】最適化層を示す図である。
【図５】最適化層をどのようにして訓練／使用するかの詳細な例を示す図である。
【図６】ニューラルネットワークを適用する方法を示す図である。
【図７】ニューラルネットワークを訓練する方法を示す図である。
【図８】データを含むコンピュータ可読媒体を示す図である。
【００３９】
図面は、純粋に概略的なものであり、縮尺通りには図示されていないことに留意すべきである。図面において、既に記載されている要素に対応する要素は、同一の参照符号を有する場合がある。
【発明を実施するための形態】
【００４０】
実施形態の詳細な説明
図１は、ニューラルネットワークを訓練するためのシステム１００を示している。システム１００は、データインタフェース１２０と、プロセッササブシステム１４０とを含むことができ、データインタフェース１２０と、プロセッササブシステム１４０とは、データ通信１２４を介して内部的に通信することができる。データインタフェース１２０は、ニューラルネットワークのパラメータを表すデータ０５０にアクセスするためのものであり得る。ニューラルネットワークは、少なくとも１つの最適化層を含むことができる。最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり得る。データ０５０は、共同最適化の１つ又は複数のパラメータを含むことができる。データインタフェース１２０は、１つ又は複数の訓練インスタンスを含む訓練データセット０３０にアクセスするためのものでもあり得る。
【００４１】
プロセッササブシステム１４０は、システム１００の動作中にデータインタフェース１２０を使用してデータ０３０，０５０にアクセスするように構成され得る。例えば、図１に示されているように、データインタフェース１２０は、前述のデータ０３０，０５０を含むことができる外部のデータストレージ０２０へのアクセス１２２を提供することができる。あるいは、データ０３０，０５０は、システム１００の一部である内部のデータストレージからアクセスされ得る。あるいは、データ０３０，０５０は、ネットワークを介して他のエンティティから受信され得る。一般に、データインタフェース１２０は、ローカルエリアネットワーク又はワイドエリアネットワークへの、例えばインタネットへのネットワークインタフェース、内部又は外部のデータストレージへのストレージインタフェースなどのように、種々の形態をとることができる。データストレージ０２０は、任意の公知の適当な形態をとることができる。
【００４２】
プロセッササブシステム１４０は、システムの動作中にニューラルネットワークを訓練するように構成され得る。ニューラルネットワークを訓練することは、最適化層の１つ又は複数の出力ニューロンに関する損失の勾配から、共同最適化の１つ又は複数の入力ニューロン及び／又は１つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定することを含むことができる。前述の勾配を決定することは、
・出力ニューロンに関する勾配から、１つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
・出力ベクトルに関する勾配から、１つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、入力ニューロンに関するニューラルネットワークの損失の勾配を決定すること、及び／又は、出力ベクトルに関する勾配から、１つ又は複数のパラメータに関する損失の勾配を決定すること、と
によって実施され得る。
【００４３】
損失は、ニューラルネットワークを訓練データセットの１つ又は複数の訓練インスタンスに適用することの損失であり得る。ニューラルネットワークを訓練インスタンスに適用すると、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルを、入力ベクトルから計算することができる。逆方向パスは、相応に実行され得る。
【００４４】
任意選択肢のコンポーネントとして、システム１００は、画像入力インタフェース（図示せず）を含むことができ、又は、カメラ（図示せず）のようなセンサからセンサデータを取得するための任意の他の種類の入力インタフェースを含むことができる。プロセッササブシステム１４０は、センサから取得されたセンサデータとして、訓練データセット０３０の１つ又は複数の訓練インスタンスを取得するように構成され得る。
【００４５】
システム１００のオペレーションの種々の詳細及び態様は、これらの任意選択肢の態様が含まれる図４及び５を参照しながらさらに説明される。
【００４６】
一般に、システム１００は、ワークステーション、例えばラップトップ若しくはデスクトップベース、又は、サーバのような単一のデバイス若しくは装置として、又は、そのような単一のデバイス若しくは装置の中に実装され得る。デバイス又は装置は、適当なソフトウェアを実行する１つ又は複数のマイクロプロセッサを含むことができる。例えば、プロセッササブシステムは、単一の中央処理装置（ＣＰＵ）によって実装されていてもよいが、複数のそのようなＣＰＵ及び／又は複数の他の種類の処理装置からなる組合せ又はシステムによっても実装されていてもよい。ソフトウェアは、対応するメモリ、例えばＲＡＭのような揮発性メモリ内に、又は、フラッシュのような不揮発性メモリ内に、ダウンロード及び／又は格納され得る。あるいは、システムの機能ユニット、例えば、データインタフェース及びプロセッササブシステムは、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）及び／又はグラフィックスプロセッシングユニット（ＧＰＵ）のようなプログラマブルロジックの形態により、デバイス内又は装置内に実装されていてもよい。一般に、システムのそれぞれの機能ユニットは、回路の形態により実装され得る。システム１００が、分散サーバのような複数の異なるデバイス又は装置が含まれる分散方式でも、例えばクラウドコンピューティングの形態によっても実装され得ることに留意すべきである。
【００４７】
図２は、ニューラルネットワークを入力インスタンスに適用するためのシステム２００を示している。システム２００は、データインタフェース２２０と、プロセッササブシステム２４０とを含むことができ、データインタフェース２２０と、プロセッササブシステム２４０とは、データ通信２２４を介して内部的に通信することができる。データインタフェース２２０は、ニューラルネットワークを表すデータ０５０にアクセスするためのものであり得る。ニューラルネットワークは、少なくとも１つの最適化層を含むことができる。最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり得る。データ０５０は、共同最適化の１つ又は複数のパラメータを含むことができる。
【００４８】
プロセッササブシステム２４０は、システム２００の動作中にデータインタフェース２２０を使用してデータ０５０にアクセスするように構成され得る。データ０５０は、例えばシステム１００により、本明細書に記載される方法に従ってニューラルネットワークを訓練することによって取得され得る。例えば、図２に示されているように、データインタフェース２２０は、前述のデータ０５０を含むことができる外部のデータストレージ０２２へのアクセス２２２を提供することができる。あるいは、データ０５０は、システム２００の一部である内部のデータストレージからアクセスされ得る。あるいは、データ０５０は、ネットワークを介して他のエンティティから受信され得る。一般に、データインタフェース２２０は、ローカルエリアネットワーク又はワイドエリアネットワークへの、例えばインタネットへのネットワークインタフェース、内部又は外部のデータストレージへのストレージインタフェースなどのように、種々の形態をとることができる。データストレージ０２２は、任意の公知の適当な形態をとることができる。
【００４９】
プロセッササブシステム２４０は、システムの動作中に入力インスタンスを取得するように構成され得る。プロセッササブシステム２４０はさらに、システムの動作中にニューラルネットワーク０５０を入力インスタンスに適用するように構成され得る。ニューラルネットワークを適用することは、最適化層への１つ又は複数の入力ニューロンの値を取得し、そこから、１つ又は複数の入力ニューロンのための入力ベクトルを決定することを含むことができる。ニューラルネットワークを適用することはさらに、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算することを含むことができる。ニューラルネットワークを適用することは、それぞれの計算された出力ベクトルから１つ又は複数の出力ニューロンの値を決定することを含むこともできる。
【００５０】
任意選択肢のコンポーネントとして、システム２００は、画像入力インタフェース２６０を含むことができ、又は、カメラ２８０のようなセンサからセンサデータを取得するための任意の他の種類の入力インタフェースを含むことができる。センサデータは、ニューラルネットワークによって処理されるべきインスタンス内に含まれ得る。例えば、カメラは、画像データ２６２を捕捉するように構成され得るものであり、プロセッササブシステム２４０は、入力インタフェース２６０を介して取得された画像データ２６２からインスタンスを取得するように構成されている。
【００５１】
任意選択肢のコンポーネントとして、システム２００は、アクチュエータにシステム２００の環境内におけるアクションを実行させるアクチュエータデータを、アクチュエータに供給するためのアクチュエータインタフェース（図示せず）を含むことができる。例えば、プロセッササブシステム２４０は、入力インスタンスに対するニューラルネットワークの出力に少なくとも部分的に基づいてアクチュエータデータを決定し、このアクチュエータデータを、アクチュエータインタフェースを介してアクチュエータに供給するように構成され得る。
【００５２】
システム２００のオペレーションの種々の詳細及び態様は、これらの任意選択肢の態様が含まれる図４及び図５を参照しながらさらに説明される。
【００５３】
一般に、システム２００は、ワークステーション、例えばラップトップ若しくはデスクトップベース、又は、サーバのような単一のデバイス若しくは装置として、又は、そのような単一のデバイス若しくは装置の中に実装され得る。デバイス又は装置は、適当なソフトウェアを実行する１つ又は複数のマイクロプロセッサを含むことができる。例えば、プロセッササブシステムは、単一の中央処理装置（ＣＰＵ）によって実装されていてもよいが、複数のそのようなＣＰＵ及び／又は複数の他の種類の処理装置からなる組合せ又はシステムによっても実装されていてもよい。ソフトウェアは、対応するメモリ、例えばＲＡＭのような揮発性メモリ内に、又は、フラッシュのような不揮発性メモリ内に、ダウンロード及び／又は格納され得る。あるいは、システムの機能ユニット、例えば、データインタフェース及びプロセッササブシステムは、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）及び／又はグラフィックスプロセッシングユニット（ＧＰＵ）のようなプログラマブルロジックの形態により、デバイス内又は装置内に実装されていてもよい。一般に、システムのそれぞれの機能ユニットは、回路の形態により実装され得る。システム２００が、分散サーバのような複数の異なるデバイス又は装置が含まれる分散方式でも、例えばクラウドコンピューティングの形態によっても実装され得ることに留意すべきである。
【００５４】
図３は、上記の例を示しており、ここでは、一実施形態によるニューラルネットワークを入力インスタンスに適用するためのシステム、例えば図２のシステム２００（別個には図示せず）を含む、車両６２を制御するための自動車制御システム３００が示されている。ニューラルネットワークは、この例においては、画像分類器であり得る。車両６２は、自律型又は半自律型の車両であり得るが、このことは必須ではなく、例えば、システム３００は、非自律型の車両６２の運転者支援システムであってもよい。
【００５５】
例えば、車両６２は、カメラ２２から取得された画像に基づいて車両を制御するためのニューラルネットワーク適用システムを組み込むことができる。例えば、自動車制御システム３００は、カメラ２２から車両の環境５０の画像を取得するためのカメラインタフェース（別個には図示せず）を含むことができる。
【００５６】
システムは、ニューラルネットワークを使用してカメラ２２から取得された画像を分類して、車両の環境５０内の関心のある状況、例えば、車両が衝突する危険のある障害物を検出するように構成され得る。制御システム３００はさらに、アクチュエータに車両６２を制御するためのアクションを実行させるアクチュエータデータを、アクチュエータに供給するためのアクチュエータインタフェース（別個には図示せず）を含むことができる。自動車制御システム３００は、この検出結果に少なくとも部分的に基づいて、車両６２を制御するためのアクチュエータデータを決定し、このアクチュエータデータを、アクチュエータインタフェースを介してアクチュエータに供給するように構成され得る。例えば、アクチュエータは、車両のステアリング及び／又はブレーキを制御するために動作させられ得る。例えば、制御システムは、関心のある状況が検出された場合に（回生）ブレーキを実行するように、電気モータ４２を制御することができる。
【００５７】
図４は、例えば、システム１００又は２００によって使用するための最適化層の、詳細であるが非限定的な例を示している。ここに示されている最適化層ＯＬ，４５１は、ＭＡＸＳＡＴ層であり、このＭＡＸＳＡＴ層においては、共同最適化Ｏｐｔ，４４０において、ＭＡＸＳＡＴ問題の緩和である半正定値計画問題が解かれる。この図面は、ＭＡＸＳＡＴ層の、例えば入力から出力への順方向パスを示している。この層は、入力として、既知のＭＡＸＳＡＴ変数の離散的又は確率的な割り当てを受け取ることができる。この層は、特定の重みＳを用いたＭＡＸＳＡＴ問題のＳＤＰ緩和によって、未知の変数の割り当てに関する推測を出力することができる。そのような層を「ＳＡＴＮｅｔ層」と称することができる。
【００５８】
最適化層ＯＬの入力値ＩＶｓ，４００が示されている。入力値は、
【数５】
2020191088.tif 000007
であるＺａによって表すことができ、ここで、Ｉは、最適化層への入力のセットを表す。入力値は、例えば、
【数６】
2020191088.tif 000008
のように離散的であってもよいし、又は、例えば、
【数７】
2020191088.tif 000009
のように確率的であってもよい。
【００５９】
最適化層ＯＬの一部として、演算Ｒｘ，４１０において、入力ベクトルＩＶＸｓ，４２０を取得するため、例えば、それぞれの入力値
【数８】
2020191088.tif 000010
に対する入力ベクトル
【数９】
2020191088.tif 000011
を取得するために、入力値ＩＶｓが緩和される。適当な緩和については、以下で説明する。好ましくは、緩和は、連続的及び／又は微分可能な関数によって実行される。
【００６０】
入力ベクトルＩＶＸｓに基づいて、出力ベクトルＯＶＸｓ，４７０は、入力ベクトルＩＶＸｓに対して少なくとも出力ベクトルＯＶＸｓを共同で最適化することＯｐｔ，４４０によって計算され、例えば、入力ベクトルＩＶＸｓを固定したままで少なくとも出力ベクトルＯＶＸｓに関する損失関数を最適化することによって計算される。出力ベクトルＯＶＸｓは、
【数１０】
2020191088.tif 000012
である
【数１１】
2020191088.tif 000013
によって表すことができ、ここで、
【数１２】
2020191088.tif 000014
は、最適化層の出力のセットを表す。この場合、最適化Ｏｐｔは、ＭＡＸＳＡＴのＳＤＰ緩和であり、即ち、ＳＤＰ緩和のパラメータＰＡＲ，４６０は、ＳＤＰ緩和を定義する重みＳを含むことができる。そのような緩和の詳細な例については、他の箇所において説明する。
【００６１】
最適化の出力ベクトルＯＶＸｓから、この場合には、丸めＲｄ，４８０を実行することによって、最適化層ＯＬの出力値ＯＶｓ，４９０を決定することができる。この例においては、出力値
【数１３】
2020191088.tif 000015
は、例えば
【数１４】
2020191088.tif 000016
のように離散的であってもよいし、又は、例えば、
【数１５】
2020191088.tif 000017
のように確率的であってもよい。丸めＲｄは、乱択丸めによって実行されてもよいし、又は、他の箇所において説明されている他の種類の丸めによって実行されてもよい。
【００６２】
最適化層ＯＬの詳細な例として、ＳＡＴＮｅｔ層についての以下の説明は、図５を参照しながらより詳細に説明される式及びアルゴリズムを参照して行われる：
【表１】
2020191088.tif 000018
【００６３】
図５は、一実施形態によるニューラルネットワークをどのようにして適用及び／又は訓練するかの、詳細であるが非限定的な例を示している。この例においては、ニューラルネットワークＮＮ，５５０が示されている。
【００６４】
例えば、ニューラルネットワークＮＮを適用すると、入力インスタンスＩＩ，５３０を取得することができる。例えば、入力インスタンスＩＩは、画像であってもよいし、又は、他の種類のセンサデータであってもよい。入力インスタンスＩＩは、センサなどからユーザによって入力され得る。種々の実施形態においては、ニューラルネットワークＮＮは、入力インスタンスの分類ＣＬ，５３９を決定するように構成され得るが、このことは必須ではない。分類ＣＬを使用して、例えば、入力インスタンスＩＩが検知された環境内におけるアクションをアクチュエータが実行するための制御信号を決定することができる。図面に示されている矢印は、ニューラルネットワークを適用する順方向パスにおける種々のデータの依存関係を示すことができる。
【００６５】
例えば、ニューラルネットワークＮＮを訓練する際には、例えば、ニューラルネットワークの損失の勾配を決定することと、損失が低減されるようにニューラルネットワークのパラメータを適合させることとを反復的に実行することにより、ニューラルネットワークを介した逆伝播を実行することができる。例えば、対応するラベルが付けられた１つ又は複数の入力インスタンスＩＩに基づいて、例えば、ミニバッチで、それぞれの入力インスタンスＩＩに対するニューラルネットワークＮＮの分類と、それぞれのインスタンスに付けられたラベルとの間の差を示す損失が決定される。例えば、ニューラルネットワークＮＮを訓練するために、最適化フレームワークを使用することができ、この最適化フレームワークは、Ｄｉｅｄｅｒｉｋ  Ｐ．Ｋｉｎｇｍａ及びＪｉｍｍｙ  Ｂａによる『Ａｄａｍ：Ａ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｓｔｏｃｈａｓｔｉｃ  Ｏｐｔｉｍｉｚａｔｉｏｎ』（参照によって本明細書に組み込まれ、https://arxiv.org/abs/1412.6980において入手可能である。）において開示されているＡｄａｍ最適化手法のように、それ自体が公知である。例えば、最小化されるべき損失は、クロスエントロピー損失、負の対数尤度、平均二乗誤差などであり得る。
【００６６】
図面に示されているように、ニューラルネットワークＮＮは、少なくとも１つの最適化層を含むことができる。ニューラルネットワークＮＮは、複数の最適化層を含むこともでき、例えば、第１の最適化層の１つ又は複数の出力が、第２の最適化層に入力されるなどである。
【００６７】
例えば、長さＬの入力シーケンスへの演算のシーケンスの適用を学習するために、ニューラルネットワークＮＮは、一連のＬ−１個の最適化層、例えば、ＳＡＴＮｅｔ層を含むことができる。例えば、演算のシーケンスは、そのパリティを計算するために入力シーケンスに連続的に適用されるＸＯＲ演算のシーケンスであり得る。例えば、同一の演算が複数回適用される場合には、最適化層の一部又は全てに重みを関連付けることができる。例えば、ＸＯＲのようなバイナリ関数の場合には、第１の最適化層は、最初の２つの値を入力として受信することができ、層ｄは、層ｄ−１の出力とともに値ｄを受信することができる。それぞれの層がそれぞれの演算の計算を学習すると、組み合わせられたシステムは、演算全体を正しく計算することとなる。本明細書に提示される技術を使用して、長い一連の最適化問題を有するそのようなニューラルネットワークを、任意の中間の教師（intermediate supervision）によって訓練することができることに留意すべきである。
【００６８】
ニューラルネットワークＮＮの構造の他の例として、ニューラルネットワークは、畳み込みニューラルネットワークの１つ又は複数の層を含むことができ、この畳み込みニューラルネットワークの後には、１つ又は複数の最適化層、例えばＳＡＴＮｅｔ層が後続する。このようにすると、ニューラルネットワークは、低レベルのセンサ入力特徴、例えば低レベルの画像特徴に関して推理を行うことが可能となり得る。最適化層の後には、例えば、分類、回帰、潜在特徴への符号化などを実行するための追加的な層が後続することができる。
【００６９】
当業者が理解するように、上記の具体的なニューラルネットワークの例は、本明細書に提示されるような最適化層のいくつかの特定の使用を例示するために使用されているに過ぎない。種々の代替案又は組合せが考えられ、その場合、本明細書に提示される最適化層を、他の種類のニューラルネットワーク層、例えば、ＬＳＴＭアーキテクチャから既知の層と、及び／又は、種々の設定で、例えば、敵対的生成モデル（ＧＡＮ）、変分オートエンコーダ（ＶＡＥ）などで、有利に組み合わせることができる。
【００７０】
次に、最適化層に進む。最適化層は、１つ又は複数の出力ニューロンの値ＯＶ１，５７３からＯＶｎ，５７４までを決定するためのものであり得る。この例においては、２つの出力ニューロンが示されているが、一般に、より多くの出力ニューロン、例えば少なくとも２０個又は少なくとも１００個の出力ニューロンが存在し得る。しかしながら、ただ１つの出力ニューロンも可能である。出力ニューロンの値は、１つ又は複数の入力ニューロンの値ＩＶ１，５０１，・・・，ＩＶｎ，５０２から決定され得る。ここでも、１つ又は複数の入力値、例えば少なくとも２０個又は少なくとも１００個の入力値が存在し得る。入力値の数と出力値の数とは、異なっていてもよい。入力値ＩＶ１，・・・，ＩＶｎから、出力値ＯＶ１，・・・，ＯＶｎを、入力値に対応する入力ベクトルに対して、少なくとも出力値に対応する出力ベクトルを共同で最適化することによって決定することができ、例えば、入力値を一定にしたままで、出力ベクトル及び入力ベクトルに依存する損失関数を最小化するような出力ベクトルを決定することによって決定することができる。
【００７１】
種々の実施形態においては、共同最適化は、入力値及び出力値に対する最適化問題の緩和であり得る。具体的には、いくつかの実施形態においては、共同最適化は、ＭＡＸＳＡＴ緩和である。ＭＡＸ２ＳＡＴ又はＭＡＸＣＵＴのような他の最適化問題も、同様に緩和することができる。
【００７２】
ＭＡＸＳＡＴ問題は、周知の充足可能性（ＳＡＴ）問題に類似した最適化であり、ここでの目的は、充足される節の数を最大化することである。ｎ個の変数と、ｍ個の節とを有するＭＡＸＳＡＴインスタンスについて検討する。
【数１６】
2020191088.tif 000019
が、問題変数のバイナリ割り当てを表すものとし、ここで、
【数１７】
2020191088.tif 000020
は、変数
【数１８】
2020191088.tif 000021
の真の値であり、
【数１９】
2020191088.tif 000022
である
【数２０】
2020191088.tif 000023
を表し、ただし、
【数２１】
2020191088.tif 000024
は、
【数２２】
2020191088.tif 000025
節における
【数２３】
2020191088.tif 000026
の符号を表す。
ＭＡＸＳＡＴ問題は、以下のように定式化され得る：
【数２４】
2020191088.tif 000027
（１）の半正定値緩和を形成するために、離散変数
【数２５】
2020191088.tif 000028
を、いくつかの「真の方向」
【数２６】
2020191088.tif 000029
に関して、関連する連続変数
【数２７】
2020191088.tif 000030
へと緩和することができる。係数ベクトルは、ｖ０に関連する
【数２８】
2020191088.tif 000031
として定義され得る。ＭＡＸＳＡＴのＳＤＰ緩和は、以下のように定式化され得る：
【数２９】
2020191088.tif 000032
ここで、
【数３０】
2020191088.tif 000033
であり、
【数３１】
2020191088.tif 000034
である。
【００７３】
一般に、Ｖのベクトルの内積（ＶＴＶ）の種々の線形結合（Ｍ，ＶＴＶ）は、半正定値計画問題につながる行列Ｍの種々の選択肢に対して最小化され得るが、Ｍ＝ＳＴＳを選択することが、ＭＡＸＳＡＴ問題に対応しているので特に有利である。換言すれば、２つのベクトルの内積のための線形結合の係数は、それぞれのベクトルに関連する２つの重みベクトルの内積
【数３２】
2020191088.tif 000035
によって与えられ得る。重みベクトルは、共同最適化のパラメータ内に含まれ得る。重みベクトルは、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの合計数ｎ＋１よりも少ない要素ｋを有することができ、換言すれば、ＳをＶよりも小さくすることができ、その意味でＳは、最適化層の低ランクのパラメータ化を提供することができる。
【００７４】
種々の実施形態においては、半正定値計画問題（２）を、座標降下を適用することによって解くことができる。特に、ｖｉに依存する目的項は、
【数３３】
2020191088.tif 000036
によって与えられ得る。ここで、Ｓｉは、Ｓのｉ番目の列ベクトルである。この量を、
【数３４】
2020191088.tif 000037
という制約の下で、ｖｉにわたって最小化すると、座標降下の更新
【数３５】
2020191088.tif 000038
が得られる。この更新は、ＳＤＰの大域的に最適な固定点に収束することができる。
【００７５】
種々の実施形態においては、半正定値計画問題は、最新の深層ネットワークアーキテクチャ、例えばニューラルネットワークＮＮに組み込むことができる微分可能な平滑化ソルバーを使用して解かれる。座標降下を使用して、半正定値計画問題、例えばＳＤＰ ＭＡＸＳＡＴ緩和を解くことができる。特に、ＭＡＸＳＡＴ問題のＳＤＰ緩和と、関連する座標降下の更新とを使用して、充足可能性を解くための深層ネットワーク層、例えば図４のＳＡＴＮｅｔ層を得ることができる。
【００７６】
次に、順方向パスにおいて、ニューラルネットワークＮＮがどのようにして入力インスタンスＩＩに適用され得るかについて説明する。
【数３６】
2020191088.tif 000039
を、最適化層の入力変数ＩＶ１，・・・，ＩＶｎの、例えば、既知の割り当てを有する変数のインデックスとして定義し、
【数３７】
2020191088.tif 000040
は、未知の割り当てを有する出力変数ＯＶ１，・・・，ＯＶｎのインデックスに対応するものとする。入力値は、例えば、最適化層に先行するニューラルネットワークＮＮの層を評価することによって、入力インスタンスＩＩから決定され得る。
【００７７】
最適化層は、入力ＩＶｉとして、確率的な入力又はバイナリの入力
【数３８】
2020191088.tif 000041
を許容することができ、出力ＯＶｉとして、同様に確率的又はバイナリ
【数３９】
2020191088.tif 000042
である未知の変数
【数４０】
2020191088.tif 000043
の割り当てを出力することができる。本発明は、
【数４１】
2020191088.tif 000044
及び
【数４２】
2020191088.tif 000045
に、それぞれ全ての入力及び出力の割り当てを参照させる。出力
【数４３】
2020191088.tif 000046
は、ＳＤＰによって生成され得る。共同最適化のパラメータは、例えば、ＳＤＰの低ランクの係数行列Ｓを含むことができる。
【００７８】
層の初期化：最適化層の種々の側面、例えば、共同最適化のパラメータの数をコンフィギュレーションすることができる。例えば、ＭＡＸＳＡＴの例においては、この層が表現可能な節の最大数ｍを、事前に定義することができる。
【００７９】
任意選択的に、層の入力又は出力に接続されていない１つ又は複数の補助変数を使用することによって、層の表現能力を向上させることができる。出力ベクトルは、１つ又は複数の補助ベクトルＡＶＸ１，５７１，・・・，ＡＶＸｎ，５７２を出力ベクトルと共同で最適化することによって計算され得る。最適化問題に追加的な変数を追加すると、その問題をパラメータ化するために必要とされる節の数を減らすことができる。入力変数及び出力変数と同様に、補助変数を補助ベクトルとして表すことができ、この補助ベクトルは、出力ベクトルと共同で最適化される。補助変数の数は、一般に、入力ベクトル又は出力ベクトルの数と同一ではない。１つ又は複数の補助ベクトル、例えば少なくとも１０個又は少なくとも１００個の補助ベクトルが存在し得る。
【００８０】
入力ベクトル、出力ベクトル、及び／又は、補助ベクトルは、次元
【数４４】
2020191088.tif 000047
を有することができ、ここで、ｎは、補助変数に加えて、実際の問題変数（入力及び／又は出力）の数を表し得るものであり、例えば、ＭＡＸＳＡＴの場合には、これにより、ＳＤＰが最適に解かれることを保証することができる。
【００８１】
演算Ｒｘ，５１０において、層入力ＩＶ１，・・・，ＩＶｎを緩和することができ、例えば、それぞれの入力値に対して、入力ベクトルＩＶＸ１，５２１，・・・，ＩＶＸｎ，５２２を決定することができる。好ましくは、逆伝播を容易にするために、それぞれの入力値に対して連続的及び／又は微分的に入力ベクトルが決定される。具体的な例として、
【数４５】
2020191088.tif 000048
であるそれぞれの層入力ｚａを、
ｖａ＝−ｃｏｓ（πｚａ）ｖ０      （４）
によって、関連する
【数４６】
2020191088.tif 000049
へと緩和することができる。なお、「真の方向」
【数４７】
2020191088.tif 000050
を、初期化することができ、例えばランダムに生成して層の内部に保存することができる。他の関数も可能である。効果的には、最適化層は、演算Ｒｘにおいて、最適化層への入力を連続ベクトルへと緩和して、ＳＤＰ定式化において使用することができる。
【００８２】
演算Ｃｄｅｓｃ，５４０において、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルＯＶＸ１，５７３，・・・，ＯＶＸｎ，５７４を、決定された入力ベクトルＩＶＸ１，・・・，ＩＶＸｎから計算することができる。補助ベクトルＡＶＸ１，・・・，ＡＶＸｎが存在する場合には、これらの補助ベクトルＡＶＸ１，・・・，ＡＶＸｎも最適化することができる。出力ベクトルの数は、典型的には、出力値ＯＶ１，・・・，ＯＶｎの数に対応する。
【００８３】
例えば、１つ又は複数のパラメータは、ＭＡＸＳＡＴ緩和の重みベクトルＳを含むことができる。この場合には、それぞれの入力ベクトルにつき１つの重みベクトルＩＷＶ１，５６１，・・・，ＩＷＶｎ，５６２を設けることができ、それぞれの補助ベクトルにつき１つの重みベクトルＡＷＶ１，５６３，・・・，ＡＷＶｎ，５６４を設けることができ、及び／又は、それぞれの出力ベクトルにつき１つの重みベクトルＯＷＶ１，５６５，・・・，ＯＷＶｎ，５６６を設けることができる。典型的には、重みベクトルは、それぞれ同一の長さを有し、上で説明したように行列Ｓを一緒に形成する。より一般的には、パラメータは、ベクトルＩＶＸ１，・・・，ＩＶＸｎ，ＡＶＸ１，・・・，ＡＶＸｎ，ＯＶＸ１，・・・，ＯＶＸｎの内積の線形結合の係数Ｍを含むことができ又は定義することができる。
【００８４】
興味深いことに、出力ベクトル及び／又は補助ベクトルは、典型的には、最適化によって決定されるが、その一方で、入力ベクトルは、図面の矢印によって示されるように固定されたままである。
【００８５】
入力ＩＶ１，・・・，ＩＶｎ
【数４８】
2020191088.tif 000051
の緩和ＩＶＸ１，・・・，ＩＶＸｎ（本明細書においては、集合的に
【数４９】
2020191088.tif 000052
と称し、例えば、ＶのＩインデックス付きの列のサブセットである）が与えられると、最適化層は、連続的な出力
【数５０】
2020191088.tif 000053
（本明細書においては、集合的に、
【数５１】
2020191088.tif 000054
と称する。）の値を計算するために、例えば更新（３）によって、座標降下を使用することができる。換言すれば、出力ベクトルＯＶＸ１，・・・，ＯＶＸｎは、入力ベクトルＩＶＸｉと、出力ベクトルＯＶＸｉ及び補助ベクトルＡＶＸｉの現在の値とに基づいて、出力ベクトルＯＶＸｉ又は補助ベクトルＡＶＸｉを反復的に更新することによって計算され得る。興味深いことに、これらの更新を、出力変数及び補助変数のみに対して計算することができ、例えば、層への入力として割り当てが与えられた変数に対しては、計算を回避することができる。
【００８６】
ＭＡＸＳＡＴ緩和のための順方向パスのための座標降下アルゴリズムの例を、以下に詳細に示す：
【表２】
2020191088.tif 000055
【００８７】
上記のアルゴリズムで例示されているように、座標降下は、状態行列、即ち、ｇωを計算するために必要とされる項Ω＝ＶＳＴを維持することによって、効率的に実施され得る。説明したように、重みベクトルＩＷＶ１，・・・，ＯＷＶｎのそれぞれのエントリ、換言すれば、行列Ｓの行は、共同で最適化されるべき節を表すベクトルＩＶＸ１，・・・，ＯＶＸｎの線形結合を定義することができる。従って、状態行列ωの列は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとに関するこのような節の値を示すことができる。例示されているように、状態行列は、それぞれの内部反復中にランク１の更新によって更新され得る。従って、Ｏ（ｎｍｋ）の反復ごとのランタイムを達成することができる。実際には、収束のために必要とされる反復の回数はごく少数であることが多いことが観察されている。
【００８８】
演算Ｒｄ，５８０において、１つ又は複数の出力ニューロンの離散的又は確率的な値ＯＶ１，・・・，ＯＶｎが、それぞれの計算された出力ベクトルＯＶＸ１，・・・，ＯＶＸｎから決定される。出力ベクトル、例えば座標降下からの緩和された出力
【数５２】
2020191088.tif 000056
が与えられると、最適化層は、これらの出力を、例えばしきい値処理又は乱択丸めによって離散的又は確率的な変数割り当てｚωに変換することができる。興味深いことに、演算Ｒｄは、連続的及び／又は微分可能であり得るし、又は、少なくとも、連続的及び／又は微分可能な関数として訓練することを可能にすることができる。
【００８９】
例えば、乱択丸めを使用することができ、この場合、ランダムな超平面ｒを、例えば単位球から生成することができ、
【数５３】
2020191088.tif 000057
を割り当てることができ、ここで、
【数５４】
2020191088.tif 000058
は、ｖωのためのブール出力である。この方法又は類似の方法を使用すると、
【数５５】
2020191088.tif 000059
が「真」になるのは、ｖωがｖ０に類似している場合のみ、例えば、ｖωがランダムな超平面ｒに関して真のベクトルｖ０と同一の側にある場合のみであり得る。
【００９０】
訓練中には、又は、これに代えて乱択丸めの実行中には、ｖω及びｖ０が任意の所与のｒの同一の側にある確率が、
【数５６】
2020191088.tif 000060
であり、従って、
【数５７】
2020191088.tif 000061
を、この確率に等しくなるように設定することができることを述べておくことができる。
【００９１】
ニューラルネットワークＮＮを適用する際には、例えば、確率的な出力が、同様に出力されることが可能であり、又は、離散的な割り当てが、しきい値処理によって又は乱択丸めを明示的に適用することによって出力されることが可能である。乱択丸めの場合には、丸めを複数回実行することができ、ブール解を選択して、手元の最適化問題、例えばＭＡＸＳＡＴ目標（１）を最大化することができる。例えば、
【数５８】
2020191088.tif 000062
を設定することができる。
【００９２】
次に、逆方向パスにおけるニューラルネットワークＮＮの訓練に進む。ニューラルネットワークＮＮを訓練する際には、１つ又は複数の入力ニューロン及び／又は１つ又は複数の共同最適化のパラメータに関するニューラルネットワークの損失の勾配を、最適化層の１つ又は複数の出力ニューロンに関する損失の勾配から決定するために、逆方向パスを実行することができる。層出力に関するネットワーク損失ｌの勾配
【数５９】
2020191088.tif 000063
が与えられると、それぞれの層入力及び重みに関する損失の勾配
【数６０】
2020191088.tif 000064
及び
【数６１】
2020191088.tif 000065
が計算され得る。損失は、クロスエントロピー損失、負の対数尤度、平均二乗誤差などであり得る。
【００９３】
興味深いことに、場合によっては、所望の勾配を直接的に計算するために、解析表現に基づいて計算を行うことができ、これによって、効率的な座標降下アルゴリズムが可能となる。このことは、ＭＡＸＳＡＴ問題のＳＤＰ緩和に関して、以下に例示されている。しかしながら、明示的な解析表現は必要なく、例えば、数値近似を使用することが可能である。
【００９４】
確率的な出力からその継続的な緩和まで
【数６２】
2020191088.tif 000066
が与えられると、確率的な割り当てメカニズムを介して勾配をプッシュすることによって得られる
【数６３】
2020191088.tif 000067
のための表現を使用することができ、即ち、それぞれの
【数６４】
2020191088.tif 000068
に対して、
【数６５】
2020191088.tif 000069
であり、本発明は、式（６）を微分することによって
【数６６】
2020191088.tif 000070
を得る。
【００９５】
ＳＤＰの逆伝播
次に、結果
【数６７】
2020191088.tif 000071
が与えられると、本発明は、ＳＤＰ解法手順によって勾配をプッシュすることにより、
【数６８】
2020191088.tif 000072
及び
【数６９】
2020191088.tif 000073
を計算することを探索する。ＳＤＰ問題の解は、行列・ベクトル解法による問題のパラメータ及び入力に関して区別され得る。この線形システムの解を計算するために、座標降下アプローチを使用することができ、この座標降下アプローチは、順方向パスの計算を厳密に反映するものであり、同様の高速収束特性を有する。例として、本発明は、全ての連続的なＳＤＰ出力ベクトル
【数７０】
2020191088.tif 000074
に関する損失の勾配
【数７１】
2020191088.tif 000075
が与えられると仮定する。いくつかの重み行列パラメータ
【数７２】
2020191088.tif 000076
に関する損失の勾配に対して解析表現を適用して、例えば、
【数７３】
2020191088.tif 000077
のための明示的な形式を、以下のように計算することが可能である。
【００９６】
本発明は、まず、中間項
【数７４】
2020191088.tif 000078
を導出することによって開始する。本発明の座標降下の更新（３）は、固定点に収束することができるので、本発明は、最終的な更新を
【数７５】
2020191088.tif 000079
のように再配置して、
【数７６】
2020191088.tif 000080
のように、陰関数定理を介してこの方程式を微分することによって、
この勾配を見つけることが可能である。ここで、
【数７７】
2020191088.tif 000081
及び
【数７８】
2020191088.tif 000082
である（ここでは、
【数７９】
2020191088.tif 000083
は、Ｓの
【数８０】
2020191088.tif 000084
インデックス付きの列のサブセットを表す）。（９）が、全ての
【数８１】
2020191088.tif 000085
に対する
【数８２】
2020191088.tif 000086
の線形システムであり得ることを述べておく。
【００９７】
式（９）の右辺を捉えるために、ηωを定義する。この線形システムを解いて連鎖律を適用すると、
【数８３】
2020191088.tif 000087
であることが見て取れ、ここで、
【数８４】
2020191088.tif 000088
及び
【数８５】
2020191088.tif 000089
は、
【数８６】
2020191088.tif 000090
及び
【数８７】
2020191088.tif 000091
によってインデックス付けられ、ただし、
【数８８】
2020191088.tif 000092
である。
【数８９】
2020191088.tif 000093
が固定されている場合、この導出は、全てのＳａｊに対して同様になり得る。実際には、典型的には、項
【数９０】
2020191088.tif 000094
のみが、ｊに対して明示的に依存している。従って、ａが固定されている場合、本発明は、行列・ベクトルの積
【数９１】
2020191088.tif 000095
及び
【数９２】
2020191088.tif 000096
を事前に計算することにより、全てのＳａｊに関する損失の勾配を安価に計算することが可能である。この行列・ベクトル解法は、例えば以下に示されているアルゴリズム３の場合のように、ブロック座標降下によって解かれ得る。勾配のための解析形式は、
【数９３】
2020191088.tif 000097
【数９４】
2020191088.tif 000098
によって与えられ得る。ここで、
【数９５】
2020191088.tif 000099
は、
【数９６】
2020191088.tif 000100
のｉ番目の列であり、ＳIは、ＳのＩインデックス付きの列サブセットを表す。式（１２）は、本発明の層によって使用される重み勾配
【数９７】
2020191088.tif 000101
の解析形式であり得る。
【００９８】
緩和されたものから元の入力へ
（入力緩和に関する）勾配
【数９８】
2020191088.tif 000102
を使用して、入力緩和手順によって勾配をプッシュすることにより、（実際の入力に関する）勾配
【数９９】
2020191088.tif 000103
を導出することができる。それぞれの
【数１００】
2020191088.tif 000104
に対して、
【数１０１】
2020191088.tif 000105
である場合があり得る。なお、
【数１０２】
2020191088.tif 000106
は、
【数１０３】
2020191088.tif 000107
に対するｌの任意の直接的な依存関係を捉えるものである（ｖａによる依存関係とは対照的である）。式（１３）は、本発明の層によって使用される入力勾配
【数１０４】
2020191088.tif 000108
の解析形式を表すことができる。
【００９９】
座標降下による逆伝播項の計算
線形システム
【数１０５】
2020191088.tif 000109
は、座標降下によって解かれ得る。興味深いことに、以下のアルゴリズム３において例示されている技術により、中間のヤコビアンを明示的に維持する必要なく、所望の勾配を計算することが可能となり得る。順方向パスを反映して、ランク１の更新を使用して、ｄｇωを計算するために必要とされる項Ψ＝ＵＳＴを維持及び修正することができる。実際に、本発明者らが認識したように、例えば、座標降下アプローチを使用して、逆伝播のために必要とされるヤコビアン・ベクトル積を計算することにより、ヤコビアン自体の計算を回避することができる。ヤコビアンは大きくなる可能性があり、例えば、ＭＡＸＳＡＴ問題の解のＳＤＰ緩和内で使用されるＶ行列は、ｋｎであり得るので、この項の完全なヤコビアンは、ｋｎ×ｋｎ行列であり得る。従って、記憶及び／又は計算を大幅に削減することができる。
【０１００】
ＭＡＸＳＡＴ問題のＳＤＰ緩和のための勾配を計算するための例示的な手順を以下に示す：
【表３】
2020191088.tif 000110
【０１０１】
図６は、ニューラルネットワークを入力インスタンスに適用するコンピュータ実装方法６００のブロック図を示している。
【０１０２】
方法６００は、「ニューラルネットワークデータにアクセスする」というタイトルのオペレーションにおいて、ニューラルネットワークを表すデータにアクセスすること６１０を含むことができる。ニューラルネットワークは、少なくとも１つの最適化層を含むことができる。最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり得る。データは、共同最適化の１つ又は複数のパラメータを含むことができる。本方法はさらに、「入力インスタンスを取得する」というタイトルのオペレーションにおいて、入力インスタンスを取得すること６２０を含むことができる。本方法はさらに、「ニューラルネットワークを適用する」というタイトルのオペレーションにおいて、ニューラルネットワークを入力インスタンスに適用すること６３０を含むことができる。ニューラルネットワークを適用すること６３０は、「入力値を取得する」というタイトルのオペレーションにおいて、最適化層への１つ又は複数の入力ニューロンの値を取得すること６３１を含むことができる。適用すること６３０はさらに、「入力ベクトルを決定する」というタイトルのオペレーションにおいて、１つ又は複数の入力ニューロンの値から１つ又は複数の入力ニューロンのための入力ベクトルを決定すること６３２を含むことができる。適用すること６３０はさらに、「半正定値計画問題を解く」というタイトルのオペレーションにおいて、１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算すること６３３を含むことができる。適用すること６３０はさらに、「出力値を決定する」というタイトルのオペレーションにおいて、それぞれの計算された出力ベクトルから１つ又は複数の出力ニューロンの値を決定すること６３４を含むことができる。
【０１０３】
方法６００は、図２のシステム２００のオペレーションに対応し得る。しかしながら、これは限定ではなく、従って、方法６００を、他のシステム、装置又はデバイスを使用して実施してもよい。
【０１０４】
図７は、ニューラルネットワークを訓練するコンピュータ実装方法７００のブロック図を示している。
【０１０５】
方法７００は、「ニューラルネットワーク、訓練データにアクセスする」というタイトルのオペレーションにおいて、ニューラルネットワークのパラメータを表すデータにアクセスすること７１０と、１つ又は複数の入力インスタンスを含む訓練データセットにアクセスすることとを含むことができる。ニューラルネットワークは、少なくとも１つの最適化層を含むことができる。最適化層は、共同最適化によって１つ又は複数の入力ニューロンの値から１つ又は複数の出力ニューロンの値を決定するためのものであり得る。データは、共同最適化の１つ又は複数のパラメータを含むことができる。
【０１０６】
方法７００はさらに、「ニューラルネットワークを訓練する」というタイトルのオペレーションにおいて、ニューラルネットワークを訓練すること７２０を含むことができる。訓練すること７２０は、「損失勾配を決定する」というタイトルのオペレーションにおいて、最適化層の１つ又は複数の出力ニューロンに関する損失の勾配から、１つ又は複数の入力ニューロン及び／又は共同最適化の１つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定すること７３０を含むことができる。
【０１０７】
勾配を決定すること７３０は、「出力ベクトルに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ニューロンに関する勾配から、１つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定すること７３１を含むことができる。
【０１０８】
決定すること７３０はさらに、「入力ベクトルに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ベクトルに関する勾配から、１つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定すること７３２を含むことができる。決定すること７３０はさらに、「入力ニューロンに関する勾配を決定する」というタイトルのオペレーションにおいて、入力ベクトルに関する損失の勾配から、入力ニューロンに関するニューラルネットワークの損失の勾配を決定すること７３３を含むことができる。
【０１０９】
オペレーション７３２及び７３３の代わりに又はこれに加えて、決定すること７３０は、「パラメータに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ベクトルに関する勾配から、１つ又は複数のパラメータに関する損失の勾配を決定すること７３４を含むことができる。
【０１１０】
１つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、１つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算することができる。
【０１１１】
方法７００は、図１のシステム１００のオペレーションに対応し得る。しかしながら、これは限定ではなく、従って、方法７００を、他のシステム、装置又はデバイスを使用して実施してもよい。
【０１１２】
一般に、方法６００及び７００のオペレーションは、任意の適当な順序により、例えば連続的に、同時に又はそれらの組合せにより、該当する場合には、例えば入力／出力の関係によって必要とされる特定の順序を条件として、実施され得ることが理解される。
【０１１３】
本方法は、コンピュータ上において、コンピュータ実装方法として、専用のハードウェアとして、又は、両方の組合せとして実装され得る。図８にも示されているように、コンピュータのための命令、例えば実行可能コードは、例えば、一連の機械可読の物理的マーク８１０の形態により、及び／又は、一連の種々異なる電気的、例えば磁気的又は光学的な特性又は値を有する要素の形態により、コンピュータ可読媒体８００上に格納され得る。実行可能コードは、一時的又は非一時的に格納され得る。コンピュータ可読媒体の例には、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどが含まれる。図８は、光ディスク８００を示している。あるいは、コンピュータ可読媒体８００は、本明細書の他の箇所において説明されるように、共同最適化のパラメータを表す一時的又は非一時的データ８１０を含むことができる。
【０１１４】
本明細書に提示されるニューラルネットワークは、広範囲の問題に適用可能であるが、いくつかの特定の例を以下に示す。
【０１１５】
ビデオからのアクション認識：入力としてビデオシーケンスが与えられ、シーンにおいて発生するアクションを認識することが目的であると仮定する。例えば、自律型の運転システムにおいては、システムは、視覚的なデータを利用することによって意思決定を行う。このような場合の多くにおいては、意思決定のためのルールを明示的又は簡単に定義することができない。しかしながら、本明細書に記載される技術を適用することにより、視覚情報のセットに基づいて学習論理的推論を実行可能なニューラルネットワークを、訓練及び／又は使用することができる。
【０１１６】
画像のキャプション：デジタル画像におけるシーンを１文で説明する問題について検討することができる。画像のペアの訓練セットを、これらの短い説明と一緒に利用することにより、提案されるネットワークは、説明を与える一般的なルールを学習し、初見の画像をより良好に一般化することができる。例えば、ニューラルネットワークは、最適化層に後続するＬＴＳＭ又はリカレントニューラルネットワークを含むことができる。
【０１１７】
手書きのテキストの認識：例えばデジタル画像としてスキャンされた又は与えられた、ドキュメントに含まれるテキストが与えられ、このテキストを認識することが目的であると仮定する。テキストが印刷されている場合であっても、ノイズ又はデータの欠落を考慮するべきである。手書きのテキスト認識を多様性としてみなすと、問題はまたさらに難しくなり、従って、問題の複雑さが大幅に増大する。このタスクにおいては、さらに不完全な観測結果を検討すべきであり、これは、大量の訓練データがなければ処理するのが困難である。この設定においては、本発明の提案されるニューラルネットワークは、人間が犯した通常の間違いをどのようにして認識するかを学習することができる。結果として、ネットワークを訓練するために必要とされる訓練例の数を少なくすることができる。さらに、ネットワークがより一般的なモデルを学習するにつれて、認識タスクがより正確に解かれるようになり、これによって、データ内部のより洗練された関係を探索することが可能となるので、不確実な状況をより良好に識別することが可能となる。
【０１１８】
自然言語認識：テキスト認識と同様に、本明細書に開示される技術を、自然言語認識にも適用することができる。完全なデータ、例えばノイズレスデータを期待することができないので、欠落している情報をモデル化することができる。このことを、本明細書で提案されるニューラルネットワークによって、訓練データにおけるより複雑な関係を学習するために最適化層を使用することによって達成することができる。
【０１１９】
例、実施形態又は任意選択肢の特徴は、非限定的であるかどうかにかかわらず、特許請求される本発明を限定するものとして理解されるべきではない。
【０１２０】
上記の実施形態が、本発明を限定するもののではなく例示するものであること、また、当業者が、添付の特許請求の範囲から逸脱することなく、多数の代替的な実施形態を設計可能であることに留意すべきである。特許請求の範囲において、括弧内に記載された参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。動詞「含む」及びその活用形の使用は、特許請求の範囲に記載されている以外の要素又は段階の存在を排除するものではない。要素に先行する冠詞「ａ」又は「ａｎ」は、そのような要素が複数存在することを排除するものではない。要素のリスト又はグループの前にある「少なくとも１つ」のような表現は、リスト又はグループからの要素の全て又は任意のサブセットの選択を表す。例えば、「Ａ，Ｂ，及びＣの少なくとも１つ」という表現は、Ａのみ、Ｂのみ、Ｃのみ、Ａ及びＢの両方、Ａ及びＣの両方、Ｂ及びＣの両方、又は、Ａ及びＢ及びＣの全てを含むものとして理解されるべきである。本発明は、いくつかの別個の要素を含むハードウェアによって、かつ、適当にプログラミングされたコンピュータによって実装され得る。いくつかの手段を列挙する装置の請求項においては、これらの手段のうちのいくつかを、同一のハードウェアアイテムによって実装することができる。複数の特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に使用することができないということを示すわけではない。
【図１】
2020191088.tif 000112
【図２】
2020191088.tif 000113
【図３】
2020191088.tif 000114
【図４】
2020191088.tif 000115
【図５】
2020191088.tif 000116
【図６】
2020191088.tif 000117
【図７】
2020191088.tif 000118
【図８】
2020191088.tif 000119
【外国語明細書】
2020191088.tif 000120
2020191088.tif 000121
2020191088.tif 000122
2020191088.tif 000123
2020191088.tif 000124
2020191088.tif 000125
2020191088.tif 000126
2020191088.tif 000127
2020191088.tif 000128
2020191088.tif 000129
2020191088.tif 000130
2020191088.tif 000131
2020191088.tif 000132
2020191088.tif 000133
2020191088.tif 000134
2020191088.tif 000135
2020191088.tif 000136
2020191088.tif 000137
2020191088.tif 000138
2020191088.tif 000139
2020191088.tif 000140
2020191088.tif 000141
2020191088.tif 000142
2020191088.tif 000143
2020191088.tif 000144
2020191088.tif 000145
2020191088.tif 000146
2020191088.tif 000147
2020191088.tif 000148
2020191088.tif 000149
2020191088.tif 000150
2020191088.tif 000151
2020191088.tif 000152
2020191088.tif 000153
2020191088.tif 000154
2020191088.tif 000155
2020191088.tif 000156
2020191088.tif 000157
2020191088.tif 000158
2020191088.tif 000159
2020191088.tif 000160
2020191088.tif 000161
2020191088.tif 000162
2020191088.tif 000163