🚀 ビジョントランスフォーマー (ベースサイズのモデル) - ハイブリッド
ハイブリッドビジョントランスフォーマー(ViT)モデルは、Alexey Dosovitskiy、Lucas Beyer、Alexander Kolesnikov、Dirk Weissenborn、Xiaohua Zhai、Thomas Unterthiner、Mostafa Dehghani、Matthias Minderer、Georg Heigold、Sylvain Gelly、Jakob Uszkoreit、Neil Houlsbyによる An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale で提案されました。この論文は、TransformerエンコーダをImageNetで成功裏に学習させ、従来の畳み込みアーキテクチャと比較して非常に良好な結果を得た最初の論文です。ViTハイブリッドは、通常のビジョントランスフォーマー のわずかなバリエーションで、畳み込みバックボーン(具体的には BiT)を利用し、その特徴量をTransformerの初期「トークン」として使用します。
なお、ViTをリリースしたチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
ViTモデルは、画像分類タスクにおいて、畳み込みニューラルネットワーク(CNN)に代わる新しいアプローチを提供します。このモデルは、大規模なデータセットで事前学習され、複数の中規模または小規模の画像認識ベンチマークで優れた結果を達成します。
✨ 主な機能
- Transformerアーキテクチャを使用して、画像パッチのシーケンスに直接適用することで、画像分類タスクで良好な性能を発揮します。
- 大規模なデータセットで事前学習され、複数の画像認識ベンチマークで転移学習することができます。
- 畳み込みニューラルネットワークと比較して、学習に必要な計算資源が大幅に少なくて済みます。
📦 インストール
このモデルを使用するには、transformers
ライブラリをインストールする必要があります。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import ViTHybridImageProcessor, ViTHybridForImageClassification
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 = ViTHybridImageProcessor.from_pretrained('google/vit-hybrid-base-bit-384')
model = ViTHybridForImageClassification.from_pretrained('google/vit-hybrid-base-bit-384')
inputs = feature_extractor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
>>> tabby, tabby cat
高度な使用法
より多くのコード例については、ドキュメント を参照してください。
📚 ドキュメント
モデルの説明
Transformerアーキテクチャは自然言語処理タスクで事実上の標準となっていますが、コンピュータビジョンへの応用は限られています。ビジョンでは、アテンションは畳み込みネットワークと組み合わせて適用されるか、畳み込みネットワークの特定のコンポーネントを置き換えるために使用されますが、全体的な構造は維持されます。このCNNへの依存は必要なく、画像パッチのシーケンスに直接適用される純粋なTransformerは、画像分類タスクで非常に良好な性能を発揮できることを示しています。大量のデータで事前学習され、複数の中規模または小規模の画像認識ベンチマーク(ImageNet、CIFAR - 100、VTABなど)に転移されると、Vision Transformer(ViT)は最先端の畳み込みネットワークと比較して優れた結果を達成し、学習に必要な計算資源は大幅に少なくて済みます。
想定される用途と制限
このモデルは、画像分類に使用できます。関心のあるタスクで微調整されたバージョンを探すには、モデルハブ を参照してください。
🔧 技術詳細
学習データ
ViT - Hybridモデルは、1400万枚の画像と21kのクラスから構成される ImageNet - 21k で事前学習され、100万枚の画像と1kのクラスから構成される ImageNet で微調整されました。
学習手順
前処理
学習/検証中の画像の前処理の正確な詳細は、ここ で確認できます。画像は同じ解像度(224x224)にリサイズ/リスケールされ、RGBチャネル全体で平均(0.5, 0.5, 0.5)と標準偏差(0.5, 0.5, 0.5)で正規化されます。
事前学習
このモデルはTPUv3ハードウェア(8コア)で学習されました。すべてのモデルバリアントは、バッチサイズ4096と学習率ウォームアップ10kステップで学習されます。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ライセンスの下で提供されています。