gk transformer attention
G検定トップ
> Vision Transformer(ViT)とは?CNNとの違い【G検定対策】
まず結論
- Vision Transformer(ViT) とは、画像を小さなパッチ(patch)に分割して「単語(トークン)」のように扱い、Transformerのエンコーダ(Encoder)で画像認識を行うモデルである
- G検定では「CNNとの違い」「なぜ話題になったか(大規模事前学習)」「パッチ=トークン」がよく問われる
直感的な説明
- CNNは、画像の上を小さなフィルタでなぞって「局所的な特徴(エッジなど)」を積み上げて理解する
- ViTは、画像をタイル状に切り分けて「単語の列」だと思い、単語同士の関係(Attention)を見て全体を理解する
イメージ:
- CNN:近所(周辺のピクセル)から順に理解して、最後に全体像へ
- ViT:最初から全体のパッチ同士を見比べて、重要な関係を学ぶ
G検定では「局所から積むのがCNN / 全体の関係を直接見るのがViT」が第一の分岐になる。
定義・仕組み
ViTの流れ(ざっくり)
- 画像を固定サイズのパッチに分割(例:16×16)
- 各パッチをベクトルに変換(パッチ埋め込み / patch embedding)
- パッチの並び順を表す 位置埋め込み(positional embedding) を足す
- Transformer Encoder に入力して特徴を抽出
- 分類なら [CLS] トークンなどの表現からクラスを予測
重要キーワード
- patch(画像パッチ):画像を小分けにした単位(=トークン)
- Self-Attention(自己注意):パッチ同士の関係を学ぶ仕組み
- Encoder(エンコーダ):ViTで主に使うTransformer側(NLPのBERT側に近い)
※ G検定では数式よりも、 「画像→パッチ→トークン列→Encoder」の変換イメージが最重要。
いつ使う?(得意・不得意)
得意
- 大規模データで事前学習できると強い(ImageNetよりさらに大きいデータなど)
- 画像全体の関係性(遠く離れたパーツ同士)を捉えやすい
- Transformer系の発展(学習スケール、転移、自己教師あり)に乗りやすい
不得意
- 学習データが少ないとCNNより不利になりやすい(データ効率が悪いと言われがち)
- Attentionの計算量が大きくなりやすい(パッチ数が増えるほど重い)
G検定では「ViTは大規模事前学習で強くなる」が頻出。
G検定ひっかけポイント
ひっかけ①:ViT=CNNの置き換え、ではない
- ❌ 「ViTはCNNより常に優れる」
- ✅ 大規模事前学習があると強い(条件つき)
ひっかけ②:Transformerのどこを使う?
- ❌ 「Decoderを使う」
- ✅ Encoderを使う(画像パッチ列を入力して特徴抽出)
ひっかけ③:パッチを何として扱う?
- ❌ 「フィルタ処理した特徴マップ」
- ✅ 単語(トークン)として扱う
選択肢の判断基準
- 「画像パッチを単語のように扱う」→ ViT
- 「Self-Attentionで画像を処理」→ ViT / Transformer系(特にViT)
- 「局所特徴を畳み込みで抽出」→ CNN
- 「JFT-300Mで事前学習」→ ViT(代表例としてよく出る)
まとめ(試験直前用)
- ViT=画像をパッチ→トークン列にしてTransformer Encoderで処理
- CNN=畳み込みで局所特徴を積み上げる
- ViTは大規模事前学習があると強い(JFT-300M など)
- キーワード:patch / token / self-attention / encoder
- 「パッチを単語扱い」が出たらViTを疑う
🔗 関連記事
- CLIP(画像とテキストの対応付けモデル)とは?G検定対策
- PaLM(大規模言語モデル)とは?G検定対策
- PaLM-E(環境対応マルチモーダルモデル)とは?G検定対策
- Attention・Transformer・BERTの関係とは?【仕組みで整理|G検定対策】
- Attention(注意機構)
🏠 G検トップに戻る