MNIST 用 Dynamic Adversarial Data Collection(DADC) – Hugging Face チュートリアル
TL;DR
Hugging Face は、MNIST 手書き数字タスクで Dynamic Adversarial Data Collection (DADC) を実演する実用的なガイドを公開し、ユーザーが Gradio 🤗 Space を通じて敵対的サンプルを収集し、フラグ付けし、モデルを反復的に再訓練してロバスト性を向上させることができるようにしました。
ダイナミック・アドバーサリアル・データコレクションとは?
Dynamic Adversarial Data Collection(DADC)は、静的ベンチマークを、人間が意図的に最新モデルを騙す入力を作成するループに置き換えます。このループは 2 つの利点を提供します。モデルの真のロバスト性を明らかにし、より強力なモデルの訓練に使用できる、拡大し続ける人間中心のデータセットを生成します。複数ラウンドにわたって騙す‑再訓練サイクルを繰り返すことで、人間の期待により合致したモデルが得られます。
MNIST モデルの設定
チュートリアルは、MNIST 用のシンプルな畳み込みニューラルネットワークを定義することから始まります。
class MNIST_Model(nn.Module):
def __init__(self):
super(MNIST_Model, self).__init__()
self.conv1 = nn.Conv2d(1, 10, kernel_size=5)
self.conv2 = nn.Conv2d(10, 20, kernel_size=5)
self.conv2_drop = nn.Dropout2d()
self.fc1 = nn.Linear(320, 50)
self.fc2 = nn.Linear(50, 10)
def forward(self, x):
x = F.relu(F.max_pool2d(self.conv1(x), 2))
x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
x = x.view(-1, 320)
x = F.relu(self.fc1(x))
x = F.dropout(x, training=self.training)
x = self.fc2(x)
return F.log_softmax(x)
アーキテクチャを定義した後、モデルは標準的な MNIST の train/dev 分割で訓練されます。
🤗 Spaces を介したモデルとのインタラクション
ベースラインモデルが訓練されると(例では 20 エポックでテスト精度 89 % に達します)、ガイドはそれを Gradio 🤗 Space を通じて公開する方法を示します。ユーザーはキャンバス上に数字を描き、モデルは予測を返します。Space の URL は https://huggingface.co/spaces/chrisjay/simple-mnist-classification です。このインタラクティブデモは、敵対的入力を収集するためのエントリーポイントとなります。
敵対的サンプルのフラグ付け
ユーザーがモデルを騙すことに成功したとき、そのサンプルは フラグ付け されます:
- 敵対的画像がデータセットに保存されます。
- フラグ付けされたサンプルが閾値に達した後、拡張されたデータセットでモデルが再訓練されます。
- ステップ 1‑2 が複数ラウンドにわたって繰り返されます。
チュートリアルはカスタム flag 関数を提供しています(完全なソースは .../mnist-adversarial/blob/main/app.py#L314 を参照)。Gradio には組み込みのフラグ付けコールバックもあり、https://gradio.app/using_flagging/ にドキュメントがあります。
エンドツーエンドデモ
モデル定義、インタラクティブ Space、フラグ付けロジックの 3 つのコンポーネントすべてが、MNIST Adversarial(https://huggingface.co/spaces/chrisjay/mnist-adversarial)という単一のデモに統合されています。ユーザーはシステムを直接テストし、敵対的サンプルを生成し、再訓練後にモデルがどのように改善されるかを観察できます。
意義とコミュニティの発見
DADC は、飽和や隠れたバイアスといった静的ベンチマークの限界に対処するため、人間が生成したエッジケースを継続的に注入します。ブログでは Eric Wallace ら(2022)の研究を引用し、非敵対的データ収集は短期的な成果をもたらす可能性がある一方で、DADC は自然言語推論タスクにおいて最も高い長期精度を実現すると示しています。同様の原理は MNIST のようなビジョンタスクにも当てはまり、静的テストセットでは多様な手書きスタイルが過小評価されています。
結論
Dynamic Adversarial Data Collection は、飽和しない人間中心のデータセットの作成を可能にし、反復的な騙す‑再訓練ループを通じてモデルのロバスト性を向上させます。Hugging Face のチュートリアルは、🤗 Spaces と Gradio を用いればフル DADC パイプラインの構築が簡単であることを示し、研究者や実務者がこの手法を採用するハードルを下げています。