TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

知識蒸留:大きなモデルの知識を小さなモデルに移転する — そして「録画済み教員 → リアルタイム生徒」

ステータス:ドラフト(2026-10-13)。 論文の数値は原典を開き、条件とともに確認しました。実際に試したのはノートPCのCPUでのトイモデルの例(code/04_distill_toy.py、2〜3分)です。TT Scoreの「録画済み教員 → リアルタイム生徒」の蒸留は 計画段階であり、実際の卓球データではまだ行っていません(進行中の研究、未実測)。 シリーズ「ビジョンモデルを読む2」の第4回。第2回のDINOはすでに「自己蒸留」でした: 自己教師あり学習 1.

目次

1. 直感:正解だけを教える先生、混乱する理由まで教えてくれる先生

手書き数字の「2」を見せて「正解は2」とだけ伝えると、生徒は2と残りの9つの数字を同じように異なるものとして学びます。しかし、すでに十分に学習した大きなモデルに同じ画像を見せると、このように答えます。「2である確率0.97、3である確率0.02、7である確率0.009、残りはほぼ0。」この小さな数値の中に情報があります。 この2は3や7と少し似ており、4とは全く似ていない。 正解ラベルにはない情報です。

Hintonら(2015)はこれを「ダークナレッジ(dark knowledge)」と呼び、大きなモデル(教員)の確率出力を小さなモデル(生徒)の正解として使うことを提案しました。これが 知識蒸留(knowledge distillationing / knowledge distillation) です。生徒は教員よりもはるかに小さいため高速であり、その代わりに教員が築き上げた「類似度のマップ」を受け継ぎます。

2. 学習方法

温度による滑らか化

十分に学習した教員の確率は、たいていほぼ0か1になります。上記の例の0.009のような値は、損失において存在感がありません。そのため、ソフトマックス関数に入力する前にロジットを温度Tで割ります(第1回のτと同じノブで、方向は逆に大きく使用します)。

p_교사(T) = softmax(z_교사 / T),   p_학생(T) = softmax(z_학생 / T)
L = (1 − α) · CE(정답, p_학생(1))  +  α · T² · KL(p_교사(T) ‖ p_학생(T))

転移セット:ラベルがなくてもよい

蒸留項には正解ラベルが不要です。教員に入力を何でも見せれば、その出力がそのまま正解になります。したがって、生徒を学習させるデータ(転移セット)は ラベルのないデータであっても構いません。この性質が、本稿の終わりの我々の計画の核心となります。

何を予測するか:出力、中間特徴、トークン

3. 図:我々の計画

녹화본 교사 → 실시간 학생(계획) 시간 축(프레임), 판단할 순간 t t 교사: 앞뒤를 다 본다(녹화본) 학생: 과거 + 짧은 앞보기 앞보기 ≤ 200ms 라벨 단 랠리 적다(사람이 찍음) 녹화본 많다(라벨 없음) 교사 학습 크고 느려도 됨 교사가 단 부드러운 라벨 학생 학습 사람 + 교사 라벨 작고 빨라야 함 증류가 메우는 것: 데이터가 모자라서 생긴 차이 메우지 못하는 것: 학생이 볼 수 없는 미래의 정보
図:録画済み教員がラベルなしのラリーにラベルを付与し、リアルタイム生徒がそれによって学ぶ計画

TT Scoreの判定には2つの用途があります。試合中に画面にスコアを表示する リアルタイム判定、そして試合終了後に映像を再解析する 録画解析です。この2つは制約が異なります。

リアルタイム生徒 録画済み教員
確認できる時間 判断の瞬間まで + 短い未来予測(200ms以下) ラリー全体(前後すべて)
計算リソースの予算 60fpsの1フレーム16.7msのうち新モジュールの割り当て5ms以下 余裕あり(ラリーの終了時、または夜間)
モデル 小さくなければならない 大きくてもよい

録画側はバウンド後にボールがどこへ向かうかまで確認して判断できるため、より正確でしょう。その教員が ラベルのない録画データを数百件ラベル付けしてあげれば、リアルタイム生徒は人間がラベル付けしたことのあるラリーよりもはるかに多くの例から学習できます。この計画は研究ノートに「2つのトラック(リアルタイム最高・録画最高)と蒸留」として記載されており、まだ実行していません(進行中の研究)。

4. 実際に試してみる

code/04_distill_toy.py をノートPCのCPUで実行しました(出力 code/04_distill_toy.out.txt).

A. 従来の蒸留の縮小版

互いに似たペア(0と5、1と6…)が存在する10クラス分類です。教員(パラメータ27万8千個)を3,000個のラベルで学習させ、テスト精度は0.856でした。生徒はパラメータ754個(教員の0.27%)です。

教員の出力を温度別に確認すると、「ダークナレッジ」が明らかになります(正解が7のテスト画像)。

T=1 → [0.    0.    0.    0.    0.    0.    0.    1.    0.    0.   ]
T=4 → [0.005 0.004 0.006 0.    0.001 0.    0.008 0.962 0.002 0.012]

T=1では正解の1つしか見えませんが、T=4で滑らかにすると、7番が6・9番と少し、3・5番とはほとんど似ていないという情報が現れます。

生徒の学習法(3シードの平均 [範囲]) テスト精度
(1)ラベル150個のみ 0.829 [0.828–0.831]
(2)ラベル150個 + 教員 T=1 0.833 [0.832–0.835]
(2)ラベル150個 + 教員 T=4 0.850 [0.846–0.853]
(2)ラベル150個 + 教員 T=8 0.844 [0.842–0.847]
(3)ラベル0個 + ラベルなしの転移セット3,000個(T=4) 0.854 [0.850–0.861]

