原文
二値隠れ変数を用いた人体動作モデリング(Modeling Human Motion Using Binary Latent Variables)
GrahamW. Taylor, Geoffrey E. Hinton and Sam Roweis (2006)
1. 要約
- 人体の動作のキャプチャをRBMを利用して学習させた。
- 過去のモデルには難があった:
- 線形動的システム: 線形である以上、非線形の複雑な動作(例:筋肉の動き)をモデリングできない。
- 隠れマルコフモデル: 単層かつ多項式形式でしか、系列伝播できない。さらに、指数関数的に隠しユニットが増大するため、実用性がない。
2. 骨子の理論
可視ユニットは、2値(0/1のような符号値)ではなく、ノイズ入り連続実数を使う。
そのもとで、可視および隠しユニットのパラメータの分布は、ボルツマン分布に従う。
$$-\log p({\bf v}, {\bf h}) = \sum_i \frac{(v_i - c_i)^2}{2\sigma_i^2} - \sum_jb_jh_j - \sum_{i,j}\frac{v_i}{\sigma_i}h_jw_{ij} + const.$$
すなわち、過去のステップにおける可視ユニットのうち、直近$q$ステップを本ステップの可視ユニットに、隠しユニットそれぞれに繋げるようなモデルである。
過去データの接合に伴い、可視ユニットと隠しユニットのバイアスの更新量はそれぞれ次のようになる;
$$ \Delta a_{ki}^{t-q} \propto v_{k}^{t-q}(v_{i}^{t}- 〈v_i^t〉_{recon})$$
$$ \Delta b_{ij}^{t-q} \propto v_{i}^{t-q}(〈v_{i}^{t}〉data - 〈h_j^t〉_{recon})$$
タイトルの通り、隠しユニットは2値変数で構成する。
3. モデル適用例
フレームレートは共通で30、ソースは異なる2つの動画サンプルを用意。
一方の次元は62、他方は49である。
系列が自動回帰でつながっており、白色化と、主成分分析による次元低減は施していない。
新しい可視ユニットのサンプリングは、ギブスサンプリングではなく、系列的に取得している。
2813フレームを利用して歩行と走行の動きを学習させた。下図に結果を図示する。
(上図が歩行、下図が走行の、学習による再現)
学習によって、欠損したフレームを補う動きが会得された。(dropout様効果)
これは、単純に欠損フレームを内挿するより、自然さの増した動きになった。