強化学習を用いた画像の枠認識の論文を読む

ランニング30分 英語:movie Pappion

(1) 強化学習を用いた画像の枠認識の論文を読む

「Learning Policy for Adaptive Tracking with Deep Feature Cascade

[1708.02973v1] Learning Policies for Adaptive Tracking with Deep Feature Cascades

単なる画像枠の認識の論文と思っていたが、画像認識の方法を強化学習して早期に認識完了を判断するモデルである。しかしロジックは下記の有名な論文(2015/11/08)を殆ど同じであることが解った。この様な重要な論文を見逃していたのは勉強不足と反省する。

「Active Object Localization with Deep Reinfrocement Learning」https://arxiv.org/abs/1511.06015

下図にある様に上段に枠認識用の画像のCNNの過程があり、下段に対象の画像のCNNの過程がある。この間に強化学習用のQ-Netが挟んであり、各段のQ-Netが枠認識の状態を学習している。この学習結果を使って多様な枠認識でも早期に認識が完了できる様になっている。(注:Hog層は伝統的な特徴量抽出のフィルター)

f:id:mabonki0725:20170815065626p:plain

このQ-netの学習例では以下の簡単な例と難しい例が示されている。左は2層で認識でき、右は5層目で認識できている。最上段は枠位置の確信度の分布、最下段のマークは強化学習の最適な方法を示している(上図の右端に説明が記述)●で枠認識が終了する。

f:id:mabonki0725:20170815071545p:plain

強化学習のロジックとしては、以下の方法となっている。

・7種類の行動を選択 Q-Learningで最適選択

f:id:mabonki0725:20170815085711p:plain

