数学がわからない

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

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

背景

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

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

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

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

3.2. Online Training with Gradient Descent-2

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

訓練のためのターゲットラベルを生成するために、我々は、信頼性閾値を超えるMRCNNによって提供されたインスタンスマスクを使用し、それらをピクセルレベルのセマンティックセグメンテーションラベルに変換する。

インスタンスが報告されていないすべてのピクセルが背景としてラベル付けされる。ほとんどのビデオストリームでは、これによって、他のクラスと比較して背景の割合はかなり高くなる。この不均衡は、素早く学習する学生モデルの能力を低下させる、特に小さなオブジェクトの場合、損失の大部分が背景で重みづけされるため。

我々は、各予測されたインスタンスバウンディングボックス(15%の膨張したもの)のピクセル損失を、ボックスの外側のピクセルよりも5倍高く重み付けすることで、この問題を軽減する。

この重み付けは、オブジェクト境界付近のより困難な領域と小さなオブジェクトのトレーニングに焦点を当てる。これらの重み付きラベルを用いて、重み付きクロスエントロピー損失と勾配降下によるモデルパラメータを更新するための勾配を計算する。

ランダムな初期化からビデオでJITNetをトレーニングするには、ストリームに適応するための十分なトレーニングが必要になるため、COCOデータセットにJITNetをトレーニングしてから、トレーニング済みモデルを各ストリームに適応させる。

f:id:rettouseinosugakubenkyo:20190424052032p:plain

教師モデル(MRCNN)から作成したインスタンスマスクから学生モデル(JITNet)用のセグメンテーションラベルを作るが、オブジェクトと比較して背景が大きすぎるため、重みづけにより調整するとのこと。

これは前段落の教師予測は一時的に不安定に対応しているのだろうか? 良く分からない。

あと、JITNetはランダム初期化したものをいきなりビデオストリームに与えるのではなく、COCOデータセットを使って事前トレーニングしておくとのこと。

まとめ

学生モデルのトレーニングに話は移り、学生モデル用の教師データの作り方と事前トレーニングについて言及している。