野生下での歩行認識のための自己監視型ビジョントランスフォーマーの探索パート 2
Nov 24, 2023
2.2. ビジョントランスフォーマー
当初は NLP タスク用に提案され [16,34]、大きな成功を収めましたが、トランスフォーマーは近年コンピュータ ビジョンで広く利用されるようになりました [24,25,28,35–37]。 両方のドメインは、モデル容量の増加と以前のモデルよりもはるかに自己監視の恩恵を受ける変圧器の能力の一部により、変圧器のさまざまなバリエーションを使用することによって前例のないパフォーマンスを享受しています[17]。
自己監視と記憶は密接に関係しています。 自己監視は自分の行動、思考、感情の評価と調整を指し、記憶は情報を取得、処理、保存する能力を指します。 自己監視は、自分の行動や感情をより適切にコントロールできるようになり、記憶力を向上させるのに役立ちます。
まず、自己監視は誘惑にうまく抵抗するのに役立ちます。 誘惑は私たちの注意とエネルギーをそらし、記憶に影響を与える傾向があります。 自己監視を通じて、私たちは自分自身をよりよくコントロールし、過度の気を散らすことを避けることができ、それによって記憶力が向上します。
第二に、自己監視は情報をよりよく理解し、記憶するのにも役立ちます。 自己モニタリングにより、情報の重要なポイントにさらに注意を払い、情報間のつながりに注意を払うことができるようになり、情報をよりよく理解して記憶できるようになります。 注意を払うと、情報を理解し、保持する能力が高まります。
最後に、自己監視は、自分の行動や考え方をよりよく観察し、要約するのにも役立ちます。 自分自身の行動や思考プロセスを振り返ることで、欠点を特定し、改善することができます。 この改善により、行動や思考が改善されるだけでなく、記憶能力も向上します。
要約すると、自己監視と記憶は密接に関係しています。 自己監視を通じて、私たちは自分自身をよりよくコントロールし、情報をよりよく理解して記憶し、行動と思考プロセスをより良く改善することができます。 同時に、これは記憶力の向上にも役立ち、勉強や仕事をより効率的に行うことができます。 目標を明確にし、積極的に自分を調整し、常に進歩を追い求めていきましょう! 私たちは記憶力を向上させる必要があることがわかります。カンクサにはアセチルコリンや成長因子のレベルを高めるなど、神経伝達物質のバランスも調節できるため、記憶力を大幅に向上させることができます。 これらの物質は記憶と学習にとって非常に重要です。 さらに、肉は血流を改善し、酸素の供給を促進するため、脳に十分な栄養素とエネルギーが確実に供給され、脳の活力と持久力が向上します。

