(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110969
(43)【公開日】2024-08-16
(54)【発明の名称】ブートストラッピングされた潜在表現を使用する自己教師付き表現学習
(51)【国際特許分類】
G06N 3/0895 20230101AFI20240808BHJP
【FI】
G06N3/0895
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024082493
(22)【出願日】2024-05-21
(62)【分割の表示】P 2022560500の分割
【原出願日】2021-06-04
(31)【優先権主張番号】63/035,583
(32)【優先日】2020-06-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/039,343
(32)【優先日】2020-06-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジャン-バスティアン・フランソワ・ローラン・グリル
(72)【発明者】
【氏名】フロリアン・ストルブ
(72)【発明者】
【氏名】フロラン・アルチェ
(72)【発明者】
【氏名】コランタン・タレク
(72)【発明者】
【氏名】ピエール・リシュモン
(72)【発明者】
【氏名】ベルナルド・アヴィラ・ピレス
(72)【発明者】
【氏名】ジャオハン・グオ
(72)【発明者】
【氏名】モハマド・ゲシラギ・アザール
(72)【発明者】
【氏名】ビラル・ピオット
(72)【発明者】
【氏名】レミ・ムニョス
(72)【発明者】
【氏名】ミシャル・ヴァルコ
(57)【要約】
【課題】自己教師付き学習方法により、画像などのデータ項目表現を学習する。
【解決手段】ニューラルネットワーク (NN) を訓練するコンピュータ実装方法であって、この方法は、ターゲットNNを用いて訓練データ項目、例えば画像の第1の変換されたビューを処理して、ターゲット出力を生成するステップと、オンラインNNを用いて訓練データ項目、例えば画像の第2の変換されたビューを処理して、ターゲット出力の予測を生成するステップと、ターゲット出力の予測とターゲット出力との間の誤差を最小化するためにオンラインNNのパラメータを更新するステップと、オンラインNNのパラメータに基づいてターゲットNNのパラメータを更新するステップとを含む。方法は、ラベル付きの訓練データ項目を使用せず、及び対照損失を使用せず、異なるデータ項目の変換されたビューを含む「否定的例」の必要なしに、エンコーダNNを効果的に訓練することができる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ニューラルネットワークを訓練するコンピュータ実装方法であって、
ターゲットニューラルネットワークを用いて訓練データ項目の第1の変換されたビューを処理して、ターゲット出力を生成するステップと、
オンラインニューラルネットワークを用いて前記訓練データ項目の第2の変換されたビューを処理して、前記ターゲット出力の予測を生成するステップと、
前記ターゲット出力の前記予測と前記ターゲット出力との間の誤差を最小化するために、前記オンラインニューラルネットワークの1つまたは複数のパラメータを更新するステップと、
前記オンラインニューラルネットワークの前記パラメータに基づいて前記ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップと
を含む、コンピュータ実装方法。
【請求項2】
前記ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップが、
前記オンラインニューラルネットワークの前記パラメータの移動平均を用いて前記ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップ
を含む、請求項1に記載の方法。
【請求項3】
前記ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップが、
ξ←τξ+(1-τ)θに従って前記ターゲットニューラルネットワークの前記1つまたは複数のパラメータの更新された値を決定するステップを含み、式中、ξが、前記ターゲットニューラルネットワークの前記パラメータを表し、θが、前記オンラインニューラルネットワークの前記パラメータを表し、τが、減衰率である、
請求項1または2に記載の方法。
【請求項4】
前記オンラインニューラルネットワークおよび前記ターゲットニューラルネットワークがそれぞれ、それぞれのエンコーダニューラルネットワークを含み、前記方法が、各エンコーダニューラルネットワークによって、
前記訓練データ項目の変換されたビューを受信することと、
前記訓練データ項目の前記変換されたビューを処理して、前記訓練データ項目の表現を生成することと
を含む動作を行うステップをさらに含む、
請求項1から3のいずれか一項に記載の方法。
【請求項5】
各エンコーダニューラルネットワークが、残差ニューラルネットワークを含む、請求項4に記載の方法。
【請求項6】
前記オンラインニューラルネットワークおよび前記ターゲットニューラルネットワークがそれぞれ、それぞれの投影ニューラルネットワークを含み、前記方法が、各投影ニューラルネットワークによって、
前記訓練データ項目の前記表現を受信することと、
前記訓練データ項目の前記表現を処理して、前記表現の次元を低減させることと
を含む動作を行うステップをさらに含む、
請求項4または5に記載の方法。
【請求項7】
各投影ニューラルネットワークが、多層パーセプトロンを含む、請求項6に記載の方法。
【請求項8】
前記オンラインニューラルネットワークが、予測ニューラルネットワークを含み、前記方法が、前記予測ニューラルネットワークによって、
前記訓練データ項目の前記表現を受信することと、
前記予測ニューラルネットワークのパラメータによって具現化される回帰モデルを使用して、前記訓練データ項目の前記表現を処理して、前記ターゲット出力の前記予測を生成することと
を含む動作を行うステップをさらに含む、
請求項4から7のいずれか一項に記載の方法。
【請求項9】
前記予測ニューラルネットワークが、多層パーセプトロンを含む、請求項8に記載の方法。
【請求項10】
前記オンラインニューラルネットワークおよび/または前記ターゲットニューラルネットワークの前記パラメータをランダム値に初期化するステップ
をさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
第1のデータ項目変換を前記訓練データ項目に適用して、前記訓練データ項目の前記第1の変換されたビューを生成するステップと、
第2のデータ項目変換を前記訓練データ項目に適用して、前記訓練データ項目の前記第2の変換されたビューを生成するステップであって、前記第2のデータ項目変換が、前記第1のデータ項目変換とは異なる、ステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記オンラインニューラルネットワークの1つまたは複数のパラメータを更新するステップが、
前記ターゲット出力の前記予測を正規化するステップ、および
前記ターゲット出力の前記正規化された予測と前記ターゲット出力との間の二乗誤差を最小化するステップ
を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
複数の訓練データ項目を含むバッチ内の各訓練データ項目について、前記ターゲットニューラルネットワークを用いて前記訓練データ項目の前記第1の変換されたビューを処理する動作、および前記オンラインニューラルネットワークを用いて前記訓練データ項目の前記第2の変換されたビューを処理する動作、次いで、前記オンラインニューラルネットワークの前記1つまたは複数のパラメータを更新する動作、および前記ターゲットニューラルネットワークの前記1つまたは複数のパラメータを更新する動作を反復的に行うステップをさらに含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
データ項目を処理するコンピュータ実装方法であって、
入力データ項目を訓練されたオンラインニューラルネットワークの一部に提供するステップであって、前記オンラインニューラルネットワークが、請求項1から13のいずれか一項に記載の方法のそれぞれの動作を行うことによって訓練済みである、ステップと、
前記訓練されたオンラインニューラルネットワークの前記一部を使用して、前記入力データ項目を処理するステップと、
前記訓練されたオンラインニューラルネットワークの前記一部から前記入力データ項目の表現を出力するステップと、
前記入力データ項目の前記表現を処理するステップと
を含む、コンピュータ実装方法。
【請求項15】
前記オンラインニューラルネットワークが、前記入力データ項目の前記表現を生成するように構成されている残差ニューラルネットワークを含む、請求項14に記載の方法。
【請求項16】
前記入力データ項目の前記表現を処理するステップが、
前記入力データ項目の前記表現を使用して、前記入力データ項目を分類するステップ
を含む、請求項14または15に記載の方法。
【請求項17】
前記訓練データ項目が、訓練画像を含み、前記入力データ項目が入力画像を含む、請求項14を引用する、請求項1から16のいずれか一項に記載の方法。
【請求項18】
前記訓練データ項目が、画像を含み、前記方法が、前記訓練されたオンラインニューラルネットワークのエンコーダニューラルネットワークを使用して、入力画像のピクセルの表現を生成するステップと、前記表現を使用して、画像処理タスクを行うステップとをさらに含む、請求項1から13のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のコンピュータと、命令を記憶した1つまたは複数のストレージデバイスとを備えるシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載のそれぞれの方法の動作を行わせる、システム。
【請求項20】
コンピュータ可読命令、または1つもしくは複数のストレージ媒体記憶命令であって、前記命令が、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載のそれぞれの方法の動作を行わせる、コンピュータ可読命令、または1つもしくは複数のストレージ媒体記憶命令。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年6月5に出願された米国仮特許出願第63/035,583号、および2020年6月15日に出願された米国仮特許出願第63/039,343号に対する優先権を主張するものである。先願の開示は、本出願の開示の一部と見なされ、参照によって本開示に組み込まれている。
【0002】
本明細書は、機械学習モデルを使用する画像処理に関する。
【背景技術】
【0003】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を利用して、受信した入力についての出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層に入力として使用される。ネットワークの各層は、それぞれのパラメータセットの現在の値に従って、受信した入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Heら、arXiv:1512.03385
【非特許文献2】IoffeおよびSzegedy、arXiv:1502.03167
【非特許文献3】Madryら、arXiv:1706.06083
【非特許文献4】Russakovskyら、arXiv:1409.0575
【発明の概要】
【発明が解決しようとする課題】
【0005】
本明細書では、自己教師付き学習方法により、画像などのデータ項目表現を学習するように構成されている1つまたは複数の場所内の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムについて説明する。
【課題を解決するための手段】
【0006】
本開示の第1の態様は、ニューラルネットワークを訓練するコンピュータ実装方法を提供する。この方法は、ターゲットニューラルネットワークを用いて訓練データ項目(training data item)、たとえば画像の第1の変換されたビューを処理して、ターゲット出力を生成するステップと、オンラインニューラルネットワークを用いて訓練データ項目、たとえば画像の第2の変換されたビューを処理して、ターゲット出力の予測を生成するステップと、ターゲット出力の予測とターゲット出力との間の誤差を最小化するために、オンラインニューラルネットワークのパラメータを更新するステップと、オンラインニューラルネットワークのパラメータに基づいてターゲットニューラルネットワークのパラメータを更新するステップとを含む。
【0007】
「変換されたビュー(transformed view)」という用語は、訓練データ項目、たとえば画像の変換されたバージョンを示し、変換を受けた後、たとえば画像変換を受けた後の訓練データ項目と(変換されていない)訓練データ項目とを区別するのに使用される。
【0008】
ニューラルネットワークのパラメータは、ニューラルネットワークの重みを含むことがあり、ニューラルネットワークのパラメータを更新するステップは、重みの値を調整するステップを含み得る。
【0009】
ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップは、オンラインニューラルネットワークのパラメータの移動平均を用いて、ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップを含み得る。移動平均は、指数移動平均であってもよい。
【0010】
ターゲットニューラルネットワークの1つまたは複数のパラメータを更新するステップは、ξ←τξ+(1-τ)θに従ってターゲットニューラルネットワークの1つまたは複数のパラメータの更新された値を決定するステップを含み得、式中、ξは、ターゲットニューラルネットワークのパラメータを表し、θは、オンラインニューラルネットワークのパラメータを表し、τは、減衰率(decay rate)である。減衰率は、ゼロから1の間の値であってよい。
【0011】
オンラインニューラルネットワークおよびターゲットニューラルネットワークはそれぞれ、それぞれのエンコーダニューラルネットワークを含み得る。したがって、方法は、各エンコーダニューラルネットワークによって、訓練データ項目、たとえば画像の変換されたビューを受信することと、訓練データ項目、たとえば画像の変換されたビューを処理して、訓練データ項目の表現を生成することとを含む動作を行うステップをさらに含み得る。
【0012】
オプションで、各エンコーダニューラルネットワークは、残差ニューラルネットワーク、ネットワーク、すなわち、ニューラルネットワークの1つまたは複数の層の周りに1つまたは複数の残差接続もしくはスキップ接続を用いたニューラルネットワークを含み得る。
【0013】
オンラインニューラルネットワークが訓練済みであるとき、オンラインニューラルネットワークのエンコーダニューラルネットワークは、任意の適切な入力データ項目の表現、たとえば入力画像の表現(ピクセル)を生成するのに使用されることがある。このようにして生成された画像表現は、他のダウンストリームタスクによって使用されてもよい。
【0014】
たとえば、画像分類動作は、画像表現に関して行われることがある。別の例として、画像セグメンテーション動作は、画像表現に関して行われることがある。他の画像処理タスクが、代替としてまたは追加として行われてもよい。
【0015】
オンラインニューラルネットワークおよびターゲットニューラルネットワークはそれぞれ、それぞれの投影ニューラルネットワークを含み得る。方法は、各投影ニューラルネットワークによって、訓練データ項目、たとえば画像の表現を受信することと、訓練データ項目、たとえば画像の表現を処理して、表現の次元を低減させることとを含む動作を行うステップをさらに含み得る。オプションで、各投影ニューラルネットワークは、多層パーセプトロンを含んでもよい。
【0016】
投影ニューラルネットワークの使用は、オンラインニューラルネットワークが、(表現の投影を予測するのではなく)ターゲットニューラルネットワークによって生成される訓練データ項目、たとえば画像の表現を直接予測することができるので、オプションである。しかしながら、投影ニューラルネットワークを使用すると、性能の向上がもたらされる可能性がある。
【0017】
オンラインニューラルネットワークは、予測ニューラルネットワークを含み得る。方法は、予測ニューラルネットワークによって、訓練データ項目、たとえば画像の表現を受信することと、予測ニューラルネットワークのパラメータによって具現化される回帰モデルを使用して訓練データ項目の表現を処理して、ターゲット出力の予測を生成することと含む動作を行うステップをさらに含み得る。オプションで、予測ニューラルネットワークは、多層パーセプトロンを含んでもよい。予測ニューラルネットワークの使用は、必須ではないが、訓練の安定性の向上に役立つ可能性がある。諸実装形態においては、ターゲットニューラルネットワークは、予測ニューラルネットワークを含まない。
【0018】
そのため、諸実装形態においては、オンラインニューラルネットワークおよびターゲットニューラルネットワークは、同じニューラルネットワークアーキテクチャを有し得るが、ニューラルネットワークのうちの一方、具体的には、オンラインニューラルネットワークにおける1つまたは複数の追加的処理段階を除いて、異なるパラメータ値を有し得る。
【0019】
ターゲットニューラルネットワークは、勾配停止(stop gradient)(「sg」)を有し得る。勾配停止は、ターゲットニューラルネットワークへの逆伝搬を防止し、それにより、ターゲットニューラルネットワークのパラメータは、誤差が最小限に抑えられているとき、更新されない。
【0020】
方法は、オンラインニューラルネットワークおよび/またはターゲットニューラルネットワークのパラメータをランダム値に初期化するステップをさらに含み得る。
【0021】
方法は、第1のデータ項目変換、たとえば画像変換を訓練データ項目、たとえば画像に適用して、訓練データ項目の第1の変換されたビューを生成するステップと、第2のデータ項目変換、たとえば画像変換を訓練データ項目に適用して、訓練データ項目、たとえば画像の第2の変換されたビューを生成するステップとをさらに含み得る。第2のデータ項目変換、たとえば画像変換は、第1のデータ項目変換、たとえば画像変換とは異なる。
【0022】
訓練データ項目が訓練画像を含む場合、第1の画像変換および第2の画像変換は、次の、すなわち、ランダムクロッピング;水平軸および/もしくは垂直軸に沿った反転;カラージッタリング;グレースケールへの置換え、ガウスぼかし;またはソラリゼーションのうちのいずれか1つまたは複数のいずれかの組合せを含んでもよい。代替としてまたは追加として、他の画像変換が使用されてもよい。訓練画像の変換されたビューを使用することによって、オンラインニューラルネットワークは、同じ訓練画像の別の変換されたビューのターゲットネットワークの表現に基づいて学習する。
【0023】
本開示は、訓練データ項目、たとえば画像の2つの異なる変換されたビューがオンラインニューラルネットワークおよびターゲットニューラルネットワークに入力される例に焦点を当てているが、他の例では、訓練データ項目、たとえば画像の変換されたビューは、オンラインニューラルネットワークおよびターゲットニューラルネットワークのうちの一方にのみ入力されることがある。これらの例においては、元の(変換されていない)訓練データ項目、たとえば画像は、オンラインニューラルネットワークおよびターゲットニューラルネットワークの他方に入力される。
【0024】
オンラインニューラルネットワークの1つまたは複数のパラメータを更新するステップには、機械学習オプティマイザを使用して、たとえば確率的勾配降下に基づいて、上述した誤差を最小化するステップが含まれることがある。オンラインニューラルネットワークの1つまたは複数のパラメータを更新するステップは、ターゲット出力の予測を正規化するステップ、およびターゲット出力の正規化された予測とターゲット出力との間の二乗誤差を最小化するステップを含み得る。
【0025】
ターゲットニューラルネットワークを用いて訓練データ項目の第1の変換されたビューを処理する動作、オンラインニューラルネットワークを用いて訓練データ項目の第2の変換されたビューを処理する動作、オンラインニューラルネットワークの1つまたは複数のパラメータを更新する動作、およびターゲットニューラルネットワークの1つまたは複数のパラメータを更新する動作は、複数の訓練データ項目を含むバッチ内の各訓練データ項目について反復的に行ってもよい。オンラインニューラルネットワークおよびターゲットニューラルネットワークのパラメータは、バッチ内の各訓練データ項目が処理された後に更新されてもよい。
【0026】
本開示のさらなる態様は、データ項目を処理する、たとえば画像を処理するコンピュータ実装方法を提供する。この方法は、入力データ項目、たとえば画像をオンラインニューラルネットワーク、すなわち訓練されたオンラインニューラルネットワークの一部に提供するステップであって、オンラインニューラルネットワークが、本開示に従って訓練済みである、ステップと、オンラインニューラルネットワーク、すなわち訓練されたオンラインニューラルネットワークの一部を使用して、入力データ項目、たとえば画像を処理するステップと、オンラインニューラルネットワークから、すなわち訓練されたオンラインニューラルネットワークの一部から入力データ項目、たとえば画像の表現を出力するステップと、入力データ項目、たとえば画像の表現を処理するステップとを含む。
【0027】
オンラインニューラルネットワークは、入力データ項目、たとえば画像の表現を生成するように構成されている残差ニューラルネットワークを含み得る。
【0028】
入力データ項目が画像を含む場合、入力画像の表現を処理するステップは、入力画像の表現を使用して、入力画像を分類するステップを含み得る。また、またはそうではなく、入力画像の表現を処理するステップは、入力画像の表現を使用して、入力画像をセグメント化するステップを含んでもよい。また、またはそうではなく、他の画像処理タスクが行われてもよい。
【0029】
本開示のさらなる態様は、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書に開示される方法のうちのいずれかを行わせる命令を記憶する1つまたは複数のストレージデバイスとを備えるシステムを提供する。
【0030】
本開示のさらなる態様は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、本明細書に開示される方法のうちのいずれかを行わせる命令を記憶する1つまたは複数のコンピュータストレージ媒体を提供する。
【0031】
本明細書に説明する主題は、次の利点のうちの1つまたは複数を実現するように、特定の実施形態において実装され得る。
【0032】
オンラインニューラルネットワークは、自己教師付き学習方法によって訓練され、それによって、オンラインニューラルネットワークは、生のラベル付けされていない訓練データから画像を表現することを学習する。対照損失関数を使用する自己教師付き学習への手法とは異なって、本明細書に開示される技法は、訓練例、たとえば画像の負のペア(つまり、異なる訓練例、たとえば画像のペア)の必要性がない。これにより、ひいては、バッチサイズが大きいことの必要性、訓練データセット内のサンプルの表現からなるメモリバンク、および負のペアを慎重に選択する必要性など、負のペアの使用に関連する課題を避けることができる。それにもかかわらず、たとえば、画像分類タスクに適用されるとき、本明細書に開示されるように訓練されるオンラインニューラルネットワークによって生成される画像表現は、ラベル付きの例を使用する訓練と同等である、およびいくつかの対照法よりも優れている分類精度を達成することが見出されている。
【0033】
本明細書に開示される技法により、いくつかの方法のコンピュータ計算要件が高いことも回避され、したがって、本明細書に開示される技法は、コンピュータ計算上、効率的である。
【0034】
オンラインニューラルネットワークおよびターゲットニューラルへの入力は、たとえばビデオ画像データを含む、たとえば任意の適切なタイプの画像データを含み得る。画像データは、カラーまたはモノクロのピクセル値データを含んでもよい。そのような画像データは、カメラまたはLIDARセンサなどの画像センサから取り込まれてもよい。
【0035】
本明細書に開示されるオンラインニューラルネットワークによって生成される画像表現は、幅広い種類の画像処理タスクに使用され得る。たとえば、画像表現は、画像分類に使用されてもよく、それによって、分類システムは、所与の入力画像表現について1つまたは複数のクラスラベルを出力する。この例を続けると、分類システムは、画像表現を処理してもよく、オブジェクトカテゴリのセットのそれぞれについてスコアを出力してもよく、各スコアは、画像がカテゴリに属しているオブジェクトを含んでいる推定された可能性を表す。
【0036】
画像処理タスクの別の例として、画像表現は、画像セグメンテーションに使用されてもよく、それによって、セグメンテーションシステムが、画像表現を使用して、複数の異なるクラスのうちの1つに属しているとして入力画像の個々のピクセルをラベル付けする。画像セグメンテーションの1つ例示的な使用事例は、オブジェクト検出であり、それによって、セグメンテーションシステムは、各ピクセルによって表されるオブジェクトのタイプに従って入力画像のピクセルをラベル付けする。
【0037】
オブジェクト検出は、現実世界の環境において動作していることがあるロボットまたは車両など、機械エージェント(mechanical agent)への入力として使用されてもよい。検出されたオブジェクトは、たとえば、障害物(たとえば、人、他の機械エージェント、壁)、および/または通路(たとえば、機械エージェントが移動することができる道路または他の表面)であってもよい。このようにして検出されたオブジェクトは、機械エージェントの制御システムによって使用されて、機械エージェントの移動の方向および/または速度を制御することなどの機械タスクをどのように達成すべきかに関する決定を行うことができる。
【0038】
画像セグメンテーションの別の例示的な使用事例は、医用画像をセグメント化することであり、それによって、セグメンテーションシステムは、入力医用画像のピクセルを、それらが特定の医学的疾患が存在する人間または動物の身体の領域を示すかどうかに従ってラベル付けする。これらは、単に画像セグメンテーションの非限定的例にすぎず、画像セグメンテーションの多くの他の実用的な適用例が存在する。
【0039】
本明細書全体を通して、ニューラルネットワークを使用して画像を処理することは、ニューラルネットワークを使用して画像のピクセルに関連する強度値を処理することを示す。
【0040】
本明細書に説明する主題の1つまたは複数の実装形態の詳細については、添付の図面および下記の説明に記載する。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0041】
【
図1】エンコーダニューラルネットワークを含む例示的なニューラルネットワークシステムを示す図である。
【
図2】
図1のシステムを訓練するための例示的な方法を示す図である。
【
図3】訓練されたエンコーダニューラルネットワークを使用するための例示的な方法を示す図である。
【
図4a】訓練されたエンコーダニューラルネットワークを含む例示的なニューラルネットワークシステムを示す図である。
【
図4b】システムを訓練し使用するための例示的な方法を示す図である。
【
図5】画像分類タスクに対する訓練されたエンコーダニューラルネットワークの性能を示すグラフである。
【発明を実施するための形態】
【0042】
図においては、同様の参照数字は、同様の要素を示す。
【0043】
本明細書は、ラベル付きの訓練データ項目を使用せず、および対照損失を使用せず、エンコーダニューラルネットワークを訓練して、データ項目の表現を生成する方法について説明する。対照損失を使用する方法は、肯定的例、すなわち、同じデータ項目の2つの変換された、または「拡張された(augmented)」ビューと、異なるデータ項目の拡張され変換された、または「拡張された」ビューを含む否定的例とを区別するように学習する。記載の方法の実装形態では、肯定的例のみがそれらの目的関数には必要であり、生成するのに厄介である可能性がある否定的例は必要ではない。諸実装形態はまた、ラベル付きの訓練データによるニューラルネットワークの性能に近づく性能を達成することもできる。
【0044】
いくつかの記載の例においては、データ項目は、画像を含むが、概して、任意のタイプのデータ項目が処理されてもよい。異なるタイプのデータ項目のいくつかの例については、後で説明する。この方法は、訓練で使用されるのと同じタイプのデータ項目、たとえば画像を処理することを含む任意のタイプのタスクを行うためのエンコーダニューラルネットワークを訓練するのに使用し得る。
【0045】
ここで使用されるとき、ビデオデータ項目を含む、画像データ項目の場合においては、タスクは、画像分類またはシーン認識タスク、画像セグメンテーションタスク、たとえば意味論的セグメンテーションタスク、オブジェクトローカライゼーションまたは検出タスク、奥行き推定タスクなどの任意の種類の画像処理または視覚タスクを含み得る。そのようなタスクを行う場合、入力は、画像のピクセルを含んでも、または画像のピクセルから導出されてもよい。画像分類またはシーン認識タスクの場合には、出力は、たとえば、入力データ項目、または入力データ項目のオブジェクトもしくはエレメント、あるいはビデオデータ項目内の行為がカテゴリに属していると推定された可能性を表す、複数の画像またはシーンのカテゴリのそれぞれについてスコアを提供する分類出力を含み得る。画像セグメンテーションタスクの場合、出力は、ピクセルごとに、割り当てられたセグメンテーションカテゴリ、またはピクセルがセグメンテーションカテゴリに属している、たとえば画像またはビデオに表されるオブジェクトまたは行為に属している確率を含み得る。オブジェクトローカライゼーションまたは検出タスクの場合、出力は、画像に表される1つまたは複数のオブジェクトについての境界ボックスまたは領域の座標を確定するデータを含み得る。奥行き推定タスクの場合、出力は、出力ピクセルが画像についての(3D)奥行きマップを確定するように、ピクセルごとに、推定された奥行き値を含み得る。そのようなタスクはまた、より高いラベルのタスク、たとえばビデオフレームにわたるオブジェクトトラッキング(object tracking)、またはジェスチャ認識、すなわち、ビデオに描かれているエンティティによって行われるジェスチャの認識に寄与することもある。
【0046】
別の例示的な画像処理タスクは、出力が、画像に表されるオブジェクトのランドマークなどの1つまたは複数の画像キーポイントの座標を含む、画像キーポイント検出タスク、たとえば、キーポイントが身体の関節の位置を確定する人間の姿勢推定タスクを含んでもよい。さらなる例は、出力が、たとえば画像検索タスクの一部として、2つの画像間の類似度を表す値を含み得る画像類似度決定タスクである。
【0047】
方法は、エンコーダニューラルネットワークが一部を形成するニューラルネットワークシステムを訓練するのに使用される。システムの残りは、訓練後には必要でない。訓練されたエンコーダニューラルネットワークは、さらなる訓練なしにタスクを行うのに使用され得、たとえば、そのパラメータがフリーズされることがあり、または訓練されたエンコーダニューラルネットワークは、特定のタスクを行うためにさらに訓練されてもよい。概して、訓練されたエンコーダニューラルネットワークは、特定のタスクを行うために、より大きいシステムに、たとえば、画像分類、画像セグメンテーション、オブジェクトローカライゼーション、または奥行き推定タスクを行うように構成されているシステムに組み込まれていてもよい。したがって、訓練されたニューラルネットワークを組み込んだ画像処理システムも提供される。
【0048】
画像データ項目の場合においては、変換された、または「拡張された」ビューが、同じ画像の変換されたビューであってもよい。たとえば、画像は、2つのビューを生成するのに異なる方式でランダムにクロッピングされても、または歪められてもよい。広範な意味においては、方法は、そのような変換に対してロバストである表現を生成するように学習する。
【0049】
図1は、方法の一例を実装するためのニューラルネットワークシステム100を示している。
図1のシステムは、1つまたは複数の場所内の1つまたは複数のコンピュータ上の1つまたは複数のコンピュータプログラムとして実装され得る。
【0050】
システム100は、オンラインニューラルネットワーク110およびターゲットニューラルネットワーク120を含む。
【0051】
ターゲットニューラルネットワーク120は、データ項目102の第1の変換されたビュー(ν')を受信するように構成されている。オンラインニューラルネットワーク110は、同じデータ項目102の第2の変換されたビュー(ν)を受信するように構成されている。変換されたビューは、さらに後述するように、それぞれの変換(T'、T)をデータ項目102に適用することによって生成される。いくつかの実装形態においては、データ項目102は、画像を含み、この画像は、本明細書に使用されるとき、ビデオの画像フレームを含む。
【0052】
ターゲットニューラルネットワーク120は、データ項目の第1の変換されたビュー(ν')を処理して、ターゲット出力126(z')を生成するように構成されている。オンラインニューラルネットワーク110は、データ項目の第2の変換されたビュー(ν)を処理して、ターゲット出力の予測118(q(z))を生成するように構成されている。オンラインニューラルネットワーク110は、たとえば、訓練エンジン130によって、機械学習オプティマイザを使用してオンラインニューラルネットワークのパラメータを更新することによって、ターゲット出力126の予測118とターゲット出力126との差、すなわち、誤差を最小化するように訓練される。
【0053】
オンラインニューラルネットワーク110およびは、エンコーダニューラルネットワーク112、オプションの投影ニューラルネットワーク114、および予測ニューラルネットワーク116を含み、これらのニューラルネットワークのパラメータセットによって確定される。ターゲットニューラルネットワーク120は、エンコーダニューラルネットワーク122、およびオプションの投影ニューラルネットワーク124を含み、これらのニューラルネットワークのパラメータセットによって確定される。
【0054】
いくつかの実装形態においては、本質的にではないが、ターゲットニューラルネットワーク120は、オンラインニューラルネットワーク110と同じアーキテクチャを有する(予測ニューラルネットワークを除く)が、異なるパラメータ(重み)を有する。つまり、エンコーダニューラルネットワーク112、122は、同じニューラルネットワークであるが、異なるパラメータを有し得、同様に、投影ニューラルネットワーク114、124は、同じニューラルネットワークであるが、異なるパラメータを有し得る。
【0055】
エンコーダニューラルネットワーク112、122はそれぞれ、データ項目102の変換されたビューを受信し、これを処理して、データ項目102のそれらのそれぞれの変換されたビューの表現、すなわち、高次元特徴ベクトルを生成する。これは、後続のそれぞれの投影ニューラルネットワーク114、124によって、受信され、処理されて、データ項目102のそれらのそれぞれの変換されたビューの低減された次元表現、すなわち、低減された次元特徴ベクトルz、z'がそれぞれ生成され得る。投影ニューラルネットワーク124からの低減された次元表現は、ターゲット出力126を提供する。
【0056】
予測ニューラルネットワーク116は、投影ニューラルネットワーク114から、低減された次元表現(またはエンコーダニューラルネットワーク112から、表現)を受信し、これを処理して、予測118を生成する。諸実装形態においては、予測118は、ターゲット出力126と同じ次元を有するベクトルを含む。予測ニューラルネットワーク116への入力は、特徴ベクトルの値を除いて、ターゲット出力126のものと同じであるデータ項目の特徴ベクトル表現を含み得る。ターゲット出力126は、先に説明したように、投影ニューラルネットワーク124の出力であっても、またはいくつかの実装形態においては、エンコーダニューラルネットワーク122からの表現であってもよい。
【0057】
エンコーダニューラルネットワーク112、122は、データ項目102をエンコーディングするのに適している任意のアーキテクチャを有し得る。本明細書に説明する訓練方法の結果は、訓練されたニューラルネットワーク112である。エンコーダニューラルネットワーク112は、入力データ項目の表現を生成するように訓練され、1つのデータ項目を入力として受信するように、および受信したデータ項目の特徴ベクトル表現を生成するように構成されている任意のニューラルネットワークとすることができる。
【0058】
たとえば、データ項目が画像またはビデオを含む場合、エンコーダニューラルネットワーク112、122はそれぞれ、入力画像またはビデオの表現、たとえば特徴ベクトル表現を生成するように構成されている任意のタイプの画像またはビデオエンコーディングニューラルネットワークを含み得る。そのような画像またはビデオエンコーディングニューラルネットワークは、1つまたは複数の畳込みニューラルネットワーク層を含んでも、または画像または視覚処理に適している任意の他のアーキテクチャを有してもよい。諸実装形態においては、そのような画像またはビデオエンコーダニューラルネットワーク112、122はそれぞれ、残差ニューラルネットワーク、すなわち、1つまたは複数の残差接続またはスキップ接続を用いたニューラルネットワークを含んでもよい。単に説明するための例として、1つまたは複数の残差接続またはスキップ接続を用いた畳込みニューラルネットワークが、たとえば、ResNet(Heら、arXiv:1512.03385)に基づいて使用され得るが、畳込みニューラルネットワークを使用する必要はない。
【0059】
概して、エンコーダニューラルネットワーク112、122は、エンコーダニューラルネットワーク112が、訓練されることになるタイプのデータ項目、たとえば、画像、ビデオ、オーディオ、テキスト、またはその他を処理するように構成されている。
【0060】
投影ニューラルネットワーク114、124は、特徴表現の次元を低減するように構成されている任意のニューラルネットワークであってよい。たとえば、それぞれが、たとえば1つまたは複数の完全接続された層を含み、オプションで、それぞれの後に、バッチ正規化層(IoffeおよびSzegedy、arXiv:1502.03167)が続き、完全接続された、オプションで線形の、出力層が続く、入力空間よりも小さい出力空間を有する多層パーセプトロンを含んでもよい。
【0061】
単なる例として、224×224ピクセル画像の場合、エンコーダニューラルネットワークのそれぞれによって生成される特徴ベクトル表現は、次元が4096であってよく、低減した次元表現は、次元が256であってよい。
【0062】
諸実装形態においては、システムは、データ項目に適用される変換を無視するように、エンコーダニューラルネットワーク112を訓練し得る。画像データ項目を例にとると、訓練画像への変換がカラー変更を含む場合、特徴表現は、カラーを無視するように学習可能になる。特徴表現を低減した次元表現に投影すると、特徴表現において有用な情報を維持するのに役立つことがある。
【0063】
諸実装形態においては、予測ニューラルネットワーク116は、ターゲット出力を予測するように、たとえば、投影ニューラルネットワーク114から低減した次元表現から、投影ニューラルネットワーク124から低減した次元表現を予測するように、学習する比較的小さいニューラルネットワークであってもよい。したがって、予測ニューラルネットワーク116のパラメータは、回帰モデルを具現化する。例示的な実装形態においては、予測ニューラルネットワーク116は、別の多層パーセプトロンを含む。
【0064】
オプションで、ターゲット出力126および予測118のそれぞれの出力ベクトルは、たとえばL2ノルムを使用して、正規化されてもよい。たとえば、ターゲット出力126、z'は、
【0065】
【0066】
と正規化されてもよく、予測118、q(z)は、
【0067】
【0068】
と正規化されてもよく、式中、q(・)は、予測ニューラルネットワーク116を表し、zは、投影ニューラルネットワーク114からの低減した次元表現である。
【0069】
ニューラルネットワークシステム100はまた、システムのための訓練処理を実装するように構成されている訓練エンジン130も含む。
【0070】
図2は、
図1のニューラルネットワークシステム100、具体的にはエンコーダニューラルネットワーク112を訓練するための例示的な方法を示している。
図2の方法は、1つまたは複数の場所内の1つまたは複数のコンピュータ上の1つまたは複数のコンピュータプログラムとして実装され得る。
【0071】
オンラインニューラルネットワーク110のパラメータおよびターゲットニューラルネットワーク120のパラメータは、ランダム値に初期化され得る。ステップ200においては、訓練データ項目、たとえば訓練画像が取得される。次いで、これは、処理されて、データ項目の第1のおよび第2の異なって変換された、または「拡張された」ビューが取得される(ステップ202)。これには、変換のうちの1つ、または一連の変換をデータ項目に適用して、各変換されたビューを生成することが含まれることがある。たとえば、各変換されたビューは、所定の確率を変換セットのそれぞれに適用することによって取得されてもよい。
【0072】
たとえば、訓練データ項目が画像を含む場合、変換は、画像のランダムクロッピング、画像の反転、カラージッタリング、カラーの抜け、ガウスぼかし、およびソラリゼーションのうちの1つまたは複数を含んでもよい。ランダムクロッピングは、画像のランダムパッチを選択し、次いで、これを画像の元のサイズに拡大することを含み得る。画像の反転には、水平方向の反転または垂直方向の反転を画像に適用することが含まれることがある。カラージッタリングは、ランダムオフセットによって、画像のいくつかのピクセルまたはすべてのピクセルの輝度、コントラスト、彩度、および色相のうちの1つまたは複数を変更することを含み得る。カラーの抜けは、画像をグレースケールに置き換えることを含み得る。ガウスぼかしは、ガウスぼかしカーネルを画像に適用することを含むことがあり、他のタイプのカーネルが、他のタイプのフィルタリングに使用されてもよい。ソラリゼーションは、カラー変換のソラリゼーション化を画像に適用することを含むことがあり、他のカラー変換が使用されてもよい。画像の回転、または画像の一部を切り取ること(均一な値にランダムパッチの画素を設定すること)など、他の変換も可能である。
【0073】
たとえば画像の変換は、敵対的摂動、すなわち、エンコーダニューラルネットワーク112が誤った表現を生成する可能性を高めるように選択される摂動を含んでもよい。たとえば、敵対的攻撃が、たとえばMadryら、arXiv:1706.06083に記載の技法を使用して、変換されたビューのペアのうちの変換されたビューのうちの1つに対して実装されて、たとえば、予測118とターゲット出力126との間の誤差を最小化し得る。
【0074】
変換されたビューを取得するのに使用され得る多くの異なる変換が存在する。使用される特定のタイプの変換は、たとえば、エンコーダニューラルネットワーク112が訓練されているタスクに応じて、およびデータ項目の中で予想される変動のタイプに応じて、変えてもよい。オプションで、変換されたビューは、たとえば、画像の場合のカラーチャンネルにわたって、正規化されてもよい。正規化には、平均値を減算すること、および標準偏差によって除算することが含まれることがある。
【0075】
データ項目の第1の変換されたビューは、ターゲットニューラルネットワーク120によって処理されて、ターゲット出力126が生成され(ステップ204)、データ項目の第2の変換されたビューは、オンラインニューラルネットワーク110によって処理されて、ターゲット出力126の予測118が生成される(ステップ206)。次いで、予測118とターゲット出力126との間の予測誤差、具体的には、予測118とターゲット出力126とに基づく予測損失が決定される(ステップ208)。予測損失はオプションで、先に説明したように正規化される、予測118とターゲット出力126との差の任意の尺度を含み得る。たとえば、予測損失または誤差は、(平均)二乗誤差、負のコサインまたはドット積の類似度、またはクロスエントロピー損失(特徴ベクトル値が、確率として解釈され、正規化される場合)を含んでもよい。たとえば、予測損失または誤差、Lは、Lノルムとして、たとえば、
【0076】
【0077】
として決定され得、式中、||・||2は、L2ノルムを示す。
【0078】
いくつかの実装形態においては、方法は、さらなる予測損失または誤差、L'を決定し、第1の変換されたビューと第2の変換されたビューは、スワッピングされ、すなわち、データ項目の第1の変換されたビューは、オンラインニューラルネットワーク110によって処理され、データ項目の第2の変換されたビューは、ターゲットニューラルネットワーク120によって処理される。次いで、対称予測損失または誤差、LTOTALは、損失を加算することによって、すなわち、LTOTAL=L+L'によって決定され得る。
【0079】
方法は、データ項目を訓練するバッチにわたって予測損失または誤差を累積してから進んでもよい。
【0080】
ステップ210および212においては、オンラインニューラルネットワーク110のパラメータおよびターゲットニューラルネットワーク120のパラメータが更新される。ただし、オンラインニューラルネットワーク110のパラメータのみ、勾配降下によって、すなわち、予測損失または誤差の勾配を逆伝搬することによって更新され、ターゲットニューラルネットワーク120のパラメータはそうではない。これは、ターゲットニューラルネットワーク120への「勾配停止」の提供として、すなわち、ターゲットニューラルネットワーク120に逆流する勾配を停止することによって表すことができる。しかしながら、実際においては、これは、予測損失または誤差を使用して、オンラインニューラルネットワーク110のみを訓練することによって達成され得る。
【0081】
したがって、ステップ210においては、オンラインニューラルネットワーク110のパラメータは、予測損失または誤差を最小化するために更新され、ステップ212においては、ターゲットニューラルネットワーク120のパラメータが、オンラインニューラルネットワークのパラメータに基づいて更新される。いくつかの実装形態においては、誤差の最小化には、予測118とターゲット出力126との間の類似度、たとえば、コサイン類似度(cosine similarity)を最大化することが含まれることがある。
【0082】
諸実装形態においては、オンラインニューラルネットワーク110のパラメータは、予測損失または誤差を最小化するために、勾配降下ベースのオプティマイザなどの機械学習オプティマイザを用いて実装される確率的最適化ステップを使用して更新される。他のタイプの機械学習オプティマイザが使用されてもよい。諸実装形態においては、オプティマイザは、予測損失または誤差、たとえばL、またはLTOTALを、オンラインニューラルネットワーク110のパラメータに対してのみ最小化し、すなわち、ターゲットニューラルネットワーク120のパラメータに対しては最小化しない。たとえば、更新されるオンラインニューラルネットワーク110のパラメータは、予測ニューラルネットワーク116、投影ニューラルネットワーク114(存在する場合)、およびエンコーダニューラルネットワーク112を通じて予測損失または誤差の勾配を逆伝搬することによって更新されてもよい。
【0083】
諸実装形態においては、ターゲットニューラルネットワーク120のパラメータは、オンラインニューラルネットワーク110の対応する部分のパラメータに基づいて、すなわち、予測損失または誤差に基づかずに、更新される。たとえば、ターゲットニューラルネットワーク120のパラメータは、オンラインニューラルネットワーク110のパラメータのコピーまたは移動平均、たとえば、加重移動平均または指数移動平均として決定されてもよい。概して、ターゲットニューラルネットワーク120のパラメータは、オンラインニューラルネットワーク110のパラメータの遅延した(およびより安定的な)バージョンを含む。
【0084】
いくつかの実装形態においては、ターゲットニューラルネットワーク120のパラメータは、更新ξ←τξ+(1-τ)θを使用して決定されてもよく、式中、τは、範囲[0,1]におけるターゲット減衰率であり、ξは、ターゲットニューラルネットワーク120のパラメータセットであり、θは、予測ニューラルネットワークのパラメータ、すなわち、エンコーダニューラルネットワーク112のパラメータを除いたオンラインニューラルネットワーク110のパラメータと、存在する場合に投影ニューラルネットワーク114のパラメータとのセットである。単なる例として、τは、0.99よりも大きくてよく、訓練中に増加させてもよい。
【0085】
したがって、方法の諸実装形態は、更新された、すなわち部分的に訓練されたオンラインニューラルネットワーク110が、オンラインニューラルネットワーク110のさらなる訓練のための新規ターゲット出力を生成するためにターゲットニューラルネットワーク120を更新するのに使用されるとき、ブートストラッピングを使用する。新規ターゲットを使用してオンラインニューラルネットワーク110を訓練すると、エンコーダニューラルネットワーク112からの表現が改良される。
【0086】
たとえば、画像の1つの拡張されたビュー、たとえば1つのランダムクロップの表現は、同じ画像の別の拡張されたビュー、たとえば隣接クロップの表現を予測し得る。しかしながら、上述した上記の訓練の結果として、エンコーダニューラルネットワーク112の特徴表現を、すべての拡張について同じになる定数ベクトルの崩壊につながらないことは驚くべきことである。むしろ、ターゲットニューラルネットワークは、訓練を安定させるのに役立つ。ターゲットニューラルネットワーク120をオンラインニューラルネットワークと同時に、または同じ頻度で更新される必要はない。
【0087】
ニューラルネットワークシステム100が訓練された後、エンコーダニューラルネットワーク112(およびその訓練されパラメータ)を除いてシステムのすべてが破棄され得る。つまり、
図2の方法の結果は、エンコーダニューラルネットワーク112の訓練されたバージョンである。
【0088】
図3は、画像など、データ項目を処理するのに訓練されたエンコーダニューラルネットワーク112を使用するための方法を示している。方法は、1つまたは複数の場所内の1つまたは複数のコンピュータ上の1つまたは複数のコンピュータプログラムとして実装され得る。
【0089】
ステップ300においては、入力データ項目、たとえば、画像またはビデオは、訓練されたオンラインニューラルネットワーク110の訓練されたエンコーダニューラルネットワーク部分に提供される。入力データ項目は、訓練されたエンコーダニューラルネットワーク112の一部またはすべてを使用して処理されて(ステップ302)、入力データ項目の表現を出力する(ステップ304)。次いで、これは、さらに処理されて、タスク、たとえば、先に説明した画像処理タスクが行われる(306)。訓練されたエンコーダニューラルネットワーク112は、たとえば、システムを訓練するのに使用されるものと同じタイプのデータ項目を処理する任意の処理タスクを行うのに使用され得る。
【0090】
タスクに応じて、訓練されたエンコーダニューラルネットワーク112のすべてが必ずしもデータ項目を処理するのに必要であるわけではないことがある。したがって、訓練されたエンコーダニューラルネットワーク112から出力される表現は、上述した特徴ベクトル表現であってよく、または表現出力は、たとえば、最終的な完全接続された層からの出力ではなく、エンコーダニューラルネットワーク112の中間層または「バックボーン(backbone)」からの出力であってもよい。たとえば、エンコーダニューラルネットワークがResNetアーキテクチャを有する場合、表現出力は、中間の畳込みニューラルネットワーク層からの出力であってもよい。
【0091】
図4aは、実行すべきデータ項目処理タスクに適合されている、訓練されたエンコーダニューラルネットワーク112(またはその一部)、およびオプションのシステムヘッド402を含むコンピュータ実装データ項目処理ニューラルネットワークシステム400を示している。システム400は、データ項目を入力として受信し、訓練されたエンコーダニューラルネットワーク112(またはその一部)を使用してデータ項目を処理して、入力データ項目の表現を出力するように構成されている。
【0092】
いくつかの実装形態においては、データ項目処理タスクを行うためのシステム出力404は、訓練されたエンコーダニューラルネットワーク112からの表現出力を含む。いくつかの実装形態においては、訓練されたエンコーダニューラルネットワーク112からの表現出力は、システムヘッド402によってさらに処理されて、タスクのためのシステム出力404を生成する。
【0093】
1つの例として、訓練されたエンコーダニューラルネットワーク112から出力される表現は、2つのデータ項目間の、たとえば2つの画像間の類似度を評価するのに使用され得る特徴ベクトル表現を含む。これには、各データ項目を順番にエンコーダニューラルネットワーク112に提示して、それぞれの特徴ベクトル表現を生成すること、次いで、類似度尺度、たとえばLノルムなどの距離メトリック、またはドット積もしくはコサイン類似度尺度を使用して表現を比較することが含まれることがある。類似度尺度は、たとえば、データ項目が重複または重複に近い検出についてコピーされた可能性が高いときを検出するのに使用され得る。これはまた、データ項目検証に使用されてもよい。別の例としては、訓練されたエンコーダニューラルネットワーク112から出力される特徴ベクトル表現は、ターゲットデータ項目、たとえばターゲット画像またはビデオと、データベース内の複数のデータ項目、たとえば画像またはビデオのそれぞれとの間の類似度を評価するのに使用され得る。最も近いもの、または最も近いもののうちの1つが選択されて、ターゲットデータ項目に類似するデータ項目または複数のデータ項目をデータベースから取り出してもよい。
【0094】
さらなる例として、訓練されたエンコーダニューラルネットワーク112の最終出力層または複数の最終出力層は、訓練後に破棄されてもよく、訓練されたエンコーダニューラルネットワーク112からの表現出力は、エンコーダニューラルネットワーク112の中間層(以前、あったもの)から生成された特徴マップ出力を含んでもよい。そのような特徴マップは、たとえば、入力画像などの入力データ項目の特徴を識別するために、ユーティリティを有することができ、データ項目処理タスクは、入力データ項目から、たとえば入力画像または複数の入力画像から、そのような特徴マップを生成するタスクとし得る。
【0095】
データ項目が画像であり、訓練されたエンコーダニューラルネットワーク112からの表現出力がシステムヘッド402によってさらに処理されるいくつかの実装形態においては、ニューラルネットワークシステム400は、画像処理システムである。画像分類またはシーン認識タスクの場合には、システムヘッド402は、分類器、たとえば、線形分類器を含み得る。意味論的セグメンテーションタスクの場合には、表現出力は、エンコーダニューラルネットワーク112の中間層または「バックボーン」からの、たとえば、ResNet畳込み層からの出力とすることができ、システムヘッド402は、意味論的セグメンテーションデコーダニューラルネットワーク、たとえば、ピクセルごとの分類について最終的1×1の畳込みを含む畳込みニューラルネットワークを含み得る。オブジェクト検出タスクの場合には、表現出力はまた、エンコーダニューラルネットワーク112の中間層、または「バックボーン」からの出力とすることができ、システムヘッド402は、境界ボックス予測ニューラルネットワークヘッドを含み得る。奥行き推定タスクの場合には、表現出力は、エンコーダニューラルネットワーク112の中間層または「バックボーン」からの出力とすることができ、システムヘッド402は、1つまたは複数のアップサンプリングブロックを含む畳込みニューラルネットワークを含み得る。これらの例においては、システム出力404は、先に説明したタスクについての出力とすることができる。
【0096】
別の例としては、表現出力は、エンコーダニューラルネットワーク112の中間層または「バックボーン」からの出力とすることができ、システムヘッド402は、強化学習システムを含んでもよく、システム出力404は、たとえば現実世界の環境における、エージェント、たとえば機械エージェントによって行われるべき行為を選択するための行為選択出力とすることができる。
【0097】
データ項目処理ニューラルネットワークシステム400は、データ項目処理タスクを行うように訓練され得る。いくつかの実装形態においては、そのような訓練中、システムヘッド402のパラメータが訓練されている一方で、システム400における訓練されたエンコーダニューラルネットワーク112のパラメータは、フリーズされていてもよい。いくつかの実装形態においては、そのような訓練中、訓練されたエンコーダニューラルネットワーク112のパラメータ、およびシステムヘッド402のパラメータは、一緒に訓練されて、オプションで何らかの正則化を用いて、エンコーダニューラルネットワーク112のパラメータをタスクに対して微調整してもよい。
【0098】
図4bは、データ項目処理タスクを行うのにデータ項目処理ニューラルネットワークシステム400を訓練し使用するための方法を示している。方法は、1つまたは複数の場所内の1つまたは複数のコンピュータ上の1つまたは複数のコンピュータプログラムとして実装され得る。
【0099】
図4bは、エンコーダニューラルネットワーク112を含むオンラインニューラルネットワーク110が、たとえば
図2のブートストロッピング方法によって、先に訓練済みであることを示している(ステップ400)。ステップ402においては、方法は、先の訓練データ項目と同じ訓練データ項目、または新規訓練データ項目を使用して、データ項目処理タスクを行うために、任意の機械学習技法、たとえば、目的関数の勾配の逆伝搬によってシステム400を訓練する。ステップ402においては、エンコーダニューラルネットワーク112(またはシステム400に含まれるその一部)のパラメータをさらに訓練することを含み得るが、そうである必要はない。次いで、ステップ404においては、訓練されたシステム400は、データ項目処理タスクを行うのに使用され得る。
【0100】
図5は、ImageNetデータベース(Russakovskyら、arXiv:1409.0575)からの画像の分類に関する。y軸は、パーセンテージtop-1精度(top-1 accuracy)、すなわち、最も確率の高い予測の精度を示し、x軸は、分類を行うニューラルネットワークにおけるパラメータの数を示している。
【0101】
図5においては、曲線510は、教師付き訓練によるResNet-200画像分類器についてである。曲線520は、後にエンコーダニューラルネットワークパラメータをフリーズした状態で線形分類器が特徴ベクトル表現の上位で訓練されることが続く、ResNet-50エンコーダニューラルネットワークを含む、画像分類システムについてである。ResNet-50エンコーダニューラルネットワークは、上述した訓練済みのエンコーダニューラルネットワーク112である。訓練されたエンコーダニューラルネットワーク112は、対照損失(
図5には示されていない)を使用する他の自己教師付き手法よりも性能が優れており、教師付き訓練の性能に近づく。
【0102】
データ項目は、概して、先に説明したように画像およびビデオフレームを含む任意のタイプのデータ項目とすることができる。たとえば、データ項目は、オーディオデータ項目、すなわち、デジタル化されたオーディオ波形、たとえば音声波形の表現を含むデータ項目であってもよい。そのような表現は、波形のデジタル化された振幅値を表すサンプル、またはたとえば、STFT(短時間フーリエ変換(Short-Term Fourier Transform))、もしくはMFCC(メル周波数ケプストラム係数(Mel-Frequency Cepstral Coefficient))の表現などの波形の時間/周波数領域表現を含んでもよい。この場合には、データ項目の変換された、または拡張された「ビュー」はまた、ランダムクロップを、ただし、空間領域ではない時間または周波数領域に、たとえば、ランダム開始時間およびランダム終了時間による、またはランダムに選択されたより高い周波数およびより低い周波数によるオーディオデータ項目の部分の選択を含めてもよい。データ項目の他の変換された、または拡張された「ビュー」は、たとえば、オーディオの振幅をランダムに増加または減少させることによって、データ項目の振幅に対する修正、またはたとえば、オーディオをランダムにフィルタリングすることによって、オーディオの周波数特性に対する修正を含んでもよい。
【0103】
オーディオ波形を表すデータ項目の代わりに、データ項目は、任意の信号、たとえば、センサ、たとえばオブジェクトまたは現実世界の特性を感知するセンサからの信号の波形を表してもよい。次いで、データ項目の変換されたビューは、オーディオ波形について上述したものに対応し得る。
【0104】
データ項目が波形、たとえばオーディオ波形を表す場合、データ項目処理タスクは、たとえば、出力がデータ項目もしくはデータ項目のセグメントについてのカテゴリスコアまたはタグとすることができる、音声もしくは音認識タスク、電話もしくは話者分類タスク、またはオーディオタギングタスクなどの識別または分類タスク;あるいは出力が類似度スコアとすることができる、類似度決定タスク、たとえば、オーディオコピー検出または検索タスクを含んでもよい。
【0105】
いくつかの実装形態においては、データ項目は、テキストデータ項目であってもよく、データ項目の変換された、または拡張された「ビュー」は、文法またはスペリングの歪みなどのデータ項目のクロップまたはデータ項目の歪みを含み得る。データ項目処理タスクは、たとえばカテゴリスコア、類似度スコア、または上述したタグを生成するために、識別もしくは分類タスク、または類似度決定タスク;あるいは機械翻訳タスクを含んでもよい。データ項目はまた、観察、たとえば、広告印象の観察、またはクリックスルー回数もしくはクリックスルー率を、たとえばテキストデータなどの他のデータとの組合せで表すこともできる。次いで、変換されたビューは、同様に、データ項目の歪みを含むことがあり、同様のタスクが行われてもよい。
【0106】
1つまたは複数のコンピュータのシステムが特定の動作または行為を行うように構成すべきであるということは、システムにソフトウェア、ファームウェア、ハードウェア、または動作に際して、システムに動作または行為を行わせるそれらの組合せがインストールされていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を行うように構成すべきであるということは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作または行為を行わせる命令を含むことを意味する。
【0107】
本明細書に説明する主題および機能的動作の実施形態は、デジタル電子回路機構において、本明細書に開示される構造、およびそれらの構造的均等物を含む、有形に具現化されたコンピュータソフトウェア、もしくはファームウェアにおいて、コンピュータハードウェアにおいて、あるいはそれらのうちの1つまたは複数の組合せで実装することができる。
【0108】
本明細書に説明する主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行、またはデータ処理装置の動作を制御するために、有形の非一時的プログラム担体にエンコーディングされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替としてまたは追加として、プログラム命令は、データ処理装置による実行に適した受信機装置に送信するための情報をエンコーディングするために生成される人工的に生成された伝搬信号、たとえば機械生成された電気信号、光信号または電磁信号にエンコーディングすることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらのうちの1つまたは複数の組合せとすることができる。ただし、コンピュータストレージ媒体は、伝搬信号ではない。
【0109】
「データ処理装置」という用語は、データを処理するためのすべての種類の装置、デバイス、および機械を包含し、例としては、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが挙げられる。装置は、専用の論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を創出するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードも含むことができる。
【0110】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるまたは説明されることがある)は、コンパイル型言語またはインタープリータ型言語、または宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロンのプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピュータ環境での使用に適した他のユニットなどを含む任意の形態で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、そうである必要はない。プログラムは、他のプログラムまたはデータ、たとえばマークアップ言語文書に記憶された1つまたは複数のスクリプトを保持するファイルの一部分、問題のプログラムに専用の単一のファイル、または複数の協調ファイル、たとえば1つまたは複数のモジュール、サブプログラム、もしくはコードの一部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開することも、1つのサイトに位置する、または複数のサイトに分散し、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開することもできる。
【0111】
本明細書で使用するとき、「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装入力/出力システムを示す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどの機能性のエンコーディングされたブロックとすることができる。各エンジンは、1つまたは複数のプロセッサとコンピュータ可読媒体を含む任意の適切なタイプのコンピューティングデバイス、たとえば、サーバ、モバイルフォン、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の固定もしくは携帯デバイスにおいて実装することができる。さらには、エンジンのうちの2つ以上は、同じコンピューティングデバイスにおいて実装されても、または異なるコンピューティングデバイスにおいて実装されてもよい。
【0112】
本明細書に記載された方法および論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行されて、入力データに対して動作し、出力を生成することによって機能を行うことが可能である。また、方法および論理フローは、専用の論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行でき、装置もまた、それらとして実装することができる。たとえば、方法および論理フローは、GPU(Graphics Processing Unit)またはTPU(Tensor Processing Unit)を使用することによって実行することができ、装置はまた、GPUまたはTPUを使用して実装することができる。
【0113】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは専用のマイクロプロセッサまたはその両方、あるいは他の任意の種類の中央処理装置をベースとすることができる。概して、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取ることになる。コンピュータの典型的な要素は、命令を行うまたは実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクからデータを受信する、もしくはデータを転送する、またはその両方を行うために動作可能に結合されるか、または含むことになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイルフォン、パーソナルデジタルアシスタント(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または携帯ストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
【0114】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内蔵ハードディスクまたはリムーバルディスク;光磁気ディスク;およびCD ROMおよびDVD-ROMディスクを含むすべての形態の不揮発メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路機構によって補足される、またはその中に組み込まれていることができる。
【0115】
ユーザとの対話を可能にするために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータにおいて実装され得る。同様に、他の種類のデバイスがユーザとの対話を可能にするのに使用され得、たとえば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザが使用するデバイスに文書を送信し、デバイスから文書を受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0116】
本明細書に記載される主題の実施形態は、バックエンド構成要素、たとえば、データサーバとして、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の主題の実装形態と対話できるグラフィカルユーザインターフェースまたはWebブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することが可能である。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットが挙げられる。
【0117】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、互いにリモートにあり、典型的には、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行されるコンピュータプログラムによって生じ、互いにクライアント/サーバの関係を有する。
【0118】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求され得るものの限定と解釈すべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の記述として解釈すべきである。別個の実施形態の文脈で本明細書に説明されている特定の特徴は、単一の実施形態において組合せで実装することもできる。逆に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態において別個にまたは任意の適切な副組合せで実装することもできる。その上、特徴は、特定の組合せで機能するとして上述され、当初はそのように主張されることさえあるが、特許請求された組合せからの1つまたは複数の特徴は、場合によっては組合せから削除され、特許請求された組合せは、副組合せまたは副組合せの変形形態を対象とすることもある。
【0119】
同様に、動作が特定の順序で図面に描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序で、または順次に行われること、またはすべての例示の動作が行われることを要求するものと理解すべきではない。特定の状況下では、マルチタスクおよび並列処理が有利であることがある。その上、上述した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合することができ、または複数のソフトウェア製品にパッケージングすることができると理解すべきである。
【0120】
主題の特定の実施形態について説明してきた。他の実施形態は、添付の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に記載された行為は、異なる順序で行われても、望ましい結果を達成することができる。1つの例として、添付の図に描かれた方法は、望ましい結果を達成するために、必ずしも示された特定の順序、または順次的な順序を必要とするわけではない。特定の実装形態では、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【0121】
100 ニューラルネットワークシステム
102 データ項目
110 オンラインニューラルネットワーク
112、122 エンコーダニューラルネットワーク
114、124 投影ニューラルネットワーク
116 予測ニューラルネットワーク
118 予測
120 ターゲットニューラルネットワーク
126 ターゲット出力
130 訓練エンジン
400 コンピュータ実装データ項目処理ニューラルネットワークシステム
402 システムヘッド
404 システム出力
【手続補正書】
【提出日】2024-06-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ又は複数のコンピュータによって実行される方法であって、
データ項目を受信するステップと、
オンラインエンコーダニューラルネットワークを用いて前記データ項目を処理して前記データ項目の表現を生成するステップであって、前記オンラインエンコーダニューラルネットワークを訓練するために用いられる訓練手順の結果として、同じデータ項目の変換されたビューの表現を前記データ項目の前記表現は予測する、ステップと、
前記データ項目の前記表現を出力するステップと、を含む
方法。
【請求項2】
前記オンラインエンコーダニューラルネットワークは、
訓練データ項目の第1の変換されたビュー (ν') を、ターゲットエンコーダニューラルネットワークを含むターゲットニューラルネットワークを用いて処理してターゲット出力を生成するステップと、
前記訓練データ項目の第2の変換されたビュー (ν) を、オンラインニューラルネットワークを用いて処理して前記ターゲット出力の予測を生成するステップであって、
前記オンラインエンコーダニューラルネットワークを用いて前記訓練データ項目の前記第2の変換されたビューを処理して前記訓練データ項目の表現を生成するステップと、
予測ニューラルネットワークを用いて前記訓練データ項目の前記表現を処理して前記ターゲット出力の前記予測を生成するステップと、を含み、
前記予測ニューラルネットワークは前記ターゲットニューラルネットワークに含まれない、生成するステップと、
前記オンラインニューラルネットワークの1つ又は複数のパラメータを更新して前記ターゲット出力の前記予測と前記ターゲット出力との間の誤差を最小化するステップと、
前記オンラインニューラルネットワークの前記パラメータに基づいて前記ターゲットニューラルネットワークの1つ又は複数のパラメータを更新するステップと、
を含む動作によって訓練された
請求項1に記載の方法。
【請求項3】
前記ターゲットニューラルネットワークの1つ又は複数のパラメータを更新するステップは、
前記オンラインニューラルネットワークの前記パラメータの移動平均を用いて前記ターゲットニューラルネットワークの1つ又は複数のパラメータを更新するステップを含む
請求項2に記載の方法。
【請求項4】
前記ターゲットニューラルネットワークの1つ又は複数のパラメータを更新するステップは、
ξ←τξ+(1-τ)θに従って前記ターゲットニューラルネットワークの前記1つ又は複数のパラメータの更新された値を決定するステップを含み、式中、ξが、前記ターゲットニューラルネットワークの前記パラメータを表し、θが、前記オンラインニューラルネットワークの前記パラメータを表し、τが、減衰率である
請求項2に記載の方法。
【請求項5】
前記オンラインエンコーダニューラルネットワークは第1の残差ニューラルネットワークを含み、前記ターゲットエンコーダニューラルネットワークは第2の残差ニューラルネットワークを含む
請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記動作は、
前記オンラインニューラルネットワークの前記パラメータ及び/又は前記ターゲットニューラルネットワークの前記パラメータをランダム値に初期化するステップをさらに含む
請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記動作は、
第1のデータ項目変換を前記訓練データ項目に適用して、前記訓練データ項目の前記第1の変換されたビューを生成するステップと、
第2のデータ項目変換を前記訓練データ項目に適用して、前記訓練データ項目の前記第2の変換されたビューを生成するステップであって、前記第2のデータ項目変換が、前記第1のデータ項目変換とは異なる、ステップと
をさらに含む
請求項2から6のいずれか一項に記載の方法。
【請求項8】
前記オンラインニューラルネットワークの1つ又は複数のパラメータを更新するステップが、
前記ターゲット出力の前記予測を正規化するステップと、
前記ターゲット出力の前記正規化された予測と前記ターゲット出力との間の二乗誤差を最小化するステップとを含む
請求項2から7のいずれか一項に記載の方法。
【請求項9】
前記動作は、前記訓練データ項目の前記第1の変換されたビューを、前記ターゲットニューラルネットワークを用いて処理するステップと、前記訓練データ項目の前記第2の変換されたビューを、前記オンラインニューラルネットワークを用いて処理するステップとの前記動作を、複数の訓練データ項目を含むバッチ内の各訓練データ項目について繰り返し実行するステップと、
前記オンラインニューラルネットワークの前記1つ又は複数のパラメータを更新し、前記ターゲットニューラルネットワークの前記1つ又は複数のパラメータを更新するステップと、をさらに含む
請求項2から8のいずれか一項に記載の方法。
【請求項10】
1つ又は複数のコンピュータと、
前記1つ又は複数のコンピュータと通信可能に結合された1つ又は複数のストレージデバイスとを備えるシステムであって、前記1つ又は複数のコンピュータによって実行されると前記1つ又は複数のコンピュータに対して請求項1から9のいずれか一項に記載の方法のそれぞれの動作を実行させる命令を前記1つ又は複数のストレージデバイスは記憶する
システム。
【請求項11】
1つ又は複数のコンピュータによって実行されると、前記1つ又は複数のコンピュータに請求項1から9のいずれか一項に記載の方法を実行させる命令を記憶する1つ又は複数の非一時的コンピュータ記憶媒体。
【外国語明細書】