ViT(Vision Transformer) (G検定)

ViT(Vision Transformer)

1. 定義と概要

ViT(Vision Transformer)とは、2020年に「Google」が発表した画像認識モデルです。自然言語処理(人間が日常使う言葉をコンピュータに処理させる技術分野)で成果を上げてきたTransformer(文章や画像の要素同士の関係性に注目して処理する、深層学習のネットワーク構造)を画像認識タスクに応用した点が核心です。

具体的な扱い方は、画像を細かく切り分けるところから始まります。入力画像を固定サイズの小さなパッチ(画像を細かく切り分けた正方形の断片。例えば16×16ピクセル程度の大きさ)に分割し、各パッチをベクトル(数値の並び)に変換します。そのうえで単語のように一列に並んだ系列データとして扱い、Transformer Encoder(入力された系列データを、意味を保ったまま扱いやすい数値表現に変換する処理のかたまり)に入力します。

畳み込み層を一切使わずに、「ImageNet」などの画像分類ベンチマークで従来のCNN(畳み込みニューラルネットワーク。画像の一部分にフィルタを当てて特徴を抽出する処理を繰り返す、画像認識の代表的な仕組み)に匹敵・上回る精度を達成したことで注目を集めました。

ViT登場以前の画像認識は、畳み込み層でフィルタを画像上でスライドさせながら特徴を抽出するCNNが主流でした。隣接する画素同士が関連し合うという「局所性」の仮定(近くにある要素同士は関連が強いはずだという、あらかじめ組み込まれた前提。帰納バイアスとも呼ばれます)を構造に組み込むことで、少ないデータでも効率よく学習できる点がCNNの強みでした。

一方、自然言語処理の分野では「Transformer」が登場し、文中の離れた単語同士の関係も直接捉えるアテンション機構(入力の中でどこに注目すべきかを重み付けして判断する仕組み)によって成果を上げていました。

ViTはこの仕組みを画像にそのまま応用し、画像をパッチに分割して系列データとして扱うことで、CNNのような局所性の仮定を持たずに画像全体の関係性を直接処理する道を開きました。

2. 試験対策ポイント

G検定では、ViTの処理の流れが重要な論点です。画像を固定サイズのパッチに分割し、各パッチを1次元ベクトルに変換するパッチ埋め込みを行います。そこにパッチの並び順の情報を補うための位置埋め込み(系列データの中でその要素が何番目に並んでいたかという順序の情報を補う仕組み)を加算したうえで、「Transformer Encoder」に入力するという流れで処理が進みます。

この流れを、順番と目的で並べ直すと次のようになります。

順番 処理 目的
1 画像を固定サイズのパッチに分割する 画像を単語のように扱える単位に切り分ける
2 各パッチを1次元ベクトルに変換する 系列データとして並べられる形にする
3 位置埋め込みを加算する パッチの並び順の情報を補う
4 「Transformer Encoder」に入力する 要素同士の関係性に注目して処理する

パッチ分割と位置埋め込みの組み合わせが、ViTの構造上の要点にあたります。並び順の情報を別に足しているのは、系列としてまとめて処理する仕組みが順番そのものを見ていないためです。

CNNが持つ「近い画素同士は関連が強い」という局所性の仮定を、ViTは構造としてあらかじめ持ちません。この帰納バイアスの少なさが、CNNとの対比で理解しておきたい論点です。

帰納バイアスが少ない分、ViTは学習データが少ない場面ではCNNに性能で劣る傾向があります。一方、「ImageNet」を大幅に上回る規模の大量データで事前学習(大量のデータを使って、汎用的な認識力を先に身につけさせる学習段階)させると、CNNに匹敵・上回る精度を達成します。ViTの優位性は無条件のものではなく、大規模データでの事前学習という条件のもとで成り立つ関係にあります。

ViTは「Transformer Encoder」のみを用いる構造で、自然言語処理のBERT・GPTと同じく「Transformer」を土台とします。ただし扱う対象は言語ではなく画像であり、応用先の領域が異なる関係にあります。BERT・GPTそのものの仕組みは別のテーマですが、「Transformer」という共通の土台を持つ点は、ViTの位置づけを理解するうえでの前提になります。

3. 関連概念との比較・相違点

CNNとViTの違いは、3つの観点で並べると輪郭がはっきりします。

観点 CNN ViT
局所性の仮定 構造にあらかじめ組み込む 構造としては持たない
特徴の捉え方 フィルタを画像上でスライドさせて局所的に抽出する アテンション機構で画像全体の関係性を直接処理する
必要な学習データ量 比較的少ないデータでも効率よく学習できる 大規模データでの事前学習が前提になる