ドソヴィツキーら。 [24] は、画像分類のためのトランスフォーマー エンコーダの利用を最初に提案し、Vision Transformer (ViT) を導入しました。 このアーキテクチャでは、入力画像を 16x16 の固定サイズのパッチに分割し、平坦化して、リニアレイヤーを使用して埋め込み次元に投影します。 追加のクラス トークン (CLS) がシーケンスに挿入され、位置エンコーディングが各ベクトルに追加されます。
結果として得られる埋め込みシーケンスは、トランス エンコーダへの入力として与えられます。トランス エンコーダは、[34] のものと同じ構造を持ちますが、各ブロックの後 (プレノルム) ではなく、前に LayerNorm 演算子を使用します。 MLPhead は、クラス トークン内のグローバルに集約された情報からクラス ラベルを取得するために利用されます。
Vaswani らによって導入された自己注意メカニズム。 [34] は、項目のシーケンスを入力として受け取り、シーケンス内の各要素のグローバル情報を集約することによって、それらすべての間の相互作用を推定します。 シーケンスの要素間のさまざまな相互作用を計算するために、マルチヘッド セルフ アテンション (MSA) モジュールは複数のセルフ アテンション ブロックの結果を連結し、出力を学習可能な重み行列に投影します。 [34] で導入されたトランスエンコーダは、MSA ブロック、フィードフォワード (FFN) ブロック、各ブロック間の残りの接続、および各ブロックの後の LayerNorm (LN) から構成される複数のスタック層で構成されます。
トゥヴロンら。 [25] は、ディープ ビジョン トランスフォーマーのパフォーマンスを向上させるために 2 つのアーキテクチャ上の変更を提案しています。 彼らの最初の貢献である LayerScale は、残差ブロックの出力で乗算される学習可能な対角行列を追加することにより、より深いモデルのトレーニングを容易にします。 行列は小さな値で初期化されるため、トランスフォーマー エンコーダー層の結果がトレーニングの開始時に残差ブロックの出力にわずかに寄与するように強制されます。
彼らの 2 番目の貢献は、クラス注目メカニズムです。 標準 ViT のように CLS トークンを最初に追加するのではなく、いくつかのエンコーダ ブロックの後に追加されます。 この段階の後、クラス トークンのみが更新され、パッチ トークンは凍結されたままになります。 このメカニズムは、パッチ間のセルフアテンション操作を、分類に使用される情報の集約から切り離すのに役立ちます。
ユアンら。 [28] は、バニラ ViT のパッチの単純なトークン化には、画像の局所構造と隣接するパッチ間の相互作用をモデル化できないという限界があると主張しています。 その結果、隣接するトークンを 1 つのトークンに結合する漸進的なトークン化プロセスが導入されます。
このプロセスは、前のレイヤーからトークンのシーケンスを取得し、空間的な近さに基づいてそれらから画像を構築する Reshape モジュールで構成されます。 ソフト スプリット モジュールは、構築されたイメージをトークンの重複パッチに分割し、それらを次のエンコーダーに供給します。 トークン化プロセス後に生成されたトークンは、分類のために深いnarrowViTバックボーンに供給されます。

