🚀 Vision Transformer (base-sized model) のMSNによる事前学習済みモデル
Vision Transformer (ViT) モデルは、MSN手法を用いて事前学習されています。このモデルは、Mahmoud Assran, Mathilde Caron, Ishan Misra, Piotr Bojanowski, Florian Bordes, Pascal Vincent, Armand Joulin, Michael Rabbat, Nicolas Ballasによる論文 Masked Siamese Networks for Label-Efficient Learning で紹介され、このリポジトリ で最初に公開されました。
免責事項: MSNを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されました。
🚀 クイックスタート
このVision Transformer (ViT) の事前学習済みモデルは、画像の特徴抽出や下流タスクに利用できます。MSN手法により、少ないラベル付きデータでも良好な性能を発揮します。
✨ 主な機能
- 画像を固定サイズのパッチ列としてモデルに入力するTransformerエンコーダーモデルです。
- MSNの手法により、マスクされたパッチとマスクされていないパッチのプロトタイプを一致させる共同埋め込みアーキテクチャを採用しています。
- 事前学習により、下流タスクに有用な画像の内部表現を学習します。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import AutoFeatureExtractor, ViTMSNModel
import torch
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 = AutoFeatureExtractor.from_pretrained("facebook/vit-msn-base")
model = ViTMSNModel.from_pretrained("facebook/vit-msn-base")
inputs = feature_extractor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
高度な使用法
画像分類タスクでの微調整には、ViTMSNForImageClassification
クラスを使用します。
from transformers import AutoFeatureExtractor, ViTMSNForImageClassification
import torch
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 = AutoFeatureExtractor.from_pretrained("facebook/vit-msn-base")
model = ViTMSNForImageClassification.from_pretrained("facebook/vit-msn-base")
...
📚 ドキュメント
モデルの説明
Vision Transformer (ViT) は、Transformerエンコーダーモデル(BERTのような)です。画像は固定サイズのパッチ列としてモデルに入力されます。
MSNは、マスクされたパッチのプロトタイプとマスクされていないパッチのプロトタイプを一致させる共同埋め込みアーキテクチャを提案しています。この設定により、少ないラベル付きデータや極めて少ないラベル付きデータの状況でも優れた性能を発揮します。
モデルを事前学習することで、下流タスクに有用な画像の内部表現を学習します。例えば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダーの上に線形層を配置して標準的な分類器を学習することができます。
想定される用途と制限
このモデルは、画像分類などの下流タスクに使用できます。モデルハブ を参照して、興味のあるMSNの事前学習済みモデルの異なるバージョンを探すことができます。このモデルは、学習セットに少数のラベル付きサンプルしかない場合に特に有益です。
🔧 技術詳細
このモデルは、Transformerエンコーダーをベースにしており、MSN手法により事前学習されています。MSNは、マスクされたパッチとマスクされていないパッチのプロトタイプを一致させることで、少ないラベル付きデータでも良好な性能を達成します。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で公開されています。
引用
@article{assran2022masked,
title={Masked Siamese Networks for Label-Efficient Learning},
author={Assran, Mahmoud, and Caron, Mathilde, and Misra, Ishan, and Bojanowski, Piotr, and Bordes, Florian and Vincent, Pascal, and Joulin, Armand, and Rabbat, Michael, and Ballas, Nicolas},
journal={arXiv preprint arXiv:2204.07141},
year={2022}
}