CNNとの最大の違いは、局所性の仮定を構造に持つかどうかにあります。CNNは近い画素同士の関連を前提とする局所性の仮定を構造に組み込んでおり、この仮定のおかげで比較的少ないデータでも効率よく学習できます。これに対してViTはこの仮定を構造として持たず、アテンション機構によって画像全体の関係性を直接処理します。

この違いは、学習に必要なデータ量の違いに直結します。CNNは限られたデータでも高い精度を出しやすいのに対し、ViTは大規模なデータで事前学習を行って初めて同等以上の水準に達します。データが限られる場面では、ViTがCNNに劣る結果になることも珍しくなく、どちらが有利かはデータ量に左右される関係にあります。

自然言語処理のBERT・GPTとの関係は、応用領域の違いとして整理できます。ViTとBERT・GPTはいずれも「Transformer」という共通の土台を使う点で共通しますが、BERT・GPTが扱うのは単語が並んだ文章の系列であるのに対し、ViTが扱うのは画像を分割したパッチの系列です。同じ仕組みを異なる種類のデータに応用した関係にあり、両者は混同しやすいため、入れ替えて理解しないよう整理しておきたいところです。

画像と文章を組み合わせて扱うマルチモーダルAI(複数の種類のデータを組み合わせて扱う人工知能)では、画像側にViT、文章側にBERT・GPT系のモデルという形で、両者がそれぞれの領域を担いながら組み合わさることもあります。

4. ビジネス・実務での活用シナリオ

医療画像診断の分野では、CTやMRIなどの画像から病変の兆候を検出するタスクにViTを用いる取り組みが進んでいます。画像全体の広い範囲の関係性を捉えられるため、局所的な異常だけでなく全体構造をふまえた診断支援が期待されています。狭い範囲のパターンだけでなく、離れた部位同士の関連まで見渡せる点が、CNNとは異なるアプローチとして注目される理由です。

製造業の外観検査では、製品画像の欠陥検出にViTベースのモデルを適用する検討が進んでいます。CNNでは捉えにくい離れた位置の傷や汚れ同士の関連パターンを検出する用途で活用され、局所的なフィルタ処理だけでは見落としやすい異常の組み合わせを拾い上げる役割を担います。

マルチモーダルAIの分野でも、ViTの活用は広がっています。画像と文章を組み合わせて扱う画像キャプション生成や画像検索のモデルでは、画像側の処理にViT、文章側の処理に自然言語処理の「Transformer」を用いる構成が採用されています。画像と言語という異なる種類のデータを、同じ「Transformer」という土台で扱えることが、この組み合わせを可能にしています。

5. 要点まとめ

  • ViTは自然言語処理の「Transformer」を画像認識に応用したモデルで、画像をパッチに分割し単語のように系列として扱う点が核心です。
  • CNNが持つ局所性の仮定をViTは構造として持たず、画像全体の関係性を直接処理できる一方、大規模データでの事前学習が前提になります。
  • 処理フローはパッチ分割からパッチ埋め込み、位置埋め込みの加算を経て「Transformer Encoder」へ至る流れで進みます。BERT・GPTとは「Transformer」という土台を共有しつつ、画像という異なる領域に応用したモデルにあたります。

6. 確認問題

問1ViTは画像を固定サイズのパッチに分割し、各パッチを単語のように扱う系列データとして「Transformer Encoder」に入力する。

解答・解説をみる

○ 正しい

パッチ分割と系列化はViTの構造上の核心です。パッチ埋め込みと位置埋め込みを組み合わせて「Transformer Encoder」へ入力する流れが、ViTの構造上の要点です。

問2ViTはCNNと同様に、近い画素同士は関連が強いという局所性の仮定を構造にあらかじめ組み込んでいる。

解答・解説をみる

× 誤り

正しくはViTはこの局所性の仮定(帰納バイアス)を構造として持ちません。局所性の仮定を持つのはCNNであり、この違いがViTとCNNを対比する際の要点になります。

問3ViTは帰納バイアスが少ないため、学習データが少ない場面ではCNNに性能で劣る傾向がある一方、大規模データで事前学習させるとCNNに匹敵・上回る精度を示す。

解答・解説をみる

○ 正しい

少データでの弱さと大規模データでの強さは対になる特性で、ViTの適用条件を判断する際の要点になります。