🚀 ビジュアルトランスフォーマー(超大モデル)
ビジュアルトランスフォーマー(ViT)は事前学習モデルで、ImageNet - 21k(1400 万枚の画像と 21843 のカテゴリを含む)データセットで、画像解像度 224x224 で学習されています。このモデルは Dosovitskiy らによって論文 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale で提案され、最初に このリポジトリ で公開されました。ただし、モデルの重みは Ross Wightman によって timm リポジトリ から変換されたもので、彼は重みを JAX から PyTorch に変換しました。ここで彼に感謝申し上げます。
声明:ViT を公開したチームはこのモデルのモデルカードを作成していません。このカードは Hugging Face チームによって作成されました。
🚀 クイックスタート
ビジュアルトランスフォーマー(ViT)は、Transformer エンコーダに基づくモデル(BERT に類似)で、大量の画像(つまり ImageNet - 21k)を教師あり学習で事前学習しています。画像解像度は 224x224 ピクセルです。
✨ 主な機能
- ImageNet - 21k という大規模な画像データセットで教師あり学習による事前学習を行っています。
- モデルは画像を固定サイズのパッチ(解像度 16x16)に分割し、線形埋め込み処理を行います。
- モデルには事前学習されたプーリング層が含まれており、下流のタスクに利用できます。
📦 インストール
ドキュメントにインストール手順が記載されていません。関連ライブラリ(例:transformers
)の公式インストールガイドを参照してインストールしてください。
💻 使用例
基本的な使用法
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-huge-patch14-224-in21k')
model = ViTModel.from_pretrained('google/vit-huge-patch14-224-in21k')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
高度な使用法
現在、特徴抽出器とモデルはどちらも PyTorch をサポートしています。Tensorflow と JAX/FLAX のサポートは近日追加予定で、ViTFeatureExtractor の API は変更される可能性があります。
📚 ドキュメント
モデルの説明
ビジュアルトランスフォーマー(ViT)は、Transformer エンコーダに基づくモデル(BERT に類似)で、大量の画像(つまり ImageNet - 21k)を教師あり学習で事前学習しています。画像解像度は 224x224 ピクセルです。
画像は固定サイズのパッチシーケンス(解像度 16x16)としてモデルに入力され、線形埋め込みが行われます。また、シーケンスの先頭には分類タスク用の [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 ライセンスの下で提供されています。