数学がわからない

日々の勉強をアウトプットする。

論文を読む「Online Model Distillation for Efficient Video Inference」⑩

背景

「蒸留(Distillation)」に関して、論文"Ravi Teja Mullapudi, Online Model Distillation for Efficient Video Inference."を読む。

蒸留とは

蒸留とは、「何でも理解できるが重いネットワークよりも、実運用を考慮して特定の対象に特化させることで軽いネットワークを作る手法」。しかし「特定の対象」を明確にして予め準備して訓練するのが難しい。そこで本論文は「オンライン」で訓練する方法を提案している。

提案手法

本論文の提案する手法で作るビデオの毎フレームを処理する学生モデル「JITNet」は、高解像度入力からの推論、高学習率更新での安定性が求められ、エンコーダ・デコーダに類似した、内部に修正ResNetブロックを持つアーキテクチャで目的を達成する。この学生モデルは教師モデルとして使う「MRCNN」の91倍の推論速度で実行できる。

提案手法の課題

この「JITNet」を訓練するには以下の課題がある。

レーニン

訓練に用いるターゲットラベルは教師モデル(MRCNN)から生成する。
また、学生モデル(JITNet)はランダム初期化ではなく事前トレーニングしておく。
オンライントレーニングにおいて、momentumを0.9と学習率を0.01とオフラインより高めに設定する。

3.3. Adaptive Online Distillation-1

Google翻訳した上で、自分の理解しやすいように修正する。

分布変化の割合は、ビデオストリームの性質に依存します。

分布が定常に近い場合、適応はほとんど必要ありません。ビデオの分布が急速に変化する場合は、JITNetを頻繁に更新して歩調を合わせる必要があります。

これは、高い精度を維持するために必要な場合にのみJITNetを適応させることによって効率を最大化する機会を示唆しています。

いつJITNetを適応させるべきか(いつ教師を動かすべきか)を決定するためのアルゴリズムはそれ自身効率的でなければなりません。そうでなければ、いつ適応するかを決定するためのコストは、まれなトレーニングのパフォーマンス上の利点を減少させるでしょう。

用いるビデオストリームの性質によって、学習モデルJITNetをいつ訓練させればよいかが変わる。ただ、そのいつ訓練させるかのアルゴリズムは複雑だと困る、とのこと。

我々は指数的バックオフ(exponential back-off )[13]を採用した直接的な適応戦略を開発しました。

完全な適応型オンライン蒸留アルゴリズムを図3に示します。

このアルゴリズムへの入力は、ビデオストリーム、所望の精度しきい値、およびJITNetと教師(MRCNN)モデルです。

適応に対する構成パラメータは、単一フレーム上で実行される学習ステップの最大数であり、最小/最大フレームは、教師呼出しの間をまたがる。

コードで示されている図3をフローチャートにしたものを記載する。
f:id:rettouseinosugakubenkyo:20190426052137p:plain

"stride"フレームおきに教師モデルの出力を用いて学生モデルをトレーニングするが、"stride"の値を教師モデルの出力と学生モデルの出力との比較結果に応じて2倍にしたり半分にしたりする、というアルゴリズム

まとめ

学生モデルをいつトレーニングするかというアルゴリズムについて説明。
疑問は、教師モデルはリアルタイム処理できないはずと理解しているが、その点について触れられていなさそうなところ。