Lie群上のNeural Turing Machineの論文を読み始める

ランニング30分 英語:StarWars

(1)DeepMindのNeural Turing Machine(NTM)が何故旨くいくかについてLie群上で理論解明したハーバード大学のLie-Access Neural Turing Machine を読み始める。

https://arxiv.org/abs/1602.08671

これはT研のM先生の解説で知った論文である。Neural Turing MachineはLSTMに外部記憶を使う事によって、複雑な規則の文字列を生成することが可能である。これは後のDNC(Differencial Neural Computer)に応用され、質疑応答などの高度な推定が可能になった。

DeepMindのNTMではLieという言葉が1回しか出現しないが、本論文の見解は以下である。

複雑な記憶を外部記憶に残す場合でも、外部記憶のアクセス針(Head)は微分可能なNeuroの重みの分布なので、HeadはLie群上の多様体を形成し、外部記憶はLie群多様体上で簡単な構造で書き込まれる。一見複雑な記憶パターンはLie群上からは単純なパターンとして読出しできるとの見解である。

 

 

 

OpenPoseの時系列解析資料を作成し始める

テニス30分 英語できず

(1)大学の研修として OpenPoseで撮った骨格の時系列解析資料と擬似データを作成し始める。テーマはスポーツの動きを時系列で解析して、その熟達度レベルを判別するモデルとする。まずはLSTM用とHMM用のデータの擬似データPADOCツールで作成した。

f:id:mabonki0725:20170717140053p:plain

f:id:mabonki0725:20170717184122p:plain

f:id:mabonki0725:20170717184214p:plain

f:id:mabonki0725:20170717184302p:plain

DeepMindの多様な環境で順番学習の有用性の論文

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

(1) DeepMindの論文「多様な環境での身体特性の出現」を読む。

 表題:Emagency of Locomotion Beheviors in Rich Enviroments  

https://arxiv.org/abs/1707.02286

    動画:

www.youtube.com

これは、GANによる強化学習「Learning human behaviors from motion capture by adversarial imitation」の続編である。

GANによるデータ生成では旨く行かない場合があったので、この論文になっていると思われる。即ち一般に強化学習は様々な状況で正しい報酬を与えるのが難しいので、GANでデータを多数生成をして最適な報酬を計算したが、旨く行かず、逆に様々な状況を作ってやって順番に適応学習する方が効率がいい事を示したものである。

ここでは以下の3の主な考え方を導入している。

 1) カリキュラムの導入

  UNREAL自然言語と同様に簡単な問題から高難易度の課題で学習させる 

 2) A3cの導入

  UNREALと同様に並列型ブースティングを採用、即ち複数人の挙動をブースティングする

 3) Trust Rigion Policyの改良版のDPPO(Distributed Proximal Policy Optimization)アルゴリズムの採用

  ・PPOアルゴリズムの開発

   Trust Region Policyは方策関数の微分による改善で下記の制限を入れた

          Trust Region Policyでの制限{KL \left( \frac{\pi_{\theta_{old}}} { \pi_\theta} \right) \lt \delta}を以下に改良

   if {KL \left( \frac{\pi_{\theta_{old}}} { \pi_\theta} \right) \gt \beta_{high}KL_{target}} then

     {\lambda \leftarrow \alpha \cdot \lambda}

   if {KL \left( \frac{\pi_{\theta_{old}}} { \pi_\theta} \right) \lt \beta_{low}KL_{target}} then

     {\lambda \leftarrow \alpha / \lambda}

   {\mathcal{J}_{pro}(\theta) = \sum_{t=1}^{T} \frac{\pi_\theta(a_t|s_t)}{\pi_{old}(a_t|s_t)} A_t  - \lambda \cdot KL\left(\frac{\pi_{old}}{\pi}\right)}

  ・PPOのバッチ化でRNNを採用したDPPOの開発

   一般に分散か並列に計算すると精度向上を期待できるので、

   強化学習の過程でK回目毎にPPOをRNNで連結してバッチ学習する

   詳細は右記  https://arxiv.org/abs/1602.01783

 

 

DeepMindの強化学習のGAN論文を読む

ランニング30分 英語30分 Leon

(1)またDeepMindの2足歩行の身体動作のGANモデルの論文を読む

Learning human behaviors from motion capture by adversarial imitation

https://arxiv.org/abs/1707.02201

動画

Learning human behaviours from motion capture by adversarial imitation - YouTube

これはGAIL(Generative Adversarial imitation Learing)モデルと称される。

生成器で実測データと同様な2足歩行のデータを生成し、このデータで判別器で得られた報酬の高低で、生成器のパラメータを改善するモデル。

実際の観察データは様々な状況(バランス、登り、転倒、コーナー走行)でのモーションキャプチャーを使っており、このモデルで自然な動作が早期に学習されている。

