JP7536893B2 - 自己注意ベースのニューラルネットワークを使用した画像処理 - Google Patents

自己注意ベースのニューラルネットワークを使用した画像処理 Download PDF

Info

Publication number
JP7536893B2
JP7536893B2 JP2022570383A JP2022570383A JP7536893B2 JP 7536893 B2 JP7536893 B2 JP 7536893B2 JP 2022570383 A JP2022570383 A JP 2022570383A JP 2022570383 A JP2022570383 A JP 2022570383A JP 7536893 B2 JP7536893 B2 JP 7536893B2
Authority
JP
Japan
Prior art keywords
neural network
image
network
input
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022570383A
Other languages
English (en)
Other versions
JP2023533907A (ja
Inventor
ニール・マシュー・ティンマス・ホールズビー
シルヴァン・ゲリー
ジェイコブ・ディー・ウツコライト
シャオフア・ザイ
ゲオルク・ハイゴルト
ルーカス・クラウス・バイアー
アレキサンドル・コレスニコフ
マティアス・ヨハンネス・ローレンツ・ミンデラー
ディルク・ヴァイセンボルン
モスタファ・デガニ
アレクセイ・ドソヴィツキー
トーマス・ウンターティナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023533907A publication Critical patent/JP2023533907A/ja
Application granted granted Critical
Publication of JP7536893B2 publication Critical patent/JP7536893B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

本明細書は、ニューラルネットワークを使用して画像を処理することに関する。
ニューラルネットワークは、受け取った入力に対する出力を予測するために、非線形ユニットの1つまたは複数の層を利用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加え、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの中の次の層、すなわち、次の隠れ層または出力層への入力として使われる。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
本明細書は、1つまたは複数の画像を処理して、1つまたは複数の画像を特徴づけるネットワーク出力を生成するために、訓練を通して構成された自己注意(self-attention)ベースのニューラルネットワークを実行する、1つまたは複数の場所の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムについて説明する。
この自己注意ベースのニューラルネットワークは、入力シーケンスの要素にわたって自己注意機構を適用することによって、画像を表す入力シーケンスを処理し、出力シーケンスを生成するように構成され得る。入力シーケンスの要素の少なくとも一部が、入力画像のそれぞれのパッチに対応し得る。すなわち、このシステムは、画像をパッチにセグメント化し、各パッチのピクセルを処理して、入力シーケンスのそれぞれの要素を生成することができる。これらの要素に自己注意機構を適用することによって、自己注意ベースのニューラルネットワークは、画像全体に注目し、局所と大域の両方の情報を活用して出力シーケンスを生成することができる。
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態で実施され得る。
いくつかの既存のシステムは、自然言語処理(NLP)使用事例に自己注意ベースのニューラルネットワークを使用して、テキストシーケンスを処理して、テキストシーケンスについての予測を生成する。NLP領域における自己注意ベースのニューラルネットワークの利点は拡張性であり、一般に、自己注意ベースのニューラルネットワークの性能は、ニューラルネットワークのサイズが増大するにつれて向上する。しかしながら、画像に自己注意ベースのニューラルネットワークを適用する既存のシステムでは、同じことがいえず、一般に、自己注意ベースのニューラルネットワークは、より大きいアーキテクチャに拡大することができておらず、したがって、他のコンピュータビジョンシステム、たとえば、畳み込みニューラルネットワークほどうまく動作しない。たとえば、いくつかのそのような既存のシステムは、入力画像全体にわたって自己注意を適用せず、代わりに入力画像の局所近傍に適用する。したがって、画像の第1の局所近傍は、画像の第2の局所近傍に注目することができない。
本明細書で説明する技法を使用すると、システムが、自己注意ベースのニューラルネットワークを使用して画像を直接処理し、ニューラルネットワークのサイズが大きくなっても高性能を享受することができる。詳細には、本明細書で説明する技法は、大規模訓練を可能にするために、自己注意ベースのニューラルネットワークを使用して可能である並列化を活用し、画像処理タスクの精度向上をもたらす。特定の例として、本明細書で説明するシステムは、1400万~3億の画像を含むデータセットで訓練される場合がある。さらに、本明細書で説明する例示的な実装形態は、フルサイズ画像に大域の自己注意を適用する。すなわち、自己注意ベースのニューラルネットワークは、入力画像全体にわたって自己注意を適用し、したがって、画像のどの領域も、画像の他の領域に注目することができる。
本明細書で説明するように、画像を処理するように構成された自己注意ベースのニューラルネットワークは、最先端の畳み込みニューラルネットワークと同じ性能を達成するために、必要とし得る計算がはるかに少ない。すなわち、固定計算予算について、自己注意ベースのニューラルネットワークは、畳み込みニューラルネットワークよりも良く機能する。これは、自己注意機構は畳み込みよりも少ない計算で画像の異なる領域に注目することができるので、自己注意を適用すると、画像全体にわたってカーネルを畳み込むよりも一般に計算効率がよいためである。特定の例として、本明細書で説明する自己注意ベースのニューラルネットワークは、必要とする計算が2分の1、5分の1、10分の1、100分の1、または1000分の1でありながら、大規模な畳み込みニューラルネットワークに匹敵する、またはそれより優れた性能を達成することができる。
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
例示的なニューラルネットワークシステムの図である。 例示的な自己注意ベースのニューラルネットワークの図である。 画像パッチにセグメント化された例示的な画像を示す図である。 例示的な訓練システムの図である。 自己注意ベースのニューラルネットワークを使用して1つまたは複数の画像についての予測を生成するための例示的なプロセスの流れ図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
本明細書は、1つまたは複数の場所の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムであって、1つまたは複数の画像を特徴づけるネットワーク出力を生成するために、1つまたは複数の画像を処理するように、すなわち、1つまたは複数の画像のピクセルの強度値を処理するように構成された自己注意ベースのニューラルネットワークを実行するように構成されたシステムについて説明する。
図1は、例示的なニューラルネットワークシステム100の図である。ニューラルネットワークシステム100は、以下で説明するシステム、構成要素、および技法を実装することができる、1つまたは複数の場所の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
ニューラルネットワークシステム100は、画像102を処理し、画像についての予測を表すネットワーク出力152を生成するように構成される。ニューラルネットワークシステム100は、画像102を使用して何らかの適切な機械学習タスクを実施するように構成され得る。例示的な機械学習タスクについて、以下で説明する。
画像は、任意の適切なタイプの画像とすることができる。たとえば、画像は、2次元画像、たとえば複数のチャネルを有する2次元画像(たとえば、RGB画像)とすることができる。別の例として、画像102は、たとえば、画像102中の各ピクセルについて、スペクトルの分布を識別することによって、波長の連続スペクトルを表すハイパースペクトル画像とすることができる。別の例として、画像102は、各点が、たとえば、3次元またはより高次元の座標空間におけるそれぞれの座標を有する、複数の点を含むポイントクラウドとすることができ、特定の例として、画像102は、LIDARセンサーによって生成されたポイントクラウドとすることができる。別の例として、画像102は、医療イメージングデバイスによる医療画像生成とすることができ、特定の例として、画像102は、コンピュータ断層撮影(CT)画像、磁気共鳴イメージング(MRI)画像、超音波画像、X線画像、マンモグラム画像、蛍光透視画像、または陽電子放出断層撮影(PET)画像とすることができる。
以下の説明は、画像102のそれぞれの「ピクセル」を各々含む、画像102の画像パッチを生成することに言及するが、ニューラルネットワークシステム100は、任意の適切なタイプである、画像102の構成要素を含む画像パッチを生成し得ることを理解されたい。たとえば、画像102がポイントクラウドである場合、画像102の各画像パッチは、ポイントクラウド中の点のサブセットを含むことができる。別の例として、画像102が、3次元ボクセルグリッドに複数のボクセルを含むMRI画像である場合、画像102の各画像パッチは、ボクセルグリッド中のボクセルのサブセットを含むことができる。
ニューラルネットワークシステム100は、画像パッチ生成システム110と、画像パッチ埋込みシステム120と、ニューラルネットワーク130とを含む。以下でより詳細に説明するように、ニューラルネットワーク130は、自己注意ベースのサブネットワーク140を含む、自己注意ベースのニューラルネットワークである。
自己注意ベースのニューラルネットワークは、1つまたは複数の自己注意ニューラルネットワーク層を含むニューラルネットワークである。自己注意ニューラルネットワーク層は、層入力要素のシーケンスを入力として受け取り、層出力要素のシーケンスを生成するために層入力要素のシーケンスに注意機構を適用するように構成される。詳細には、各層入力要素について、自己注意ニューラルネットワーク層は、層入力要素から導出された1つまたは複数のクエリを使用して、層入力要素のシーケンス中の層入力要素に注意機構を適用して、それぞれの出力要素を生成する。
図1に示す例では、ニューラルネットワーク130は、自己注意ベースのサブネットワーク140を使用して、画像102のそれぞれのパッチを表す入力要素を含む入力シーケンスを処理するように構成される。したがって、ニューラルネットワーク130は、画像102中の異なる場所の異なるパッチに注目するために、入力シーケンスに注意機構を適用することができる。画像102のパッチは、並列処理を使用して、自己注意ベースのサブネットワーク140によって処理され得ること、すなわち処理の少なくとも一部が並行して実施され得ることが理解されよう。
画像パッチ生成システム110は、画像102を処理し、画像102のn個の異なるパッチ112a~nを生成するように構成される。本明細書では、画像の画像パッチは、画像のピクセル(pixels)の厳密なサブセットである。一般に、各画像パッチ112a~nは、画像102の複数の連続するピクセルを含む。すなわち、各特定の画像パッチ112a~nについて、および特定の画像パッチ112a~n中のピクセルのどのペアについても、ペアの第1のピクセルからペアの第2のピクセルへのパスが存在し、パスは、特定の画像パッチ112a~n中のピクセルのみを含む。
いくつかの実装形態では、画像102中の各ピクセルは、厳密に画像パッチ112a~nの1つに含まれる。いくつかの他の実装形態では、1つまたは複数の画像パッチ112a~nは、画像102からの同じピクセルを含むことがあり、すなわち、画像の2つ以上が重複することがある。代わりにまたは加えて、画像102からの1つまたは複数のピクセルは、画像パッチ112a~nの各々から除外されることがあり、すなわち、1つまたは複数のピクセルが、画像パッチのいずれにも含まれない。
画像パッチ112a~nは、何らかの適切な方法で表すことができる。たとえば、各画像パッチ112a~nは、画像パッチ112a~nのピクセルを含む2次元画像として、たとえば、画像パッチ112a~n中のピクセルの空間関係を維持する画像として表すことができる。
別の例として、各画像パッチ112a~nは、画像パッチ112a~nのピクセルの1次元シーケンスとして表すことができる。特定の例として、画像パッチ112a~nが画像102の2次元領域である場合、画像パッチ112a~nは、以下でより詳細に説明するように、2次元領域の平坦化バージョン(flattened version)とすることができる。別の特定の例として、画像パッチ112a~nが、画像102の同じ列または行を共有するピクセルのみを含む場合(すなわち、画像パッチ112a~nが画像102の1次元領域である場合)、画像パッチ112a~nは、ピクセルの相対位置を維持する1次元シーケンスとして表すことができる。
別の例として、各画像パッチ112a~nは、画像パッチ112a~nのピクセルの無順序セットとして表すことができる。
例示的な画像パッチについて、図3を参照しながら以下でより詳細に説明する。
画像パッチ埋込みシステム120は、画像10のn個の画像パッチ112a~nを取得し、n個の画像パッチ112a~nの各々のそれぞれの埋込み122a~nを生成するように構成される。各画像パッチ埋込み122a~nは、対応する画像パッチ112a~nのピクセルを表し、対応する画像パッチ112a~nのピクセルを処理することによって生成することができる。本明細書では、埋込みは、特定の埋込み空間における入力を表す、数値の順序付き集合である。たとえば、埋込みは、固定次元数を有する、浮動小数点または他の数値のベクトルであることがある。
各画像パッチ112a~nが画像102の2次元サブ画像として表されるいくつかの実装形態では、各画像パッチ埋込み122a~nは、対応する画像パッチ112a~nの再成形バージョンである。たとえば、画像パッチ埋込みシステム120は、画像パッチ112a~nに各ピクセルを含む1次元テンソルである画像パッチ埋込み122a~nを生成するために、各画像パッチ112a~nを「平坦化する」ことができる。特定の例として、各画像パッチ112a~nが、次元数L×W×Cを有し、ただしCが画像のチャネル数を表す(たとえば、RGB画像ではC=3)場合、画像パッチ埋込み122a~nは、次元数1×(L・W・C)を有する画像パッチ埋込み122a~nを生成することができる。
いくつかの他の実装形態では、画像パッチ埋込みシステム120は、画像パッチ112a~n(たとえば、画像パッチ112a~nの平坦化バージョン)のピクセルを含む1次元テンソルを処理して、対応する画像パッチ埋込み122a~nを生成することができる。以下でより詳細に説明するように、画像パッチ埋込み122a~nは、ニューラルネットワーク130によって処理されることになり、ニューラルネットワーク130は、訓練を通して、特定のフォーマット、たとえば特定のサイズおよび形状を有する入力を受け入れるように構成されている。したがって、画像パッチ埋込みシステム120は、ニューラルネットワーク130によって必要とされる次元数を有する座標空間に各画像パッチ112a~nを射影することができる。
たとえば、画像パッチ埋込みシステム120は、線形射影を使用して各画像パッチ112a~nを処理することができる。
zi=xi Ei+bi
ただし、
は、第iの画像パッチ埋込み122a~nであり、Dは、ニューラルネットワーク130によって必要とされる入力次元数であり、
は、第iの画像パッチ112a~nを含む1次元テンソルであり、Nは、第iの画像パッチ112a~nにおけるピクセル数であり、Ei∈RN×Dは、射影行列であり、
は、線形バイアス項である。
いくつかの実装形態では、画像パッチ埋込みシステム120は、それぞれの異なる射影行列Eiを使用して、各画像パッチ埋込み122a~nを生成し、いくつかの他の実装形態では、画像パッチ埋込みシステム120は、同じ射影行列Eを使用して、各画像パッチ埋込み122a~nを生成する。同様に、いくつかの実装形態では、画像パッチ埋込みシステム120は、それぞれの異なるバイアス項biを使用して、各画像パッチ埋込み122a~nを生成し、いくつかの他の実装形態では、画像パッチ埋込みシステム120は、同じバイアス項biを使用して、各画像パッチ埋込み122a~nを生成する。
いくつかの実装形態では、線形射影は機械学習済みである。たとえば、ニューラルネットワーク130の訓練中に、訓練システムは、線形射影のパラメータ(たとえば、射影行列Eiおよびバイアス項biのパラメータ)を同時に更新することができる。特定の例として、訓練システムは、ニューラルネットワーク130を通して、画像パッチ埋込みシステム120まで、ニューラルネットワーク130の訓練誤差を逆伝播すること、および逆伝播された誤差について確率的勾配降下を使用して更新を決定することによって、線形射影のパラメータを更新することができる。ニューラルネットワーク130を訓練するための例示的な技法について、図4を参照しながら以下でより詳細に説明する。
線形射影を用いて画像パッチ112a~nに対応する1次元テンソルを処理する代わりに、またはそれに加えて、画像パッチ埋込みシステム120は、埋込みニューラルネットワークを使用して1次元テンソルを処理することができる。たとえば、埋込みシステム120は、ニューラルネットワーク130の構成要素と見なされ得る。すなわち、埋込みシステム120は、1次元テンソルを処理し、画像パッチ埋込み122a~nを生成するように構成された1つまたは複数のニューラルネットワーク層を含むニューラルネットワーク130の埋込みサブネットワークとすることができる。
たとえば、埋込みニューラルネットワークは、画像パッチ112a~nに対応する1次元テンソルを処理するように構成された1つまたは複数のフィードフォワードニューラルネットワーク層を含むことができる。
別の例として、埋込みニューラルネットワークは、自己注意機構を使用してそれぞれの画像パッチ112a~nに対応する各1次元テンソルを同時に処理するように構成された1つまたは複数の自己注意ニューラルネットワーク層を含むことができる。自己注意について、以下でより詳細に説明する。
別の例として、埋込みニューラルネットワークは、畳み込みフィルタを使用して画像パッチ112a~nを処理するように構成された1つまたは複数の畳み込みニューラルネットワーク層を含むことができる。特定の例として、画像パッチ112a~nが2次元画像として表される場合、画像パッチ埋込みシステム120は、1つまたは複数の畳み込みニューラルネットワーク層を使用して各(非平坦化)画像パッチ112a~nを処理して、画像パッチ112a~nの特徴マップを生成することができる。画像パッチ埋込みシステム120は、次いで特徴マップを平坦化し、上記で説明したように線形射影を使用して平坦化特徴マップを処理して、対応する画像パッチ埋込み122a~nを生成することができる。
別の特定の例として、画像パッチ埋込みシステム120は、1つまたは複数の畳み込みニューラルネットワーク層を使用して画像102全体を処理して、画像102の特徴マップを生成することができる。特徴マップは、2次元とすることができる(または、画像102のように、各要素が複数のチャネルを有する2次元とすることができる)。ニューラルネットワークシステム100は次いで、画像102の特徴マップのn個のパッチを決定することができ、各パッチは、特徴マップの1つまたは複数の要素を含む。すなわち、画像102自体を画像パッチ112a~nにセグメント化する代わりに、画像パッチ生成システム110は、画像パッチ埋込みシステム120の埋込みニューラルネットワークによって生成された画像102の特徴マップをセグメント化することができる。特定の例として、各パッチは、特徴マップの単一の要素を含むことができる。画像パッチ埋込みシステム120は次いで、たとえば上記で説明したように特徴マップのパッチに線形射影を適用することによって、特徴マップのn個のパッチから画像パッチ埋込み122a~nを生成することができる。
画像パッチ埋込みシステム120が画像パッチ埋込み122a~nを生成した後、ニューラルネットワークシステム100は、画像パッチ埋込み122a~nからニューラルネットワーク130への入力として提供されることになる入力シーケンスを生成することができる。一般に、入力シーケンスは、それぞれの画像パッチ埋込み122a~nに対応する1つまたは複数の入力要素を含む。たとえば、入力シーケンスは、n個の画像パッチ埋込み122a~nの各々に対応するそれぞれの入力要素を含むことができる。特定の例として、n個の画像パッチ埋込み122a~nに対応する入力要素は、対応する画像パッチ112a~nのラスタ順に入力シーケンスにソートされ得る。
いくつかの実装形態では、画像パッチ埋込み122a~nに対応する入力シーケンスの入力要素は、画像パッチ埋込み122a~n自体に等しい。
いくつかの他の実装形態では、画像パッチ埋込み122a~nに対応する入力シーケンスの入力要素を生成するために、ニューラルネットワークシステム100は、(i)画像パッチ埋込み122a~nと、(ii)画像パッチ埋込み122a~nに対応する画像パッチ112a~nの画像102内の位置を表す位置埋込みとを組み合わせることができる。たとえば、ニューラルネットワークシステム100は、画像パッチ埋込み122a~nに位置埋込みを付加することができる。位置埋込みを組み込むことによって、ニューラルネットワークシステム100は、ネットワーク出力152を生成するためにニューラルネットワーク130によって活用され得る空間情報、たとえば画像における各画像パッチの相対位置を、符号化することができる。
いくつかの実装形態では、画像102の各画像パッチ112a~nに対応する位置埋込みは整数である。たとえば、画像102の左上の第1の画像パッチは、「1」という位置埋込みを有することがあり、第1の画像パッチのすぐ右の第2の画像パッチは、「2」という位置埋込みを有することがあるなどである。
いくつかの実装形態では、位置埋込みは、機械学習済みである。たとえば、ニューラルネットワーク130の訓練中に、訓練システムは、ニューラルネットワーク130を通して、位置埋込みまで、ニューラルネットワーク130の訓練誤差を逆伝播することによって、位置埋込みを同時に学習することができる。いくつかのそのような実装形態では、訓練システムは、(たとえば、ニューラルネットワークシステム100によって受け取られるすべての画像102が同数のパッチにセグメント化されると仮定すると)各画像パッチに対してそれぞれの異なる位置埋込みを生成することができる。
いくつかの他の実装形態では、訓練システムは、画像102の両方の次元について、次元に沿った各座標に対するそれぞれの位置埋込みを学習することによって、2次元情報を位置埋込みに組み込むことができる。たとえば、画像102が画像パッチ112a~nの2次元グリッドにセグメント化される場合、訓練システムは、2セットの位置埋込み、すなわち、グリッドの縦軸に沿った各インデックスに対するそれぞれの位置埋込みを含む第1のセットと、グリッドの横軸に沿った各インデックスに対するそれぞれの埋込みを含む第2のセットとを生成することができる。特定の画像パッチ112a~nに対する位置埋込みを生成するために、ニューラルネットワークシステムは、たとえば連結によって、(i)縦軸に沿った特定の画像パッチ112a~nのインデックスに対応する位置埋込みと、(ii)横軸に沿った特定の画像パッチ112a~nのインデックスに対応する位置埋込みとを組み合わせることができる。
いくつかの実装形態では、入力シーケンス中の入力要素のうちの1つまたは複数は、画像102のいずれの画像パッチ112a~nにも対応しない。たとえば、入力シーケンスは、受け取った画像102すべてに対して同じであるクラス埋込み124を含むことができる。たとえば、クラス埋込み124は、画像パッチ埋込み122a~nと同じ次元数を有するテンソルとすることができる。特定の例として、クラス埋込み124は、すべて「0」またはすべて「1」のテンソルとすることができる。
クラス埋込み124は、入力シーケンス中のどの位置にも挿入することができ、たとえば、クラス埋込み124は、入力シーケンスの最初の入力要素、または入力シーケンスの最後の入力要素とすることができる。
いくつかの実装形態では、クラス埋込み124は、機械学習済みである。たとえば、ニューラルネットワーク130の訓練中に、訓練システムは、ニューラルネットワーク130を通して、クラス埋込み124まで、ニューラルネットワーク130の訓練誤差を逆伝播することによって、クラス埋込み124のためのパラメータを同時に学習することができる。
各画像パッチ112a~nに対応する入力要素が画像パッチ112a~nに対応する位置埋込みを含む実装形態では、ニューラルネットワークシステム100は、クラス埋込み124に位置埋込みを同様に付加することができ、たとえば、機械学習済み位置埋込みまたは所定の位置埋込み(たとえば、すべて「0」またはすべて「1」の位置埋込み)を付加することができる。
入力シーケンスを生成した後、ニューラルネットワークシステム130は、入力シーケンスをニューラルネットワーク130への入力として提供することができる。ニューラルネットワーク130は、入力シーケンスを処理して、ネットワーク出力152を生成することができる。
詳細には、ニューラルネットワーク130は、自己注意ベースのサブネットワーク140を使用して入力シーケンスを処理して、出力シーケンスを生成することができる。いくつかの実装形態では、ニューラルネットワーク130は、入力シーケンスと同じ長さの出力シーケンス、すなわち、入力シーケンス中の各入力要素についてそれぞれの出力要素を含む出力シーケンスを生成する。詳細には、出力シーケンスは、クラス埋込み124から生成されたクラス出力144と、入力シーケンス中の各画像パッチ埋込み122a~nに対応するそれぞれの画像パッチ出力142a~nとを含むことができる。
自己注意ベースのサブネットワーク140は、層入力シーケンスを各々受け取り、層入力シーケンスに自己注意機構を適用して、層出力シーケンスを生成する1つまたは複数の自己注意ニューラルネットワーク層を含むことができる。いくつかのそのような実装形態では、自己注意ベースのサブネットワーク140は、入力シーケンス中の各入力要素に対応するそれぞれの要素を含むそれぞれのブロック入力シーケンスを受け取り、ブロック入力シーケンスを処理して、入力シーケンス中の各入力要素についてそれぞれの要素を含むそれぞれのブロック出力シーケンスを生成するように各々構成された、複数のネットワークブロックのシーケンスを含む。各ネットワークブロックは、1つまたは複数の自己注意ニューラルネットワーク層を含むことができる。例示的な自己注意ベースのニューラルネットワークについて、図2を参照しながら以下でより詳細に説明する。
自己注意ベースのサブネットワーク140が出力シーケンスを生成した後、ニューラルネットワーク130は、出力シーケンスの1つまたは複数の要素をヘッドサブネットワーク150に提供することができる。
たとえば、ヘッドサブネットワーク150は、n個の画像パッチ出力142a~nを処理するように構成され得る。特定の例として、ヘッドサブネットワーク150は、(たとえば、グローバル平均プーリングを使用して)n個の画像パッチ出力142a~nを組み合わせて、組み合わされたパッチ出力を生成し、次いで組み合わされたパッチ出力を処理して、ネットワーク出力152を生成することができる。たとえば、ヘッドサブネットワーク150は、1つまたは複数のフィードフォワードニューラルネットワーク層および/または線形分類器を使用して、組み合わされたパッチ出力を処理することができる。
別の例として、ヘッドサブネットワーク150は、クラス出力144のみを処理して、ネットワーク出力152を生成するように構成され得る。すなわち、クラス出力144は、画像102の最終表現を表すことができ、ヘッドサブネットワーク150は、クラス出力144を処理して、画像102についての予測を表すネットワーク出力152を生成することができる。たとえば、ヘッドサブネットワーク150は、1つまたは複数のフィードフォワードニューラルネットワーク層を有する多層パーセプトロンを含むことができる。
いくつかの実装形態では、自己注意ベースのサブネットワーク140およびヘッドサブネットワーク150は、単一の機械学習タスクに関してエンドツーエンドで同時に訓練されている。たとえば、訓練システムは、(それぞれの訓練画像を表す)訓練入力シーケンスと、対応するグランドトゥルースネットワーク出力、すなわちニューラルネットワーク130が訓練入力シーケンスを処理したことに応答して生成すべきネットワーク出力152を表す出力とを各々含む複数の訓練例を含む訓練データセットを使用して、教師あり訓練プロセスを実行することができる。訓練システムは、ニューラルネットワーク130を使用して訓練入力シーケンスを処理して、それぞれの予測ネットワーク出力を生成し、(i)予測ネットワーク出力と(ii)対応するグランドトゥルースネットワーク出力との間の誤差に従ってヘッドサブネットワーク150および自己注意ベースのサブネットワーク140へのパラメータ更新を決定することができる。たとえば、訓練システムは、ヘッドサブネットワーク150と自己注意ベースのサブネットワーク140の両方を通して誤差を逆伝播すること、および確率的勾配降下を行うことによって、パラメータ更新を決定することができる。
いくつかの他の実装形態では、自己注意ベースのサブネットワーク140は、転移学習を使用して、ヘッドサブネットワーク150とは異なる、たとえばヘッドサブネットワーク150とは異なるそれぞれの機械学習タスクを行うように構成された、1つまたは複数の他のヘッドサブネットワークを使用して、訓練されている。たとえば、訓練システムは、自己注意ベースのサブネットワーク140および1つまたは複数の他のヘッドサブネットワークを同時に訓練し、次いで1つまたは複数の他のヘッドサブネットワークを削除し、それらをヘッドサブネットワーク150に置き換えて、ニューラルネットワーク130を生成することができる。訓練システムは、次いでニューラルネットワーク130を微調整(fine-tune)して、ヘッドサブネットワーク150のための訓練済みパラメータを生成することができる。転移学習を使用してニューラルネットワーク130を訓練するための例示的な技法について、図4を参照しながら以下でより詳細に説明する。
いくつかの実装形態では、ニューラルネットワークは、1つまたは複数の追加のサブネットワーク、たとえば、自己注意ベースのサブネットワーク140(たとえば、入力シーケンスを処理するように構成された1つまたは複数のリカレントニューラルネットワーク層を含むサブネットワーク)の直前の、または自己注意ベースのサブネットワーク140(たとえば、入力シーケンスを処理するように構成された1つまたは複数のリカレントニューラルネットワーク層を含むサブネットワーク)の直後の1つまたは複数のサブネットワークを含む。
いくつかの実装形態では、ニューラルネットワーク130は、ヘッドサブネットワーク150を含まない。たとえば、ニューラルネットワークシステム100は、画像102の埋込みを生成するように構成されてもよく、埋込みは、画像パッチ出力142a~nおよび/またはクラス出力144のうちの1つまたは複数を含む(またはそれらから生成される)。ニューラルネットワークシステム100は次いで、画像102の埋込みを、たとえば、1つまたは複数の他のニューラルネットワークによって、記憶またはさらなる処理のために下流システムに提供することができる。
たとえば、ニューラルネットワークシステムは、外部システムから画像102を受け取ることと、たとえば画像パッチ出力142a~nおよび/またはクラス出力144をもとの外部システムに提供することによって、画像102の埋込みをもとのシステムに提供することとを行うように構成され得る。外部システムは、各画像について、ニューラルネットワークを使用して画像の埋込みを処理して、画像についての予測を生成するように構成することができ、たとえば、外部システムは、ヘッドサブネットワーク150を含むことができる。特定の例として、ニューラルネットワークシステム100は、エッジデバイス、たとえば携帯電話、タブレットコンピュータ、または自律走行車両から画像を受け取るように構成され得る。エッジデバイスは次いで、ヘッドサブネットワーク150を実行して、画像についての予測を生成することができる。
図4を参照しながら以下でより詳細に説明するように、いくつかの実装形態では、自己注意ベースのサブネットワーク140は、ヘッドサブネットワーク150よりもはるかに多くのパラメータを含み、したがって実行するには計算コストがより高くなることがある。したがって、エッジデバイスには、自己注意ベースのサブネットワーク140を実行する計算リソースがない場合がある。したがって、ニューラルネットワークシステム100は、(たとえば、GPUまたはTPUなどの1つまたは複数の並列処理デバイスを使用して)自己注意ベースのサブネットワーク140を実行するように構成することができ、エッジデバイスは、ヘッドサブネットワーク150を実行する比較的計算コストがかからないタスクを行うことができる。たとえば、ニューラルネットワークシステム100は、クラウドで展開することができ、複数の異なるエッジデバイスに通信可能に接続することができる。
ニューラルネットワークシステム100は、画像102に関する任意の適切な機械学習タスク、たとえば、分類タスク、回帰タスク、またはそれらの組合せを行うように構成され得る。
特定の例として、ニューラルネットワークシステム100は、複数のカテゴリの各々に対応するそれぞれのスコアを含む分類出力を生成するように構成され得る。カテゴリのスコアは、画像がそのカテゴリに属する尤度を示す。いくつかの場合には、カテゴリは、物体のクラス(たとえば、犬、猫、人など)であってもよく、画像がカテゴリに対応する物体クラスに含まれる物体を示す場合、画像はカテゴリに属し得る。いくつかの場合には、カテゴリは、大域画像プロパティ(たとえば、画像が昼間のシーンを示すか、それとも夜間のシーンを示すか、または画像が夏のシーンを示すか、それとも冬のシーンを示すか)を表してもよく、画像がカテゴリに対応する大域プロパティを有する場合、画像はカテゴリに属し得る。
別の特定の例として、ニューラルネットワークシステム100は、画像の各ピクセルについて、複数のカテゴリの各々に対応するそれぞれのスコアを含むピクセルレベルの分類出力を生成するように構成され得る。所与のピクセルについて、カテゴリのスコアは、ピクセルがそのカテゴリに属する尤度を示す。いくつかの場合には、カテゴリは、物体のクラスであってもよく、ピクセルがカテゴリに対応する物体クラスに含まれる物体上の部分である場合、そのピクセルはカテゴリに属し得る。すなわち、ピクセルレベルの分類出力は、セマンティックセグメンテーション出力であってもよい。
別の特定の例として、ニューラルネットワークシステム100は、画像を特徴づける1つまたは複数の連続変数(すなわち、多くの考えられる数値を無限に仮定することができる)を推定する回帰出力を生成するように構成され得る。特定の例では、回帰出力は、画像中に示されるそれぞれの物体を囲むバウンディングボックスの座標を推定する場合がある。バウンディングボックスの座標は、バウンディングボックスの頂点の(x,y)座標によって定義され得る。たとえば、システムは、バウンディングボックスの座標の2つの(x,y)座標を出力してもよく、またはバウンディングボックスの中心の座標、ならびにバウンディングボックスの高さおよび幅を出力することができる。
いくつかの実装形態では、ニューラルネットワークシステム100は、ビデオ分析タスクを行うように構成され得る。たとえば、ニューラルネットワークシステム100は、ビデオのビデオフレームである複数の画像102を受け取ることができ、上記で説明したように各ビデオフレームを処理して、たとえば、ビデオフレームが特定のアクションを行っている人を示すかどうかを特徴づけることによって、ビデオフレームを特徴づける出力を生成することができる。
いくつかのそのような実装形態では、ニューラルネットワークシステム100は、それぞれの異なる時点で各ビデオフレームを処理して、ビデオフレームについての予測を特徴づける各ビデオフレームについてのそれぞれのネットワーク出力152を生成する。たとえば、ニューラルネットワークシステム100は、ビデオフレームの分類を予測するネットワーク出力152を生成することができる。いくつかのそのような実装形態では、ニューラルネットワークシステム100は、それぞれのビデオフレームに対応する複数のネットワーク出力152を組み合わせて、ビデオを特徴づける最終ネットワーク出力を生成する。たとえば、ニューラルネットワークシステム100は、下流ニューラルネットワーク、たとえば、リカレントニューラルネットワークを使用して、それぞれのネットワーク出力152を処理することができる。
いくつかの他の実装形態では、ニューラルネットワークシステム100は、各ビデオフレームを同時に処理して、ビデオを特徴づける単一のネットワーク出力152を生成する。すなわち、ニューラルネットワークシステム100は、複数の画像102を同時に処理するように構成され得る。たとえば、ニューラルネットワークシステム100は、上記で説明したように各画像102に対応するニューラルネットワーク130用のそれぞれの入力シーケンスを生成することができる。ニューラルネットワークシステム100は次いで、たとえば入力シーケンスを連結することによって、複数の入力シーケンスを組み合わせて単一の組合せ入力シーケンスにし、次いでニューラルネットワーク130を使用して組合せ入力シーケンスを処理することができる。
図2は、例示的な自己注意ベースのニューラルネットワーク200の図である。自己注意ベースのニューラルネットワーク200は、画像を処理し、画像についての予測を生成するように構成されたニューラルネットワークシステム、たとえば図1を参照しながら上記で説明したニューラルネットワークシステム100の、構成要素とすることができる。詳細には、自己注意ベースのニューラルネットワークは、画像についての予測を表すネットワーク出力を生成するように構成されたニューラルネットワーク、たとえば図1を参照しながら上記で説明したニューラルネットワーク130の、サブネットワークとすることができる。
自己注意ベースのニューラルネットワーク200は、画像を表し、複数の入力位置の各々にそれぞれの入力要素を含む入力シーケンス202を処理するように構成される。たとえば、入力シーケンス202は、図1を参照しながら上記で説明したように、画像の複数の画像パッチの各々を表すそれぞれの入力要素を含むことができる。自己注意ベースのニューラルネットワーク200は、入力シーケンス202を処理して、入力シーケンス202と同じ長さを有する、すなわち入力シーケンス202中に入力要素があるのと同数の出力要素を有する出力シーケンス204を生成するように構成される。
自己注意ベースのニューラルネットワーク200は、M個のネットワークブロック210a~m、M≧1を含む。各ネットワークブロック210a~mは、入力シーケンス202中の各入力位置についてのそれぞれのブロック入力要素を含むブロック入力シーケンスを受け取るように構成され、すなわち、各ブロック入力要素は、入力シーケンス202のそれぞれの入力要素に対応する。各ネットワークブロック210a~mは、ブロック入力シーケンスを処理し、入力シーケンス中の複数の入力位置の各々についてのそれぞれのブロック出力要素を含むブロック出力シーケンスを生成するように構成される。すなわち、各ブロック入力シーケンス212は、入力シーケンスがニューラルネットワーク200によって処理されるとき、入力シーケンス202中の要素の数を保存する。
シーケンス中の第1のネットワークブロック210aは、入力シーケンス202を受け取ることができる。シーケンス中の各後続ネットワークブロック210a~mは、シーケンス中の前のネットワークブロック210a~mによって生成されたそれぞれのブロック出力シーケンスを、ブロック入力シーケンスとして受け取ることができる。第Mの、かつ最後のネットワークブロック210mのブロック出力シーケンスは、出力シーケンス204とすることができる。
各ネットワークブロック210a~mは、1つまたは複数の自己注意ニューラルネットワーク層を含む。第kのネットワークブロック210kを参照すると、ネットワークブロック210kは、単一の自己注意ニューラルネットワーク層220を含む。いくつかの実装形態では、自己注意ニューラルネットワーク層220は、ブロック入力シーケンス212中のそれぞれのブロック入力要素を取得し、ブロック入力要素に注意機構を適用するように構成される。いくつかの他の実装形態では、自己注意ニューラルネットワーク層220は、ブロック入力シーケンス212中のブロック入力要素のそれぞれの処理済みバージョンを取得し、処理済みブロック入力要素に注意機構を適用するように構成される。たとえば、図2に示すように、ネットワークブロック210kはまず、ブロック入力シーケンス212に層正規化層を適用した後に、層正規化層の出力を自己注意ニューラルネットワーク層220に提供することができる。代わりにまたは加えて、ネットワークブロック210kは、自己注意ニューラルネットワーク層220の前に1つまたは複数の他のニューラルネットワーク層をブロック入力シーケンス212に適用することができ、たとえば、要素ごとの(element-wise)フィードフォワードニューラルネットワーク層を適用することができる。
詳細には、各特定の入力位置に対応するそれぞれのブロック入力要素(またはそれの処理済みバージョン)について、自己注意ニューラルネットワーク層220は、特定の入力位置でブロック入力要素から導出された1つまたは複数のクエリを使用して、入力位置(すなわち、他のブロック入力位置およびいくつかの実装形態ではそれ自体)でブロック入力要素に注意機構を適用して、特定の位置についてのそれぞれの出力を生成するように構成される。自己注意ニューラルネットワーク層220の出力は、各入力位置に対応するそれぞれの層出力要素を含む層出力シーケンスである。
いくつかの実装形態では、自己注意ベースのニューラルネットワーク200の自己注意ニューラルネットワーク層(たとえば、図2に示す自己注意ニューラルネットワーク層220)の一部または全部が、マルチヘッド自己注意ニューラルネットワーク層である。マルチヘッド自己注意ニューラルネットワーク層が、h個の異なる注意機構を並行して適用して、層出力要素のそれぞれのシーケンスを生成し、次いで層出力要素の複数のシーケンスを組み合わせて、層出力要素の最終シーケンスを生成する。
いくつかの実装形態では、自己注意ベースのニューラルネットワーク200の自己注意ニューラルネットワーク層(たとえば、図2に示す自己注意ニューラルネットワーク層220)の一部または全部が、ブロック入力シーケンス中のそれぞれのブロック入力要素の位置情報を注意機構に組み込む。
たとえば、特定のブロック入力要素に関して注意を適用するとき(すなわち、特定のブロック入力要素に対応するそれぞれの層出力要素を生成するとき)、自己注意ニューラルネットワーク層は、画像内の特定のブロック入力要素に対応する画像パッチの位置を表す注意位置埋込みを識別することができる。たとえば、各画像パッチに対応する注意位置埋込みは、入力シーケンス202に組み込まれた位置埋込みと同じものとすることができる。
特定のブロック入力要素に対応するそれぞれの層出力要素を生成すると、自己注意ニューラルネットワーク層は、以下の2つの異なる注意計算を、たとえば連続してまたは並行して、実行することができる。(i)特定のブロック入力要素から生成されたクエリが、それぞれのブロック入力要素から生成されたキーのセットに注目する第1の注意計算(すなわち、上記で説明した注意機構)、および(ii)特定のブロック入力要素の注意位置埋込みから生成されたクエリが、それぞれのブロック入力要素の注意位置埋込みから生成されたキーのセットに注目する第2の注意計算。自己注意ニューラルネットワーク層は、次いで2つの注意計算の出力を組み合わせて、たとえば、2つの注意計算の出力の和を決定することによって、特定のブロック入力要素についての最終層出力要素を生成することができる。
別の例として、特定のブロック入力要素に関して注意を適用すると、自己注意ニューラルネットワーク層は、(i)特定のブロック入力要素と、(ii)各他のブロック入力要素との間のそれぞれのオフセットを決定することができる。たとえば、ブロック入力シーケンス内で隣接するブロック入力要素は、「1」などのオフセットを有することがある。
自己注意ニューラルネットワーク層は、各オフセットに対応するそれぞれのオフセット埋込みを識別することができる。たとえば、各オフセットに対応するオフセット埋込みは、たとえば、入力シーケンス202に組み込まれた位置埋込みに関して上記で説明したように、ニューラルネットワーク200の訓練中に機械学習され得る。
自己注意ニューラルネットワーク層は次いで、第2の注意計算中に注意位置埋込みの代わりにオフセット埋込みを使用することを除いて、上記で説明したように2つの注意計算を実行することができる。
いくつかの実装形態では、ネットワークブロック210a~mのうちの1つまたは複数は、自己注意ニューラルネットワーク層の出力を自己注意ニューラルネットワーク層の入力と組み合わせる残差接続層(residual connection layer)を含む。代わりにまたは加えて、1つまたは複数のネットワークブロック210a~mは、自己注意ニューラルネットワーク層の入力および/または出力に層正規化を適用する層正規化層を含むことができる。これらの層は、図2では「ノルム(Norm)」と呼ばれる。
いくつかの実装形態では、1つまたは複数のネットワークブロック210a~mは、1つまたは複数の位置ごとの(position-wise)フィードフォワードニューラルネットワーク層を含む。たとえば、第kのネットワークブロック210kは、フィードフォワードニューラルネットワーク層230を含む。フィードフォワード層230は、入力シーケンス202の各入力位置について、その位置の入力要素を受け取り、その位置の入力要素に変換のシーケンスを適用して、その位置の出力要素を生成するように構成される。たとえば、変換のシーケンスは、活性化関数、たとえば、非線形の要素ごとの活性化関数、たとえばReLU活性化関数によって各々分離された2つ以上の学習済み線形変換を含むことができる。特定の例として、フィードフォワードニューラルネットワークは、1つ、2つ、またはそれ以上のフィードフォワードニューラルネットワーク層を含む多層パーセプトロンとすることができる。位置ごとのフィードフォワード層230によって受け取られた入力要素は、自己注意ニューラルネットワーク層220に続く層正規化層の出力とすることができ、または位置ごとのフィードフォワード層230によって受け取られた入力要素は、層正規化層がないとき、自己注意ニューラルネットワーク層220自体の出力とすることができる。
いくつかの実装形態では、ネットワークブロック210a~mのうちの1つまたは複数は、位置ごとのフィードフォワードニューラルネットワーク層の出力を、位置ごとのフィードフォワードニューラルネットワーク層への入力と組み合わせる残差接続層を含む。
上記で説明したように、いくつかの実装形態では、入力シーケンス202の各入力要素が、それぞれの位置埋込みを含むか、またはそれから生成されている。入力シーケンス202の入力要素に位置埋込みを組み込む代わりに、またはそれに加えて、自己注意ベースのニューラルネットワーク200は、ネットワークブロック210a~mのうちの1つまたは複数のそれぞれのブロック入力シーケンス212のブロック入力要素に位置埋込みを組み込むことができる。たとえば、各ネットワークブロック210a~mのそれぞれのブロック入力シーケンス212を処理する前に、自己注意ベースのニューラルネットワークは、ブロック入力シーケンス212の各ブロック入力要素へのそれぞれの位置埋込み、たとえば、機械学習済みの位置埋込みを付加することができる。いくつかの実装形態では、各ネットワークブロック210a~mは、学習済みの位置埋込みのそれぞれの異なるセットを使用する。いくつかの他の実装形態では、各ネットワークブロック210a~mは、学習済みの位置埋込みの同じセットを使用する。
出力シーケンス204を生成した後、自己注意ベースのニューラルネットワーク200は、出力シーケンス204を1つまたは複数の下流システムに提供することができる。たとえば、自己注意ニューラルネットワーク200は、1つまたは複数のヘッドニューラルネットワークに出力シーケンス204を提供して、図1を参照しながら上記で説明したように、それぞれの機械学習タスクについての予測を生成することができる。別の例として、自己注意ベースのニューラルネットワーク200は、入力シーケンス202に対応する画像の埋込みを表すことができる出力シーケンス204をデータベースに、またはさらなる処理のために1つもしくは複数の下流機械学習モデルに提供することができる。
図3は、画像パッチにセグメント化された例示的な画像310、320、330、340、350、および360を示す。
画像310~360は、画像310~360を処理して、画像310~360についての予測を生成するように構成されたニューラルネットワークシステム、たとえば図1を参照しながら上記で説明したニューラルネットワークシステム100に入力として提供され得る。ニューラルネットワークシステムは、画像310~360を複数の画像パッチにセグメント化する画像パッチ生成システム、たとえば図1を参照しながら上記で説明した画像パッチ生成システム110を含むことができる。画像パッチ、または画像パッチから生成されたネットワーク入力は、次いで自己注意ベースのニューラルネットワークによって処理されて、画像についての予測を生成することができる。
画像310、320、330、340、350、および360は、画像を画像パッチにセグメント化するための異なる可能性を示す。詳細には、図3では各画像310は、各々視覚的に異なっている、すなわち異なる陰影または網掛けを使用している複数の画像パッチのセットにセグメント化されて、示されている。一般に、画像生成システムは、受け取った画像すべてを同じスキーマに従ってセグメント化するように構成される。すなわち、図示の画像310、320、330、340、350、および360は異なるスキーマに従ってセグメント化されているので、本画像生成システムは、これらの各々を必ずしもセグメント化しない。
第1の画像310に示すように、いくつかの実装形態では、画像パッチ生成システムは、同じサイズおよび形状を各々有する画像パッチを生成することができ、たとえば、各画像パッチは長方形とすることができる。さらに、いくつかの実装形態では、画像パッチ生成システムは、すべてのピクセルが正確に1つの画像パッチのメンバーであるように、第1の画像310をセグメント化することができる。特定の例として、図3に示すように、画像パッチは、同じサイズの長方形のグリッドを表すことができる。別の特定の例として、画像パッチは、同じサイズの六角形のグリッドを表すことができる。
第2の画像320に示すように、いくつかの実装形態では、画像パッチ生成システムは、異なるサイズを有する画像パッチを生成することができる。
第3の画像330に示すように、いくつかの実装形態では、画像パッチ生成システムは、いくつかのピクセルが複数の異なる画像パッチのメンバーであるように、第3の画像330をセグメント化することができる。
第4の画像340に示すように、いくつかの実装形態では、画像パッチ生成システムは、いくつかのピクセルがいずれの画像パッチのメンバーでもないように、第4の画像340をセグメント化することができる。たとえば、画像生成システムは、1つまたは複数の関心領域を識別するために機械学習モデルを使用して第4の画像340を処理することができ、画像パッチ生成システムは、識別された関心領域各々についてそれぞれのパッチを生成することができる。たとえば、機械学習モデルは、1つまたは複数のピクセルを識別するように構成することができ、画像パッチ生成システムは、各識別されたピクセルを中心とするそれぞれのパッチを生成することができる。
第5の画像350に示すように、いくつかの実装形態では、画像パッチ生成システムは、任意の形状の画像パッチを生成することができる。すなわち、画像パッチは、長方形である必要がない。たとえば、画像生成システムは、たとえば、第5の画像350中の各ピクセルにそれぞれのクラスを割り当てることによって第5の画像350をセグメント化するように構成された機械学習モデルを使用して、第5の画像350を処理することができる。画像パッチ生成システムは次いで、機械学習モデルによって同じクラスを割り当てられたピクセルの隣接したセット各々についてそれぞれのパッチを生成することができる。
第6の画像360に示すように、いくつかの実装形態では、画像パッチ生成システムは、画像の各ピクセルを含む1次元空間充填曲線を生成することができる。画像パッチ生成システムは次いで、1次元空間充填曲線をセグメント化して、1次元画像パッチのセットを生成することができる。特定の例として、画像パッチ生成システムは、画像の各列または行をその列または行のピクセルのn個のサブシーケンスにセグメント化し、各サブシーケンスが画像パッチを表すようにすることができる。
画像310~360は2次元画像(または複数のチャネルを有し、2次元である画像、たとえばRGB画像)として図3に示されているが、一般にニューラルネットワークシステムは、図1を参照しながら上記で説明したように、どんなタイプの画像についても予測を生成するように構成され得る。
図4は、例示的な訓練システム400の図である。訓練システム400は、以下で説明するシステム、構成要素、および技法を実装することができる、1つまたは複数の場所の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例である。
訓練システム400は、第1の機械学習タスクを行うようにベースニューラルネットワーク420を訓練し、第1の機械学習タスクとは異なるそれぞれの第2の機械学習タスクを行うように1つまたは複数のタスクニューラルネットワーク450を訓練するように構成される。詳細には、訓練システム400は、ベースニューラルネットワーク420からの訓練済みパラメータを使用して、1つまたは複数のタスクニューラルネットワーク450のためのパラメータを生成することができる。
ベースニューラルネットワーク420および1つまたは複数のタスクニューラルネットワーク450は各々、画像を表す入力シーケンスを処理するように構成され、入力シーケンスは、上記で説明したように、対応する画像のそれぞれの画像パッチに対応する1つまたは複数の要素を含む。第1の機械学習タスクおよび1つまたは複数の第2の機械学習タスクは各々、いずれかの適切な機械学習タスクとすることができる。たとえば、第1の機械学習タスクおよび1つまたは複数の第2の機械学習タスクは、図1を参照しながら上記で説明したタスクのうちの1つまたは複数を含むことができる。
いくつかの実装形態では、第1の機械学習タスク(すなわち、自己注意ベースのサブネットワーク430が事前訓練された機械学習タスク)は、自己教師あり機械学習タスクである。すなわち、訓練システム400は、グランドトゥルースラベルを含まない訓練データセットを使用して、代わりに訓練データセットの一部分、訓練データセットの残りに対するグランドトゥルースラベルを使用して、ベースニューラルネットワーク420を訓練することができる。特定の例として、第1の機械学習タスクは、マスクされた画像予測タスクとすることができ、ベースニューラルネットワーク420は、それぞれの画像(すなわち、1つまたは複数のピクセルが「マスク」されている画像)の部分を表す入力シーケンス412を処理し、画像のマスクされた部分の内容の予測を表すベースネットワーク出力422を生成する。たとえば、訓練システム400は、完全な、マスクされていない画像中の各画像パッチについてのそれぞれの要素を含む初期入力シーケンスを生成し、次いで要素のうちの1つまたは複数を除去するか、または対応する画像パッチが画像からマスクされたことを識別する同じ「マスク」トークンを使用して、要素のうちの1つまたは複数を置き換えることができる。
ニューラルネットワークの各々が、それぞれの自己注意ベースのサブネットワークと、それぞれのヘッドサブネットワークとを含む。詳細には、ベースニューラルネットワーク420は、自己注意ベースのサブネットワーク430と、ベースヘッドサブネットワーク440とを含み、タスクニューラルネットワーク450の各々は、それぞれの自己注意ベースのサブネットワーク460と、それぞれのタスクヘッドサブネットワーク470とを含む。各自己注意ベースのサブネットワークおよび各ヘッドサブネットワーク440は、それぞれ、図1に示す自己注意ベースのサブネットワーク140およびヘッドサブネットワーク150を参照しながら上記で説明したように構成され得る。
自己注意ベースのサブネットワーク430および460の各々は、互いに同様に構成することができ、たとえば、同じ数およびサイズのニューラルネットワーク層を有する同じネットワークアーキテクチャを有することができる。ベースヘッドサブネットワーク440および470の各々は、しかしながら、詳細には対応する機械学習タスクのために構成することができる。すなわち、ベースヘッドサブネットワーク440は、詳細には第1の機械学習タスクのために構成することができ、各タスクヘッドサブネットワーク470は、詳細には対応する第2の機械学習タスクのために構成することができる。たとえば、各ヘッドサブネットワーク440および470は、対応する機械学習タスクに必要とされるフォーマットを有するそれぞれのネットワーク出力を生成するように構成することができる。したがって、異なるヘッドサブネットワークは、異なるネットワークアーキテクチャを有することができる。特定の例として、ヘッドサブネットワークのうちの1つまたは複数は、1つ、2つ、またはそれ以上のフィードフォワードニューラルネットワーク層を含む多層パーセプトロンとすることができる。
訓練システム400は、第1の機械学習タスクおよび1つまたは複数の第2の機械学習タスクのためのそれぞれの訓練データセットを維持するように構成された訓練データストアを含む。いくつかの実装形態では、第2の機械学習タスクのための訓練データセットは、第1の機械学習タスクのための訓練データセットよりも小さく、したがって訓練システム400は、訓練データの相対的不足によって妨げられる可能性があるタスクニューラルネットワーク450の訓練を補うために、より大きい訓練データセットを使用して訓練された、ベースニューラルネットワーク420の訓練済みパラメータを活用するように構成され得る。
各訓練データセットは、訓練画像のそれぞれのセットから生成することができ、すなわち特定の訓練データセット中の各訓練例は、訓練データセットに対応する訓練画像のセットからのそれぞれの訓練画像から生成することができる。いくつかの実装形態では、各訓練データセットは、画像の同じセットから生成されており、いくつかの他の実装形態では、異なる訓練データセットが、画像の異なるセットから生成され得る。
訓練システムは、第1の機械学習タスクに対応する訓練データセットからベースニューラルネットワーク420に入力シーケンス412を提供することができる。訓練システム400は、自己注意ベースのサブネットワーク430およびベースヘッドサブネットワーク440を使用して入力シーケンスを処理して、ベースネットワーク出力422を生成することができる。
訓練システム400は、ベースネットワーク出力422を取得し、ベースネットワーク出力422の誤差を決定し、誤差に従ってベースニューラルネットワーク420のためのパラメータ更新482を生成するように構成された訓練エンジン480を含む。訓練エンジン480は、いずれかの適切な訓練技法を使用してパラメータ更新482を生成することができる。たとえば、訓練エンジン480は、教師あり学習、教師なし学習、半教師あり学習、自己教師あり学習、蒸留(distillation)学習(ベースニューラルネットワーク420が「教師」ニューラルネットワークの出力に一致するベースネットワーク出力422を生成するように訓練される)、または敵対的学習(ベースニューラルネットワーク420が弁別器ニューラルネットワークによって、ベースニューラルネットワーク420により生成されていないと予測されるベースネットワーク出力422を生成するように訓練される)のうちの1つまたは複数を使用することができる。
特定の例として、訓練システム400が、グランドトゥルースネットワーク出力を含む訓練データセットを使用して教師あり学習を実行する実装形態では、訓練エンジン480は、ベースネットワーク出力422と入力シーケンス412に対応するグランドトゥルースネットワーク出力との間の差を決定することができる。訓練エンジン480は、ベースニューラルネットワーク420を通して誤差を逆伝播し、確率的勾配降下を行うことによって、パラメータ更新482を生成することができる。パラメータ更新482は、自己注意ベースのサブネットワーク430とベースヘッドサブネットワーク440の両方のパラメータについてのそれぞれの更新を含むことができる。
ベースニューラルネットワーク420の訓練を完了した後、訓練システム100は、ベースニューラルネットワーク420の訓練済みパラメータを使用して、1つまたは複数のタスクニューラルネットワーク450を生成することができる。
詳細には、訓練システム400は、自己注意ベースのサブネットワークの訓練済みパラメータ432を取得し、訓練済みパラメータを自己注意ベースのサブネットワーク460に適用する、すなわち、自己注意ベースのサブネットワーク460のパラメータを訓練済みパラメータ432と同じになるように設定することができる。上記で説明したように、自己注意ベースのサブネットワーク430および460の各々は、互いに同様に構成することができ、したがって、サブネットワーク430の訓練は、サブネットワーク460の各々に転送することができる。
ベースニューラルネットワーク420の訓練中に、自己注意ベースのサブネットワーク430は、対応する入力画像についての情報を符号化する入力シーケンスの表現を生成するよう学習することができ、これは、第1の機械学習タスクおよび1つまたは複数の第2の機械学習タスクを含む複数の異なる機械学習タスクを行うのに役立つ。すなわち、自己注意ベースのサブネットワーク430によって表現に符号化された情報は、自己注意サブネットワーク430が第2の機械学習タスクを使用して訓練されなかったとしても、第2の機械学習タスクに役立つことがある。
しかしながら、ベースヘッドサブネットワーク440の訓練済みパラメータを取得し、それらをタスクヘッドサブネットワーク470に適用する代わりに、訓練システム100は、たとえば、初期化されたパラメータをランダムにサンプリングすることによって、タスクサブネットワーク470のための初期化されたパラメータ472を生成することができる。ヘッドサブネットワーク440および470の各々は、特にそれらのそれぞれの機械学習タスクのために構成されるので、ベースヘッドサブネットワーク440の訓練は、タスクヘッドサブネットワーク470に転送することができない。
言い換えれば、タスクニューラルネットワーク450の1つを生成するために、訓練システム400は、ベースニューラルネットワーク420からベースヘッドサブネットワーク440を廃棄し、ベースヘッドサブネットワーク440を新たに初期化されたタスクヘッドサブネットワーク470に置き換えることができる。
いくつかの実装形態では、自己注意ベースのサブネットワーク430および460は、ヘッドサブネットワーク440および470よりも大きい(たとえば、より大きいネットワークパラメータを有する)。特定の例として、自己注意ベースのサブネットワークは、数百万、数億、数十億、または数千億のパラメータを含むことがあり、ヘッドサブネットワークは、数百、数千、または数十万のパラメータを含むことがある。したがって、自己注意ベースのサブネットワーク430を事前訓練し、事前訓練済みのサブネットワーク430を使用して、1つまたは複数のタスクヘッドサブネットワーク470のためのパラメータを決定することによって、訓練システム400は、各タスクニューラルネットワーク450がスクラッチから訓練された場合よりもはるかに効率的にタスクニューラルネットワーク450を訓練することができる。タスクニューラルネットワーク450を訓練する時間および計算コストの大部分は、自己注意ベースのサブネットワーク430の事前訓練の間に「前もって」完了され得る。すなわち、自己注意ベースのサブネットワーク430を訓練するコストは、複数のタスクニューラルネットワーク450にわたって償還され得る。
訓練システムは、タスクニューラルネットワークを訓練して、新たなタスクヘッドサブネットワーク470のための訓練済みパラメータを生成することができる。
詳細には、各タスクニューラルネットワーク450について、訓練システム100は、タスクニューラルネットワーク450の第2の機械学習タスクに対応する訓練データセットからの入力シーケンス414を処理するためにタスクニューラルネットワーク450を使用し、タスクネットワーク出力452を生成することができる。いくつかの実装形態では、入力シーケンス414は、入力シーケンス412とは異なる形式(たとえば、異なる数またはサイズの要素)を有する。これらの実装形態では、タスクニューラルネットワーク450は、自己注意ベースのサブネットワーク460が処理するように構成された次元数に入力シーケンス414を投影するように構成された、自己注意ベースのサブネットワーク460の前の1つまたは複数の入力ニューラルネットワーク層を含むことができる。
機械学習済み位置埋込みが入力シーケンス414の要素に組み込まれたいくつかの実装形態では、訓練システム400は、タスクニューラルネットワーク450の訓練中に位置埋込みを微調整する。いくつかの他のそのような実装形態では、訓練システム400は位置埋込みを微調整しない。
いくつかの実装形態では、ベースニューラルネットワーク420のための訓練データセットを生成するために使用される訓練画像のセットは、タスクニューラルネットワーク450のための訓練データセットを生成するために使用される訓練画像のセットとは異なる解像度を有する画像を含む。すなわち、入力シーケンス414は、入力シーケンス412によって表される画像とは異なる解像度を有する画像を表すことができる。
特定の例として、入力シーケンス414は、入力シーケンス412よりも高い解像度の画像を表すことがあり、すなわち、自己注意ベースのサブネットワークは、それの元の訓練中よりも大きい画像で微調整されることがある。各画像パッチが同じサイズであり、各画像の各ピクセルが厳密に1つの画像パッチに含まれるいくつかの実装形態では、入力シーケンス412および入力シーケンス414は、同数の要素を有することがあり、すなわち、入力シーケンス414の各要素は、入力シーケンス412の各要素よりも大きい画像パッチを表す。
いくつかの他のそのような実装形態では、入力シーケンス412および入力シーケンス414の要素は、同じサイズの画像パッチを表すことがあり、すなわち、入力シーケンス414は、入力シーケンス412よりも長いことがある。これは、入力シーケンス412および414の要素に機械学習済み位置埋込みを組み込む実装形態(たとえば、上記で説明したように、ベースニューラルネットワーク420の訓練中に学習された位置埋込み)において、入力シーケンス414の追加の要素が位置埋込みを学習していないので、問題を生じることがある。
したがって、いくつかの実装形態では、訓練システム400は、ベースニューラルネットワーク420の入力シーケンスに対して学習された位置埋込みを使用して、追加の要素に対する位置埋込みを決定することができる。たとえば、訓練システム400は、追加の要素に対する位置埋込みを(たとえば、各位置埋込みをゼロであるように初期化することによって、または位置埋込みをランダムに初期化することによって)初期化し、タスクニューラルネットワーク450の訓練中に位置埋込みを訓練することができる。
別の例として、訓練システム400は、訓練画像中の追加の画像パッチの場所に従って、ベースニューラルネットワーク420に対して学習された位置埋込みに2次元補間を行うことができる。ほんのいくつかの例を挙げれば、訓練システム400は、2次元線形補間、2次元バイキュービック補間、または2次元ランツォシュ(Lanczos)補間を使用することができる。
訓練エンジン480は、タスクネットワーク出力452を取得し、タスクネットワーク出力452の誤差を決定し、誤差に従ってタスクニューラルネットワーク450のためのパラメータ更新484を生成することができる。
いくつかの実装形態では、パラメータ更新484は、自己注意ベースのサブネットワーク460とベースヘッドサブネットワーク470の両方のパラメータについてのそれぞれの更新を含む。すなわち、訓練システム400は、自己注意ベースのサブネットワーク460のパラメータを、パラメータがベースニューラルネットワーク420の訓練中にすでに訓練されていても、さらに微調整することができる。
いくつかの他の実装形態では、パラメータ更新484は、タスクヘッドサブネットワーク470のパラメータについての更新のみを含む。すなわち、訓練システム100は、タスクニューラルネットワーク450の訓練中に自己注意ベースのサブネットワーク460のパラメータを「フリーズする」ことができる。
いくつかの実装形態では、ベースニューラルネットワーク420を事前訓練する代わりに、訓練システム400は、外部システムから自己注意ベースのサブネットワーク430の訓練済みパラメータ432を取得することができる。
いくつかの実装形態では、図1を参照しながら上記で説明したように、1つまたは複数のタスクニューラルネットワーク450が訓練された後に、自己注意ベースのサブネットワーク460、それぞれのタスクヘッドサブネットワーク470は、たとえば、通信可能に接続された別個のコンピューティングデバイス上に別個に展開され得る。たとえば、自己注意ベースのサブネットワーク460は、データセンタで展開されることがあり、タスクヘッドサブネットワーク470は、限られた計算リソースを有するエッジデバイス上に展開されることがある。エッジデバイスはその場合、画像をデータセンタに提供することができ、データセンタは、自己注意ベースのサブネットワーク460を使用して画像を処理して、画像の埋込みを生成することができる。データセンタはその場合、埋込みをもとのエッジデバイスに提供することができ、エッジデバイスは、それぞれのタスクヘッドサブネットワーク470を使用して埋込みを処理して、画像の予測を生成することができる。
図5は、自己注意ベースのニューラルネットワークを使用して1つまたは複数の画像についての予測を生成するための例示的なプロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって行われるものとして説明する。たとえば、本明細書に従って適切にプログラムされたニューラルネットワークシステム、たとえば、図1に示すニューラルネットワークシステム100が、プロセス500を行うことができる。
自己注意ベースのニューラルネットワークは、1つまたは複数の自己注意ニューラルネットワーク層を含むことができる。たとえば、自己注意ベースのニューラルネットワークは、図1を参照しながら上記で説明したニューラルネットワーク130とすることができる。
システムは、1つまたは複数の画像を取得する(ステップ502)。各画像は、複数のピクセルを含む。
システムは、1つまたは複数の画像の各画像について、画像の複数の画像パッチのセットを決定する(ステップ504)。各画像パッチは、画像のピクセルの異なるサブセットを含む。
システムは、1つまたは複数の画像の各画像について、画像パッチの対応するセットを処理して、入力シーケンスを生成する(ステップ506)。入力シーケンスは、複数の入力位置の各々にそれぞれの要素を含むことができ、入力要素のうちの1つまたは複数が、画像のそれぞれのパッチに対応する。
いくつかの実装形態では、各画像パッチについて、システムは、画像パッチのピクセルを含む、それぞれの1次元初期入力要素を生成することができる。たとえば、初期入力要素は、画像パッチの平坦化バージョンとすることができる。システムは次いで、初期入力要素を使用して画像パッチに対応する入力要素を生成することができる。たとえば、システムは、第2のニューラルネットワークを使用して初期入力要素を処理することによって、入力要素を生成することができる。第2のニューラルネットワークは、画像パッチ埋込みシステム、たとえば、図1を参照しながら上記で説明した画像パッチ埋込みシステム120の構成要素である埋込みニューラルネットワークとすることができる。特定の例として、埋込みニューラルネットワークは、1つまたは複数の全結合(fully-connected)ニューラルネットワーク層を含むことができる。
いくつかの実装形態では、システムは、画像パッチを処理して、それぞれの中間入力要素を生成することができる。たとえば、中間入力要素は、画像パッチの平坦化バージョン、または(たとえば、上記で説明したように埋込みニューラルネットワークによって生成されたような)それの処理済みバージョンとすることができる。システムは、次いで各中間入力要素を、画像中の対応する画像パッチの位置を表すそれぞれの位置埋込みと組み合わせることができる。たとえば、各位置埋込みは、整数とすることができる。別の例として、各位置埋込みは、機械学習され得る。
いくつかの実装形態では、特定の画像に対応する入力シーケンスは、画像の画像パッチに対応する入力要素に加えて1つまたは複数の入力要素を含む。たとえば、入力シーケンスは、機械学習済みのテンソル、たとえば、図1を参照しながら上記で説明したクラス埋込み124を含むことができる。
システムは、自己注意ベースのニューラルネットワークを使用して入力シーケンスを処理して、1つまたは複数の画像を特徴づけるネットワーク出力を生成する(ステップ508)。
たとえば、システムは、自己注意ベースのニューラルネットワークの自己注意ベースのサブネットワーク(たとえば、図1を参照しながら上記で説明した自己注意ベースのサブネットワーク140)を使用して入力シーケンスを処理して、入力シーケンスの各入力要素についてそれぞれの出力要素を生成することができる。
システムは次いで、第3のニューラルネットワーク要素を使用して1つまたは複数の出力要素を処理して、ネットワーク出力を生成することができる。たとえば、第3のニューラルネットワークは、自己注意ベースのニューラルネットワークの別のサブネットワーク、たとえば、図1を参照しながら上記で説明したヘッドサブネットワーク150と同様に構成されたヘッドサブネットワークであることがある。特定の例として、ヘッドサブネットワークは、機械学習済みテンソル(たとえば、クラス埋込み124)に対応する出力要素のみを処理して、ネットワーク出力を生成するように構成され得る。
いくつかのそのような実装形態では、ヘッドサブネットワークは、第1のタイプの(たとえば、第1の機械学習タスクに対応する)ネットワーク出力を生成するように構成され、自己注意ベースのサブネットワークは、第4のニューラルネットワークと同時に訓練されて、第1のタイプとは異なる第2のタイプのネットワーク出力(たとえば、第2の機械学習タスク)を生成する。第4のニューラルネットワークは、異なるヘッドサブネットワーク、たとえば図4を参照しながら上記で説明したベースヘッドサブネットワーク440であることがある。
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書で説明される主題および機能的動作の実施形態は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示される構造およびそれらの構造的均等物を含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることがある。代替的にまたは追加として、プログラム命令は、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械生成電気、光学、または電磁信号上で符号化することができる。
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であること、またはさらにそれらを含むこともできる。装置は、場合によってはハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるかまたはそれらとして説明されることもあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含む任意の形態で展開され得る。プログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部分を記憶するファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
本明細書では、「データベース」という用語は、データの何らかの収集物を指すために広く使用され、データは、特定の方法で構造化される必要はなく、またはまったく構造化される必要はなく、1つまたは複数の場所のストレージデバイス上に記憶され得る。したがって、たとえば、索引データベースは、データの複数の収集物を含むことができ、それらの各々が、異なるように整理され、アクセスされてもよい。
同様に、本明細書では、「エンジン」という用語は、1つもしくは複数の特定の機能を実行するようにプログラムされているソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータ上にインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを、同じ1つまたは複数のコンピュータにインストールし、そこにおいて実行することができる。
本明細書で説明されるプロセスおよび論理フローは、入力データを操作し出力を生成することによって機能を実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実施され得る。プロセスおよび論理フローは、たとえばFPGAもしくはASICなどの専用論理回路によって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは他の種類の中央処理ユニットに基づくことができる。一般的に中央処理ユニットは、読取り専用メモリ、もしくはランダムアクセスメモリ、または両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用論理回路によって補うまたはそこに組み込むことができる。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイス中に組み込むことができる。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CD-ROMディスクおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびに、キーボード、および、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取られてもよい。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、たとえば、ユーザのデバイス上のウェブブラウザから受信された要求に応答してそのウェブブラウザにウェブページを送ることによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習の訓練または製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むこともできる。
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開することができる。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、ユーザが本明細書に記載される主題の実装と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、デジタルデータ通信の任意の形態または媒体、たとえば通信ネットワークによって、相互接続可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットを含む。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔にあり、通常、通信ネットワークを通じて相互作用する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行し互いにクライアントサーバ関係を有することによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえば、HTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
上記で説明した実施形態に加えて、以下の実施形態も革新的である。
実施形態1は、
複数のピクセルを含む1つまたは複数の画像を取得するステップと、
1つまたは複数の画像の各画像について、画像の複数の画像パッチを決定するステップであって、各画像パッチが画像のピクセルの異なるサブセットを含む、ステップと、
1つまたは複数の画像の各画像について、複数の入力位置の各々にそれぞれの入力要素を含む入力シーケンスを生成するために、対応する複数の画像パッチを処理するステップであって、複数の入力要素がそれぞれの異なる画像パッチに対応する、ステップと、
1つまたは複数の画像を特徴づけるネットワーク出力を生成するために、ニューラルネットワークを使用して入力シーケンスを処理するステップであって、ニューラルネットワークが1つまたは複数の自己注意ニューラルネットワーク層を含む、ステップと
を含む方法である。
実施形態2は、入力シーケンスを生成するために、画像に対応する複数の画像パッチを処理するステップが、各画像パッチについて、
画像パッチのピクセルを含むそれぞれの1次元初期入力要素を生成するステップと、
それぞれの初期入力要素を使用して、それぞれの入力要素を生成するステップと
を含む、実施形態1の方法である。
実施形態3は、各画像パッチが、次元数L×W×Cを有し、Cが画像のチャネル数を表し、各初期入力要素が、次元数1×(L・W・C)を有する、実施形態2の方法である。
実施形態4は、それぞれの初期入力要素を使用してそれぞれの入力要素を生成するステップが、第2のニューラルネットワークを使用して初期入力要素を処理するステップを含む、実施形態2または3の方法である。
実施形態5は、第2のニューラルネットワークが、1つまたは複数の全結合ニューラルネットワーク層を含む、実施形態4の方法である。
実施形態6は、入力シーケンスを生成するために、画像に対応する複数の画像パッチを処理するステップが、
それぞれの中間入力要素を生成するために複数の画像パッチを処理するステップと、
それぞれの入力要素を生成するために、各中間入力要素について、画像中の対応する画像パッチの位置を表す位置埋込みと、中間入力要素を組み合わせるステップと
を含む、実施形態1から5のいずれか1つの方法である。
実施形態7は、各位置埋込みが整数である、実施形態6の方法である。
実施形態8は、各位置埋込みが機械学習済みである、実施形態6の方法である。
実施形態9は、入力シーケンス中の特定の入力要素が機械学習済みテンソルである、実施形態1から8のいずれか1つの方法である。
実施形態10は、画像を特徴づけるネットワーク出力を生成するためにニューラルネットワークを使用して入力シーケンスを処理するステップが、
入力シーケンス中の各入力要素についてそれぞれの出力要素を生成するために、ニューラルネットワークを使用して入力シーケンスを処理するステップと、
ネットワーク出力を生成するために、第3のニューラルネットワークを使用して出力要素のうちの1つまたは複数を処理するステップと
を含む、実施形態1から9のいずれか1つの方法である。
実施形態11は、
第3のニューラルネットワークが、第1のタイプのネットワーク出力を生成するように構成され、
ニューラルネットワークが、第1のタイプとは異なる第2のタイプのネットワーク出力を生成するために、第4のニューラルネットワークと同時に訓練された、実施形態10の方法である。
実施形態12は、ニューラルネットワークの複数のネットワークパラメータが、第3のニューラルネットワークの訓練中に更新された、実施形態11の方法である。
実施形態13は、第3のニューラルネットワークが多層パーセプトロンである、実施形態10から12のいずれか1つの方法である。
実施形態14は、それぞれの入力シーケンスについて、
入力シーケンス中の特定の入力要素が機械学習済みテンソルであり、
第3のニューラルネットワークを使用して1つまたは複数の出力要素を処理するステップが、画像の予測を生成するために第3のニューラルネットワークを使用して特定の入力要素に対応する出力要素を処理するステップを含む、
実施形態10から13のいずれか1つの方法である。
実施形態15は、自己注意ニューラルネットワーク層のうちの1つまたは複数が、マルチヘッド自己注意ニューラルネットワーク層である、実施形態1から14のいずれか1つの方法である。
実施形態16は、ニューラルネットワークが、1つまたは複数のサブネットワークのシーケンスを含み、各サブネットワークが複数の入力位置の各々についてそれぞれのサブネットワーク入力を受け取ることと、複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成することとを行うように構成され、各サブネットワークが、自己注意ニューラルネットワーク層と、位置ごとのフィードフォワードニューラルネットワーク層とを含む、実施形態1から15のいずれか1つの方法である。
実施形態17は、各サブネットワークが、
複数の入力位置の各々についてサブネットワーク入力に層正規化を適用する第1の層正規化層か、
複数の入力位置の各々についてサブネットワーク入力と自己注意ニューラルネットワーク層の出力を組み合わせる第1の残差接続層か、
第1の残差接続層の出力に層正規化を適用する第2の層正規化層か、または
第1の残差接続層の出力と位置ごとのフィードフォワードニューラルネットワーク層の出力を組み合わせる第2の残差接続層
のうちの1つまたは複数をさらに含む、実施形態16の方法である。
実施形態18は、
ネットワーク出力が、複数のカテゴリの各々に対応するそれぞれのスコアを含む分類出力を含み、カテゴリのスコアが、画像がそのカテゴリに属する尤度を示すか、
ネットワーク出力が、画像中の各ピクセルについて、複数のカテゴリの各々に対応するそれぞれのスコアを含む、ピクセルレベルの分類出力を含み、カテゴリのスコアが、ピクセルがそのカテゴリに属する尤度を示すか、
ネットワーク出力が、画像に示されたそれぞれの物体を囲む1つまたは複数のバウンディングボックスの座標を含むか、または
ニューラルネットワークが、ビデオのビデオフレームである複数の画像を受け取り、ネットワーク出力が、ビデオフレームを特徴づける出力を含む、
実施形態1から17のいずれか1つの方法である。
実施形態19は、ビデオフレームを特徴づける出力が、ビデオフレームが特定のアクションを行っている人を示すかどうかを特徴づける出力を含む、実施形態18の方法である。
実施形態20は、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに実施形態1から19のいずれか1つの方法を行わせるように動作可能な命令を記憶する1つまたは複数のストレージデバイスとを備えるシステムである。
実施形態21は、データ処理装置によって実行されると、データ処理装置に実施形態1から19のいずれか1つの方法を行わせるように動作可能な命令を含む、コンピュータプログラムで符号化されたコンピュータ記憶媒体である。
本明細書は、多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書に記載されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているが、いくつかの場合、請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、もしくは逐次的な順序で実行されること、または望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実装形態においてそのような分離が必要になるものとして理解されるべきではなく、説明したプログラムコンポーネントおよびシステムが一般に、単一のソフトウェア製品として統合するか、または複数のソフトウェア製品としてパッケージ化することができることを理解されたい。
主題の特定の実施形態について説明した。他の実装形態も以下の特許請求の範囲内である。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
100 ニューラルネットワークシステム
102 画像
110 画像パッチ生成システム
112 画像パッチ
120 画像パッチ埋込みシステム
122 画像パッチ埋込み
124 クラス埋込み
130 ニューラルネットワーク
140 自己注意ベースのサブネットワーク
142 画像パッチ出力
144 クラス出力
150 ヘッドサブネットワーク
152 ネットワーク出力
200 自己注意ベースのニューラルネットワーク
202 入力シーケンス
204 出力シーケンス
210 ネットワークブロック
212 ブロック入力シーケンス
220 自己注意ニューラルネットワーク層
230 フィードフォワードニューラルネットワーク層
310 画像
320 画像
330 画像
340 画像
350 画像
360 画像
400 訓練システム
412 入力シーケンス
420 ベースニューラルネットワーク
422 ベースネットワーク出力
430 自己注意ベースのサブネットワーク
432 訓練済みパラメータ
440 ベースヘッドサブネットワーク
450 タスクニューラルネットワーク
452 タスクネットワーク出力
460 自己注意ベースのサブネットワーク
470 タスクヘッドサブネットワーク
472 初期化されたパラメータ
480 訓練エンジン
482 パラメータ更新
484 パラメータ更新

Claims (19)

  1. 複数のピクセルを含む1つまたは複数の画像を取得するステップと、
    前記1つまたは複数の画像の各画像について、前記画像の複数の画像パッチを決定するステップであって、各画像パッチが前記画像の前記複数のピクセルの異なるサブセットを含む、ステップと、
    前記1つまたは複数の画像の各画像について、複数の入力位置の各々にそれぞれの入力要素を含む入力シーケンスを生成するために、対応する前記複数の画像パッチを処理するステップであって、
    複数の前記入力要素がそれぞれの異なる画像パッチに対応し、
    入力シーケンスを生成するために、画像に対応する前記複数の画像パッチを処理するステップが、各画像パッチについて、
    前記画像パッチの前記複数のピクセルを含むそれぞれの初期入力要素を生成するステップと、
    第2のニューラルネットワークを使用して前記それぞれの初期入力要素を処理することによって、前記画像パッチに対応するそれぞれの入力要素を生成するステップと、
    それぞれの入力要素を生成するために、各入力要素について、前記画像中の対応する前記画像パッチの位置を表す位置埋込みと、前記入力要素を組み合わせることによって、前記それぞれの入力要素を更新するステップと
    を含む、ステップと、
    前記1つまたは複数の画像を特徴づけるネットワーク出力を生成するために、ニューラルネットワークを使用して前記入力シーケンスを処理するステップであって、前記ニューラルネットワークが1つまたは複数の自己注意ニューラルネットワーク層を含む、ステップと
    を含む方法。
  2. 各画像パッチが、次元数L×W×Cを有し、
    Cが前記画像のチャネル数を表し、
    各初期入力要素が、次元数1×(L・W・C)を有する、請求項1に記載の方法。
  3. 前記第2のニューラルネットワークが、1つまたは複数の全結合ニューラルネットワーク層を含む、請求項1に記載の方法。
  4. 各位置埋込みが整数である、請求項1に記載の方法。
  5. 各位置埋込みが機械学習済みである、請求項1に記載の方法。
  6. 前記入力シーケンス中の特定の入力要素が機械学習済みテンソルである、請求項1から5のいずれか一項に記載の方法。
  7. 前記画像を特徴づけるネットワーク出力を生成するために前記ニューラルネットワークを使用して入力シーケンスを処理するステップが、
    前記入力シーケンス中の各入力要素についてそれぞれの出力要素を生成するために、前記ニューラルネットワークを使用して前記入力シーケンスを処理するステップと、
    前記ネットワーク出力を生成するために、第3のニューラルネットワークを使用して前記出力要素のうちの1つまたは複数を処理するステップと
    を含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記第3のニューラルネットワークが、第1のタイプのネットワーク出力を生成するように構成され、
    前記ニューラルネットワークが、前記第1のタイプとは異なる第2のタイプのネットワーク出力を生成するために、第4のニューラルネットワークと同時に訓練された、
    請求項7に記載の方法。
  9. 前記ニューラルネットワークの複数のネットワークパラメータが、前記第3のニューラルネットワークの訓練中に更新された、請求項8に記載の方法。
  10. 前記第3のニューラルネットワークが多層パーセプトロンである、請求項7から9のいずれか一項に記載の方法。
  11. それぞれの入力シーケンスについて、
    前記入力シーケンス中の特定の入力要素が機械学習済みテンソルであり、
    前記第3のニューラルネットワークを使用して1つまたは複数の出力要素を処理するステップが、前記画像の予測を生成するために前記第3のニューラルネットワークを使用して前記特定の入力要素に対応する前記出力要素を処理するステップを含む、
    請求項7から10のいずれか一項に記載の方法。
  12. 前記自己注意ニューラルネットワーク層のうちの1つまたは複数が、マルチヘッド自己注意ニューラルネットワーク層である、請求項1から11のいずれか一項に記載の方法。
  13. 前記ニューラルネットワークが、1つまたは複数のサブネットワークのシーケンスを含み、
    各サブネットワークが、
    前記複数の入力位置の各々についてそれぞれのサブネットワーク入力を受け取ることと、
    前記複数の入力位置の各々についてそれぞれのサブネットワーク出力を生成することと
    を行うように構成され、
    各サブネットワークが、自己注意ニューラルネットワーク層と、位置ごとのフィードフォワードニューラルネットワーク層とを含む、請求項1から12のいずれか一項に記載の方法。
  14. 各サブネットワークが、
    前記複数の入力位置の各々について前記サブネットワーク入力に層正規化を適用する、第1の層正規化層、
    前記複数の入力位置の各々について前記サブネットワーク入力と前記自己注意ニューラルネットワーク層の出力を組み合わせる、第1の残差接続層、
    前記第1の残差接続層の出力に層正規化を適用する、第2の層正規化層、または
    前記第1の残差接続層の前記出力と前記位置ごとのフィードフォワードニューラルネットワーク層の出力を組み合わせる、第2の残差接続層
    のうちの1つまたは複数をさらに含む、請求項13に記載の方法。
  15. 前記ネットワーク出力が、複数のカテゴリの各々に対応するそれぞれのスコアを含む分類出力を含み、カテゴリのスコアが、前記画像が前記カテゴリに属する尤度を示すか、
    前記ネットワーク出力が、前記画像中の各ピクセルについて、複数のカテゴリの各々に対応するそれぞれのスコアを含む、ピクセルレベルの分類出力を含み、カテゴリの前記スコアが、前記ピクセルが前記カテゴリに属する尤度を示すか、
    前記ネットワーク出力が、前記画像に示されたそれぞれの物体を囲む1つまたは複数のバウンディングボックスの座標を含むか、または
    前記ニューラルネットワークが、ビデオのビデオフレームである複数の画像を受け取り、前記ネットワーク出力が、前記ビデオフレームを特徴づける出力を含む、
    請求項1から14のいずれか一項に記載の方法。
  16. 前記ビデオフレームを特徴づける前記出力が、前記ビデオフレームが特定のアクションを行っている人を示すかどうかを特徴づける出力を含む、請求項15に記載の方法。
  17. 前記第2のニューラルネットワークが、学習された線形射影を前記それぞれの入力要素に適用する、請求項1に記載の方法。
  18. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から17のいずれか一項に記載の方法を行わせる命令を記憶した1つまたは複数のストレージデバイスと
    を備えるシステム。
  19. 1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から17のいずれか一項に記載の方法を行わせる命令を記憶した1つまたは複数のコンピュータ記憶媒体。
JP2022570383A 2020-10-02 2021-10-04 自己注意ベースのニューラルネットワークを使用した画像処理 Active JP7536893B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063087135P 2020-10-02 2020-10-02
US63/087,135 2020-10-02
PCT/US2021/053424 WO2022072940A1 (en) 2020-10-02 2021-10-04 Processing images using self-attention based neural networks

Publications (2)

Publication Number Publication Date
JP2023533907A JP2023533907A (ja) 2023-08-07
JP7536893B2 true JP7536893B2 (ja) 2024-08-20

Family

ID=78414760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022570383A Active JP7536893B2 (ja) 2020-10-02 2021-10-04 自己注意ベースのニューラルネットワークを使用した画像処理

Country Status (11)

Country Link
US (2) US12125247B2 (ja)
EP (1) EP4196917A1 (ja)
JP (1) JP7536893B2 (ja)
KR (1) KR20230004710A (ja)
CN (1) CN115605878A (ja)
AU (2) AU2021354030B2 (ja)
BR (1) BR112023005490A2 (ja)
CA (1) CA3193958A1 (ja)
MX (1) MX2023003531A (ja)
TW (1) TW202215303A (ja)
WO (1) WO2022072940A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112287978B (zh) * 2020-10-07 2022-04-15 武汉大学 一种基于自注意力上下文网络的高光谱遥感图像分类方法
US20230144637A1 (en) * 2021-11-10 2023-05-11 Adobe Inc. Multi-stage attention model for texture synthesis
US11983920B2 (en) * 2021-12-20 2024-05-14 International Business Machines Corporation Unified framework for multigrid neural network architecture
KR20240134955A (ko) * 2022-05-27 2024-09-10 주식회사 엔씨소프트 행동 예측 방법 및 장치
CN114972897A (zh) * 2022-06-06 2022-08-30 京东科技控股股份有限公司 图像特征处理方法、装置、产品、介质及设备
CN114862881A (zh) * 2022-07-11 2022-08-05 四川大学 一种基于pet-ct的跨模态注意力肿瘤分割方法、系统
KR102663467B1 (ko) * 2022-11-09 2024-05-09 국민대학교산학협력단 포인트 클라우드의 고해상화 장치 및 방법
CN115457042B (zh) * 2022-11-14 2023-03-24 四川路桥华东建设有限责任公司 一种基于蒸馏学习的螺纹套丝表面缺陷检测的方法及系统
WO2024155850A1 (en) * 2023-01-18 2024-07-25 Vayu Robotics, Inc. Systems and methods for performing autonomous navigation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062605A (ja) 2002-07-30 2004-02-26 Fuji Photo Film Co Ltd シーン識別方法および装置ならびにプログラム
US20190354858A1 (en) 2018-05-18 2019-11-21 Mike Chrzanowski Neural Networks with Relational Memory
WO2020175446A1 (ja) 2019-02-28 2020-09-03 富士フイルム株式会社 学習方法、学習システム、学習済みモデル、プログラム及び超解像画像生成装置
WO2021176566A1 (ja) 2020-03-03 2021-09-10 日本電気株式会社 特徴変換装置、画像認識システム、特徴変換方法および非一時的なコンピュータ可読媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006881B1 (en) * 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6058190A (en) * 1997-05-27 2000-05-02 Pitney Bowes Inc. Method and system for automatic recognition of digital indicia images deliberately distorted to be non readable
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7966072B2 (en) * 2005-02-18 2011-06-21 Palo Alto Investors Methods and compositions for treating obesity-hypoventilation syndrome
JP5258694B2 (ja) 2009-07-27 2013-08-07 富士フイルム株式会社 医用画像処理装置および方法並びにプログラム
ITRM20130022A1 (it) * 2013-01-11 2014-07-12 Natural Intelligent Technologies S R L Procedimento e apparato di riconoscimento di scrittura a mano
US9536293B2 (en) * 2014-07-30 2017-01-03 Adobe Systems Incorporated Image assessment using deep convolutional neural networks
US9659384B2 (en) * 2014-10-03 2017-05-23 EyeEm Mobile GmbH. Systems, methods, and computer program products for searching and sorting images by aesthetic quality
US10803143B2 (en) 2015-07-30 2020-10-13 Siemens Healthcare Gmbh Virtual biopsy techniques for analyzing diseases
EP3267368B1 (en) 2016-07-06 2020-06-03 Accenture Global Solutions Limited Machine learning image processing
KR102559202B1 (ko) * 2018-03-27 2023-07-25 삼성전자주식회사 3d 렌더링 방법 및 장치
AU2019308228B2 (en) * 2018-07-16 2021-06-03 Accel Robotics Corporation Autonomous store tracking system
US10825221B1 (en) * 2019-04-23 2020-11-03 Adobe Inc. Music driven human dancing video synthesis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062605A (ja) 2002-07-30 2004-02-26 Fuji Photo Film Co Ltd シーン識別方法および装置ならびにプログラム
US20190354858A1 (en) 2018-05-18 2019-11-21 Mike Chrzanowski Neural Networks with Relational Memory
WO2020175446A1 (ja) 2019-02-28 2020-09-03 富士フイルム株式会社 学習方法、学習システム、学習済みモデル、プログラム及び超解像画像生成装置
WO2021176566A1 (ja) 2020-03-03 2021-09-10 日本電気株式会社 特徴変換装置、画像認識システム、特徴変換方法および非一時的なコンピュータ可読媒体

Also Published As

Publication number Publication date
US20240062426A1 (en) 2024-02-22
AU2021354030B2 (en) 2023-11-30
WO2022072940A1 (en) 2022-04-07
AU2021354030A1 (en) 2022-11-24
JP2023533907A (ja) 2023-08-07
EP4196917A1 (en) 2023-06-21
US20220108478A1 (en) 2022-04-07
AU2024201361A1 (en) 2024-03-21
KR20230004710A (ko) 2023-01-06
TW202215303A (zh) 2022-04-16
BR112023005490A2 (pt) 2023-04-25
US12125247B2 (en) 2024-10-22
CN115605878A (zh) 2023-01-13
US11983903B2 (en) 2024-05-14
MX2023003531A (es) 2023-04-19
CA3193958A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
JP7536893B2 (ja) 自己注意ベースのニューラルネットワークを使用した画像処理
US11875268B2 (en) Object recognition with reduced neural network weight precision
US10733431B2 (en) Systems and methods for optimizing pose estimation
EP3686848A1 (en) Semantic image synthesis for generating substantially photorealistic images using neural networks
US11562166B2 (en) Generating shift-invariant neural network feature maps and outputs
CN110728295B (zh) 半监督式的地貌分类模型训练和地貌图构建方法
US20220277514A1 (en) Reconstructing three-dimensional scenes portrayed in digital images utilizing point cloud machine-learning models
EP3493106A1 (en) Optimizations for dynamic object instance detection, segmentation, and structure mapping
US11816185B1 (en) Multi-view image analysis using neural networks
US20220375211A1 (en) Multi-layer perceptron-based computer vision neural networks
CN114021696A (zh) 用于高保真图像变换的条件轴向变换层
Grigorev et al. Depth estimation from single monocular images using deep hybrid network
US20240289926A1 (en) Processing images using mixture of experts
WO2023140044A1 (ja) モデル生成方法、モデル生成装置、推論プログラム、及び推論装置
Bhadra et al. MFEMANet: an effective disaster image classification approach for practical risk assessment
CN113516670B (zh) 一种反馈注意力增强的非模式图像分割方法及装置
Druki et al. Semantic segmentation algorithms of the earth's surface pictures based on neural network methods
Yadav Performance Analysis of Convolution Neural Networks Using Semantic Segmentation for Driving Scenes
CN115984583A (zh) 数据处理方法、装置、计算机设备、存储介质和程序产品
CN114708471A (zh) 跨模态图像生成方法、装置、电子设备与存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240807

R150 Certificate of patent or registration of utility model

Ref document number: 7536893

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150