【ブイアイティー(ビジョントランスフォーマー)】

ViT(Vision Transformer) とは?

最終更新:
💡 画像のパッチをベクトルの列にして認識する

画像を小さなパッチに分けてベクトルの列へ変換し、Transformerで処理する画像認識モデル。元のViTでは位置情報や分類用トークンも加え、画像分類に利用する。

📌 このページのポイント
画像のパッチを列として処理 画像を分割 パッチ1 パッチ2 パッチ3 各パッチをベクトルへ変換 分類用トークン + パッチの列 + 位置情報 Transformer エンコーダー 分類ヘッド 分類用トークンの出力からクラスを予測
元のViTによる画像分類の流れ。パッチサイズは構成によって異なる。
ひよこ ひよこ
ViTは画像を文章にするの?
ペンギン先生 ペンギン先生
文章そのものにはしないよ。画像をパッチという小さなブロックに分け、それぞれをベクトルに変換してTransformerへ入力する。言語モデルのトークンの列のように、パッチの列を扱うんだ。
ひよこ ひよこ
パッチは必ず16×16ピクセル?
ペンギン先生 ペンギン先生
サイズは構成によって変わるよ。元の論文でもモデル名の末尾にパッチサイズを付け、ViT-L/16などと表している。小さく分けるとパッチの数が増え、計算量にも影響するんだ。
ひよこ ひよこ
元の画像の位置は分かるの?
ペンギン先生 ペンギン先生
パッチのベクトルに位置の情報を加えるよ。元のViTは学習可能な位置埋め込みを使い、Transformerの自己注意で離れたパッチ同士の関係も処理するんだ。
ひよこ ひよこ
分類結果はどう出すの?
ペンギン先生 ペンギン先生
元のViTでは、学習可能な分類用トークンをパッチの列に加える。そのトークンのエンコーダー出力を分類ヘッドへ渡して、画像のクラスを予測するよ。これは元の画像分類モデルの構成だね。
ひよこ ひよこ
CNNより必ず精度が高い?
ペンギン先生 ペンギン先生
一律には言えないよ。元の論文は大規模な事前学習と転移で良い結果を報告する一方、データや学習条件によってCNNを下回る結果も示している。モデルの名前だけで優劣や必要なデータ量を決めないようにしよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ViT」って出てきたら「Transformerで画像を認識するモデル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Vision Transformer」 = 画像認識にTransformerを使うモデル
💬 Visionは視覚を指すよ。画像のパッチをベクトルの列にすることで、Transformerの構造を画像認識に適用しているんだ。

参考資料

← 用語集にもどる