Wang らによって指摘されているように。 [35] 標準の Vision Transformer は、特に画像分類用に設計されており、オブジェクト検出やセグメンテーションなどの他のタスクには適していません。 このため、彼らは、空間次元を減少させ、チャネル数を増加させた中間特徴マップを生成することによって、CNN アーキテクチャからインスピレーションを得たピラミッド ビジョン トランスフォーマー (PVT) を提案しています。
このピラミッド構造は、モデルがさまざまなタスクに使用できるマルチスケールの特徴を学習するのに役立ちます。 モデルは最初に次元 4 × 4 のパッチから取得されたトークンを処理し、各段階でトークンはパッチのより大きな空間次元に対応します。
古典的なセルフアテンションの計算コストは O(N2 · d) です。ここで、N はシーケンス内のトークンの数、d はベクトルの次元です。 トークンの数に関する二次計算コストは、シーケンス内の各トークンが画像内のパッチに対応するため、入力画像の解像度が増加すると実際的な問題になります。
文献には、バニラセルフアテンションの計算コストを削減するためのいくつかの手法があります [26、35、36]。 PVT [35] は、空間縮小アテンションを使用します。これは、再形成操作と線形投影によるセルフ アテンションの前に、キー ベクトルと値ベクトルの空間サイズを縮小します。
Swin トランスフォーマ [36] もピラミッド構造を持ち、セルフ アテンション ブロックをそれに近似したモジュールで置き換えます。 このモジュールは、ローカル ウィンドウ内の隣接するパッチをグループ化し、これらのウィンドウ内でのみセルフ アテンション操作を実行します。
他のウィンドウと情報を伝達するために、隣接するウィンドウからのパッチも含まれるようにローカルウィンドウをシフトし、セルフ アテンションを再度計算します。 チューら。 [27] は PVT アーキテクチャを採用し、自己注意を近似するための同様の方法を提案しました。 また、Swin トランスと同様に、ウィンドウ内のパッチ間のローカル アテンションも実行しました。
他のウィンドウと情報を伝達するために、各ウィンドウの代表者と他のすべてのウィンドウの間でセルフアテンションが行われました。 CrossFormer [26] も PVT に基づいて構築されています。 これは、Swin トランスフォーマのローカル アテンションに似た短距離アテンションを利用しますが、他のウィンドウに情報を漏らすために、固定距離を持つパッチ間の相互作用を計算する遠距離アテンションを採用します。 また、同じピクセルを中心とするマルチスケール パッチを組み合わせて、変圧器ブロックのトークンを取得します。これは、モデルがスケール間の相互作用を学習するのに役立ちます。
ヤンら。 [37] は、ビジョントランスフォーマーが高解像度画像を処理できるようにする、トークン間の短距離と長距離の両方の相互作用を学習するための焦点注目メカニズムを提案しています。 画像パッチごとに、焦点セルフアテンション モジュールは、空間的に閉じたパッチと、より遠くにあるパッチの要約ウィンドウとの相互作用を計算します。 パッチのウィンドウの要約はプーリングを介して行われ、パッチが遠く離れている場合は情報をキャプチャしません。
RegionViT [38] は PVT アーキテクチャを利用し、各機能マップに 2 つのトークン化パスを追加します。 最初のトークン化パスは、多数のピクセルをカバーするパッチで構成される地域トークンを取得します。2 番目のトークン化パスは、少数のピクセルを含む低レベルの情報をキャプチャするローカル トークンを取得します。 これら 2 種類のトークンは、リージョナルからローカルへのトランスフォーマ エンコーダへの入力として供給され、そこで最初にリージョン間のセルフ アテンションが計算され、次に各リージョナル トークンとそれに対応するローカル トークンの間でセルフ アテンションが計算されます。
LeViT アーキテクチャ [39] は、CNN とセルフアテンション メカニズムの両方を組み合わせています。画像は最初に CNN エンコーダに供給され、空間次元が減少し、チャネル次元が増加します。 結果として得られる特徴マップは、エンコーダー間に縮小アテンション モジュールを含む階層 ViT に供給され、特徴マップの空間次元がさらに減少し、チャネル次元が増加します。
注意に基づくアーキテクチャは、時間情報を考慮する必要があるビデオベースのタスクにも採用されています。 ViViT [40] や TimeSformer [41] などのアーキテクチャは、空間次元と時間次元の両方にわたってセルフアテンション メカニズムを利用します。 このため、モデルは各フレームからの空間情報と時間の経過に伴う変化をキャプチャする方法を学習します。
3. 方法
このセクションでは、各アーキテクチャと選択したハイパーパラメータについて詳しく説明します。 さらに、ビジョントランスフォーマーをスケルトンシーケンスで動作するように適合させるためのデータ処理と提案された設計決定について説明します。 最後に、初期化方法、評価プロトコル、評価データセットについて説明します。
3.1. アーキテクチャの説明
私たちは、ダウンストリームのパフォーマンスと推論時間の観点から、画像の計算をより最適化するために開発された Vision Transformers の 5 つの異なるバリエーション (図 1) を調査しました。 特に、古典的な ViT [24]、CaiT [25]、Token2Token ViT [28]、および Twins-SVT [27] を調査します。
一般に、ビジョン トランスフォーマーのフレーバーは、ViT で提案されているように、トランスフォーマーを使用して画像を処理する「古典的な」方法の改良を扱っています。画像は、同じサイズで重複しないパッチに分割され、平坦化され、より低次元の空間に投影されます。その後、NLP アプリケーションと同様の方法で「トークン」として扱われます。 歩行分析の場合、正方形のパッチは、小さな時間ウィンドウにわたって変化する関節のグループに対応します。

標準のトランスフォーマーエンコーダは、一連の項目 (X ∈ Rn×d、ここで - 項目数、d - 埋め込み次元) を入力として受け取り、それらを 3 つの異なる学習可能な重み行列に投影して、クエリ (Q ∈ Rn×dq) とキーを取得します。 (K ∈ Rn×dk, dk=dq)、および値 (V ∈ Rn×dv )。ここで、dq、dk、および dv は、それぞれクエリ、キー、および値の次元です。 注意力は次のように計算されます。

ほとんどのアーキテクチャでは、可能な限りレイヤーの数、アテンションヘッド、機能の次元を固定しました。 そのため、4 つのアテンション ヘッドサーチを持つ 4 つのレイヤー、フィードフォワード ネットワークの次元 512、および最終的な埋め込みサイズ 128 を選択します。

