OpenPose論文の発想に唖然とする

ランニング30分  英語:必ず途中で寝てしまう

(1)引き続きOpenPoseの論文を読む。

https://arxiv.org/abs/1611.08050

この手の秀逸な論文を読むと学力・技術・発想の乖離に唖然としてしまう。

 ・単純なCNNの画像処理でなく、もはやCNNの組合せで構成されている

 ・NP-Hardな組合せ問題を緩和解で解決している

 ・動画(10枚/秒)でかつ群集でもパターン認識を達成している

 ・市場的価値が高いものを一般的に使えるものとして公開している

単純な技術の組合・応用でもなく、もはや文化の異なりを意識してしまう

f:id:mabonki0725:20170625100728p:plain

f:id:mabonki0725:20170625100619p:plain

1980~1995は日本が世界をリードしたが、これは優秀で均質な人々の協業で精密で故障の少ない商品が可能だったからである。しかしこれらはネット上でマニュアル化され部品化されると殆どが流通商品となり、日本は競争力を失ったと考えられる。この間に他民族国家の米国では協業による精密な製造は得意でないので、多様性を扱う統計モデルの学術を相当発展させたとしか考えられない。

多くの若い人はAIにかなり興味を持つが、統計モデルにぶつかるとそこから進めない状態となる。そもそも日本では皆同じ事を考えるので統計が必要とされない土壌があり、統計を教える機関や人材が殆どいない状態である。日本の置かれている状況をまず認識する必要があると思う。

(2)大学の研修で音声認識機能を追加したいとの話があった。日本製のJuliusモデルを考えている様だが、この分野は広く深いので自分としては難色を示した。最近はGMM-HMM(Gausian Mix Model - Hidden Marcov Modle)からDNN-HMMに移行している様である。自分としてはHMMを使わずLSTM-SOFTMAXだけで十分と思える。

GitHub - julius-speech/julius: Open-Source Large Vocabulary Continuous Speech Recognition Engine

 

 

 

ボトムアップ型のOpenPoseの論文を読む

ランニング30分  英語30分

(1)ラズパイマウスを起動してもsshで入れない。ラズパイマウスには画面もないし、リセットボタンも存在せず、sshで接続できないと電源OFFしか対処できずOSディスクが破壊される可能性がある。やもなく電源OFFしラズパイ用の画面を装備して原因を探る。WiFIを認識しない場合とする場合があり、PC側のWIFIの確認ボタンを押下すると一応認識することが分った。RTM版ではリセットボタンを認識できる様になっている。

(1)OpenPoseの論文を読み、これが各人物認識→各人物の身体認識のトップダウン方式でなく、ボトムアップ型のモデルであることがわかる。

f:id:mabonki0725:20170624092728p:plain

  OpenPoseはRealTimeで写っている全人物について以下のことを行っている。

  (b)各人体の或る一部をニューロで予測

  (c)人体の或る一部からその方向を予測

  (d)全手足の方向を構造解析予測

  上の写真では2者での構造解析予測を行っている

  (e)骨格の表示

 

python Xgboostがやっと動く

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

(1)職場のPCでvirtualBox-Linux-python-xgboostがやっと動いた。windows+R+xgboostはすぐ稼動したが、Openな時代にCloseに固執するwindowsに見切りをつけLinuxに切り替える。難航していたのは以下の点 

・恐ろしいことに金融機関なのでLinux pythonの知識がある人が皆無であること

virtualBoxUbuntu(Linux)のインストールファイルがCDかUSBからしか読めないこ

proxyサーバが情報をブロックするため、github apt-get conda pip で全て異なる設定をする必要があった。

pythonライブラリィのインストールがgithub apt-get conda pipと4種類あり、ライブラリィ毎にその手段が異なること

あとはNvidiaGPUの設定だけになった。

(2)DeepMindの迷路探索ゲームの論文(Unreal)を読み、記憶による予測と並列型A3Cがかなり寄与していることがわかった。重大なAI技術であり実装プログラムを見る必要がある。

(3)学校の演習でT君がOpenPoseの稼動を達成してくれたので、NvideaのGPX1080tiを2枚いれたサーバの寄与もあるが改めてReal-Timeでの画像認識精度に驚く。論文を少し読むとかなり既存のCNNと異なる記述があり、興味をもった。

https://arxiv.org/abs/1611.08050

(4)学校でM先生が稼動させたLDS-SLAMのデモとORB-SLAMのVideoを見る。後発のORB-SLAMの方が特徴点に縮約しているので数段見やすいが、画像認識には使い難い印象を持つ。ROS上のORB-SLAMもUbuntu14-Indigoでの稼動実績が多い様なので、引き続きM先生にお願いする。

 

 

 

 

LSD-SLAMを稼動してもらった

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

(1)LSD-SLAM用のPCの手配を大学に依頼すると、大学のM先生がVirtualBox+Ubuntu14+IndigoでLSD-SLAMを稼動させてくれた。特徴量抽出のデータ生成で一歩程度前進だ。M先生からORB-SLAMもあるとのこと。これは上田先生の講演で紹介していて論文もある。どうもORB-SLAMの方が精度は高いが、表現力はLSD-SLAMの様だ。