教員の出力をT=1のまま使用しても効果はほとんどなく、T=4で滑らかにして初めて2%ポイントほど向上しました。そして、 人間のラベルを一切使用せずに 教員がラベルなしデータ3,000個に対して付与した出力のみで学習した生徒は0.854となり、教員(0.856)にほぼ迫りました。生徒のサイズが教員の0.27%であるにもかかわらずです。

Hintonらの有名な実験の一つも模倣しました。転移セットから3番に見えるサンプルをごっそり除外しました。生徒は3番を一度も「正解」として見たことがありません。

전이 세트에서 3번을 뺀 학생: 3번 재현율 0.066, 전체 0.774
  3번 출력의 치우침(bias)만 +8 올리면: 3번 재현율 0.905, 전체 0.845

3番をほとんど当てられませんが、3番の出力のバイアスを1つ上げるだけで90%を正解します。生徒は他の数字の出力に混ざった「3との類似度」から、3番がどのような形をしているのかを学習したのです。ただし、バイアス値はテストセットを見て選択した例示用です。原論文のMNISTの実験も同じ方向性でした(下表)。

B. 録画済み教員 → リアルタイム生徒

ボールの高さの時系列(60fps、位置のノイズ、フレームの10%脱落、カメラの遠近感を模した緩やかな揺れ)からバウンドフレームを検出する問題です。ボールがラケットに当たって折れ曲がる打球も混ぜ、曲がり方の形状だけではバウンドか確信できないようにしました。

生徒(3シードの平均 [範囲]) 未来予測0 未来予測3フレーム
教員(前後8フレーム、ラベル20ラリー) 0.923 [0.915–0.929] ← 同等
人間のラベル20ラリーのみ 0.860 [0.852–0.871] 0.875 [0.857–0.897]
+ 教員がラベルを付与した300ラリー 0.886 [0.882–0.890] 0.886 [0.879–0.897]
参考:+ 人間がラベルを付与した300ラリー(上限) 0.892 [0.885–0.895] 0.886 [0.877–0.902]

未来予測0の生徒は、教員のラベルによって0.860から0.886に向上し、これは同じ300ラリーに対して人間が直接ラベルを付与した場合(0.892)とほぼ同等です。 人間による300ラリーのラベル付けを教員がほぼ肩代わりしました。 未来予測3フレームの生徒も0.886に達しましたが、出発点が高いため利得は小さくなりました。

教員(0.923)との差は蒸留では埋まりませんでした。生徒が 見ることのできない未来に含まれている情報は、いかに優れた先生であっても移転してあげることはできません。蒸留が埋めるのは「データ不足によって生じた差」であり、「入力不足によって生じた差」ではありません。この区別によって、我々の計画において期待できることとできないことが定まります。

5. 論文の数値

論文 対象 数値(論文)
Hintonら 2015 MNIST:教員(1200-1200、正則化) / 生徒(800-800) 誤り67件 / 146件 → 生徒にT=20で蒸留 74件
〃 MNIST:転移セットから3を除外 誤り206件(うち3が133件) → 3のバイアス+3.5により109件、テストの3を98.6%正解
〃 音声認識:単一 / 10個のアンサンブル / 蒸留した単一 フレーム精度 58.9% / 61.1% / 60.8%、単語誤り率 10.9% / 10.7% / 10.7%。アンサンブルの利得の80%超を移転(T=2)
FitNets (2015) CIFAR-10 薄くて深い生徒(19層、約250万)が教員(約900万)の90.18%を超える91.61%
DeiT (2021) ImageNet、ViT-B生徒 教員の最終的な答え(hard)を予測する側(83.0%)が確率(soft)の81.8%より優れている。畳み込み教員(RegNetY-16GF)がTransformer教員よりも優れている。蒸留トークンを含め1000エポックで85.2%(384px)。外部データなしでGPU8枚のサーバー1台
Beyerら 2022 ImageNet、ResNet-50生徒 教員と生徒に 同じクロップ・同じmixupを入力し(一貫性)、9,600エポック学習(忍耐強さ) → 82.8%(2つの解像度の教員のアンサンブル、単一教員では82.3%)。正解ラベルなしでKLのみを使用。教員の出力を事前に計算しておくと逆に悪化する
Noisy Student (2020) ImageNet、ラベルなしの3億枚に教員がラベル付け 生徒を教員より大きくし、ノイズ(ドロップアウト・確率的深さ・強力なデータ拡張)を加えて3回繰り返す → EfficientNet-L2 88.4%、ImageNet-A 61.0 → 83.7%
EfficientAT (2023) 音声タギング、Transformerアンサンブル → MobileNetV3(488万) ベースラインmAP .401、蒸留 .458、蒸留+事前学習 .470。ラベル損失の重みは0.1が最適であり、0にすると逆に悪化する。教員より61倍高速
DWPose (2023) 全身姿勢推定、RTMPose-l生徒 64.8 → 66.5 AP、教員のRTMPose-x(65.3)を超える
DINOv2 (2023) ViT-L をゼロから / ViT-g から蒸留 線形評価 84.5% / 86.3%

いくつかの点が目を引きます。

6. 限界

7. 私たちのプロジェクトとのつながり

TT からの一言。 試合を最後まで見届けた先生が「ここにバウンドがあったよ」と何百ものラリーに印をつけてくれると、リアルタイムだけで見る生徒もかなり上手に学習できます。それでもまだ訪れていない未来まで教えることはできないため、生徒は先生よりは少し劣ったままになります。

参考文献

ログインするといいねできます

コメント

まだコメントはありません。

ログインするとコメントできます