ViT Vision Transformer [24] は、画像をパッチに分割し、それらを埋め込み次元に線形投影することにより、トークンの入力シーケンスを取得します。 結果として得られるシーケンスは、追加のクラス トークン (CLS) とともに、トランスフォーマー エンコーダーへの入力として与えられます。さらに、ViT エンコーダーは、正規化後ではなく、正規化前を使用します。 層の出力は次のように計算できます。

ここで、λl, i と λ0l, i は学習可能なパラメータです。 このモデルはまた、入力トークン間の相互作用の計算を、すべてのグローバル情報を集約するクラス埋め込みの計算から切り離します。 これは、インタラクションが取得された後に入力シーケンスに CLS トークンを導入し、他のすべてのトークンを凍結するクラス アテンションを使用して行われます。 CaiT エンコーダでは ViT と同じ構成を使用しましたが、CLS エンコーダでは 2 層の深さを使用しました。
Token2Token ViT Token2Token アーキテクチャ [28] には、隣接するトークンを組み合わせることによって画像のローカル構造をモデル化する漸進的なトークン化プロセスが含まれています。トークン化プロセスは、最初に、Reshape モジュールの助けを借りて、トークンの入力シーケンスから画像のような構造を構築します。 次に、ソフト スプリット (SS) モジュールを介して、イメージがトークンの重なり合うパッチに分割されます。 tokenizationmodule からの結果の出力は次のように計算されます。

Token2Token の場合、最初の層に {2, 8} と {2, 4} のパッチ サイズを持つ 2 つの層を使用し、2 番目の層に {4, 16} を使用しました。
Twins-SVT Twins-SVT [27] アーキテクチャは、古典的なセルフ アテンション ブロックを、操作を近似する空間的に分離可能なセルフ アテンション (SA) と呼ばれるモジュールで置き換えます。SSSA は、ローカルにグループ化されたセルフ アテンション (LSA) で構成されます。同じローカル ウィンドウ内のトークンと、隣接するトークンを畳み込むことによって計算された各ローカル ウィンドウのすべての代表間でセルフ アテンションを実行することでグローバル情報を集約するグローバル サブサンプル アテンション (GSA) 間の相互作用のみ。 aTwins 層の操作は次のように記述できます。

CrossFormer エンコーダの場合、レイヤーに {16, 32, 64, 128} のディメンション、{4, 2, 2, 1} のグローバル ウィンドウ サイズ、2 のローカル ウィンドウ サイズ、2 のクロスエンベディング ストライド、およびクロスを使用しました。 -埋め込みカーネル サイズ {{2, 4, 8, 16}, {2, 4}, {2, 4}, {2, 4}}。
3.2. データの前処理
DenseGait データセットと GREW データセットの両方で、同じ前処理手順を採用します。x および y 座標と追加の信頼スコアを持つ 18 個の関節を含む抽出および追跡された各スケルトン シーケンスについて、最初に骨盤座標 (骨盤、骨盤) を中心にしてシーケンスを正規化します。そして、人体のプロポーションに従って水平方向と垂直方向にスケーリングします (つまり、肩の間の距離: |xR.Shoulder − xL.Shoulder| および首から骨盤までの距離: |yneck − ypelvis|)。 COCO ポーズ形式の 18 個の関節の各座標 (関節、関節) に対して、次の正規化手順を適用します。

正規化プロセスを通じて、カメラの解像度とカメラから被写体の距離の間の差異が排除されます。 また、動き情報に関係のない被写体の高さや幅などの見た目情報も削除します。 このステップは、最新の顔認識モデルの位置合わせステップに似ています [42]。 さらに、各モデルの先頭にバッチ正規化 [43] レイヤーを使用して、結果の画像をさらに正規化します。
時間次元 T (つまり、フレームの数) とスケルトンの空間次元 J (つまり、ジョイントの数) が与えられると、単純なスケルトン シーケンスは形状 (T, J, 3) の画像としてエンコードされます。ここで、この場合、T {{ 1}} と J=18。

ただし、ほとんどのビジョン トランスフォーマーは、画像が正方形であると想定しています。 したがって、画像が (T, T, 3) に変換されるように空間次元をサイズ変更する複数の変形例を提案します。これは、ジョイントの数を人為的に増やすことと同等です (図 2 を参照)。

For more information:1950477648nn@gmail.com






