動画の予測のPredNetの論文を読む

ランニングできず 英語できず

(1) 動画の予測のPredNetの論文を再チャレンジする

以前少し読んだが数式が全く無く、何故動画予測ができるか記述もなく、公開コードを稼動できなかったので、NLPに方向を変えた覚えがある。

本論文の内容は下図で示される通りで、赤矢印に示す様に下層から上層への精緻化と、上層から下層への予測画像の過剰変動の抑制とを深層学習で同時に行っている。

f:id:mabonki0725:20170813101737p:plain

左図はPredNetを2段重ねたものである。右図は各段の内容が示されている。

右図の素子の内容からは

A_lは入力画像をconv+poolして画像の抽象化をしている

・誤差E_lは予測画像\hat{A_l}と入力画像A_lの差分から

 max(0,差)とmin(0,差)で2つの矩形差分(L1)を求めている。

R_lは時系列素子であり、上層のR_{l+1}と誤差E_lで作られている

 この時系列素子は画像復元するdeconvolutionの機能を持っている

処理手続きとしては下層R_lが上層のR_{l+1}を使うので、結果を使う処理になりE_lが最小になるまで収束計算する必要がある。

論文の処理記述は上層からの処理と下層からの処理となっている。

・上位層からの処理

 時系列素子R_lは誤差E_lの複写と上層の中で一番似ているR_{l+1}から作成

・下位層からの処理

 A_lは入力画像を受取る

   予測画像\hat{A_l}は時系列素子R_lから作成

 誤差E_lは現時点の画像A_lと予測画像\hat{A_l}の差で作成

 次の層の入力画像はA_{l+1}は誤差E_lから作成

このPredNetの仕組みは下位からの像と上位からの像の差を序々に減らしていく仕組みになっている。 この評価関数はT期間毎の画像と実画像の教師ありモデルであり、下記の誤差の和が最小となる様に素子の重みを調整する。

  \mathcal{L_{train}}=\sum_{t} \lambda_t \sum_{l} \frac{\lambda_l}{n_l} \sum_{n_l} E_l^t

ここで

 \lambda_t \lambda_l :重み係数

       \lambda_t=1.0  \lambda_l= 0.1がいいらしい

    n_l :L層の素子の数(CNNの層の数か?)

 

実験結果

 4層構造のPredNet10フレーム先を予測 57個のコース訓練して4個のコースで試験

f:id:mabonki0725:20170813095135p:plain

 

 動画はこちら

PredNet by coxlab

PredNetのモデルから類推できる様に、同じパターンが続く場合のみ予測ができるのであって、突発に変化ある場合には無理である。しかし学習していない静止画から数フレームの動画は生成できると考える。