論文を読む「Online Model Distillation for Efficient Video Inference」⑰
背景
「蒸留(Distillation)」に関して、論文"Ravi Teja Mullapudi, Online Model Distillation for Efficient Video Inference."を読む。
蒸留とは
蒸留とは、「何でも理解できるが重いネットワークよりも、実運用を考慮して特定の対象に特化させることで軽いネットワークを作る手法」。
問題
「特定の対象」を明確にして予め準備して訓練するのが難しい。
提案手法
そこで本論文は「オンライン」で訓練する方法を提案。
本論文の提案する手法で作るビデオの毎フレームを処理する学生モデル「JITNet」は、高解像度入力からの推論、高学習率更新での安定性が求められ、エンコーダ・デコーダに類似した、内部に修正ResNetブロックを持つアーキテクチャで目的を達成する。この学生モデルは教師モデルとして使う「MRCNN」の91倍の推論速度で実行できる。
トレーニング
訓練に用いるターゲットラベルは教師モデル(MRCNN)から生成する。
また、学生モデル(JITNet)はランダム初期化ではなく事前トレーニングしておく。
オンライントレーニングにおいて、momentumを0.9と学習率を0.01とオフラインより高めに設定する。
オンライントレーニングは、"stride"フレームおきに教師モデルの生成するデータを用いて行う。その際の教師モデルと学生モデルとの比較結果に応じて、"stride"の値を調整するというもの。唯一ユーザーが設定できるパラメータ精度閾値が大きければトレーニングされやすくなり、小さければトレーニングされにくくなる。
評価
- MRCNNとの比較で効率と精度の両方を評価
- 精度測定基準はmean IoU
- 速度の評価はMRCNNとの比較
JITNetとMRCNNとの比較
結果のサマリ。
- 高性能を維持しながら平均10倍、パラメータを低精度側に倒せば20倍近く、困難な課題でも5倍の高速化が達成できる。
- 課題
- オブジェクトの大小による得意不得意
- 教師の推論結果すら信用できない場合
- オンラインモデル蒸留という仕組み自体が苦手とするもの
JITNetのオンラインとオフラインの比較
- JITNetはオフラインで十分な精度を実現できる容量がないことを確認
- 少ない容量でも本論文のトレーニング方式により様々な場面に対応することが可能
JITNetの従来手法との比較
- 教師モデルの結果を補間する手法
- Video Object Segmentation(VOS)
論文
Google翻訳した上で、自分の理解しやすいように修正する。
6. Conclusion
この研究で我々は。一般的な実世界のビデオストリーミングのシナリオにおいて、高い容量の教師に匹敵するセマンティックセグメンテーションの精度を持つ、コンパクトな(低コスト)モデルのオンライン蒸留を実行することが可能であることを示す。
今後、姿勢推定などの他のタスクに関する効率的なビデオ推論において、私たちの結果がオンライン蒸留の発展を促進することを願っています。
より一般的には、高解像度8ビデオストリームの連続キャプチャが一般的になるにつれて、慎重に精選されたデータセットでオフライントレーニングはしない代わりに、特定のビデオストリームから観察したデータで日々継続的にトレーニングされるモデルの設計とトレーニングについて考えることは、より広範なコミュニティにとって重要です。
Long Video Streamsデータセットがこの一連の研究に役立つことを願っています。
結論。やったこと、今後、思想、期待について。
一応、論文としてはここで終わりだが、以下Appendixが続く。
7. Appendix
7.1. Online Distillation Parameter Studyオンライン蒸留アルゴリズムを含む研究におけるすべての実験は、精度閾値を除いて、パラメータ(最大更新、最小ストライド、学習率)に対して固定値のセットを使用する。
表5は、これらのパラメータ値を変えたときの精度、スピードアップ、および教師あり学習に使用されるフレーム割合を比較する。
我々は、データセットからの6つのストリームのサブセット(異なるシナリオの代表)に対して、アブレーション研究を行う。
ベースラインはJITNet 0.8(精度しきい値0.8で実行されるオンライン蒸留アルゴリズム)です。 JITNet 0.8では、最大更新数、最小ストライド、および学習率は、それぞれ8、8、および0.01に設定されました。
我々は一度に一つのパラメータを変え、そして表の各列はJITNet 0.8ベースラインからの変化に対応しています。
本稿では行わなかった精度閾値以外のパラメータに関する研究を行う。
- パラメータは最大更新数、最小ストライド、学習率の3つ。
- ベースラインはJITNet0.8、パラメータはそれぞれ8,8,0.01
- 3つの一つずつ変えた場合を実験
(学習率について)
高い学習率は高速な適応を可能にする。そのため、本稿ではすべての実験でオンライントレーニングが安定する最高の学習率を選択しました。ご覧のとおり、低い学習率0.001は、精度と速度の両方が低下します。
学習率を0.1に増加すると、トレーニングが不安定になり、結果が非常に悪くなります。(更新回数について)
単一フレームに対する更新回数は、モデルがそのフレームからどれだけ学習できるか、およびその情報が近い将来にどれほど有用か、によって異なります。これは困難である。なぜなら、将来のフレームにアクセスせずに、モデルにとって何が本質的に難しく学習すべきかを推論することであるから。
更新回数を増やすと、オーバーフィットして精度が下がり、一方、スピードが上がり、全体として教師サンプル数が減ります。
これは、単純な精度ベースのヒューリスティックに比べて、特定のフレームに対して実行する更新の数を選択する際に、改善の余地があることを示唆しています。
全体的にパラメータの設定にロバストであまり振れる幅もないが、更新回数に関しては改善の価値がありそうとのこと。
まとめ
本稿が終わり。
今回はAppendix7.1。本稿で扱わなかったパラメータに関する検討。
あとはAppendix7.2、7.3、7.4。