コンピュータ・ビジョンにおけるヴィジョン・トランスフォーマー(ViT)の威力をご覧ください。グローバルな画像コンテキストを捉えることで、どのようにCNNを凌駕するのかを学んでください。
ヴィジョン・トランスフォーマー(ViT)は、当初自然言語処理(NLP)用に設計され、大成功を収めたトランスフォーマー・アーキテクチャを画像ベースのタスクに応用したもので、コンピュータ・ヴィジョン(CV)における極めて重要な発展である。従来のCNN(Convolutional Neural Network:畳み込みニューラルネットワーク)がレイヤーごとに局所的なフィルターを用いて画像を処理するのとは異なり、ViTは画像を固定サイズのパッチに分割し、それらをトークン(文中の単語に似たもの)のシーケンスとして扱い、Transformerの自己注意メカニズムを用いて処理する。これによってViTは、多くのCNNアーキテクチャよりも効果的に画像内のグローバルな文脈と長距離依存性を捉えることができ、特にImageNetのような大規模データセットで学習した場合、様々なベンチマークで最先端の結果を導く。
ViTの核となるアイデアは、画像処理のパラダイムを再構築することである。入力画像はまず、重なり合わないパッチのグリッドに分割される。各パッチはベクトルに平坦化され、埋め込み空間に線形射影される。空間情報を保持するために、これらのパッチ埋め込みに位置埋め込みが追加される。この一連のベクトルは、画像パッチとその位置を表し、元の論文 "An Image is Worth 16x16 Words "で詳しく述べられているように、標準的なTransformerエンコーダに供給されます。
複数のレイヤーで構成されるTransformerエンコーダは、自己注意メカニズムに大きく依存している。このメカニズムにより、モデルは互いに異なるパッチの重要性を動的に計量し、画像の離れた部分間の関係を学習することができる。このグローバルな受容野は、CNNの一般的なローカルな受容野とは対照的であり、ViTにシーン全体の文脈を理解する利点を与えている。The Illustrated Transformerのようなリソースは、基本的なTransformerの概念を直感的に説明する。フレームワーク PyTorchや TensorFlowのようなフレームワークは、これらのコンポーネントの実装を提供します。
ビジョントランスフォーマーは、そのスケーラビリティと、特に大規模な事前学習による印象的なパフォーマンスにより、現代のディープラーニングにおいて非常に重要なものとなっている。グローバルなコンテキストをモデル化する能力により、基本的な画像分類にとどまらず、以下のような幅広いCVタスクに適している:
ViTは、Ultralytics HUBのようなプラットフォームや、Hugging Face Transformersのようなライブラリに統合されつつあり、研究や展開に利用しやすくなっている。また、NVIDIA Jetsonのようなデバイス上でエッジAIを展開するために最適化することもできる。
ViTもCNNもコンピュータ・ビジョンの基礎となるアーキテクチャだが(視覚モデルの歴史を参照)、そのアプローチは大きく異なる:
ViTとCNNのどちらを選択するかは、特定のタスク、利用可能なデータ、計算リソースに依存することが多い。ViTは一般的に、大量の学習データが利用可能な場合に優れている。 Ultralytics YOLOファミリーのようなCNNは、特に制約の多いデバイス上でのリアルタイムの物体検出において、非常に効果的かつ効率的なままである。