img src=../imgs/3.png width=400>
### 1-2. Late Fusion
上のモデルをMLPに接続したモデル。フレーム毎の特徴量を一つに統合するので交差エントロピーで学習できてフレーム同士の関係も学習できるがFC層で過学習を起こしやすい。対策として特徴量の統合時に`T, H, W`をPoolingして`D`次元データに落とし込む。これらの手法もシンプルなのでまず試したいモデル。
しかし特徴量を統合するのが遅いので、**動画の小さい動きを学習できない**。例えば、人が歩いてるか立っているかは足の小さな動きで判断するが、FC層に来る前にこれらの小さい特徴量は失われやすい。
### 1-3. Early Fusion
先に各フレームの特徴量を抽出するのではなく、`(3 x T x H x W)`の動画を`(3T x H x W)`になるように畳み込み(特徴量の統合)してから、3次元テンサーとしてから2DCNNで学習するモデル。ピクセルの細かい変化も2DCNNが学習できるが、時系列データを一回の畳み込みで処理するのでそこら辺の特徴量は上手く表現されない。
### 1-3. Slow Fusion
Early Fusionでは縦横での畳み込みしか行わなず時系列の情報は失われていたが、縦横に加え時間軸も加えた3次元で畳み込みを行い、時間と空間の特徴を徐々に統合していく手法。
### 1-4.データセット
* **Sport-1M**: YouTubeの100万枚の動画に487のスポーツのカテゴリーが付与されている
* * *
## 各手法の比較
* Single Frame
シンプルだが統合系に劣らない性能、とりあえずこれを最初に試そう。
* Early
縦横で畳み込む為画像としての学習は強いが、**Time shift invavriant**じゃないという弱点もある。
これはフィルターの奥行きがそのピクセルの時間による変化を学習しちゃうのが原因で、例えば最初の方で人が立ち上がる動画を学習したとして、その動画を数フレームずらした場合フィルターも奥にそのフレーム分ズレる必要がある。
* Slow
縦横と時間軸でフィルターを動かすのでtime shift-invariantになる。入力`(Cin x T x H x W)`を`(Cin x Cout x 3 x 3 x 3)`フィルターで処理すれば(三つの3はTHW用)同じ形で出力するので出力も見える化できる。3DCNNは絶賛進化中な模様。Conv2DをConv3DにしたVGG**C3D**が高性能だが計算量は非常に多い。3D-ResNetで一気にディープに。
## 2. 行動認識
人の動きから何をしているか予測するタスク。
### 2-1. Optical Flow
各フレームの画像特徴量に追加で連続した2フレーム間の物体の動きの見え方のパターンを学習する(ピクセルの動きと言うべきか)。前者をSpatial stream, 後者をTemporal streamという別のネットワークで学習しクラススコアを平均で統合する。
層が深いモデルがこのアーキテクチャーに対応したらやばいらしい。