・状態S_l=(F’_l,h_l)

  {F'_l=\sum_{k=1}^{l} \frac{F_l}{l}}

     F’_l:枠位置確信度分布

     h_l:認識過程

・報酬は各層の状態の差

    R(S_{l-1},S_l)=sign(IoU(b_l,g) - LoU(b_{l-1},g))

    IoU(b_l,g) \ge 0.6 \to   R(S_{l-1},S_l) = 3    終了判断(有効)

    IoU(b_l,g) \le 0.6  \to  R(S_{l-1},S_l) = -3 終了判断(無効)

 

    IoU(b_l,g):確信度b_lと正解gとの重なり割合

・学習はQ-learningで最適選択

   {Q(S_l,A_l) = R + \gamma \max_{A'} Q(S',A')}

執筆者が述べるこの論文の有意な点は、現状では高価なGPUを必要とする枠認識を、簡単なカメラやCPUでも認識しやすい枠は早く補足できることで、商用的なカメラに実装できる所としているが、自分としては人間が試行錯誤しながら対象認識する行動を再現できた事が大きいと思われる。

・特徴量抽出で複数の行動を取り入れることができた。

・検出の確信度で打切りが可能になった。

人間の場合、この行動は過去に学習した類似状況から適応していると考えられる。

 

分散表現した言葉を連結した知識ベース論文を読む

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

(1) 言葉の分散表現と連結グラフの知識データベースの論文を読む。

「Thinking Fast, Thinking Slow! Combining Knowledge Graphs and Vector Spaces」https://arxiv.org/abs/1708.03310

これは言葉をword2vec等でベクトル化して、この近さを利用して大規模に言葉間を連結知識ベース(V-KG)を作成するものである。既に開発済みの大規模な知識ベースとしてRDF(Resource Description Framework)https://www.w3.org/RDF/がある。この各項目(Entitiy)にベクトル表現を使う事によって、知識追加や問合わを素早く実現できる様にしている。

f:id:mabonki0725:20170814094435p:plain

V-KGの構築手順としては

・対象領域の文書内の言葉を普通のツールを使ってベクトル化する

・知識ベースの項目を名称データベース(Stanford NER)から抽出する

・知識ベースにある必要な3記述(主語、述語、目的語)をRDF形式の大規模な知識ベース(Stanford openIE )から問い合わせて収集する

・この3記述のベクトルの近さ(Top-k)に従って連結する

参照元RDFの知識ベースが変更を察知すれば(2週間毎)に連結を組み直す。

 

V-KG知識ベースはRDF形式の検索が可能なので、これを拡張して下記の3種類のコマンド\mathcal{C}で問合わせが可能になっている。

  find 検索, list リストアップ, infer 推論

例えば

list vulnerabilities in products similar to Google Chrome

Find similar sites to Taj Mahal, infer their distance from New York

 

 

 

 

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

 

 

Jordanの深層とカーネルによる転移学習の論文を読む

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

(1) Micheal Jordanが参加している転移学習の論文を読む。

「Learning Transferable Features with Deep Adaptation Networks」https://arxiv.org/abs/1502.02791

この人は有名なバスケットのJordanと同じ姓名なので、文書分類問題でこの先生が正確に分類されているかよく話題になる。

この論文はT研の機械学習ゼミで紹介されたもので、特徴量の抽出で有名なので読んでみたいと思っていた。

ビックデータを取得できる時代になったが、このデータを認識するのは容易でない。例えば衛星写真は毎日数ギカも蓄積されているが、何が写っているか人間が判断しなければならない。そこで一部の写真で人間が何が写っているかラベル付けして、これを大多数を占める衛星写真に適応してラベル付ければ大変役に立つ。

一部のラベル付きのデータを、他のデータに適応してラベルを付けるモデルを転移学習と云う。問題なのはラベル付きのデータと未ラベルのデータの分布が異なっていることである。この分布が合う様に調整するのが本論文のDAN(Deep Adaptive Network)である。

この論文の特徴は深層学習の下位層の汎化性能と上位層でのカーネルのデータ調整を結合して、転移学習を実現しようとするところである。

f:id:mabonki0725:20170812083021p:plain

カーネルの特徴は以下である。

・データ行の相関を高次元へで写像する関数である

・この関数は内積で計算できる(カーネルトリック)ので微分が容易

・多種のカーネルが存在する(ガウスカーネルラプラスカーネルが有名)

・弱点としてデータ行を全て使うので、データ行が増えれば計算が遅くなる

カーネル平均は全レコードを使って計算しているので、これには分散も反映されている

カーネルを以下の線形結合の関数として\beta微分して調整すれば、カーネル平均は一致できる。この手法をMK-MMD(Multi-kanel Maximum mean discrepancies)と云う

f:id:mabonki0725:20170812091034p:plain

k_uに対する\betaの重みがラベル有りと無しのデータ間の相違の程度を示している。

 

実験結果

f:id:mabonki0725:20170812091358p:plain

他の方法に比べDANのTarget(ラベル無し)の方が重なりが少なく纏まって表示されている

 

 

 

 

DeepLearning系の生成モデルのツールEdwardの論文を読む

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

(1) DeepLearning系の生成モデルのツールEdwardの論文を読む。

「Deep Probabilistic Programming」

[1701.03757] Deep Probabilistic Programming

相当ハイレベルの人や知人から紹介されていたEdwardツールの論文である。

正直言って、DeepLearningが隆盛し始めた時の不愉快感を再び味わった。

ニューラルネットは2層までならPCAと同じモデルだし、多層生成モデルでは制限ボルツマンマシンとして統計モデルとして説明できるが、CNNやLSTMに見られる多層逆伝播の深層学習は統計モデルとしては説明できない。

しかし実績がある深層モデルは成果が大きいので半信半疑で恐々使っている現状である。「深層学習」の著者である岡谷先生は、実績のないオリジナルなモデルの成功率について、下記の様に述べ当たれば大きいギャンブルの様なものと述べている。

「この分野での成功モデルは100件に1件でチューニングが大変である」

統計モデルとして確立された生成モデルを、わざわざ理論的には不明確な深層学習で試みるというのは、本当の正しい解に至っているか不明で、あまりにも効率重視である。

 

一般に生成モデルはグラフィカル・モデルで記述すると理解しやすい。この論文では、計算手続きのパイプラインであるTensorFlowの計算グラフが、生成モデルのグラフィカルモデルに対応付けられる事を示している。

f:id:mabonki0725:20170811081425p:plain

TensorFlowではDeepLearning用にできているので、これを使ってVAE(Variation auto-encoder)はDecoder側で2層の深層学習を適用している。

f:id:mabonki0725:20170811082802p:plain

f:id:mabonki0725:20170811090040p:plain

Edwardはこの計算グラフを生成モデルの種類別に構築したライブラリィである。

しかし、生成モデルは一般にMCMCで解く努力がされていてStanなどのToolが良く利用されている。MCMCは20世紀に発明された10大モデルの1つといわれ、隠れ変数の検出経路について以下の理論が保証されている。

・既約性(全ての分布に行き渡る様に隠れ変数を探索する)

・定常性(探索空間は発散しない)

この探索空間の保障によって、局所解でない全域解が求まるのである。一方この保障によって下記の様な複雑な分布は計算時間がかかる場合がある。

この論文には陽には述べていないが、深層学習を使った解であればこの保障は無いと考えられる。この様に効率のみ優先して理論を軽視される風潮は当面続くと思われる。

f:id:mabonki0725:20170811084612p:plain

 

 

UCバークレィの特徴を理解して掴むロボットの論文を読む

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

(1) UCバークレイの対象の特徴を理解して掴むロボットの論文を読む。

「End-to-End Learning of Semantic Grasping」

[1707.01932] End-to-End Learning of Semantic Grasping

Abbeelが属するUCバークレィのロボットで、対象物の特徴(種類、色)を理解して、箱の中から

指示通りに該当の物を掴む実機ロボットの論文である。計算機上の模擬環境で自ら考える計算機を目指すDeepMindと異なり、ここは実機による知的ロボットを目指している。

f:id:mabonki0725:20170810070538p:plain

End-to-End Learning of Semantic Grasping - YouTube

このロボットのフレームワークは以下である。

・穴に棒を入れる様な困難な制御と異なって物を掴む制御なので、誤差が許容され制御は比較的簡単である。

・物体の種類を理解するモデル「Vertal Stream」と物体の位置を識別するモデル「dorsal Stream」に分離したシステムになっている。即ち複数の物体の位置を識別して(種類は問わない)、物体毎の種類を識別するパイプラインとなっている。

f:id:mabonki0725:20170810072050p:plain

 明るい緑が物体の位置を示している(dorsal Stream)

f:id:mabonki0725:20170810072159p:plain

    異なる色で物体の種類を認識している(Ventral Stream)

上記の2モデルは何れもCNNの9層(16層)で実現している。

f:id:mabonki0725:20170810072413p:plain

物体の種類は16種類で、物体の個数は500程度である。

f:id:mabonki0725:20170810073412p:plain

この認識は以下の2方法を採っていて、後者が有効としている。

・箱毎に同じ種類を入れ、箱内のロボットカメラで各物体の写真を撮りラベリングする

・箱内には混合して物をいれ、各物体の写真を撮り、外部のラベル付画像データベースで訓練されたCNNモデルでラベリングする。

これらは、複数の実ロボットで並列にラベル学習するので、効率的であり過学習することはないとしている。

感想としては、現在ではCNNの画像認識モデルが安定しており、実ロボットで誤差が許容できる制御(今回では掴む)であれば、この様なシステムは可能であると思う。しかし箱の中の物体が多種多数でぎっしり詰まっている様な場合は、誤差のある制御では無理と考えられる。

 

 

 

 

DeepMindの実機ロボット学習の論文を読む

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

(1)windows VirtualBox  Ubuntu pythonのモデル開発環境で躓いたことを記す。

 VirtualBoxwindowsのフォルダーを共有指定して、Ubuntuでマウントした場合、読み込みはできるが書き込みは「プロトコルエラー」でできない場合がある。この対処にはwindowsのフォルダーでeveryoneで共有をする必要がある。この件はネットに無かったので解決まで丸1日費やしました。

 

(2) DeepMindの実機ロボットの論文(2017/07/27)を読む。

「Leverage Demonstation for Deep Reinforcement Learning on Robotics Problem with Sparse Reward」https://arxiv.org/abs/1707.08817

内容としては概要に示す様に以下である

深層方策勾配法(DDPG)が一般に良く知られているが、これに以下の工夫をしたら

かなりの効果があった。DDPGは方策\piの深層Q-Learningのこと

・人間の制御した経路を教師データとして使う。これによりかなりの改善が見られた。これはこの論文の表題となっている。

・2つの報酬を目的地到達までの報酬(Sparse Reward)と到達後の成功報酬(shaping Reward)を追加して学習

・4種の課題で上記の有効性を確認した

・ロボットの実機では、細かい手調整がないとうまく行かない

 

感想としては

・DeepMindは計算機が自分で知識を獲得する所謂シンギュラリティを目指しているので、その実験の場として模擬環境のみでモデル考案していると思っていたので、実機ロボットの論文はかなり意外であった。

・実機では強化学習の最適化と制御機構の最適化は一致しないので、かなりの工夫が必要である。この論文をよく読むとやはり実機での結果はおまけ程度になっている。

・DDPGの理論は詳細に記述してあるが、肝心の本論文のモデルであるDDPGfDのモデル記述の理論はかなり貧弱である。この傾向はDeepMindの殆どの論文が成果のみ強調していてモデル記述が貧弱であると同じである。

・目標到達までの報酬(Sparse Reward)に多くの値をあたえている。

 要約として

  人間の制御をデータとして使った

  上記のデータとロボットの動きのデータを工夫して混合しサンプリングした

  次の損失関数とN次先の損失関数を混合している

  環境毎に複数回学習している

  L2正則化項をいれている

 

・4種の課題は迫力があり、実験結果も説得力がある。

f:id:mabonki0725:20170809091143p:plain

実験結果

単独で人間の制御で学習した場合に比べ、SparseやShaping報酬と人間の教えを入れた方が早期に報酬を獲得している。最後の鎖状の紐を入れる課題は困難なので試行回数が多くても報酬が安定しない 

f:id:mabonki0725:20170809092900p:plain

注意すべきは、この報酬の多寡でミッションが成功したかは不明であることである。

ミッションを達成するには実際にはビデオにある様に人間の調整が必要である。 

DPGfD - YouTube