🚀 Vision Transformer (小型モデル) のMSNによる事前学習済みモデル
MSN手法を用いて事前学習されたVision Transformer (ViT) モデルです。このモデルは、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チームによって作成されました。
🚀 クイックスタート
このモデルは、画像の事前学習にMSN手法を用いたVision 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-small")
model = ViTMSNModel.from_pretrained("facebook/vit-msn-small")
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-small")
model = ViTMSNForImageClassification.from_pretrained("facebook/vit-msn-small")
...
📚 ドキュメント
モデルの説明
Vision Transformer (ViT) は、Transformerエンコーダモデル(BERTのような)です。画像は固定サイズのパッチ列としてモデルに入力されます。
MSNは、マスクされたパッチのプロトタイプをマスクされていないパッチのプロトタイプと一致させるためのジョイント埋め込みアーキテクチャを提案しています。この設定により、低サンプルや超低サンプルの状況でも優れた性能を発揮します。
モデルを事前学習することで、画像の内部表現を学習し、下流タスクに有用な特徴を抽出することができます。例えば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して、標準的な分類器を訓練することができます。
想定される用途と制限
このモデルは、画像分類などの下流タスクに使用できます。モデルハブ を参照して、興味のある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}
}