論文紹介: Video Representation Learning by Dense Predictive Coding(ICCV2019)

Info

Abstract

f:id:horipult:20200305163729p:plain
Figure 2

行動分類において、未来の状態を予測するタスクを解かせることで、良い特徴表現を獲得できる自己教師あり学習手法、Dense Predictive Coding(DPC)を提案。学習の際には、基準となるspatial , temporalともにpositiveな正解である特徴をtemporal negative, spatial negativeが混ざった特徴の中から選ばせるタスク(クラス分類)を解かせている。(Figure 2参照)UCF101、HMDB51において、自己教師あり学習についてSOTAを達成。

関連研究

  • Shuffle & Learn [27]
    フレームの時間的順番が正しいものと、シャッフルしたものを準備し、その並び順か正しいかどうかを2クラス判定。

  • OPN [22]
    フレームの順番をシャッフルしたものの並び順を回答する。

  • 3D-RotNet [15]
    映像を回転させたもの(0°, 90°, 180°, 270°)を用意し、その角度を推定。

  • 3D-ST-Puzzle [17]
    「フレームを4分割し並び替える」「時間的順番をシャッフルする」この2つの正解を同時に当てさせることによる自己教師あり学習

提案手法

Figure 2の通りであるが、以下の2つに注意。
1. 未来の状態を予測するが、直接的にフレームの画素を予測するわけではなく、中間表現を予測する
2. lossとして、正解値との距離を小さくするわけではない

loss関数として以下の式を最適化している。

f:id:horipult:20200305171847p:plain
 {z}は実際の特徴表現、 \hat{z}は予測により生成された特徴表現を表す。 {i}は時系列方向のindex、 {k}は空間方向のindexを表す。時間的、空間的に正しくない特徴の中から、正しい特徴を選び出すようなイメージである。これにより、未来の状態について複数の選択肢を考えることができる。単純に正解値との距離をlossとして定義してしまうと未来の状態が縛られたモデルを予測してしまうが、その選択肢を狭めないようにしている。

モデルがoptical flowのような表現を獲得し、未来の状態を予測することを防ぐために次の二つの工夫が行われている。
1. 次の状態だけではなくさらにその先の状態についても予測を行う
2. フレームごとにaugmentationを変える
optical flowとして機能してしまうとモデルが文脈を理解しないままに、未来を予測してしまうことが起こりうるためそれを避けたい。

実験結果

f:id:horipult:20200305174145p:plain
Table 1
5pred3は、5ブロックの情報を元に、3ブロックの状態を予測することを意味する。1ブロックは、10fpsでsamplingされた動画を5フレーム束ねたもの(0.5秒)。 時空間的に学習を行うことで精度が向上しているが、時間情報の影響の方が大きい。また、別な実験として、空間方向にaverage poolingした特徴により同様の学習を行ったが収束しなかったと述べられている。

f:id:horipult:20200305175038p:plain
Table 3
4pred4よりも5pred3の方が性能が良い。さらにその両方を組み合わせた場合の方が性能が上がる。これはデータの種類によって大きく変わる気がする。

f:id:horipult:20200305175233p:plain
Table 4
[15, 17. 22. 27]は関連研究の通り。Self-supervised learningでimagenet pretrainを上回ったのは初らしい。

展望

作者が述べているものはこの2つ

  • 時間情報を集約するために、ConvGRUではなく、attentionやMask CNNなんかを使用する
  • optical flow + DPCを同時に学習する

メモ

未来の状態を予測するというアイデアは応用がし易いように思える。時間的な継続性についての弱いlossをかけることができているので、self-supervised learning以外にも活用できるのでは?