🚀 ビジュアルトランスフォーマー(大型モデル)
ビジュアルトランスフォーマー(ViT)は、Transformerアーキテクチャに基づくモデルです。大規模な画像データセットで事前学習され、画像の内在的な特徴表現を学習することができます。画像分類などの下流タスクに利用でき、コンピュータビジョン分野に強力なツールを提供します。
🚀 クイックスタート
ビジュアルトランスフォーマー(ViT)は、BERTに似たTransformerエンコーダモデルで、大規模画像データセットのImageNet - 21k上で224x224ピクセルの解像度で教師あり事前学習が行われています。以下は、このモデルを使用するサンプルコードです。
from transformers import ViTFeatureExtractor, ViTModel
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224-in21k')
model = ViTModel.from_pretrained('google/vit-base-patch16-224-in21k')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_state = outputs.last_hidden_state
現在、特徴抽出器とモデルはどちらもPyTorchをサポートしています。TensorflowとJAX/FLAXのサポートは間もなく追加予定で、ViTFeatureExtractor
のAPIは変更される可能性があります。
✨ 主な機能
- このモデルは、ImageNet - 21k(1400万枚の画像、21843のクラスを含む)上で224x224の解像度で事前学習され、豊富な画像特徴表現を学習しています。
- 画像は固定サイズのパッチ(32x32解像度)に分割され、線形埋め込みが行われます。同時に、分類タスク用に
[CLS]
トークンが追加され、絶対位置埋め込みも追加されます。
- モデルには事前学習されたプーリング器が含まれており、下流タスクに使用できますが、微調整されたヘッドは提供されません。
- 事前学習により、モデルが学習した画像の内部表現は、下流タスクに有用な特徴を抽出するために使用できます。例えば、事前学習されたエンコーダに線形層を追加して標準的な分類器を訓練することができます。
📚 ドキュメント
モデルの説明
ビジュアルトランスフォーマー(ViT)は、Transformerエンコーダモデル(BERTに似ています)で、大規模画像セットのImageNet - 21k上で224x224ピクセルの解像度で教師あり事前学習が行われています。画像は固定サイズのパッチ(解像度32x32)のシーケンスとしてモデルに入力され、線形埋め込みが行われます。シーケンスの先頭には分類タスク用の[CLS]
トークンが追加され、Transformerエンコーダ層に入力する前に絶対位置埋め込みも追加されます。なお、このモデルは微調整されたヘッドを提供していません。これは、Googleの研究者がそれをゼロに設定したためです。ただし、モデルには事前学習されたプーリング器が含まれており、下流タスク(画像分類など)に使用できます。事前学習により、モデルは画像の内部表現を学習し、下流タスクに有用な特徴を抽出するために使用できます。例えば、ラベル付きの画像データセットがある場合、事前学習されたエンコーダに線形層を追加して標準的な分類器を訓練することができます。通常、[CLS]
トークンに線形層を追加します。これは、このトークンの最後の隠れ状態が画像全体の表現と見なせるためです。
想定される用途と制限
元のモデルを使用して画像分類を行うことができます。関心のあるタスクに対する微調整されたバージョンは、モデルセンターで検索できます。
学習データ
ViTモデルは、ImageNet - 21kデータセットで事前学習されています。このデータセットには1400万枚の画像と21000のクラスが含まれています。
学習プロセス
前処理
学習/検証中の画像前処理の正確な詳細は、ここで確認できます。画像は同じ解像度(224x224)にリサイズ/スケーリングされ、RGBチャネルで平均(0.5, 0.5, 0.5)、標準偏差(0.5, 0.5, 0.5)で正規化されます。
事前学習
モデルはTPUv3ハードウェア(8コア)で学習されています。すべてのモデルバリアントは、バッチサイズ4096と学習率ウォームアップ10000ステップで学習されています。ImageNetの場合、著者はグローバルノルム1の勾配クリッピングを追加することが有益であることを発見しています。事前学習の解像度は224です。
評価結果
いくつかの画像分類ベンチマークの評価結果については、元の論文の表2と表5を参照してください。なお、微調整の場合、より高い解像度(384x384)で最良の結果が得られます。もちろん、モデルサイズを大きくすると性能が向上します。
BibTeX引用と引用情報
@misc{wu2020visual,
title={Visual Transformers: Token-based Image Representation and Processing for Computer Vision},
author={Bichen Wu and Chenfeng Xu and Xiaoliang Dai and Alvin Wan and Peizhao Zhang and Zhicheng Yan and Masayoshi Tomizuka and Joseph Gonzalez and Kurt Keutzer and Peter Vajda},
year={2020},
eprint={2006.03677},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@inproceedings{deng2009imagenet,
title={Imagenet: A large-scale hierarchical image database},
author={Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and Fei-Fei, Li},
booktitle={2009 IEEE conference on computer vision and pattern recognition},
pages={248--255},
year={2009},
organization={Ieee}
}
📄 ライセンス
このプロジェクトは、Apache - 2.0ライセンスを採用しています。