数学がわからない

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

論文を読む「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)はランダム初期化ではなく事前トレーニングしておく。

3.2. Online Training with Gradient Descent-3

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

モデルをオフラインで微調整するときは、壊滅的な忘却を避けるために、数層のみを更新するか、小さい学習率を使用するのが一般的です。

これとは対照的に、オンラインでの適応では、JITNetモデルを忘れることを犠牲にしても現在の状況に適応させる必要があります。したがって、我々はすべての層を高い学習率で更新します。

経験的に、我々は、高い運動量(momentum)(0.9)と学習率(0.01)での勾配降下法が、JITNetパラメータを更新するのに非常にうまくいくことを発見している。
運動量が高いと、教師の予測ノイズに対する回復力によってトレーニングが安定すると考えられます。
0.01を超える学習率はトレーニングを不安定にすることがわかりました。

すべてのオンライントレーニング実験で同じパラメータを使用しています。

学習率は高めにしておくとの事。不安定になりそうだが・・・。
オフラインでは学習率を小さめに、オンラインでは大きめに、というのは一般的にそうなのだろうか?素人目にはリスクが高く感じるし、そんな簡単にこの課題を解決できるのだろうか、という疑問が湧く。

まとめ

学生モデルは教師モデルの出力を用いて、学習率高めで処理するとの事。次は3.3節。