(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-28
(45)【発行日】2023-10-06
(54)【発明の名称】完全アテンション型コンピュータビジョン
(51)【国際特許分類】
G06T 7/00 20170101AFI20230929BHJP
G06N 3/04 20230101ALI20230929BHJP
【FI】
G06T7/00 350C
G06N3/04
(21)【出願番号】P 2021569519
(86)(22)【出願日】2020-05-22
(86)【国際出願番号】 US2020034324
(87)【国際公開番号】W WO2020237188
(87)【国際公開日】2020-11-26
【審査請求日】2022-01-19
(32)【優先日】2019-05-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジョナサン・シュレンズ
(72)【発明者】
【氏名】アシシュ・テク・ヴァスワニ
(72)【発明者】
【氏名】ニキ・ジェイ・パーマー
(72)【発明者】
【氏名】プラジット・ラマチャンドラン
(72)【発明者】
【氏名】アンセルム・カーリフィア・レフスカヤ
(72)【発明者】
【氏名】イルワン・ベッロ
【審査官】伊知地 和之
(56)【参考文献】
【文献】国際公開第2019/053842(WO,A1)
【文献】米国特許出願公開第2019/0034761(US,A1)
【文献】米国特許出願公開第2018/0130203(US,A1)
【文献】Han Hu et al.,Local Relation Networks for Image Recognition,[online],2019年04月25日,pp.1-10,https://arxiv.org/abs/1904.11491
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに
入力特徴マップを受け取り、前記入力特徴マップの局所的内容と位置情報との両方を用いて前記入力特徴マップの特徴を特徴付ける出力特徴マップを生成するように構成された位置局所自己アテンション層を含むコンピュータビジョンのニューラルネットワークであって、
前記位置局所自己アテンション層が、それぞれの近隣の要素に関して、前記近隣の要素から入力要素までの距離の関数として値を有する相対距離ベクトルを維持するように構成され、前記位置局所自己アテンション層が
さらに、
前記入力特徴マップの複数の入力要素の各々に関して、前記出力特徴マップのためのそれぞれの出力要素を生成するように構成され、生成することが、
前記入力要素に関して、前記入力特徴マップの前記入力要素の周りの近隣の入力要素を含むメモリブロックを生成すること、
前記入力要素およびクエリ重み行列を使用してクエリベクトルを生成すること、
前記メモリブロック内のそれぞれの近隣の要素に関して、以下の位置局所自己アテンション動作、すなわち、
前記近隣の要素およびキー重み行列を使用してキーベクトルを生成すること、
前記近隣の要素および1つまたは複数の位置値重み行列を使用して位置値ベクトルを生成することであって、前記1つまたは複数の位置値重み行列が、前記入力要素と前記メモリブロック内の前記入力要素の近隣の入力要素の各々との間の空間的距離を表す、生成すること、
前記クエリベクトル、前記キーベクトル、および前記位置値ベクトルを使用して暫定的な出力要素を生成すること
であって、前記クエリベクトル、前記キーベクトル、および前記位置値ベクトルを使用して前記暫定的な出力要素を生成することが、
前記クエリベクトルと前記キーベクトルとの内積を取ることによってクエリ-キー積を生成することと、
前記クエリ-キー積に位置情報を足すことによって位置クエリ-キー積を生成することであって、前記クエリ-キー積に位置情報を足すことによって前記位置クエリ-キー積を生成することが、
前記クエリベクトルと前記相対距離ベクトルとの内積を取ることによってクエリ-距離積を生成することと、
前記クエリ-キー積に前記クエリ-距離積を足すことによって前記位置クエリ-キー積を生成することとを含む、ことと、
前記位置クエリ-キー積に対してソフトマックス演算を適用することによって中間出力を生成することと、
前記中間出力と前記位置値ベクトルとの積を計算することによって前記暫定的な出力要素を生成することとを含む、こと
を実行すること、ならびに
前記メモリブロック内の前記近隣の要素の暫定的な出力要素を合計することによって前記それぞれの出力要素を生成することを含む、コンピュータビジョンのニューラルネットワークを実施させる命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
【請求項2】
前記位置局所自己アテンション層が、それぞれの近隣の要素に関して、前記位置値重み行列の各々のための位置係数を維持するようにさらに構成され、
前記メモリブロック内のそれぞれの近隣の要素に関して、前記近隣の要素および前記1つまたは複数の位置値重み行列を使用して前記位置値ベクトルを生成することが、
対応する1つまたは複数の位置係数を使用して前記1つまたは複数の位置値重み行列の結合として結合された値重み行列を生成することと、
前記近隣の要素および前記結合された値重み行列を使用して前記位置値ベクトルを生成することとを含む請求項1に記載のシステム。
【請求項3】
前記入力特徴マップの入力要素が、ベクトルである請求項
1または2に記載のシステム。
【請求項4】
前記入力特徴マップ内の各入力要素に関して前記それぞれの出力要素を生成することが、
前記入力要素を複数の下位入力要素に分割すること、
各下位入力要素に関して、前記位置局所自己アテンション動作を使用してそれぞれの下位出力要素を生成すること、
すべての下位出力要素を集めることによって前記出力要素を生成することを含む請求項1から
3のいずれか一項に記載のシステム。
【請求項5】
下位入力要素に関する下位出力要素が、並列に生成される請求項
4に記載のシステム。
【請求項6】
前記クエリ重み行列、前記キー重み行列、および1つまたは複数の位置値重み行列が、前記コンピュータビジョンのニューラルネットワークを訓練することによって取得される請求項1から
5のいずれか一項に記載のシステム。
【請求項7】
畳み込みニューラルネットワークを請求項1に記載の1つまたは複数の位置局所自己アテンション層を有するコンピュータビジョンのニューラルネットワークに変換するためのコンピュータによって実施される方法であって、
前記畳み込みニューラルネットワークを規定するデータを入力として受け取るステップと、
前記畳み込みニューラルネットワークの空間的畳み込みニューラルネットワーク層を請求項1に記載の位置局所自己アテンション層によって置き換えるステップとを含む、コンピュータによって実施される方法。
【請求項8】
空間的ダウンサンプリングが必要とされるとき、前記コンピュータビジョンのニューラルネットワークを生成するために、前記畳み込みニューラルネットワークにおいてそれぞれの前記位置局所自己アテンション層の後にストライド2の動作を用いる2x2の平均プーリング層を付加するステップをさらに含む請求項
7に記載の方法。
【請求項9】
前記畳み込みニューラルネットワークが、ResNetニューラルネットワークである請求項
7または
8に記載の方法。
【請求項10】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から
6のいずれか一項に記載のシステムの動作を実行させる命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
【請求項11】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から
6のいずれか一項に記載のシステムの動作を実行させる命令を記憶する1つまたは複数のコンピュータストレージ媒体。
【請求項12】
位置局所自己アテンション層を使用して入力特徴マップを処理するための方法であって、請求項1から
6のいずれか一項に記載の位置局所自己アテンション層によって実行されるそれぞれの動作を含む、方法。
【請求項13】
画像データを分類するコンピュータによって実施される方法であって、
コンピュータビジョンのニューラルネットワークへの入力として画像データを受け取るステップ、
入力画像に基づいて分類出力を生成するために前記コンピュータビジョンのニューラルネットワークを使用して前記画像データを処理するステップを含み、
前記コンピュータビジョンのニューラルネットワークが、入力特徴マップを受け取り、前記入力特徴マップの局所的内容と位置情報との両方を用いて前記入力特徴マップの特徴を特徴付ける出力特徴マップを生成するように構成された位置局所自己アテンション層を含み、
前記位置局所自己アテンション層が、それぞれの近隣の要素に関して、前記近隣の要素から入力要素までの距離の関数として値を有する相対距離ベクトルを維持するように構成され、前記位置局所自己アテンション層が
さらに、
前記入力特徴マップの複数の入力要素の各々に関して、前記出力特徴マップのためのそれぞれの出力要素を生成するように構成され、生成することが、
前記入力要素に関して、前記入力特徴マップの前記入力要素の周りの近隣の入力要素を含むメモリブロックを生成すること、
前記入力要素およびクエリ重み行列を使用してクエリベクトルを生成すること、
前記メモリブロック内のそれぞれの近隣の要素に関して、以下の位置局所自己アテンション動作、すなわち、
前記近隣の要素およびキー重み行列を使用してキーベクトルを生成すること、
前記近隣の要素および1つまたは複数の位置値重み行列を使用して位置値ベクトルを生成することであって、前記1つまたは複数の位置値重み行列が、前記入力要素と前記メモリブロック内の前記入力要素の近隣の入力要素の各々との間の空間的距離を表す、生成すること、
前記クエリベクトル、前記キーベクトル、および前記位置値ベクトルを使用して暫定的な出力要素を生成すること
であって、前記クエリベクトル、前記キーベクトル、および前記位置値ベクトルを使用して前記暫定的な出力要素を生成することが、
前記クエリベクトルと前記キーベクトルとの内積を取ることによってクエリ-キー積を生成することと、
前記クエリ-キー積に位置情報を足すことによって位置クエリ-キー積を生成することであって、前記クエリ-キー積に位置情報を足すことによって前記位置クエリ-キー積を生成することが、
前記クエリベクトルと前記相対距離ベクトルとの内積を取ることによってクエリ-距離積を生成することと、
前記クエリ-キー積に前記クエリ-距離積を足すことによって前記位置クエリ-キー積を生成することとを含む、ことと、
前記位置クエリ-キー積に対してソフトマックス演算を適用することによって中間出力を生成することと、
前記中間出力と前記位置値ベクトルとの積を計算することによって前記暫定的な出力要素を生成することとを含む、ことと
を実行すること、ならびに
前記メモリブロック内の前記近隣の要素の暫定的な出力要素を合計することによって前記それぞれの出力要素を生成することを含む、コンピュータによって実施される方法。
【請求項14】
前記位置局所自己アテンション層が、それぞれの近隣の要素に関して、前記位置値重み行列の各々のための位置係数を維持するようにさらに構成され、
前記メモリブロック内のそれぞれの近隣の要素に関して、前記近隣の要素および前記1つまたは複数の位置値重み行列を使用して前記位置値ベクトルを生成することが、
対応する1つまたは複数の位置係数を使用して前記1つまたは複数の位置値重み行列の結合として結合された値重み行列を生成することと、
前記近隣の要素および前記結合された値重み行列を使用して前記位置値ベクトルを生成することとを含む請求項
13に記載の方法。
【請求項15】
前記入力特徴マップの入力要素が、ベクトルである請求項
13または14に記載の方法。
【請求項16】
前記入力特徴マップ内の各入力要素に関して前記それぞれの出力要素を生成することが、
前記入力要素を複数の下位入力要素に分割すること、
各下位入力要素に関して、前記位置局所自己アテンション動作を使用してそれぞれの下位出力要素を生成すること、
すべての下位出力要素を集めることによって前記出力要素を生成することを含む請求項
13から
15のいずれか一項に記載の方法。
【請求項17】
下位入力要素に関する下位出力要素が、並列に生成される請求項
16に記載の方法。
【請求項18】
前記クエリ重み行列、前記キー重み行列、および1つまたは複数の位置値重み行列が、前記コンピュータビジョンのニューラルネットワークを訓練することによって取得される請求項
13から
17のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年5月23日に出願した米国特許仮出願第62/852,277号の非仮出願であり、米国特許仮出願第62/852,277号の優先権を主張するものであり、米国特許仮出願第62/852,277号の内容全体は、参照により本明細書に組み込まれる。
【0002】
本明細書は、コンピュータビジョンのニューラルネットワークモデルを実装するためのニューラルネットワークシステムに関する。
【背景技術】
【0003】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【0004】
ニューラルネットワークの例は、畳み込みニューラルネットワークを含む。畳み込みニューラルネットワークは、概して、少なくとも2つの種類のニューラルネットワーク層、畳み込みニューラルネットワーク層および全結合ニューラルネットワーク層を含む。畳み込みニューラルネットワーク層は、疎な結合を有し、畳み込み層の各ノードが、次の最も低いニューラルネットワーク層のノードのサブセットのみから入力を受け取る。一部の畳み込みニューラルネットワーク層は、層内のその他のノードと重みを共有するノードを有する。しかし、全結合層のノードは、次の最も低いニューラルネットワーク層の各ノードから入力を受け取る。
【先行技術文献】
【非特許文献】
【0005】
【文献】K. He、X. Zhang、S. Ren、およびJ. Sun、「Deep residual learning for image recognition」、IEEE Conference on Computer Vision and Pattern Recognition、2016
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書は、コンピュータビジョンのニューラルネットワークを実装する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるニューラルネットワークシステムを説明する。
【0007】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。畳み込みは、最近のコンピュータビジョンシステムの土台となる基本構成要素である。本明細書において説明される技術は、自己アテンション(self-attention)に基づく新しい基本構成要素、すなわち、位置局所自己アテンション(positional local self-attention)ニューラルネットワーク層によってニューラルネットワークの1つまたは複数の畳み込み層を置き換えることを可能にする。結果として得られるニューラルネットワークは、画像分類および物体検出などのコンピュータビジョンのタスクにおいてより少ないパラメータを必要としながら通常の畳み込みニューラルネットワークを上回る性能を持ち得る。特に、位置局所自己アテンションニューラルネットワーク層は、局所的アテンションを実行するために入力特徴マップの所与の入力要素の周りの近隣の入力要素を含むメモリブロックを使用する。したがって、結果として得られるニューラルネットワークは、すべての入力要素の間の大域的アテンションを使用する以前のモデルよりも計算効率が高い。これは、大域的アテンションが、その高い計算コストが原因で大幅な空間的ダウンサンプリングが入力に適用された後にのみ使用されることが可能であり、それが、完全にアテンション型のモデルのすべてのニューラルネットワーク層での大域的アテンションの使用を妨げるからである。さらに、位置局所自己アテンションニューラルネットワーク層は、アテンションに入力要素の位置情報をエンコードし、したがって、表現力を高め、通常の畳み込みを使用するニューラルネットワークによって生成される出力よりもずっと高い精度を有する出力をもたらす。
【0008】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】位置局所自己アテンション層を有するコンピュータビジョンのニューラルネットワークを実装する例示的なニューラルネットワークシステムを示す図である。
【
図3】入力特徴マップの入力要素に関して出力要素を生成するための例示的なプロセスの流れ図である。
【
図5】畳み込みニューラルネットワークを1つまたは複数の位置局所自己アテンション層を有するコンピュータビジョンのニューラルネットワークに変換するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0010】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0011】
本明細書は、位置局所自己アテンションニューラルネットワーク層を含むコンピュータビジョンのニューラルネットワークを実装する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるニューラルネットワークシステムを説明する。位置局所自己アテンションニューラルネットワーク層は、より少ないパラメータおよび計算リソースを必要としながら画像分類および物体検出などのコンピュータビジョンのタスクにおいてより優れた性能を得るために通常のコンピュータビジョンのニューラルネットワークモデルの1つまたは複数の畳み込み層を置き換えるために使用され得る。
【0012】
概して、コンピュータビジョンのニューラルネットワークは、入力画像データを受け取り、入力画像に基づいて任意の種類のスコアまたは分類出力を生成するように構成され得る、つまり、任意の種類の画像処理タスクを実行するように構成され得る。コンピュータビジョンのニューラルネットワークによって生成されるスコアまたは分類出力は、コンピュータビジョンのニューラルネットワークが確かめるように構成されたタスクに依存する。たとえば、画像分類または認識のタスクに関して、所与の画像のためにコンピュータビジョンのニューラルネットワークによって生成される出力は、1組の物体のカテゴリの各々に関するスコアである可能性があり、各スコアは、画像がカテゴリに属する物体の画像を含む尤度(likelihood)を表す。別の例として、物体検出タスクに関して、コンピュータビジョンのニューラルネットワークによって生成される出力は、入力画像内の対象の物体の位置、サイズ、またはそれら両方を特定し得る。
【0013】
図1は、例示的なニューラルネットワークシステムを示す。ニューラルネットワークシステム100は、以下で説明されるシステム、構成要素、および技術が実装され得る、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。ニューラルネットワークシステム100は、位置局所自己アテンション層110(たとえば、簡単にするために「層110」とも呼ばれる)を含むコンピュータビジョンのニューラルネットワーク105を実装する。単一の層110のみが示されるが、コンピュータビジョンのニューラルネットワーク105は、複数のそのような層および/またはその他の種類のニューラルネットワーク層、たとえば、1x1の畳み込み、その他の畳み込み層、および全結合層を含み得る。
【0014】
以下で説明される特定の例として、コンピュータビジョンのニューラルネットワーク105は、既存の畳み込みニューラルネットワークの空間的畳み込み層のすべてまたはサブセットを位置局所自己アテンション層によって置き換えることによって既存の畳み込みニューラルネットワークから生成され得る。
【0015】
位置局所自己アテンション層110は、(たとえば、入力画像の)入力特徴マップを受け取り、入力特徴マップの局所的内容と位置情報との両方を用いて入力特徴マップの特徴を特徴付ける出力特徴マップを生成するように構成される。位置局所自己アテンション層110は、コンピュータビジョンのニューラルネットワーク105の前の層から、システム100のユーザから、または別のシステムから入力特徴マップを受け取る可能性がある。出力特徴マップは、コンピュータビジョンのニューラルネットワーク105の次の層への入力として提供され得るかまたはコンピュータビジョンのニューラルネットワーク105の出力として出力され得る。
【0016】
入力特徴マップの各入力要素(たとえば、ピクセルである入力要素102)に関して、位置局所自己アテンション層110は、位置局所自己アテンションを使用して出力特徴マップのためのそれぞれの出力要素を生成するように構成される。入力特徴マップは、高さh、幅w、および入力チャネルdinを用いて
【0017】
【0018】
と表されることが可能であり、出力特徴マップは、出力チャネルdoutを用いて
【0019】
【0020】
と表されることが可能である。
【0021】
入力要素xijに関して出力要素yijを生成するために、層110は、まず、入力要素の周りの近隣の入力要素を含むメモリブロックを生成する。特に、入力特徴マップ
【0022】
【0023】
が与えられたとすると、層110は、入力要素xijを中心とする空間的広がりkを有する、入力特徴マップの(ベクトル
【0024】
【0025】
である)入力要素の周りの局所的近隣N
k(i,j)を抽出し、k×k×d
inの形状の領域(
図2に示される灰色の領域)をもたらす。この領域は、メモリブロックと呼ばれる(たとえば、
図1のメモリブロック104)。メモリブロックは、位置ab∈N
k(i,j)の近隣の入力要素(すなわち、ピクセル102の周りの近隣のピクセル)を含み、aおよびbは、(i,j)に対して相対的な座標である。x
ijの周りのメモリブロックの例が、
図2に示される。示される例においては、k=3であるが、kのその他の値が代替的に使用される可能性がある。たとえば、kは、範囲[6, 11]内など、範囲[2, 20]内にある可能性があり、たとえば、k=7である。
【0026】
層110は、たとえば、次の式に示されるように、入力要素xijに学習されたクエリ(query)線形変換を適用してクエリベクトルqij(たとえば、クエリベクトル106)を生成し、
qij = WQxij
式中、
【0027】
【0028】
は、学習されたクエリ重み行列である。
【0029】
メモリブロック内の入力要素xijの周りの近隣の要素xabの各々に関して、層110は、近隣の要素に学習されたキー(key)線形変換を適用してそれぞれのキーベクトル(たとえば、キーベクトル108)を生成する。たとえば、層110は、以下のようにそれぞれのキーベクトルを生成し、
kab = WKxab
式中、kabは、それぞれのキーベクトルを表し、
【0030】
【0031】
は、学習されたキー重み行列である。
【0032】
メモリブロック内の入力要素xijの周りの近隣の要素xabの各々に関して、層110は、近隣の要素および1つまたは複数の位置値重み行列から位置値(positional value)ベクトルを生成する。1つまたは複数の位置値重み行列は、入力要素とメモリブロック内のその入力要素の近隣の入力要素の各々との間の空間的距離を表す。たとえば、vabと表される位置値ベクトルは、以下のように計算されることが可能であり、
【0033】
【0034】
式中、mは、1以上の決まった整数であり、値ベクトルを生成するために使用される混合成分(mixture component)の数を表し、1つまたは複数の位置値重み行列
【0035】
【0036】
、すなわち、各混合成分mのためのそれぞれの重み行列が、その近隣内の近隣の要素の位置の関数である各混合成分mのための位置係数p(a,b,m)の凸結合によって結合される。そのような関数の例が、座標(a, b)に関する絶対的埋め込み(absolute embedding)と混合成分mに関する混合埋め込み(mixture embedding)vmとの間のロジットを計算する次の式で定義され、
P(a,b,m) = softmaxm((embrow(a) + embcol(b))Tvm)
式中、embrow(a)およびembcol(b)は、プーリングウィンドウに揃えられた行および列の埋め込み(pooling-window aligned row and column embeddings)であり、vmは、混合毎の埋め込みである。層110が複数のアテンションヘッド(attention head)を使用する場合、結果として得られるp(a,b,m)は、層110のすべてのアテンションヘッドで共有される。
【0037】
クエリ重み行列WQ、キー重み行列WK、および1つまたは複数の位置値重み行列
【0038】
【0039】
は、コンピュータビジョンのニューラルネットワーク105を訓練することによって取得され得る。
【0040】
層110は、クエリベクトルとキーベクトルとの内積などのクエリベクトルとキーベクトルとの積を取ることによってクエリ-キー積112を生成する。
【0041】
【0042】
層110は、クエリ-キー積112に位置情報116を足すこと、たとえば、
【0043】
【0044】
によって位置クエリ-キー積(positional query-key product)114を生成し、式中、
【0045】
【0046】
は、位置情報を含むクエリ-距離積である。位置情報は、コンピュータビジョンのタスクのための表現力を高めるためにクエリ-キー積に足される。r
a-i,b-jは、ijから各位置ab∈N
k(i,j)までの相対的な距離を表す相対距離ベクトルである。相対的な距離は、次元に分解され、したがって、各要素ab∈N
k(i,j)は、2つの距離、すなわち、行オフセットa-iおよび列オフセットb-jを与えられる。行オフセットおよび列オフセットは、それぞれが1/2 d
outの次元を有する埋め込みr
a-iおよび埋め込みr
b-jにそれぞれ関連付けられる。層110は、行および列のオフセットの埋め込みを連結して相対的な距離r
a-i,b-jを形成する。相対的な距離の計算の例が、
図4に示される。
【0047】
層110は、位置クエリ-キー積114に対してソフトマックス演算を適用すること、たとえば、
【0048】
【0049】
によって中間出力118を生成する。
【0050】
層110は、中間出力118と位置値ベクトル120との積を計算すること、たとえば、
【0051】
【0052】
によって現在の近隣の要素xabに関する暫定的な出力要素122を生成する。
【0053】
層110は、メモリブロック内のすべての近隣の要素に関して生成された暫定的な出力要素を合計すること、たとえば、
【0054】
【0055】
によって入力要素xijに関して出力要素yijを生成する。
【0056】
入力要素に関して出力要素を計算するための上のプロセスは、シングルヘッドの位置局所自己アテンションプロセスと呼ばれ、入力特徴マップのあらゆる入力要素ijに関して層110によって繰り返し実行される。
【0057】
層110が入力特徴マップの複数の異なる表現を学習するために複数のアテンションヘッドを使用する一部の実装において、層110は、入力要素xijを深さ毎にN個の下位入力要素
【0058】
【0059】
に区分けし、それぞれの下位出力要素を生成するためにヘッド毎に異なる線形変換
【0060】
【0061】
を用いて上述のように各下位入力要素に関して別々にシングルヘッドの位置局所自己アテンションを計算し、それから、下位出力要素を入力要素xijに関する最終出力要素
【0062】
【0063】
へと連結する可能性がある。一部の実装においては、下位入力要素に関する下位出力要素が、並列に生成され得る。
【0064】
位置局所自己アテンション層110がメモリブロック104内のピクセルに対して局所的自己アテンションを実行するので、位置局所自己アテンション層110は、すべてのピクセルの間の大域的(つまり、網羅的)アテンションを実行した、視覚のアテンションを探索する通常のニューラルネットワーク層とは異なる。大域的アテンションは、計算コストが高いため、大幅な空間的ダウンサンプリングが入力に適用された後にのみ使用されることが可能であり、これは、完全にアテンション型のモデルのすべての層での大域的アテンションの使用を妨げる。
【0065】
局所的自己アテンションを実行することによって、層110は、空間的畳み込みを置き換え、空間的畳み込みを使用する以前のモデルよりも計算効率の高い完全にアテンション型のモデルを構築するために使用され得る。これは、畳み込みのパラメータ数が空間的広がりとともに2乗のオーダーで大きくなる一方でアテンションのパラメータ数が空間的広がりのサイズと無関係であるからである。また、アテンションの計算コストは、dinおよびdoutの典型的な値によって畳み込みと比較して空間的広がりとともによりゆっくりと大きくなる。たとえば、din = dout = 128の場合、k = 3である畳み込み層は、k = 19であるアテンション層と同じ計算コストを有する。
【0066】
さらに、位置局所自己アテンションニューラルネットワーク層110は、アテンションに入力要素の位置情報をエンコードし、したがって、表現力を高め、通常の畳み込みのみを使用するニューラルネットワークによって生成される出力よりもずっと高い精度を有する出力をもたらす。
【0067】
図3は、入力特徴マップの入力要素に関して出力要素を生成するための例示的なプロセスの流れ図である。便宜上、プロセス300は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたニューラルネットワークシステム、たとえば、
図1のネットワークシステム100が、プロセス300を実行し得る。
【0068】
システムが、入力特徴マップの入力要素の周りの近隣の入力要素を含む入力要素に関するメモリブロックを生成する(ステップ302)。たとえば、入力特徴マップ
【0069】
【0070】
が与えられたとすると、システムは、入力要素xijを中心とする空間的広がりkを有する、入力特徴マップの入力要素
【0071】
【0072】
の周りの局所的近隣Nk(i,j)を抽出し、k×k×dinの形状のメモリブロックをもたらす。メモリブロックは、位置ab∈Nk(i,j)の近隣の入力要素xabを含む。
【0073】
システムが、入力要素およびクエリ重み行列を使用してクエリベクトルを生成する(ステップ304)。たとえば、システムは、以下のように、入力要素xijに学習されたクエリ線形変換を適用してクエリベクトルqijを生成し、
qij = WQxij
式中、
【0074】
【0075】
は、学習されたクエリ重み行列である。
【0076】
メモリブロック内のそれぞれの近隣の要素xabに関して、システムは、以下のようにステップ306~310を実行する。
【0077】
システムが、近隣の要素およびキー重み行列を使用してそれぞれのキーベクトルを生成する(ステップ306)。たとえば、システムは、以下のように、近隣の要素に学習されたキー線形変換を適用してそれぞれのキーベクトルを生成し、
kab = WKxab
式中、
【0078】
【0079】
は、学習されたキー重み行列である。
【0080】
システムが、近隣の要素および1つまたは複数の位置値重み行列を使用して位置値ベクトルを生成する(ステップ308)。1つまたは複数の位置値重み行列は、入力要素とメモリブロック内のその入力要素の近隣の入力要素の各々との間の空間的距離を表す。たとえば、vabと表される位置値ベクトルは、以下のように計算されることが可能であり、
【0081】
【0082】
式中、1つまたは複数の位置値重み行列
【0083】
【0084】
が、その近隣内の近隣の要素の位置の関数である位置係数p(a,b,m)の凸結合によって結合される。言い換えると、システムは、結合された値重み行列
【0085】
【0086】
を、対応する1つまたは複数の位置係数p(a,b,m)を使用して1つまたは複数の位置値重み行列
【0087】
【0088】
の凸結合として生成し、それから、近隣の要素および結合された値重み行列を使用して位置値ベクトルを生成する。
【0089】
システムが、クエリベクトル、キーベクトル、および位置値ベクトルを使用して暫定的な出力要素を生成する(ステップ310)。
【0090】
特に、システムは、クエリベクトルとキーベクトルとの内積などのクエリベクトルとキーベクトルとの積を取ることによってクエリ-キー積を生成する。
【0091】
【0092】
システムは、クエリ-キー積に位置情報を足すこと、たとえば、
【0093】
【0094】
によって位置クエリ-キー積を生成し、式中、
【0095】
【0096】
は、位置情報を含むクエリ-距離積である。位置情報は、コンピュータビジョンのタスクのための表現力を高めるためにクエリ-キー積に足される。ra-i,b-jは、ijから各位置ab∈Nk(i,j)までの相対的な距離を表す相対距離ベクトルである。相対的な距離は、次元に分解され、したがって、各要素ab∈Nk(i,j)は、2つの距離、すなわち、行オフセットa-iおよび列オフセットb-jを与えられる。行オフセットおよび列オフセットは、それぞれが1/2 doutの次元を有する埋め込みra-iおよび埋め込みrb-jにそれぞれ関連付けられる。システムは、行および列のオフセットの埋め込みを連結して相対的な距離ra-i,b-jを形成する。
【0097】
システムは、位置クエリ-キー積に対してソフトマックス演算を適用すること、たとえば、
【0098】
【0099】
によって中間出力を生成する。
【0100】
システムは、中間出力と位置値ベクトルとの積を計算すること、たとえば、
【0101】
【0102】
によって現在の近隣の要素xabに関する暫定的な出力要素を生成する。
【0103】
システムは、メモリブロック内の近隣の要素に関して生成された暫定的な出力要素を合計することによってそれぞれの出力要素を生成する(ステップ312)。たとえば、システムは、以下のようにそれぞれの出力要素yijを生成する。
【0104】
【0105】
図5は、畳み込みニューラルネットワークを1つまたは複数の位置局所自己アテンション層を有するコンピュータビジョンのニューラルネットワークに変換するための例示的なプロセスの流れ図である。便宜上、プロセス500は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされたニューラルネットワークシステム、たとえば、
図1のネットワークシステム100が、プロセス500を実行し得る。
【0106】
システムは、畳み込みニューラルネットワークを規定するデータを入力として受け取る(ステップ502)。
【0107】
システムは、畳み込みニューラルネットワークの空間的畳み込みニューラルネットワーク層を位置局所自己アテンション層によって置き換える(ステップ504)。空間的畳み込みは、空間的広がりk > 1を用いる畳み込みとして定義される。この定義は、各ピクセルに独立して適用される標準的な全結合層とみなされる可能性がある1x1の畳み込みを除外する。システムは、空間的畳み込みのあらゆるインスタンスを式(*)に定義された位置局所自己アテンション層によって置き換える。
【0108】
任意で、システムは、いつ空間的ダウンサンプリングが必要とされるかを決定し、それに応じて、システムは、それぞれの位置局所自己アテンション層の後にストライド2の動作を用いる2x2の平均プーリング層を付加する(ステップ506)。空間的ダウンサンプリングは、計算コストを下げ、概して、入力画像内のいくつのピクセルがニューラルネットワーク層の特定の出力に影響を与えるかを指す「受容野」を広げるために入力の空間的サイズを減らす。通常、いつ空間的ダウンサンプリングをすべきかの選択は、人間が設計したヒューリスティックス(heuristics)と、人がダウンサンプリングを行う多くの位置を試し、最も性能の良い位置を選択する実験に基づくチューニングとの組合せによってなされる。以下の例において、システムは、受け取られた畳み込みニューラルネットワークのネットワーク設計者によってなされた空間的ダウンサンプリングの設計の選択に基づいていつ空間的ダウンサンプリングが必要とされるかを決定する。そのとき、システムは、空間的ダウンサンプリングが必要とされるときにはいつでも、それぞれの位置局所自己アテンション層の後にストライド2の動作を用いる2x2の平均プーリング層を付加する。
【0109】
たとえば、畳み込みニューラルネットワークは、ResNetニューラルネットワークである。ResNetニューラルネットワークアーキテクチャの例は、IEEE Conference on Computer Vision and Pattern Recognition、2016のK. He、X. Zhang、S. Ren、およびJ. Sun、「Deep residual learning for image recognition」に記載されている。ResNetニューラルネットワークの核となる基本構成要素は、1x1のダウンプロジェクション(down-projection)畳み込み、3x3の空間的畳み込み、および1x1のアッププロジェクション(up-projection)畳み込み、続いて、ブロックの入力とブロックの最後の畳み込みの出力との間の残差結合(residual connection)の構造を有するボトルネックブロック(bottleneck block)である。ボトルネックブロックは、ResNetを形成するために複数回繰り返され、1つのボトルネックブロックの出力が、次のボトルネックブロックの入力となる。ステップ502~506において説明された変換は、3x3の空間的畳み込みを式(*)に定義された位置局所自己アテンション層と取り替える。層の数およびいつ空間的ダウンサンプリングが適用されるかを含むすべてのその他の構造は、維持され得る。
【0110】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムの構成要素に関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行為を実行するように構成されることは、システムが、動作中にシステムに動作または行為を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行為を実行させる命令を含むことを意味する。
【0111】
本明細書に記載の対象の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。しかし、コンピュータストレージ媒体は、伝播信号ではない。
【0112】
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。また、装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0113】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される可能性もある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
【0114】
本明細書において使用されるとき、「エンジン」または「ソフトウェアエンジン」は、入力と異なる出力を提供するソフトウェアで実装された入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(「SDK」)、またはオブジェクトなどの機能の符号化されたブロックであることが可能である。各エンジンは、任意の適切な種類のコンピューティングデバイス、たとえば、サーバ、モバイル電話、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤー、電子ブックリーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または1つもしくは複数のプロセッサおよびコンピュータ可読媒体を含むその他の据え置き型もしくは可搬型デバイスに実装され得る。さらに、エンジンのうちの2つ以上が、同じコンピューティングデバイスにまたは異なるコンピューティングデバイスに実装される可能性がある。
【0115】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。たとえば、プロセスおよび論理フローは、グラフィックス処理ユニット(GPU)によって実行されることが可能であり、さらに、装置は、グラフィックス処理ユニット(GPU)として実装されることが可能である。
【0116】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置を含み、例として、それらに基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0117】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0118】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0119】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえば、インターネットを含む。
【0120】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0121】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定ともみなされるべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されことが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0122】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0123】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の特許請求の範囲内にある。たとえば、特許請求の範囲に挙げられた行為は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。特定の実装においては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0124】
100 ニューラルネットワークシステム
102 入力要素
104 メモリブロック
105 コンピュータビジョンのニューラルネットワーク
106 クエリベクトル
108 キーベクトル
110 位置局所自己アテンション層
112 クエリ-キー積
114 位置クエリ-キー積
116 位置情報
118 中間出力
120 位置値ベクトル
122 暫定的な出力要素
300 プロセス
500 プロセス