趣味なし奴のメモ帳: ORB-SLAMの導入

http://ieeexplore.ieee.org/document/7219438

f:id:mabonki0725:20170622064812p:plain

(2) 上田本のラズパイマウスを6章まで実装する。test.launchが動かない。上田先生のQAにも記載が無く解決せず。確率ロボテックスは秀逸な訳本であるが、こちらは複雑な環境かつ日々ライブラリィが更新されるので、瑕疵は頻発する様である。それでもROSがどの様な仕掛けで構成されているか朧げながら分る様になってきた。兎に角解決する必要があり、直接問合せするしかないかもしれない。

 

 

 

 

 

高度なOpenソースは相当OSの知識が必要になっている

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

(1) 当初難航が想定された3D-SLAMのインストールがうまく行かず、やはりUbuntu14+Indigo(ROS)でないと無理の様である。Openソースによる技術発展は非常に有益だが、OS環境自体も発展するので、相当OSの知識がないと扱えない領域になってしまっている。やもなく試行的に32ビットのノートPC(ubuntu14+Indigo)で行うとかなり進んだがマルチスレッダーの所でエラーが発生する。急遽64ビットの高性能PCの手配を学校に頼んだ。

(2)研究という業態が如何に大変か分ってきた。下記の過程を経て来たが、これからが一番大変で成果も期待できずかつ孤独に苛まれることが分ってきた。

頻度統計→線形数学→ベイズ統計→機械学習→強化学習→論文読み→実験試行

 

迷路探索ゲームの論文を読み始める

ランニング30分  英語20分

(1)3D上の特徴量の解析のため、3D-SLAMとしてLDS-SLAMのインストールを試みる。下記サイトに詳細な方法が記述されている。このサイトではUbuntu14 ROS:Indigoとなっている。

趣味なし奴のメモ帳: LSD-SLAMをROSで試す1-インストールとビルドとクイックスタート-

現在のNVEDIAが入っているDeepLearning用のPCはUbuntu16 ROS:kineticなので、やはりMakeでエラーになる。ノートPCにはUbuntu14 ROS:Indigoなのでこちらで試して見るつもり。

(2)懸案だった迷路探索ゲームモデルDeepMindのUnrealの論文を読み始める。

Unrealとは以下の略

UNsupervised REinforcement Auxiliary Learning(補助学習による非教師型強化学習)

f:id:mabonki0725:20170620085353p:plain

以下は三好さんの実装サイトである。

GitHub - miyosuda/unreal: Reinforcement learning with unsupervised auxiliary tasks

こちららは3次元迷路の問題で画面から直接特徴量を抽出するDQNでは達成できないので、様々な工夫をしている。過去の場面の記憶で予測する所が新規である

 

モデルの構成図

A3C: 並列処理型ニューロでパラメータのブースティングをしている

Pixel Contorol :場面の切替わりの予測モデル(別画面になる方が好ましい)

Value Function Replay:保存した経路選択結果から場面の価値を予測

Reward Prediction:過去の3場面から次の場面の報酬を予測

f:id:mabonki0725:20170620084013p:plain

シンギュラリティの具体的な問題を考える

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

(1)シンギュラリティの可能性が指示を集められない理由とその打開策を模索する。Arxiv SanityでSingularityを検索したが殆どヒットしないので文献に頼れないことになる

 状況を表す「特徴量」と課題の「解決状態」だけ入力すれば、Bellman方程式で訓練すれば一般的に解けることを皆知らないからと思う。下図は特徴量として「自己位置、壁位置」解決状態として「GOAL」を与えただけでBellman方程式で訓練すると計算機が最短に近い経路を見つけ出した。

f:id:mabonki0725:20170619060549p:plain

 現実的な自動運転の問題設定はもっと複雑である。ここでは「エンジンやハンドルの制御誤差」は「粒子フィルター」や「SLAM」で解決できる。一般走行の場合は、歩道上の人の飛び出しや、側道の自転車の突然なカーブ、対向車の法規無視運転、悪天候による視認の劣化等とあらゆる事を考えなければならない。メーカの話では組合せの爆発によって計算機がパンクするそうである。上図の場合で考えると例えば壁から突然人が飛び降りたり、壁が見えにくい場合もモデル化すれば良いだろう。しかしこれらは確率の問題であり、複雑な状況設定するには現在のモデルを否定するデータを生成できるかに掛かっている。すなわち計算機自体が自分に敵対的な状況を作れるかに掛かっている

 敵対的なデータ生成モデルを考えるには特徴量を如何に設定すればよいかの問題になる。即ち特徴量が適切に抽出できれば、計算機は特徴量の確率的な変動で複雑な局面が幾らでも生成できるからである。

やはりこの問題を考えるには、以下のモデルの統合が考えられる。

 特徴量の抽出

  OpenPoseによる人間の動きの視認

  3D-SLAMによる空間把握

 敵対的データ生成

  半教師学習による生成モデルの組込み

今期は真面目にこの問題に取り組む必要がある。