生成器での強化学習の方策πの改善はTRPO(Trasut-Region Policy)で行っている。

TRPOは、方策πを最適化する標準な方式で、方策πの修正前後が安定する範囲(Trust Region)で方策のパラメータを変更するものであり。下記の文献に詳しい。

https://arxiv.org/abs/1502.05477

 

 

f:id:mabonki0725:20170716000100p:plain

f:id:mabonki0725:20170715111509p:plain

Pythonのデータ処理方法に疑問を持つ

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

(1)  Xgboostの結果をAUC指標で計算するプログラムで悩む。Pythonには7つもデータ集団の型がある。皆同じデータの塊だが各々異なるメソッドがあるので、データ処理は相当複雑になる。

 List  Array Table Set  Dictionaly DataForm Series

標準python、numpy、pandasを行ったり来たりするために① - Qiita

データ分析の90%はデータの識別とデータの加工である。モデルロジックは10%しか寄与しない。

データ識別はデータ項目分布や信頼度を確認することで、信頼度の低いデータから作ったモデルは幾ら精度がよくても意味が無い。

データ加工はバラバラなデータを正しく統合し、良い感応度をもつデータに仕上げていくことで、相反したモデル特性である精度と頑健性を高めていく処理である。

RやPythonはこのデータ処理を疎かにして、モデルのロジックのみに注力している様に見える。Pyhton上のロジックがKuggle等のコンペで上位に入賞するのは、コンペ対象がかなり綺麗なデータが提供されているからであり、多分実務にはそれほど生きないかもしれない

(2) 大学の研修でOpenPoseでのデータ取得方法が分り、焦点はこの動画の時系列解析に移ってきた。まずはLSTMやBI-LSTMで分析する方法を考えるが、データが少ない場合は統計的な時系列解析(HMMやカルマンフィルターやARIMA)に頼ることになるかもしれない、厳しい展開が予想される

openpose/output.md at master · CMU-Perceptual-Computing-Lab/openpose · GitHub

 

 

 

DeepMindのProgrammable Agentを読んだ

テニス90分 英語できず

(1)  DeepMind Programmable Agentを読んだ

所謂zero-shot(未経験)の知識を獲得するモデルの話。UNREAL自然言語理解がone-shot(経験知識)なので、こちらは与えられたプログラムで状況を理解して、未知な状況を認識する。表題はこれを意味している。

学習する環境は下記の様なビリヤードの卓で中央に伸び縮みするロボットアームがあり、接触すると色と形が分る様になっている。

f:id:mabonki0725:20170712115043p:plain

これに下記の様なプログラムを与えると、

f:id:mabonki0725:20170712115528p:plain

f:id:mabonki0725:20170712115723p:plain

ロボットはアームを動かして正しいか探る。正解の場合の報酬によってロボットは下表の様な物体識別表を学習する

f:id:mabonki0725:20170712122136p:plain

上図は学習後の試験で、今まで学習していない物体の認識(Zero-shot)である。

②の場合は立方体と円柱の中間で認識している

③の場合、紫を赤、青、緑の中間で認識している

即ち表はロボットの物体認識の心情表現を表わしていると考えられる

Neural Turing Machineの理論背景が明らかになった

ランニングできず 英語30分 Fly to then Moon

(1)T研の機械学習ゼミでM先生の発表を聞く。DeepMindの「Neural Turing Machine」の理論背景が下記の論文で解明され、これの解説

https://arxiv.org/abs/1611.02854

Neural Tureing Machine では下記の様なことが学習できることは知られていた。

逆順番呼出  {x_1,x_2,x_3,\cdots x_n  \to  x_n,x_{n-1}, \cdots  x_2,x_1}

繰返し呼出 {x_1,x_2,x_3 \to x_1,x_2,x_3,x_1,x_2,x_3,x_1,x_2,x_3}

奇数先呼出 {x_1,x_2,x_3,x_4,x_5,x_6   \to   x_1,x_3,x_5,x_2,x_4,x_6}

その理論背景は不明だったが、上記論文は外部記憶がLie群上の超平面に書き込まれているので、この様な順番の呼び出しが可能とするものである。

下記の動画は、奇数先呼出と繰返し呼出の外部記憶の学習過程である

LANTM

去年のM先生の「Word2vecの理論背景」の解説もあり 数学に強い統計学者によってDeepLearningの理論背景が次々解明されようとしている。

Lie群モデルでは同じゼミでのHさんの下記論文の解説が秀逸で、Lie群多様体{SO(3)}上の確率モデルは汎用性や説明力も良いことは分かっていた。数学に強い事が要求される厳しい世界である事を痛感した。

https://arxiv.org/abs/1505.04413