IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングの特許一覧 ▶ カーネギー−メロン ユニバーシティの特許一覧

特許7540632半定値計画問題を解く層を有するニューラルネットワーク
<>
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図1
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図2
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図3
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図4
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図5
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図6
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図7
  • 特許-半定値計画問題を解く層を有するニューラルネットワーク 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】半定値計画問題を解く層を有するニューラルネットワーク
(51)【国際特許分類】
   G06N 3/063 20230101AFI20240820BHJP
   G06F 17/16 20060101ALI20240820BHJP
   G06N 3/084 20230101ALI20240820BHJP
   G06T 7/00 20170101ALI20240820BHJP
【FI】
G06N3/063
G06F17/16 K
G06N3/084
G06T7/00 350C
【請求項の数】 14
【外国語出願】
(21)【出願番号】P 2020087497
(22)【出願日】2020-05-19
(65)【公開番号】P2020191088
(43)【公開日】2020-11-26
【審査請求日】2023-04-05
(31)【優先権主張番号】19175484
(32)【優先日】2019-05-20
(33)【優先権主張国・地域又は機関】EP
(31)【優先権主張番号】19176011
(32)【優先日】2019-05-22
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】390023711
【氏名又は名称】ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
【住所又は居所原語表記】Stuttgart, Germany
(73)【特許権者】
【識別番号】591236068
【氏名又は名称】カーネギー-メロン ユニバーシティ
【氏名又は名称原語表記】CARNEGIE-MELLON UNIVERSITY
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】チャバ ドモコス
(72)【発明者】
【氏名】ジェレミー ジーグ コルター
(72)【発明者】
【氏名】ポー-ウェイ ワン
(72)【発明者】
【氏名】プリヤ エル. ドンティ
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2019-46453(JP,A)
【文献】特開2017-59220(JP,A)
【文献】浅野 孝夫,半正定値計画とその応用 第4回 半正定値計画を用いた近似アルゴリズム,経営の科学 オペレーションズ・リサーチ ,日本,社団法人日本オペレーションズ・リサーチ学会,2000年10月01日,第45巻、第10号,第520-527頁,ISSN 0030-3674
【文献】AMOS, Brandon、他1名,OptNet: Differentiable Optimization as a Layer in Neural Networks,Machine Learning,ARXIV.ORG CORNELL UNIVERSITY LIBRARY [オンライン],2017年03月01日,pp.1-9,インターネット:<URL: https://doi.org/10.48550/arXiv.1703.00443>,[2024年3月25日 検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/063
G06F 17/16
G06N 3/084
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを入力インスタンスに適用するためのシステム(200)であって、
当該システムは、
ニューラルネットワークを表すデータ(050)にアクセスするためのデータインタフェース(220)と、
プロセッササブシステム(240)と、
を含み、
前記ニューラルネットワークは、少なくとも1つの最適化層を含み、前記最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の1つ又は複数のパラメータを含み、
前記プロセッササブシステム(240)は、
入力インスタンスを取得し、
前記ニューラルネットワークを前記入力インスタンスに適用する
ように構成されており、
前記ニューラルネットワークを適用することは、
前記最適化層への前記1つ又は複数の入力ニューロンの値を取得し、そこから、前記1つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも力ベクトルを共同で最適化することによって、前記1つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記1つ又は複数の出力ニューロンの値を決定することと、
を含み、
前記半正定値計画問題は、少なくとも、前記1つ又は複数の入力ニューロンの値と、前記1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む、
システム(200)。
【請求項2】
前記入力インスタンスは、画像を含み、
前記ニューラルネットワークは、少なくとも1つの畳み込み層を含み、前記少なくとも1つの畳み込み層には、前記最適化層が後続する、
請求項1に記載のシステム(200)。
【請求項3】
前記プロセッササブシステム(240)は、補助変数を表す1つ又は複数の補助ベクトルを前記出力ベクトルと共同で最適化することによって、前記出力ベクトルを計算するように構成されている、
請求項1又は2に記載のシステム(200)。
【請求項4】
前記プロセッササブシステム(240)は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとの内積(VV)の線形結合(<M,VV>)を最小化することによって、前記出力ベクトルを計算するように構成されている、
請求項に記載のシステム(200)。
【請求項5】
2つのベクトルの内積のための前記線形結合の係数は、それぞれの前記ベクトルに関連する2つの重みベクトルの内積
【数1】
によって与えられ、
前記2つの重みベクトルは、前記共同最適化のパラメータ内に含まれる、
請求項に記載のシステム(200)。
【請求項6】
前記2つの重みベクトル(s)は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとの合計数よりも少ない要素を有する、
請求項に記載のシステム(200)。
【請求項7】
前記プロセッササブシステムは、前記入力ベクトルと、前記出力ベクトル及び前記補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新することによって、前記出力ベクトルを計算するように構成されている、
請求項乃至のいずれか一項に記載のシステム(200)。
【請求項8】
前記共同最適化のパラメータは、それぞれの前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとに関連する重みベクトルを含み、
前記重みベクトルのそれぞれのエントリは、共同で最適化されるべき節を表す前記ベクトルの線形結合を定義し、
前記プロセッササブシステム(240)は、前記出力ベクトルの計算を、
状態行列を初期化し、
前記入力ベクトルと、前記出力ベクトル及び前記補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新する
ことによって実施するように構成されており、
前記状態行列の列は、前記入力ベクトルと、前記出力ベクトルと、任意選択的に前記補助ベクトルとに関する節の値を示し、
前記反復的な更新は、更新された前記出力ベクトル又は前記補助ベクトルに基づいて前記状態行列を更新することを含む、
請求項に記載のシステム(200)。
【請求項9】
ニューラルネットワークを訓練するためのシステム(100)であって、
当該システムは、
前記ニューラルネットワークのパラメータを表すデータ(050)にアクセスするためのデータインタフェース(120)と、
前記ニューラルネットワークを訓練するように構成されたプロセッササブシステム(140)と、
を含み、
前記ニューラルネットワークは、少なくとも1つの最適化層を含み、前記最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の1つ又は複数のパラメータを含み、前記最適化層は、1つ又は複数の入力インスタンスを含む訓練データセット(030)にアクセスするためのものでもあり、
前記ニューラルネットワークを訓練することは、前記最適化層の前記1つ又は複数の出力ニューロンに関する損失の勾配から、前記共同最適化の前記1つ又は複数の入力ニューロン及び/又は前記1つ又は複数のパラメータに関する前記ニューラルネットワークの損失の勾配を決定することを含み、
前記勾配を決定することは、
前記出力ニューロンに関する前記勾配から、前記1つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
前記出力ベクトルに関する前記勾配から、前記1つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、前記入力ニューロンに関する前記ニューラルネットワークの損失の勾配を決定すること、及び/又は、前記出力ベクトルに関する前記勾配から、前記1つ又は複数のパラメータに関する損失の勾配を決定すること、と、
によって実施され、
前記1つ又は複数の出力ニューロンのための前記出力ベクトルは、前記1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、決定された前記入力ベクトルから計算され
前記半正定値計画問題は、少なくとも、前記1つ又は複数の入力ニューロンの値と、前記1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む、
システム(100)。
【請求項10】
前記共同最適化は、前記入力ベクトルと、前記出力ベクトル及び補助ベクトルの現在の値とに基づいて、前記出力ベクトル又は前記補助ベクトルを反復的に更新することを含み、前記補助ベクトルは、補助変数を表し、
前記プロセッササブシステムは、前記入力ベクトル及び/又は1つ又は複数の重みに関する損失の勾配を、前記反復的な更新の逆伝播によって決定するように構成されている、
請求項に記載のシステム(100)。
【請求項11】
ニューラルネットワークを入力インスタンスに適用するためのコンピュータ実装方法(600)であって、
当該方法は、
ニューラルネットワークを表すデータにアクセスすることと、
入力インスタンスを取得することと、
前記ニューラルネットワークを前記入力インスタンスに適用することと、
を含み、
前記ニューラルネットワークは、少なくとも1つの最適化層を含み、前記最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の1つ又は複数のパラメータを含み、
前記ニューラルネットワークを適用することは、
前記最適化層への前記1つ又は複数の入力ニューロンの値を取得し、そこから、前記1つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも力ベクトルを共同で最適化することによって、前記1つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記1つ又は複数の出力ニューロンの値を決定することと、
を含み、
前記半正定値計画問題は、少なくとも、前記1つ又は複数の入力ニューロンの値と、前記1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む、
方法(600)。
【請求項12】
ニューラルネットワークを訓練するためのコンピュータ実装方法(700)であって、
当該方法は、
ニューラルネットワークのパラメータを表すデータにアクセスすることと、
前記ニューラルネットワークを訓練することと、
を含み、
前記ニューラルネットワークは、少なくとも1つの最適化層を含み、前記最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の1つ又は複数のパラメータを含み、訓練データセットは、1つ又は複数のインスタンスを含み、
前記ニューラルネットワークを訓練することは、最適化層の1つ又は複数の出力ニューロンに関する損失の勾配から、前記共同最適化の前記1つ又は複数の入力ニューロン及び/又は前記1つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定することを含み、
前記勾配を決定することは、
前記出力ニューロンに関する前記勾配から、前記1つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
前記出力ベクトルに関する前記勾配から、前記1つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、前記入力ニューロンに関する前記ニューラルネットワークの損失の勾配を決定すること、及び/又は、前記出力ベクトルに関する前記勾配から、前記1つ又は複数のパラメータに関する損失の勾配を決定すること、と、
によって実施され、
前記1つ又は複数の出力ニューロンのための前記出力ベクトルは、前記1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも前記出力ベクトルを共同で最適化することによって、決定された前記入力ベクトルから計算され
前記半正定値計画問題は、少なくとも、前記1つ又は複数の入力ニューロンの値と、前記1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む、
方法(700)。
【請求項13】
プロセッサシステムによって実行されるときに、前記プロセッサシステムに請求項11又は12に記載の方法を実施させるための命令を表す一時的又は非一時的なデータを含む、コンピュータ可読媒体(800)。
【請求項14】
ニューラルネットワークのパラメータを表す一時的又は非一時的なデータを含む、コンピュータ可読媒体(800)であって、
前記ニューラルネットワークは、少なくとも1つの最適化層を含み、
前記最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり、前記データは、前記共同最適化の1つ又は複数のパラメータを含み、
前記ニューラルネットワークを入力インスタンスに適用することは、
前記最適化層への前記1つ又は複数の入力ニューロンの値を取得し、そこから、前記1つ又は複数の入力ニューロンのための入力ベクトルを決定することと、
前記1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、前記入力ベクトルに対して少なくとも力ベクトルを共同で最適化することによって、前記1つ又は複数の出力ニューロンのための出力ベクトルを、決定された前記入力ベクトルから計算することと、
それぞれの計算された前記出力ベクトルから前記1つ又は複数の出力ニューロンの値を決定することと、
を含み、
前記半正定値計画問題は、少なくとも、前記1つ又は複数の入力ニューロンの値と、前記1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む、
コンピュータ可読媒体(800)。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、ニューラルネットワークを入力インスタンスに、例えば入力画像に適用するためのシステムと、対応するコンピュータ実装方法とに関する。本発明はさらに、ニューラルネットワークを訓練するためのシステムと、対応するコンピュータ実装方法とに関する。本発明はさらに、方法を実施させるための命令、又は、ニューラルネットワークのパラメータを表すデータを含む、コンピュータ可読媒体に関する。
【背景技術】
【0002】
発明の背景
自律型のデバイスは、観察された環境に基づいて意思決定を行う必要がある。例えば、車両のための自律型の運転システムは、カメラ及び/又は種々の他のセンサからのデータを使用して交通状況を分析し、この情報を使用して車両を制御することができる。同様に、非自律型の自動車のための安全システムは、交通状況を分析して、運転者を支援することができ、例えば、危険な状況が発生した場合にブレーキをかけることができる。この例及び他の設定においては、意思決定を行うことは、オブジェクトを認識することを含むだけでなく、例えば、どの認識されたオブジェクト又はオブジェクトの組合せが危険であるかについての推理も行うことを含む。自動的な推理は、例えば、他の制御システムや、医用画像分析などでも行われる。
【0003】
これら及び他の種類のシステムにおいては、ニューラルネットワーク、特に深層ニューラルネットワークを使用して、環境に関するそのような推理を行うことができる。ニューラルネットワークは、典型的には、1つ又は複数の層を含み、それぞれの層においては、1つ又は複数の出力ニューロンの値が、1つ又は複数の入力ニューロンの値に基づいて計算される。例えば、ニューラルネットワークは、少なくとも10個、100個又は1000個のニューロン、少なくとも2個、5個又は10個の層などを有することができる。それぞれの層は、例えば、どの入力ニューロンがどの出力ニューロンに接続されているかという点において、及び/又は、出力ニューロンの値を計算するためにどの関数が使用されるかという点において、それぞれ異なり得る。典型的には、層の1つ又は複数のパラメータは、学習可能であり、例えば、そのようなパラメータは、重みを含むことができ、これらの重みは、出力ニューロンが接続されているそれぞれの入力ニューロンの値によって、出力ニューロンがどの程度まで影響を受けるかを決定するものである。種々の種類の層は、それ自体公知である。例えば、畳み込みニューラルネットワークは、典型的には、入力層と、出力層と、入力層と出力層との間にある、典型的には隠れ層と称される1つ又は複数の層とを含む。このような隠れ層は、畳み込み層、ReLU層、プーリング層、全結合層、正規化層などを含むことができる。例えば、そのような層の組合せを使用して、種々の種類の画像分類タスクを実行することができる。
【0004】
Brandon Amos及びJ. Zico Kolterによる論文『OptNet:Differentiable Optimization as a Layer in Neural Networks』(参照によって本明細書に組み込まれ、https://arxiv.org/abs/1703.00443において入手可能である。)においては、ニューラルネットワークの隠れ状態の間の制約及び依存関係を捉えるように設計された深層ニューラルネットワークが紹介されている。この目的のために、ネットワークの1つの層として二次計画法が組み込まれている。この層は、ニューラルネットワークの隠れ状態の間の制約及び複雑な依存関係を捉えるために、ニューラルネットワークに挿入される。層の出力と、二次計画法を定義する問題データとの両方は、前の層の値に依存し得る。層の出力値は、主双対内点法を使用して二次計画法を解くことによって取得される。
【先行技術文献】
【非特許文献】
【0005】
【文献】論文『OptNet:Differentiable Optimization as a Layer in Neural Networks』、Brandon Amos及びJ. Zico Kolter著
【発明の概要】
【課題を解決するための手段】
【0006】
発明の概要
本発明の第1の態様によれば、請求項1によって定義されるような、ニューラルネットワークを入力インスタンスに適用するためのシステムが提案される。本発明のさらなる態様によれば、請求項10によって定義されるような、ニューラルネットワークを訓練するためのシステムが提案される。さらなる態様によれば、それぞれ請求項12及び13によって定義されるような、ニューラルネットワークを適用するコンピュータ実装方法と、ニューラルネットワークを訓練するコンピュータ実装方法とが提案される。本発明のさらなる態様によれば、請求項14によって定義されるようなコンピュータ可読媒体と、請求項15によって定義されるようなコンピュータ可読媒体とが提案される。
【0007】
種々の実施形態においては、ニューラルネットワークは、少なくとも1つの最適化層を含み、当該最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものである。一般に、共同最適化においては、1つ又は複数の出力ニューロンの値は、相互に独立して計算されるわけではない。例えば、共同最適化は、1つ又は複数の出力ニューロンの値に基づく損失関数を最小化することを含むことができる。最適化は、損失関数を最小化する出力値が相互に依存しているという意味においては共同であり得るものであり、例えば、出力ニューロンが所与の場合、他の出力値のためのある1つの値のセットと組み合わせられた、この出力ニューロンの最適値は、他の値のセットと組み合わせられた、この出力ニューロンの最適値とは異なり得る。換言すれば、他の出力ニューロンの値が固定されている場合、損失関数を最小化する出力ニューロンの値は、出力ニューロンの値に依存して異なり得る。従って、出力ニューロンの値を、共同最適化において計算することができる。共同最適化をパラメータ化することができ、例えば、解かれるべき最適化問題は、1つ又は複数のパラメータに依存し得る。
【0008】
興味深いことに、出力ベクトルを計算することは、1つ又は複数のパラメータによって定義された半正定値計画問題を解くことを含むことができる。半正定値計画問題は、比較的効率的に解くことができる比較的幅広いクラスの最適化問題を表現することができるので、興味深いものである。例えば、半正定値計画問題は、MAXSAT問題の緩和を含むことができる。MAXSAT問題と、MAXCUTのような関連する問題とは、最適化層の入力値と出力値との間の離散的な論理関係の幅広いセットを捉えることを可能にするので、例えば、最適化層の入力値と出力値との間のハード及び/又は大域的な関係を効率的に捉えることを可能にするので、特に重要である。
【0009】
興味深いことに、種々の実施形態においては、このような関係が、共同最適化のパラメータによって定義され、従って、ニューラルネットワークは、最適化層の入力ニューロンと出力ニューロンとの間の関係をエンドツーエンドで効果的に学習することが可能となる。例えば、ニューラルネットワークを、以下のようにして訓練することができ、即ち、同様のプロセスで、例えば畳み込み層、ReLU層などの出力として、最適化層への入力をどのようにして決定するのかが学習され、及び/又は、最適化層のこれらの入力と出力との間に、パラメータのセットによって定義されるどのような関係があるのかが学習され、及び/又は、ニューラルネットワークの他の層、例えば全結合層、他の最適化層などにおいて、最適化層の出力をどのようにして使用するのかが学習される。
【0010】
しかしながら、本発明者らが認識したように、MAXSAT問題と、他の種類の離散的な最適化とは、典型的には、ニューラルネットワークに直接的に含めるためには適していない。例えば、ニューラルネットワークを訓練するために、典型的には、ニューラルネットワークの順方向パス、例えば、入力値からの出力値の計算が、逆伝播に適していることが望ましい。例えば、最適化層の入力/出力の関係が、関数として、好ましくは微分可能及び/又は連続的な関数として記述可能であることが望ましい。さらに、MAXSATと、関連する問題とは、正確に解くのが困難であることでよく知られている。特に、MAXSATは、NP困難であることが知られている。このこともまた、そのような問題をニューラルネットワークに効率的に含めることを困難にする。
【0011】
従って、本発明者らは、値自体に対して最適化を実行するのではなく、入力値及び出力値に関連するベクトルに対して最適化を実行することを着想した。このようなベクトルの最適化は、ニューラルネットワークの層として適用するためにより好適であり得る。例えば、適当に、入力値をベクトルに変換し、ベクトル最適化を実行し、出力ベクトルを値に変換して戻すことにより、連続的及び/又は微分可能なパラメータ化を有するニューラルネットワーク層を得ることができる。さらに、ベクトルの最適化は、比較的効率的に解くことが可能であり、例えば、MAXSATのようなNP困難な最適化問題の緩和は、問題の近似解しか提供しない可能性もあるが、元の問題を解くよりも格段に効率的にこのような解を提供することができる。MAXSATの緩和として得られるベクトル最適化の具体例を以下に示す。
【0012】
最適化層は、1つ又は複数の入力ニューロンのための入力ベクトル、例えば、それぞれの入力ニューロンのための入力ベクトルを決定することにより、入力ニューロンの値に適用され得る。入力ベクトルは、それぞれ複数の値を含む。特に、MAXSAT緩和の場合、ベクトルは、少なくとも
【数1】
個の要素を含むことができ、ここで、nは、最適化層の値の数であり、例えば、後で詳述されるような入力変数/値と、出力変数/値と、任意選択的に補助変数との数である。例えば、入力ニューロンのための入力ベクトル(v)は、入力ニューロンの値(z)に基づくスカラーによって、所定のベクトル(v)のスカラー倍数として、例えば、v=-cos(πz)vとして決定され得る。所定のベクトルvを、真の方向と称することができる。
【0013】
入力ベクトルが与えられると、1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルを決定することができる。出力ベクトルは、典型的には、入力ベクトルと同一の次元を有する。例えば、最適化は、MAXSAT緩和又はMAXCUT緩和であり得る。換言すれば、出力ベクトルは、それぞれの最適化問題の近似解に対応し得る。しかしながら、他のSDP、例えば他の最適化問題のベクトル緩和として得られたSDPを使用することも可能である。最適化の種々の例を以下に示す。
【0014】
1つ又は複数の出力ニューロンの値は、それぞれの計算された出力ベクトルから決定され得る。例えば、半正定値計画問題が、所与の最適化問題の緩和である場合、例えば、値の離散的な最適化に対応するベクトル化された問題の緩和である場合には、値は、問題の緩和である、問題の近似解として決定され得る。例えば、出力ニューロンの値(zω)は、出力ニューロンの出力ベクトル(vω)と、所定のベクトル(v)との間の方向差、例えば、
【数2】
に基づいて決定され得る。いくつかの例においては、乱択丸めが適用され、例えば、1つ又は複数の出力ニューロンの値は、例えば単位球から1つ又は複数のランダムな超平面を生成し、出力ベクトルと所定のベクトルとがこの1つ又は複数の超平面の同一の側にあるかどうかをチェックすることによって決定される。
【0015】
複数の最適化層をニューラルネットワークに適用することができる(例えば、同一の層又は複数の層において)。例えば、複数の最適化層のシーケンスを、シーケンシャルに適用してもよい。種々の実施形態においては、複数の最適化層のための共同最適化のパラメータ同士が結び付けられ、例えば、複数の最適化層は、同一の又は少なくとも重複するパラメータのセットによってパラメータ化される。例えば、概念的には、これによって、複数の最適化層は、各自の入力の間の同様の種類の関係を学習することが可能となり得る。このような場合、必要とされるパラメータが少なくなり、過剰適合などを回避することができる。
【0016】
本明細書で論じられる種々の手段によって、従来の深層学習及び/又は既存の論理学習方法を改善するニューラルネットワークが、いくつかの態様で提供され得る。ニューラルネットワークは、何ら事前の知識がなくても、種々のタスク、例えば改善された画像分類を確実に学習することが可能であり得る。半正定値計画問題、特にMAXSAT緩和の、強力でジェネリックなプリミティブをラップすることにより、本発明のソルバーは、ドメインの正確な構造を把握する必要なく、比較的大きなフレームワーク内の必要な場所で、暗黙的な論理推論が行われることを可能にすることができる。
【0017】
例えば、種々の実施形態においては、比較的複雑な深層アーキテクチャの内部に埋め込むことができる微分可能な平滑化されたMAXSATソルバーが提供され、これにより、これらの関係をハードコーディングすることなく、例から、複雑な論理関係を効果的にエンドツーエンドで学習することが可能となる。
【0018】
本発明者らが発見したように、本明細書に提示される技術を使用することにより、事前知識がなければ従来の深層学習/論理学習方法が確実に学習することが実質的に不可能であるような、種々の種類の問題を解くことができる。例えば、完全なエンドツーエンドの設定においては、古典的な畳み込みネットワークを、微分可能なMAXSATソルバーと統合して、最新のニューラルネットワークアーキテクチャにとって困難な制約充足問題を学習することができる。
【0019】
本明細書に記載される技術は、種々の種類のデータに適用可能であり、例えば、センサデータ、オーディオデータ、ビデオデータ、レーダデータ、LiDARデータ、超音波データ、又は、種々の個々のセンサ測定値、又は、それらの履歴に適用可能である。例えば、一実施形態においては、ニューラルネットワークは、画像キャプション又は画像分類のために使用される。ネットワークは、これらの適用及び他の適用において、1つ又は複数の畳み込み層を含むことができ、この畳み込み層には、1つ又は複数の最適化と、1つ又は複数の出力層、例えば、当該技術分野において知られている全結合層又は文生成層、例えば、LTSMネットワーク、リカレントニューラルネットワークなどの層とが後続する。
【0020】
他の例として、一実施形態によるニューラルネットワークを使用して、ビデオにおけるアクション、例えば、画像のシーケンスを認識することができる。例えば、これらの実施形態及び他の実施形態においては、ニューラルネットワークは、1つ又は複数の畳み込み層を含むことができ、この畳み込み層には、1つ又は複数の最適化層が後続し、この最適化層には、少なくとも全結合層が後続する。
【0021】
種々の実施形態においては、本明細書に記載されるニューラルネットワークは、データ内の比較的複雑な関係、例えばハード制約に基づいて、分類、回帰などを実行することが可能であり得る。従来のニューラルネットワークは、このような制約を効率的に捉えることができない場合がある。例えば、関係を表現するために多くの層が必要になる場合があり、結果として、より多くのパラメータ及び/又は訓練データが必要になる場合があり、及び/又は、ニューラルネットワークが過剰適合の影響を受けやすくなる場合がある。従って、一実施形態によるニューラルネットワークは、データ内の論理関係を表現するために必要とされる訓練可能なパラメータを少なく済ませることができ、又は、訓練可能なパラメータが同等であっても若しくはより少なくても、そのような論理関係をより良好に表現することができる。それと同時に、最適化層が学習することができる関係の種類を、事前に制約する必要がなくてもよくなり、例えば、最適化層がどの値の間で関係を学習するのかを明示的に定義する必要がなくてもよくなる。
【0022】
ある1つの特定の例として、例えば自律型の車両の一部、非自律型の車両の安全システムの一部などとしての、交通状況を分析するシステムについて検討する。そのようなシステムは、例えば交通状況を、危険又は非危険として分類することができる。交通状況が危険である根本的な原因は、車両同士が接近していることであり得る。しかしながら、交通状況が危険である根本的な原因は、多くの訓練インスタンスにおいては、雨が降っていることが理由で、車両同士が相互に接近していること、である可能性がある。なぜなら、道路が混雑するのは、このときだからである。特に、訓練データセットが小さい場合、及び/又は、2つのこのような要因が頻繁に同時に発生する場合には、従来のニューラルネットワークは、どの要因が根本的な原因であり、どの要因が単に相関しているだけなのかを学習することができない場合がある。実際には、従来のニューラルネットワークは、このような論理制約を学習するために多数の層及び/又はニューロンを使用する場合があり、又は、ニューラルネットワークは、そのような論理制約を効果的に捉えることが全くできない場合がある。従って、従来のニューラルネットワークの場合、この種類の推理を学習しても効果がない場合がある。そのようなニューラルネットワークの代わりに、例えば、その根本的な原因が満たされている場合と、相関する要因が存在する場合との両方の場合に、交通状況が危険であるということについて推理を行うことがより効率的であり得る。その結果、訓練されたネットワークは、新しい状況への一般化が不十分となる可能性がある。
【0023】
しかしながら、本明細書に記載される最適化層を使用することにより、データ間のそのような論理関係をより効率的に学習することが可能となり、例えば、車両が近接していることが重要な要素であって、雨は単に相関しているだけであることを学習するために、1つ又はいくつかの節で十分になり得る。例えば、最適化層の少数のパラメータによって、そのような論理関係を効果的に捉えることが可能となり得る。従って、訓練データを超えてより良好に一般化するような、及び/又は、所与の性能を得るために必要とされる訓練インスタンス及び/又はパラメータが少なくて済むような、ネットワークを得ることができる。
【0024】
興味深いことに、本明細書で定義される種々のニューラルネットワークは、既知の関係又はルールの既存のセットを必要としなくてもよい。例えば、どの変数同士が相互作用可能であるかについての、従前の構造を用いたシードは必要なくてもよい。効果的には、種々の実施形態において、構造全体と、そのパラメータとを、幅広いクラスの問題についてエンドツーエンドで学習することができる。
【0025】
任意選択的に、入力インスタンスは、画像を含み、ニューラルネットワークは、少なくとも1つの畳み込み層を含み、少なくとも1つの畳み込み層には、1つ又は複数の最適化層が後続する。このようにして、特に良好な画像分類器を得ることができる。
【0026】
任意選択的に、半正定値計画問題は、少なくとも、1つ又は複数の入力ニューロンの値と、1つ又は複数の出力ニューロンの値とに関する、MAXSAT問題又はMAX2SAT問題又はMAXCUT問題の緩和を含む。MAXCUT、MAX2SAT及びMAXSATによって、論理制約を特に効率的に表現することが可能となり、これらのベクトル化された緩和は、比較的効率的に解かれ得る。
【0027】
任意選択的に、1つ又は複数の補助ベクトルを出力ベクトルと共同で最適化することによって、出力ベクトルが計算される。補助ベクトルは、典型的には、ニューラルネットワークの他の場所では使用されない。補助ベクトルを導入することにより、半正定値計画問題のサイズを縮小することができる。例えば、そのような補助ベクトルは、例えば、MAXSAT問題を定義する節において、レジスタメモリと同様の役割を効果的に果たすことができ、それによって、より良好な推理を可能にする。
【0028】
任意選択的に、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの内積(VV)の線形結合(<M,VV>)を最小化することによって、出力ベクトルを計算することができる。例えば、行列Vは、それぞれの入力ベクトルと、出力ベクトルと、使用される場合にはそれぞれの補助ベクトルとを含むことができる。行列Vは、例えば、他の箇所においてさらに詳述されているように、「真の方向」、例えば、ランダムに初期化され固定されたベクトルを追加的に含むことができる。典型的には、ベクトルは、制約されており、例えば、これらのベクトルの各々は、単位ノルムを有するように制約され得る。このようにして、効果的に解くことができる半正定値計画問題を得ることができる。
【0029】
任意選択的に、2つのベクトルの内積のための線形結合の係数は、それぞれのベクトルに関連する2つの重みベクトルの内積
【数3】
によって与えられ、2つの重みベクトルは、共同最適化のパラメータ内に含まれる。例えば、重みベクトルは、行列Sを定義することができ、ここで、それぞれの行は、節を表し、それぞれの列は、それぞれの入力と、出力と、補助変数とに関する節の係数を表す。最適化問題は、例えば、単位ノルムを有するVのベクトルに制約された、行列Vの出力ベクトル及び補助ベクトルにわたって<SS,VV>を最小化することとして定式化され得る。重みベクトルの値は、最適化層の重みであるとみなすことができる。例えば、このようにして、MAXSAT緩和を得ることができる。
【0030】
任意選択的に、2つの重みベクトル(s)は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの合計数よりも少ない要素を有し、例えば最大で半数である。このようにして、ニューラルネットワークが学習する、例えば節の形式の知識を、効果的に圧縮することができる。実際に、要素の数を少なくすることは、過剰適合を回避するために役立つことができ、従って、ネットワークは、データの最も重要な論理関係に対するキャプチャ/フォーカスを捉えることが可能となる。
【0031】
任意選択的に、入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新することによって、出力ベクトルが計算される。換言すれば、出力ベクトルは、いわゆる座標降下によって計算される。座標降下は、好ましい収束特性を有するだけでなく、そのシーケンシャルな性質により、逆伝播による学習にも特に適しており、従って、ニューラルネットワーク学習フレームワークに特に良好に組み込まれ得る。座標降下は、GPUにおいて効率的に並列化及び/又は実装することができるという利点も有する。
【0032】
任意選択的に、共同最適化のパラメータは、それぞれの入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルvとに関連する重みベクトルsを含み、重みベクトルのそれぞれのエントリ(s1)j,・・・,(s)jは、共同で最適化されるべき節を表す前述のベクトルの線形結合
【数4】
を定義する。出力ベクトルの計算は、以下のようにして実施することができ、即ち、
・状態行列、例えば、Ω=VS、ここで、V=[v・・・v]及びS=[s・・・s]、を初期化し、
・入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新する
ことによって実施することができ、ここで、状態行列の列は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとに関する節の値を示し、反復的な更新は、更新された出力ベクトル又は補助ベクトルに基づいて状態行列を更新することを含む。状態行列、例えば、Ω=VSを追跡し続け、それを座標降下において使用することによって、比較的効率的な更新を得ることができ、例えば、O(nmk)の更新を提供することができ、ここで、nは、変数の数であり、kは、ベクトルのサイズであり、mは、例えばMAXSAT問題の、上述したような節の数である。
【0033】
任意選択的に、座標降下の出力ベクトル及び/又は補助ベクトルに対する複数回の更新を並行して実行することができる。例えば、座標降下を使用することにより、ニューラルネットワークの訓練及び/又は適用は、GPU実装のために特に適することができる。ニューラルネットワークを適用する際における座標降下の内部ループ中には、状態行列の計算及び/又は状態行列へのランク1の更新を並列化することによって、全てのgω勾配項の計算を並列化することができ、また、訓練する際にも同様である。従って、例えば上述したような行列積SSによって定義される、低ランクの半正定値計画問題の使用は、特に有用であり得るものであり、例えば、従来のフルランク座標勾配降下においては、一般に、このような並列化が不可能であり得る。この結果、性能を大幅に向上させることができる。
【0034】
ニューラルネットワークの訓練は、入力値から出力値を決定する計算を逆伝播することによって効果的に実施され得る。興味深いことに、本明細書において論じられる手段を用いて、そのような更新を、効率的に実施することができ、例えば、順方向パスは、連続的及び/又は微分可能であり得るので、逆方向パスを、分析的に導出することが可能となり、及び/又は、効率的に計算することが可能となる。特に、共同最適化が、入力ベクトル及び/又は1つ又は複数の重みに関する損失の勾配を訓練している間に、入力ベクトルと、出力ベクトル及び補助ベクトルの現在の値とに基づいて、出力ベクトル又は補助ベクトルを反復的に更新することを含む場合には、前述の反復的な更新の逆伝播によって決定することができ、これにより、他の層を訓練するために使用されるニューラルネットワーク訓練技術と良好に統合される手法により、最適化のパラメータを取得することが可能となり、例えば、ニューラルネットワーク全体をエンドツーエンドで訓練することができる。
【0035】
本発明の上述した実施形態、実装及び/又は任意選択肢の態様のうちの2つ以上を、有用であると思われる任意の手法により組み合わせてもよいことは、当業者には理解されるであろう。
【0036】
対応するシステムの上述の修正形態及び変形形態に対応する、任意のコンピュータ実装方法及び/又は任意のコンピュータ可読媒体の修正形態及び変形形態を、本明細書の説明に基づいて当業者によって実施することが可能である。
【0037】
図面の簡単な説明
本発明のこれら及び他の態様は、以下の記載において例として説明される実施形態と、添付の図面とを参照して明らかになり、さらに説明されるであろう。
【図面の簡単な説明】
【0038】
図1】ニューラルネットワークを訓練するためのシステムを示す図である。
図2】ニューラルネットワークを適用するためのシステムを示す図である。
図3】ニューラルネットワークを適用するためのシステムを示す図である。
図4】最適化層を示す図である。
図5】最適化層をどのようにして訓練/使用するかの詳細な例を示す図である。
図6】ニューラルネットワークを適用する方法を示す図である。
図7】ニューラルネットワークを訓練する方法を示す図である。
図8】データを含むコンピュータ可読媒体を示す図である。
【0039】
図面は、純粋に概略的なものであり、縮尺通りには図示されていないことに留意すべきである。図面において、既に記載されている要素に対応する要素は、同一の参照符号を有する場合がある。
【発明を実施するための形態】
【0040】
実施形態の詳細な説明
図1は、ニューラルネットワークを訓練するためのシステム100を示している。システム100は、データインタフェース120と、プロセッササブシステム140とを含むことができ、データインタフェース120と、プロセッササブシステム140とは、データ通信124を介して内部的に通信することができる。データインタフェース120は、ニューラルネットワークのパラメータを表すデータ050にアクセスするためのものであり得る。ニューラルネットワークは、少なくとも1つの最適化層を含むことができる。最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり得る。データ050は、共同最適化の1つ又は複数のパラメータを含むことができる。データインタフェース120は、1つ又は複数の訓練インスタンスを含む訓練データセット030にアクセスするためのものでもあり得る。
【0041】
プロセッササブシステム140は、システム100の動作中にデータインタフェース120を使用してデータ030,050にアクセスするように構成され得る。例えば、図1に示されているように、データインタフェース120は、前述のデータ030,050を含むことができる外部のデータストレージ020へのアクセス122を提供することができる。あるいは、データ030,050は、システム100の一部である内部のデータストレージからアクセスされ得る。あるいは、データ030,050は、ネットワークを介して他のエンティティから受信され得る。一般に、データインタフェース120は、ローカルエリアネットワーク又はワイドエリアネットワークへの、例えばインタネットへのネットワークインタフェース、内部又は外部のデータストレージへのストレージインタフェースなどのように、種々の形態をとることができる。データストレージ020は、任意の公知の適当な形態をとることができる。
【0042】
プロセッササブシステム140は、システムの動作中にニューラルネットワークを訓練するように構成され得る。ニューラルネットワークを訓練することは、最適化層の1つ又は複数の出力ニューロンに関する損失の勾配から、共同最適化の1つ又は複数の入力ニューロン及び/又は1つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定することを含むことができる。前述の勾配を決定することは、
・出力ニューロンに関する勾配から、1つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定することと、
・出力ベクトルに関する勾配から、1つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定し、そこから、入力ニューロンに関するニューラルネットワークの損失の勾配を決定すること、及び/又は、出力ベクトルに関する勾配から、1つ又は複数のパラメータに関する損失の勾配を決定すること、と
によって実施され得る。
【0043】
損失は、ニューラルネットワークを訓練データセットの1つ又は複数の訓練インスタンスに適用することの損失であり得る。ニューラルネットワークを訓練インスタンスに適用すると、1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルを、入力ベクトルから計算することができる。逆方向パスは、相応に実行され得る。
【0044】
任意選択肢のコンポーネントとして、システム100は、画像入力インタフェース(図示せず)を含むことができ、又は、カメラ(図示せず)のようなセンサからセンサデータを取得するための任意の他の種類の入力インタフェースを含むことができる。プロセッササブシステム140は、センサから取得されたセンサデータとして、訓練データセット030の1つ又は複数の訓練インスタンスを取得するように構成され得る。
【0045】
システム100のオペレーションの種々の詳細及び態様は、これらの任意選択肢の態様が含まれる図4及び5を参照しながらさらに説明される。
【0046】
一般に、システム100は、ワークステーション、例えばラップトップ若しくはデスクトップベース、又は、サーバのような単一のデバイス若しくは装置として、又は、そのような単一のデバイス若しくは装置の中に実装され得る。デバイス又は装置は、適当なソフトウェアを実行する1つ又は複数のマイクロプロセッサを含むことができる。例えば、プロセッササブシステムは、単一の中央処理装置(CPU)によって実装されていてもよいが、複数のそのようなCPU及び/又は複数の他の種類の処理装置からなる組合せ又はシステムによっても実装されていてもよい。ソフトウェアは、対応するメモリ、例えばRAMのような揮発性メモリ内に、又は、フラッシュのような不揮発性メモリ内に、ダウンロード及び/又は格納され得る。あるいは、システムの機能ユニット、例えば、データインタフェース及びプロセッササブシステムは、例えば、フィールドプログラマブルゲートアレイ(FPGA)及び/又はグラフィックスプロセッシングユニット(GPU)のようなプログラマブルロジックの形態により、デバイス内又は装置内に実装されていてもよい。一般に、システムのそれぞれの機能ユニットは、回路の形態により実装され得る。システム100が、分散サーバのような複数の異なるデバイス又は装置が含まれる分散方式でも、例えばクラウドコンピューティングの形態によっても実装され得ることに留意すべきである。
【0047】
図2は、ニューラルネットワークを入力インスタンスに適用するためのシステム200を示している。システム200は、データインタフェース220と、プロセッササブシステム240とを含むことができ、データインタフェース220と、プロセッササブシステム240とは、データ通信224を介して内部的に通信することができる。データインタフェース220は、ニューラルネットワークを表すデータ050にアクセスするためのものであり得る。ニューラルネットワークは、少なくとも1つの最適化層を含むことができる。最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり得る。データ050は、共同最適化の1つ又は複数のパラメータを含むことができる。
【0048】
プロセッササブシステム240は、システム200の動作中にデータインタフェース220を使用してデータ050にアクセスするように構成され得る。データ050は、例えばシステム100により、本明細書に記載される方法に従ってニューラルネットワークを訓練することによって取得され得る。例えば、図2に示されているように、データインタフェース220は、前述のデータ050を含むことができる外部のデータストレージ022へのアクセス222を提供することができる。あるいは、データ050は、システム200の一部である内部のデータストレージからアクセスされ得る。あるいは、データ050は、ネットワークを介して他のエンティティから受信され得る。一般に、データインタフェース220は、ローカルエリアネットワーク又はワイドエリアネットワークへの、例えばインタネットへのネットワークインタフェース、内部又は外部のデータストレージへのストレージインタフェースなどのように、種々の形態をとることができる。データストレージ022は、任意の公知の適当な形態をとることができる。
【0049】
プロセッササブシステム240は、システムの動作中に入力インスタンスを取得するように構成され得る。プロセッササブシステム240はさらに、システムの動作中にニューラルネットワーク050を入力インスタンスに適用するように構成され得る。ニューラルネットワークを適用することは、最適化層への1つ又は複数の入力ニューロンの値を取得し、そこから、1つ又は複数の入力ニューロンのための入力ベクトルを決定することを含むことができる。ニューラルネットワークを適用することはさらに、1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算することを含むことができる。ニューラルネットワークを適用することは、それぞれの計算された出力ベクトルから1つ又は複数の出力ニューロンの値を決定することを含むこともできる。
【0050】
任意選択肢のコンポーネントとして、システム200は、画像入力インタフェース260を含むことができ、又は、カメラ280のようなセンサからセンサデータを取得するための任意の他の種類の入力インタフェースを含むことができる。センサデータは、ニューラルネットワークによって処理されるべきインスタンス内に含まれ得る。例えば、カメラは、画像データ262を捕捉するように構成され得るものであり、プロセッササブシステム240は、入力インタフェース260を介して取得された画像データ262からインスタンスを取得するように構成されている。
【0051】
任意選択肢のコンポーネントとして、システム200は、アクチュエータにシステム200の環境内におけるアクションを実行させるアクチュエータデータを、アクチュエータに供給するためのアクチュエータインタフェース(図示せず)を含むことができる。例えば、プロセッササブシステム240は、入力インスタンスに対するニューラルネットワークの出力に少なくとも部分的に基づいてアクチュエータデータを決定し、このアクチュエータデータを、アクチュエータインタフェースを介してアクチュエータに供給するように構成され得る。
【0052】
システム200のオペレーションの種々の詳細及び態様は、これらの任意選択肢の態様が含まれる図4及び図5を参照しながらさらに説明される。
【0053】
一般に、システム200は、ワークステーション、例えばラップトップ若しくはデスクトップベース、又は、サーバのような単一のデバイス若しくは装置として、又は、そのような単一のデバイス若しくは装置の中に実装され得る。デバイス又は装置は、適当なソフトウェアを実行する1つ又は複数のマイクロプロセッサを含むことができる。例えば、プロセッササブシステムは、単一の中央処理装置(CPU)によって実装されていてもよいが、複数のそのようなCPU及び/又は複数の他の種類の処理装置からなる組合せ又はシステムによっても実装されていてもよい。ソフトウェアは、対応するメモリ、例えばRAMのような揮発性メモリ内に、又は、フラッシュのような不揮発性メモリ内に、ダウンロード及び/又は格納され得る。あるいは、システムの機能ユニット、例えば、データインタフェース及びプロセッササブシステムは、例えば、フィールドプログラマブルゲートアレイ(FPGA)及び/又はグラフィックスプロセッシングユニット(GPU)のようなプログラマブルロジックの形態により、デバイス内又は装置内に実装されていてもよい。一般に、システムのそれぞれの機能ユニットは、回路の形態により実装され得る。システム200が、分散サーバのような複数の異なるデバイス又は装置が含まれる分散方式でも、例えばクラウドコンピューティングの形態によっても実装され得ることに留意すべきである。
【0054】
図3は、上記の例を示しており、ここでは、一実施形態によるニューラルネットワークを入力インスタンスに適用するためのシステム、例えば図2のシステム200(別個には図示せず)を含む、車両62を制御するための自動車制御システム300が示されている。ニューラルネットワークは、この例においては、画像分類器であり得る。車両62は、自律型又は半自律型の車両であり得るが、このことは必須ではなく、例えば、システム300は、非自律型の車両62の運転者支援システムであってもよい。
【0055】
例えば、車両62は、カメラ22から取得された画像に基づいて車両を制御するためのニューラルネットワーク適用システムを組み込むことができる。例えば、自動車制御システム300は、カメラ22から車両の環境50の画像を取得するためのカメラインタフェース(別個には図示せず)を含むことができる。
【0056】
システムは、ニューラルネットワークを使用してカメラ22から取得された画像を分類して、車両の環境50内の関心のある状況、例えば、車両が衝突する危険のある障害物を検出するように構成され得る。制御システム300はさらに、アクチュエータに車両62を制御するためのアクションを実行させるアクチュエータデータを、アクチュエータに供給するためのアクチュエータインタフェース(別個には図示せず)を含むことができる。自動車制御システム300は、この検出結果に少なくとも部分的に基づいて、車両62を制御するためのアクチュエータデータを決定し、このアクチュエータデータを、アクチュエータインタフェースを介してアクチュエータに供給するように構成され得る。例えば、アクチュエータは、車両のステアリング及び/又はブレーキを制御するために動作させられ得る。例えば、制御システムは、関心のある状況が検出された場合に(回生)ブレーキを実行するように、電気モータ42を制御することができる。
【0057】
図4は、例えば、システム100又は200によって使用するための最適化層の、詳細であるが非限定的な例を示している。ここに示されている最適化層OL,451は、MAXSAT層であり、このMAXSAT層においては、共同最適化Opt,440において、MAXSAT問題の緩和である半正定値計画問題が解かれる。この図面は、MAXSAT層の、例えば入力から出力への順方向パスを示している。この層は、入力として、既知のMAXSAT変数の離散的又は確率的な割り当てを受け取ることができる。この層は、特定の重みSを用いたMAXSAT問題のSDP緩和によって、未知の変数の割り当てに関する推測を出力することができる。そのような層を「SATNet層」と称することができる。
【0058】
最適化層OLの入力値IVs,400が示されている。入力値は、
【数5】
であるZによって表すことができ、ここで、Iは、最適化層への入力のセットを表す。入力値は、例えば、
【数6】
のように離散的であってもよいし、又は、例えば、
【数7】
のように確率的であってもよい。
【0059】
最適化層OLの一部として、演算Rx,410において、入力ベクトルIVXs,420を取得するため、例えば、それぞれの入力値
【数8】
に対する入力ベクトル
【数9】
を取得するために、入力値IVsが緩和される。適当な緩和については、以下で説明する。好ましくは、緩和は、連続的及び/又は微分可能な関数によって実行される。
【0060】
入力ベクトルIVXsに基づいて、出力ベクトルOVXs,470は、入力ベクトルIVXsに対して少なくとも出力ベクトルOVXsを共同で最適化することOpt,440によって計算され、例えば、入力ベクトルIVXsを固定したままで少なくとも出力ベクトルOVXsに関する損失関数を最適化することによって計算される。出力ベクトルOVXsは、
【数10】
である
【数11】
によって表すことができ、ここで、
【数12】
は、最適化層の出力のセットを表す。この場合、最適化Optは、MAXSATのSDP緩和であり、即ち、SDP緩和のパラメータPAR,460は、SDP緩和を定義する重みSを含むことができる。そのような緩和の詳細な例については、他の箇所において説明する。
【0061】
最適化の出力ベクトルOVXsから、この場合には、丸めRd,480を実行することによって、最適化層OLの出力値OVs,490を決定することができる。この例においては、出力値
【数13】
は、例えば
【数14】
のように離散的であってもよいし、又は、例えば、
【数15】
のように確率的であってもよい。丸めRdは、乱択丸めによって実行されてもよいし、又は、他の箇所において説明されている他の種類の丸めによって実行されてもよい。
【0062】
最適化層OLの詳細な例として、SATNet層についての以下の説明は、図5を参照しながらより詳細に説明される式及びアルゴリズムを参照して行われる:
【表1】
【0063】
図5は、一実施形態によるニューラルネットワークをどのようにして適用及び/又は訓練するかの、詳細であるが非限定的な例を示している。この例においては、ニューラルネットワークNN,550が示されている。
【0064】
例えば、ニューラルネットワークNNを適用すると、入力インスタンスII,530を取得することができる。例えば、入力インスタンスIIは、画像であってもよいし、又は、他の種類のセンサデータであってもよい。入力インスタンスIIは、センサなどからユーザによって入力され得る。種々の実施形態においては、ニューラルネットワークNNは、入力インスタンスの分類CL,539を決定するように構成され得るが、このことは必須ではない。分類CLを使用して、例えば、入力インスタンスIIが検知された環境内におけるアクションをアクチュエータが実行するための制御信号を決定することができる。図面に示されている矢印は、ニューラルネットワークを適用する順方向パスにおける種々のデータの依存関係を示すことができる。
【0065】
例えば、ニューラルネットワークNNを訓練する際には、例えば、ニューラルネットワークの損失の勾配を決定することと、損失が低減されるようにニューラルネットワークのパラメータを適合させることとを反復的に実行することにより、ニューラルネットワークを介した逆伝播を実行することができる。例えば、対応するラベルが付けられた1つ又は複数の入力インスタンスIIに基づいて、例えば、ミニバッチで、それぞれの入力インスタンスIIに対するニューラルネットワークNNの分類と、それぞれのインスタンスに付けられたラベルとの間の差を示す損失が決定される。例えば、ニューラルネットワークNNを訓練するために、最適化フレームワークを使用することができ、この最適化フレームワークは、Diederik P.Kingma及びJimmy Baによる『Adam:A Method for Stochastic Optimization』(参照によって本明細書に組み込まれ、https://arxiv.org/abs/1412.6980において入手可能である。)において開示されているAdam最適化手法のように、それ自体が公知である。例えば、最小化されるべき損失は、クロスエントロピー損失、負の対数尤度、平均二乗誤差などであり得る。
【0066】
図面に示されているように、ニューラルネットワークNNは、少なくとも1つの最適化層を含むことができる。ニューラルネットワークNNは、複数の最適化層を含むこともでき、例えば、第1の最適化層の1つ又は複数の出力が、第2の最適化層に入力されるなどである。
【0067】
例えば、長さLの入力シーケンスへの演算のシーケンスの適用を学習するために、ニューラルネットワークNNは、一連のL-1個の最適化層、例えば、SATNet層を含むことができる。例えば、演算のシーケンスは、そのパリティを計算するために入力シーケンスに連続的に適用されるXOR演算のシーケンスであり得る。例えば、同一の演算が複数回適用される場合には、最適化層の一部又は全てに重みを関連付けることができる。例えば、XORのようなバイナリ関数の場合には、第1の最適化層は、最初の2つの値を入力として受信することができ、層dは、層d-1の出力とともに値dを受信することができる。それぞれの層がそれぞれの演算の計算を学習すると、組み合わせられたシステムは、演算全体を正しく計算することとなる。本明細書に提示される技術を使用して、長い一連の最適化問題を有するそのようなニューラルネットワークを、任意の中間の教師(intermediate supervision)によって訓練することができることに留意すべきである。
【0068】
ニューラルネットワークNNの構造の他の例として、ニューラルネットワークは、畳み込みニューラルネットワークの1つ又は複数の層を含むことができ、この畳み込みニューラルネットワークの後には、1つ又は複数の最適化層、例えばSATNet層が後続する。このようにすると、ニューラルネットワークは、低レベルのセンサ入力特徴、例えば低レベルの画像特徴に関して推理を行うことが可能となり得る。最適化層の後には、例えば、分類、回帰、潜在特徴への符号化などを実行するための追加的な層が後続することができる。
【0069】
当業者が理解するように、上記の具体的なニューラルネットワークの例は、本明細書に提示されるような最適化層のいくつかの特定の使用を例示するために使用されているに過ぎない。種々の代替案又は組合せが考えられ、その場合、本明細書に提示される最適化層を、他の種類のニューラルネットワーク層、例えば、LSTMアーキテクチャから既知の層と、及び/又は、種々の設定で、例えば、敵対的生成モデル(GAN)、変分オートエンコーダ(VAE)などで、有利に組み合わせることができる。
【0070】
次に、最適化層に進む。最適化層は、1つ又は複数の出力ニューロンの値OV1,573からOVn,574までを決定するためのものであり得る。この例においては、2つの出力ニューロンが示されているが、一般に、より多くの出力ニューロン、例えば少なくとも20個又は少なくとも100個の出力ニューロンが存在し得る。しかしながら、ただ1つの出力ニューロンも可能である。出力ニューロンの値は、1つ又は複数の入力ニューロンの値IV1,501,・・・,IVn,502から決定され得る。ここでも、1つ又は複数の入力値、例えば少なくとも20個又は少なくとも100個の入力値が存在し得る。入力値の数と出力値の数とは、異なっていてもよい。入力値IV1,・・・,IVnから、出力値OV1,・・・,OVnを、入力値に対応する入力ベクトルに対して、少なくとも出力値に対応する出力ベクトルを共同で最適化することによって決定することができ、例えば、入力値を一定にしたままで、出力ベクトル及び入力ベクトルに依存する損失関数を最小化するような出力ベクトルを決定することによって決定することができる。
【0071】
種々の実施形態においては、共同最適化は、入力値及び出力値に対する最適化問題の緩和であり得る。具体的には、いくつかの実施形態においては、共同最適化は、MAXSAT緩和である。MAX2SAT又はMAXCUTのような他の最適化問題も、同様に緩和することができる。
【0072】
MAXSAT問題は、周知の充足可能性(SAT)問題に類似した最適化であり、ここでの目的は、充足される節の数を最大化することである。n個の変数と、m個の節とを有するMAXSATインスタンスについて検討する。
【数16】
が、問題変数のバイナリ割り当てを表すものとし、ここで、
【数17】
は、変数
【数18】
の真の値であり、
【数19】
である
【数20】
を表し、ただし、
【数21】
は、
【数22】
節における
【数23】
の符号を表す。
MAXSAT問題は、以下のように定式化され得る:
【数24】
(1)の半正定値緩和を形成するために、離散変数
【数25】
を、いくつかの「真の方向」
【数26】
に関して、関連する連続変数
【数27】
へと緩和することができる。係数ベクトルは、vに関連する
【数28】
として定義され得る。MAXSATのSDP緩和は、以下のように定式化され得る:
【数29】
ここで、
【数30】
であり、
【数31】
である。
【0073】
一般に、Vのベクトルの内積(VV)の種々の線形結合(M,VV)は、半正定値計画問題につながる行列Mの種々の選択肢に対して最小化され得るが、M=SSを選択することが、MAXSAT問題に対応しているので特に有利である。換言すれば、2つのベクトルの内積のための線形結合の係数は、それぞれのベクトルに関連する2つの重みベクトルの内積
【数32】
によって与えられ得る。重みベクトルは、共同最適化のパラメータ内に含まれ得る。重みベクトルは、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとの合計数n+1よりも少ない要素kを有することができ、換言すれば、SをVよりも小さくすることができ、その意味でSは、最適化層の低ランクのパラメータ化を提供することができる。
【0074】
種々の実施形態においては、半正定値計画問題(2)を、座標降下を適用することによって解くことができる。特に、vに依存する目的項は、
【数33】
によって与えられ得る。ここで、Sは、Sのi番目の列ベクトルである。この量を、
【数34】
という制約の下で、vにわたって最小化すると、座標降下の更新
【数35】
が得られる。この更新は、SDPの大域的に最適な固定点に収束することができる。
【0075】
種々の実施形態においては、半正定値計画問題は、最新の深層ネットワークアーキテクチャ、例えばニューラルネットワークNNに組み込むことができる微分可能な平滑化ソルバーを使用して解かれる。座標降下を使用して、半正定値計画問題、例えばSDP MAXSAT緩和を解くことができる。特に、MAXSAT問題のSDP緩和と、関連する座標降下の更新とを使用して、充足可能性を解くための深層ネットワーク層、例えば図4のSATNet層を得ることができる。
【0076】
次に、順方向パスにおいて、ニューラルネットワークNNがどのようにして入力インスタンスIIに適用され得るかについて説明する。
【数36】
を、最適化層の入力変数IV1,・・・,IVnの、例えば、既知の割り当てを有する変数のインデックスとして定義し、
【数37】
は、未知の割り当てを有する出力変数OV1,・・・,OVnのインデックスに対応するものとする。入力値は、例えば、最適化層に先行するニューラルネットワークNNの層を評価することによって、入力インスタンスIIから決定され得る。
【0077】
最適化層は、入力IViとして、確率的な入力又はバイナリの入力
【数38】
を許容することができ、出力OViとして、同様に確率的又はバイナリ
【数39】
である未知の変数
【数40】
の割り当てを出力することができる。本発明は、
【数41】
及び
【数42】
に、それぞれ全ての入力及び出力の割り当てを参照させる。出力
【数43】
は、SDPによって生成され得る。共同最適化のパラメータは、例えば、SDPの低ランクの係数行列Sを含むことができる。
【0078】
層の初期化:最適化層の種々の側面、例えば、共同最適化のパラメータの数をコンフィギュレーションすることができる。例えば、MAXSATの例においては、この層が表現可能な節の最大数mを、事前に定義することができる。
【0079】
任意選択的に、層の入力又は出力に接続されていない1つ又は複数の補助変数を使用することによって、層の表現能力を向上させることができる。出力ベクトルは、1つ又は複数の補助ベクトルAVX1,571,・・・,AVXn,572を出力ベクトルと共同で最適化することによって計算され得る。最適化問題に追加的な変数を追加すると、その問題をパラメータ化するために必要とされる節の数を減らすことができる。入力変数及び出力変数と同様に、補助変数を補助ベクトルとして表すことができ、この補助ベクトルは、出力ベクトルと共同で最適化される。補助変数の数は、一般に、入力ベクトル又は出力ベクトルの数と同一ではない。1つ又は複数の補助ベクトル、例えば少なくとも10個又は少なくとも100個の補助ベクトルが存在し得る。
【0080】
入力ベクトル、出力ベクトル、及び/又は、補助ベクトルは、次元
【数44】
を有することができ、ここで、nは、補助変数に加えて、実際の問題変数(入力及び/又は出力)の数を表し得るものであり、例えば、MAXSATの場合には、これにより、SDPが最適に解かれることを保証することができる。
【0081】
演算Rx,510において、層入力IV1,・・・,IVnを緩和することができ、例えば、それぞれの入力値に対して、入力ベクトルIVX1,521,・・・,IVXn,522を決定することができる。好ましくは、逆伝播を容易にするために、それぞれの入力値に対して連続的及び/又は微分的に入力ベクトルが決定される。具体的な例として、
【数45】
であるそれぞれの層入力zを、
=-cos(πz)v (4)
によって、関連する
【数46】
へと緩和することができる。なお、「真の方向」
【数47】
を、初期化することができ、例えばランダムに生成して層の内部に保存することができる。他の関数も可能である。効果的には、最適化層は、演算Rxにおいて、最適化層への入力を連続ベクトルへと緩和して、SDP定式化において使用することができる。
【0082】
演算Cdesc,540において、1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルOVX1,573,・・・,OVXn,574を、決定された入力ベクトルIVX1,・・・,IVXnから計算することができる。補助ベクトルAVX1,・・・,AVXnが存在する場合には、これらの補助ベクトルAVX1,・・・,AVXnも最適化することができる。出力ベクトルの数は、典型的には、出力値OV1,・・・,OVnの数に対応する。
【0083】
例えば、1つ又は複数のパラメータは、MAXSAT緩和の重みベクトルSを含むことができる。この場合には、それぞれの入力ベクトルにつき1つの重みベクトルIWV1,561,・・・,IWVn,562を設けることができ、それぞれの補助ベクトルにつき1つの重みベクトルAWV1,563,・・・,AWVn,564を設けることができ、及び/又は、それぞれの出力ベクトルにつき1つの重みベクトルOWV1,565,・・・,OWVn,566を設けることができる。典型的には、重みベクトルは、それぞれ同一の長さを有し、上で説明したように行列Sを一緒に形成する。より一般的には、パラメータは、ベクトルIVX1,・・・,IVXn,AVX1,・・・,AVXn,OVX1,・・・,OVXnの内積の線形結合の係数Mを含むことができ又は定義することができる。
【0084】
興味深いことに、出力ベクトル及び/又は補助ベクトルは、典型的には、最適化によって決定されるが、その一方で、入力ベクトルは、図面の矢印によって示されるように固定されたままである。
【0085】
入力IV1,・・・,IVn
【数48】
の緩和IVX1,・・・,IVXn(本明細書においては、集合的に
【数49】
と称し、例えば、VのIインデックス付きの列のサブセットである)が与えられると、最適化層は、連続的な出力
【数50】
(本明細書においては、集合的に、
【数51】
と称する。)の値を計算するために、例えば更新(3)によって、座標降下を使用することができる。換言すれば、出力ベクトルOVX1,・・・,OVXnは、入力ベクトルIVXiと、出力ベクトルOVXi及び補助ベクトルAVXiの現在の値とに基づいて、出力ベクトルOVXi又は補助ベクトルAVXiを反復的に更新することによって計算され得る。興味深いことに、これらの更新を、出力変数及び補助変数のみに対して計算することができ、例えば、層への入力として割り当てが与えられた変数に対しては、計算を回避することができる。
【0086】
MAXSAT緩和のための順方向パスのための座標降下アルゴリズムの例を、以下に詳細に示す:
【表2】
【0087】
上記のアルゴリズムで例示されているように、座標降下は、状態行列、即ち、gωを計算するために必要とされる項Ω=VSを維持することによって、効率的に実施され得る。説明したように、重みベクトルIWV1,・・・,OWVnのそれぞれのエントリ、換言すれば、行列Sの行は、共同で最適化されるべき節を表すベクトルIVX1,・・・,OVXnの線形結合を定義することができる。従って、状態行列ωの列は、入力ベクトルと、出力ベクトルと、任意選択的に補助ベクトルとに関するこのような節の値を示すことができる。例示されているように、状態行列は、それぞれの内部反復中にランク1の更新によって更新され得る。従って、O(nmk)の反復ごとのランタイムを達成することができる。実際には、収束のために必要とされる反復の回数はごく少数であることが多いことが観察されている。
【0088】
演算Rd,580において、1つ又は複数の出力ニューロンの離散的又は確率的な値OV1,・・・,OVnが、それぞれの計算された出力ベクトルOVX1,・・・,OVXnから決定される。出力ベクトル、例えば座標降下からの緩和された出力
【数52】
が与えられると、最適化層は、これらの出力を、例えばしきい値処理又は乱択丸めによって離散的又は確率的な変数割り当てzωに変換することができる。興味深いことに、演算Rdは、連続的及び/又は微分可能であり得るし、又は、少なくとも、連続的及び/又は微分可能な関数として訓練することを可能にすることができる。
【0089】
例えば、乱択丸めを使用することができ、この場合、ランダムな超平面rを、例えば単位球から生成することができ、
【数53】
を割り当てることができ、ここで、
【数54】
は、vωのためのブール出力である。この方法又は類似の方法を使用すると、
【数55】
が「真」になるのは、vωがvに類似している場合のみ、例えば、vωがランダムな超平面rに関して真のベクトルvと同一の側にある場合のみであり得る。
【0090】
訓練中には、又は、これに代えて乱択丸めの実行中には、vω及びvが任意の所与のrの同一の側にある確率が、
【数56】
であり、従って、
【数57】
を、この確率に等しくなるように設定することができることを述べておくことができる。
【0091】
ニューラルネットワークNNを適用する際には、例えば、確率的な出力が、同様に出力されることが可能であり、又は、離散的な割り当てが、しきい値処理によって又は乱択丸めを明示的に適用することによって出力されることが可能である。乱択丸めの場合には、丸めを複数回実行することができ、ブール解を選択して、手元の最適化問題、例えばMAXSAT目標(1)を最大化することができる。例えば、
【数58】
を設定することができる。
【0092】
次に、逆方向パスにおけるニューラルネットワークNNの訓練に進む。ニューラルネットワークNNを訓練する際には、1つ又は複数の入力ニューロン及び/又は1つ又は複数の共同最適化のパラメータに関するニューラルネットワークの損失の勾配を、最適化層の1つ又は複数の出力ニューロンに関する損失の勾配から決定するために、逆方向パスを実行することができる。層出力に関するネットワーク損失lの勾配
【数59】
が与えられると、それぞれの層入力及び重みに関する損失の勾配
【数60】
及び
【数61】
が計算され得る。損失は、クロスエントロピー損失、負の対数尤度、平均二乗誤差などであり得る。
【0093】
興味深いことに、場合によっては、所望の勾配を直接的に計算するために、解析表現に基づいて計算を行うことができ、これによって、効率的な座標降下アルゴリズムが可能となる。このことは、MAXSAT問題のSDP緩和に関して、以下に例示されている。しかしながら、明示的な解析表現は必要なく、例えば、数値近似を使用することが可能である。
【0094】
確率的な出力からその継続的な緩和まで
【数62】
が与えられると、確率的な割り当てメカニズムを介して勾配をプッシュすることによって得られる
【数63】
のための表現を使用することができ、即ち、それぞれの
【数64】
に対して、
【数65】
であり、本発明は、式(6)を微分することによって
【数66】
を得る。
【0095】
SDPの逆伝播
次に、結果
【数67】
が与えられると、本発明は、SDP解法手順によって勾配をプッシュすることにより、
【数68】
及び
【数69】
を計算することを探索する。SDP問題の解は、行列・ベクトル解法による問題のパラメータ及び入力に関して区別され得る。この線形システムの解を計算するために、座標降下アプローチを使用することができ、この座標降下アプローチは、順方向パスの計算を厳密に反映するものであり、同様の高速収束特性を有する。例として、本発明は、全ての連続的なSDP出力ベクトル
【数70】
に関する損失の勾配
【数71】
が与えられると仮定する。いくつかの重み行列パラメータ
【数72】
に関する損失の勾配に対して解析表現を適用して、例えば、
【数73】
のための明示的な形式を、以下のように計算することが可能である。
【0096】
本発明は、まず、中間項
【数74】
を導出することによって開始する。本発明の座標降下の更新(3)は、固定点に収束することができるので、本発明は、最終的な更新を
【数75】
のように再配置して、
【数76】
のように、陰関数定理を介してこの方程式を微分することによって、
この勾配を見つけることが可能である。ここで、
【数77】
及び
【数78】
である(ここでは、
【数79】
は、Sの
【数80】
インデックス付きの列のサブセットを表す)。(9)が、全ての
【数81】
に対する
【数82】
の線形システムであり得ることを述べておく。
【0097】
式(9)の右辺を捉えるために、ηωを定義する。この線形システムを解いて連鎖律を適用すると、
【数83】
であることが見て取れ、ここで、
【数84】
及び
【数85】
は、
【数86】
及び
【数87】
によってインデックス付けられ、ただし、
【数88】
である。
【数89】
が固定されている場合、この導出は、全てのSajに対して同様になり得る。実際には、典型的には、項
【数90】
のみが、jに対して明示的に依存している。従って、aが固定されている場合、本発明は、行列・ベクトルの積
【数91】
及び
【数92】
を事前に計算することにより、全てのSajに関する損失の勾配を安価に計算することが可能である。この行列・ベクトル解法は、例えば以下に示されているアルゴリズム3の場合のように、ブロック座標降下によって解かれ得る。勾配のための解析形式は、
【数93】
【数94】
によって与えられ得る。ここで、
【数95】
は、
【数96】
のi番目の列であり、SIは、SのIインデックス付きの列サブセットを表す。式(12)は、本発明の層によって使用される重み勾配
【数97】
の解析形式であり得る。
【0098】
緩和されたものから元の入力へ
(入力緩和に関する)勾配
【数98】
を使用して、入力緩和手順によって勾配をプッシュすることにより、(実際の入力に関する)勾配
【数99】
を導出することができる。それぞれの
【数100】
に対して、
【数101】
である場合があり得る。なお、
【数102】
は、
【数103】
に対するlの任意の直接的な依存関係を捉えるものである(vによる依存関係とは対照的である)。式(13)は、本発明の層によって使用される入力勾配
【数104】
の解析形式を表すことができる。
【0099】
座標降下による逆伝播項の計算
線形システム
【数105】
は、座標降下によって解かれ得る。興味深いことに、以下のアルゴリズム3において例示されている技術により、中間のヤコビアンを明示的に維持する必要なく、所望の勾配を計算することが可能となり得る。順方向パスを反映して、ランク1の更新を使用して、dgωを計算するために必要とされる項Ψ=USを維持及び修正することができる。実際に、本発明者らが認識したように、例えば、座標降下アプローチを使用して、逆伝播のために必要とされるヤコビアン・ベクトル積を計算することにより、ヤコビアン自体の計算を回避することができる。ヤコビアンは大きくなる可能性があり、例えば、MAXSAT問題の解のSDP緩和内で使用されるV行列は、knであり得るので、この項の完全なヤコビアンは、kn×kn行列であり得る。従って、記憶及び/又は計算を大幅に削減することができる。
【0100】
MAXSAT問題のSDP緩和のための勾配を計算するための例示的な手順を以下に示す:
【表3】
【0101】
図6は、ニューラルネットワークを入力インスタンスに適用するコンピュータ実装方法600のブロック図を示している。
【0102】
方法600は、「ニューラルネットワークデータにアクセスする」というタイトルのオペレーションにおいて、ニューラルネットワークを表すデータにアクセスすること610を含むことができる。ニューラルネットワークは、少なくとも1つの最適化層を含むことができる。最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり得る。データは、共同最適化の1つ又は複数のパラメータを含むことができる。本方法はさらに、「入力インスタンスを取得する」というタイトルのオペレーションにおいて、入力インスタンスを取得すること620を含むことができる。本方法はさらに、「ニューラルネットワークを適用する」というタイトルのオペレーションにおいて、ニューラルネットワークを入力インスタンスに適用すること630を含むことができる。ニューラルネットワークを適用すること630は、「入力値を取得する」というタイトルのオペレーションにおいて、最適化層への1つ又は複数の入力ニューロンの値を取得すること631を含むことができる。適用すること630はさらに、「入力ベクトルを決定する」というタイトルのオペレーションにおいて、1つ又は複数の入力ニューロンの値から1つ又は複数の入力ニューロンのための入力ベクトルを決定すること632を含むことができる。適用すること630はさらに、「半正定値計画問題を解く」というタイトルのオペレーションにおいて、1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算すること633を含むことができる。適用すること630はさらに、「出力値を決定する」というタイトルのオペレーションにおいて、それぞれの計算された出力ベクトルから1つ又は複数の出力ニューロンの値を決定すること634を含むことができる。
【0103】
方法600は、図2のシステム200のオペレーションに対応し得る。しかしながら、これは限定ではなく、従って、方法600を、他のシステム、装置又はデバイスを使用して実施してもよい。
【0104】
図7は、ニューラルネットワークを訓練するコンピュータ実装方法700のブロック図を示している。
【0105】
方法700は、「ニューラルネットワーク、訓練データにアクセスする」というタイトルのオペレーションにおいて、ニューラルネットワークのパラメータを表すデータにアクセスすること710と、1つ又は複数の入力インスタンスを含む訓練データセットにアクセスすることとを含むことができる。ニューラルネットワークは、少なくとも1つの最適化層を含むことができる。最適化層は、共同最適化によって1つ又は複数の入力ニューロンの値から1つ又は複数の出力ニューロンの値を決定するためのものであり得る。データは、共同最適化の1つ又は複数のパラメータを含むことができる。
【0106】
方法700はさらに、「ニューラルネットワークを訓練する」というタイトルのオペレーションにおいて、ニューラルネットワークを訓練すること720を含むことができる。訓練すること720は、「損失勾配を決定する」というタイトルのオペレーションにおいて、最適化層の1つ又は複数の出力ニューロンに関する損失の勾配から、1つ又は複数の入力ニューロン及び/又は共同最適化の1つ又は複数のパラメータに関するニューラルネットワークの損失の勾配を決定すること730を含むことができる。
【0107】
勾配を決定すること730は、「出力ベクトルに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ニューロンに関する勾配から、1つ又は複数の出力ニューロンの出力ベクトルに関する損失の勾配を決定すること731を含むことができる。
【0108】
決定すること730はさらに、「入力ベクトルに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ベクトルに関する勾配から、1つ又は複数の入力ニューロンの入力ベクトルに関する損失の勾配を決定すること732を含むことができる。決定すること730はさらに、「入力ニューロンに関する勾配を決定する」というタイトルのオペレーションにおいて、入力ベクトルに関する損失の勾配から、入力ニューロンに関するニューラルネットワークの損失の勾配を決定すること733を含むことができる。
【0109】
オペレーション732及び733の代わりに又はこれに加えて、決定すること730は、「パラメータに関する勾配を決定する」というタイトルのオペレーションにおいて、出力ベクトルに関する勾配から、1つ又は複数のパラメータに関する損失の勾配を決定すること734を含むことができる。
【0110】
1つ又は複数のパラメータによって定義された半正定値計画問題を解くために、入力ベクトルに対して少なくとも出力ベクトルを共同で最適化することによって、1つ又は複数の出力ニューロンのための出力ベクトルを、決定された入力ベクトルから計算することができる。
【0111】
方法700は、図1のシステム100のオペレーションに対応し得る。しかしながら、これは限定ではなく、従って、方法700を、他のシステム、装置又はデバイスを使用して実施してもよい。
【0112】
一般に、方法600及び700のオペレーションは、任意の適当な順序により、例えば連続的に、同時に又はそれらの組合せにより、該当する場合には、例えば入力/出力の関係によって必要とされる特定の順序を条件として、実施され得ることが理解される。
【0113】
本方法は、コンピュータ上において、コンピュータ実装方法として、専用のハードウェアとして、又は、両方の組合せとして実装され得る。図8にも示されているように、コンピュータのための命令、例えば実行可能コードは、例えば、一連の機械可読の物理的マーク810の形態により、及び/又は、一連の種々異なる電気的、例えば磁気的又は光学的な特性又は値を有する要素の形態により、コンピュータ可読媒体800上に格納され得る。実行可能コードは、一時的又は非一時的に格納され得る。コンピュータ可読媒体の例には、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどが含まれる。図8は、光ディスク800を示している。あるいは、コンピュータ可読媒体800は、本明細書の他の箇所において説明されるように、共同最適化のパラメータを表す一時的又は非一時的データ810を含むことができる。
【0114】
本明細書に提示されるニューラルネットワークは、広範囲の問題に適用可能であるが、いくつかの特定の例を以下に示す。
【0115】
ビデオからのアクション認識:入力としてビデオシーケンスが与えられ、シーンにおいて発生するアクションを認識することが目的であると仮定する。例えば、自律型の運転システムにおいては、システムは、視覚的なデータを利用することによって意思決定を行う。このような場合の多くにおいては、意思決定のためのルールを明示的又は簡単に定義することができない。しかしながら、本明細書に記載される技術を適用することにより、視覚情報のセットに基づいて学習論理的推論を実行可能なニューラルネットワークを、訓練及び/又は使用することができる。
【0116】
画像のキャプション:デジタル画像におけるシーンを1文で説明する問題について検討することができる。画像のペアの訓練セットを、これらの短い説明と一緒に利用することにより、提案されるネットワークは、説明を与える一般的なルールを学習し、初見の画像をより良好に一般化することができる。例えば、ニューラルネットワークは、最適化層に後続するLTSM又はリカレントニューラルネットワークを含むことができる。
【0117】
手書きのテキストの認識:例えばデジタル画像としてスキャンされた又は与えられた、ドキュメントに含まれるテキストが与えられ、このテキストを認識することが目的であると仮定する。テキストが印刷されている場合であっても、ノイズ又はデータの欠落を考慮するべきである。手書きのテキスト認識を多様性としてみなすと、問題はまたさらに難しくなり、従って、問題の複雑さが大幅に増大する。このタスクにおいては、さらに不完全な観測結果を検討すべきであり、これは、大量の訓練データがなければ処理するのが困難である。この設定においては、本発明の提案されるニューラルネットワークは、人間が犯した通常の間違いをどのようにして認識するかを学習することができる。結果として、ネットワークを訓練するために必要とされる訓練例の数を少なくすることができる。さらに、ネットワークがより一般的なモデルを学習するにつれて、認識タスクがより正確に解かれるようになり、これによって、データ内部のより洗練された関係を探索することが可能となるので、不確実な状況をより良好に識別することが可能となる。
【0118】
自然言語認識:テキスト認識と同様に、本明細書に開示される技術を、自然言語認識にも適用することができる。完全なデータ、例えばノイズレスデータを期待することができないので、欠落している情報をモデル化することができる。このことを、本明細書で提案されるニューラルネットワークによって、訓練データにおけるより複雑な関係を学習するために最適化層を使用することによって達成することができる。
【0119】
例、実施形態又は任意選択肢の特徴は、非限定的であるかどうかにかかわらず、特許請求される本発明を限定するものとして理解されるべきではない。
【0120】
上記の実施形態が、本発明を限定するもののではなく例示するものであること、また、当業者が、添付の特許請求の範囲から逸脱することなく、多数の代替的な実施形態を設計可能であることに留意すべきである。特許請求の範囲において、括弧内に記載された参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。動詞「含む」及びその活用形の使用は、特許請求の範囲に記載されている以外の要素又は段階の存在を排除するものではない。要素に先行する冠詞「a」又は「an」は、そのような要素が複数存在することを排除するものではない。要素のリスト又はグループの前にある「少なくとも1つ」のような表現は、リスト又はグループからの要素の全て又は任意のサブセットの選択を表す。例えば、「A,B,及びCの少なくとも1つ」という表現は、Aのみ、Bのみ、Cのみ、A及びBの両方、A及びCの両方、B及びCの両方、又は、A及びB及びCの全てを含むものとして理解されるべきである。本発明は、いくつかの別個の要素を含むハードウェアによって、かつ、適当にプログラミングされたコンピュータによって実装され得る。いくつかの手段を列挙する装置の請求項においては、これらの手段のうちのいくつかを、同一のハードウェアアイテムによって実装することができる。複数の特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に使用することができないということを示すわけではない。
図1
図2
図3
図4
図5
図6
図7
図8