数学がわからない

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

論文を読む「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とオフラインより高めに設定する。

オンライントレーニングは、"stride"フレームおきに教師モデルの生成するデータを用いて行う。その際の教師モデルと学生モデルとの比較結果に応じて、"stride"の値を調整するというもの。唯一ユーザーが設定できるパラメータ精度閾値が大きければトレーニングされやすくなり、小さければトレーニングされにくくなる。

Long Video Streams dataset(LVS)データセット

  • 評価用に作成
  • 900分(160万フレーム)

評価

方法
  • MRCNNとの比較で効率と精度の両方を評価
  • 精度測定基準はmean IoU
  • 速度の評価はMRCNNとの比較
結果

*** JITNetとMRCNNとの比較

結果のサマリ。

  • 高性能を維持しながら平均10倍、パラメータを低精度側に倒せば20倍近く、困難な課題でも5倍の高速化が達成できる。
  • 課題
    • オブジェクトの大小による得意不得意
    • 教師の推論結果すら信用できない場合
    • オンラインモデル蒸留という仕組み自体が苦手とするもの

*** JITNetのオンラインとオフラインの比較

  • JITNetはオフラインで十分な精度を実現できる容量がないことを確認
  • 少ない容量でも本論文のトレーニング方式により様々な場面に対応することが可能

論文

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

5.4. Comparison with Motion-Based Interpolation

ビデオ上のセグメンテーション効率を改善するための代替的なアプローチは、まばらなフレームのセットに対して教師の予測を計算し、フローを使用して結果を補間することである。

表2は、密度推定フロー[52]を使用してピクセルセグメンテーションを伝播する2つのベースラインを示していますが、フロー推定ネットワークをFlowNet2 [20]から最新の方法にアップグレードしています。(我々はラベルを伝播している、特徴ではなく、これは[52]で効果が示されている。)

高コストバージョン(Flow(Slow))は、8フレームごとにMRCNNを実行し、PWCNet [45]を使用してフレーム間のオプティカルフローを推定します。

MRCNNラベルは、推定フローを使用して次の7フレームに伝播されます。

高速バージョン(Flow(Fast))は、同じ伝播メカニズムを使用しますが、16フレームごとにMRCNNを実行し、より高速のPWC-Netを使用します。

全体的に、JITNet 0.7は高速バージョンより2.8倍速くより正確、そしてJITNet 0.9は運転/歩行カテゴリを除いて高コストバージョンよりもかなり高い精度を持ちます。

本節は従来手法との比較。

従来手法は、「所定フレームごとに教師モデルでの推論を行い、その間を補間する」、というもの。
本論文で提案されている手法の方が速度・精度ともに優れているとのこと。

図6は、スパース推論測を補間するためにフローを使用することの難しさを示す。

ビデオ内のアイススケート選手がどのように大きく変形してフローを追跡するのが難しくなっているかに注目してください。

対照的に、オンライン蒸留はJITNetをトレーニングし、シーンオブジェクトの外観を学習するため(時間的コヒーレンスを活用する、ローカルタイムウィンドウでモデルを再利用することで)、高品質のセグメンテーションを生成できます、複雑な動きにもかかわらず。

遅い方のフローベースラインは、オンライン適応と比較して良好である、Driving(Bike)およびWalking(Auto)ストリーム内のまれなクラスに対して。これはフローがセマンティッククラスにとらわれないためである。

フローとオンライン適応の直交性を考えると、これらのアプローチの組み合わせを使用して、急激な外観の変化を伴うストリームを処理することができます。

従来手法と提案手法の結果に関する考察。

提案手法は、従来手法が補間であることから原理的に対応しきれない、オブジェクトの急激な変化にも対応できる。

一方、提案手法は、稀なクラスへの対応は難しい。

5.5. Comparison with Video Object Segmentation

効率性に動機付けられていないが、ビデオオブジェクトセグメンテーション(VOS)ソリューションは、オンライン適応の形式:「最初のフレームで提供された教師あり学習に基づいて、将来のビデオフレームをセグメント化するモデルを訓練する」を採用しています。

我々は、各LVSビデオの2分セグメントでJITNetに対するOSVOS [5]アプローチの精度を評価します。(OSVOSは比較的長いセグメント上での動作するには非常に高コストでした。)

セグメントの30フレーム間隔で、MRCNNを使用して開始前景マスクを生成し、開始マスクでOSVOSモデルを学習させ、その結果得られたモデルを次の29フレームのセグメント化に使用します。

我々は各開始フレーム上で30秒間OSVOSをトレーニングし、およそ1時間が必要です、OSVOSを各2分のビデオセグメントで実行するには。

LVSビデオのすべてのクラスをセグメント化するには、クラスごとに1回OSVOSを実行する必要があるため、我々はOSVOSを実行する、ビデオごとに一つのクラスのみ(最初の非背景(人物または動物)クラス、各ストリーム中の)について、そして比較する、JITNetの精度を、指定クラスのOSVOSと。(JITNetは全てのクラスをセグメント化することを思いだしてください。)

さらに、OSVOSの2つの設定を実行します。
モード(A)では、前の30フレームインターバルからのOSVOSモデルを、次のインターバルのトレーニングの開始点として、使用します(連続適応形式)。
モード(B)では、30フレームごとに予め訓練されたOSVOSモデルにリセットします。

提案手法とビデオオブジェクトセグメンテーション(VOS)との比較。

非常に高コストの手法のため、精度のみを比較する。

表3では、両方のOSVOSの精度とJITNetによるオンライン蒸留を比較しています。

この表には、モデルの精度、MRCNNに対する実行時の高速化、および2分間隔で教師学習するためにJITNet 0.8によって使用されるフレームの割合も示されています。

全体的なJITNet 0.8はOSVOSよりも正確で、2桁速いです。

小さなオブジェクトを含むトラフィックストリーム、および外観が急激に変化する運転/歩行ストリームでは、OSVOSの精度はJITNet 0.8よりも大幅に低くなります。

また、モードAのOSVOSのバージョン(継続的に調整されたもの)は、再初期化された変種よりもパフォーマンスが劣ることがわかります。

これは、OSVOSで使用されているVGGベースの[43]モデルアーキテクチャは、継続的なオンライン適応には適していないことを示唆しています。

JITNetアーキテクチャは、OnAVOS [48]や最近のOSVOSS [31](フレームごとにMRCNN予測を使用)のようなオンラインVOS手法を大幅に高速化するための手段として採用できると信じています。

精度も速度もずっと上回ったとの事。

いまいち、何と比較したのかが分からない・・・。

まとめ

5.4、5.5と、提案手法と従来手法との比較。基本的に提案手法が優れていることが示されている。