深層生成による暗黒物質探査の論文を読む

テニス2時間 英語できず

(1)深層生成による暗黒物質探査の論文を読む

 「Enabling Dark Energy Science of withe Deep Generative Models of Galaxy Images」

https://arxiv.org/abs/1609.05796

 宇宙の80%を占めると云われている暗黒物質は宇宙膨張の謎を解く鍵とされていますが、観測が難しいので実態が不明なままです。この実態は銀河の光を通して間接的に観測します。具体的には重力レンズという理論で銀河の光の歪みを観測して暗黒物質の規模を推定しています。しかし銀河の光の歪みを計測することも難しいので、VAEやGANを使って銀河の画像を補正しようとする論文です。

f:id:mabonki0725:20170925204115p:plain

(1.1) 手法

 ここでは条件付VAEと条件付GANの2種類で銀河の画像を生成しています。

 データとしては8500個の銀河の画像(64×64)xと条件ベクトルyをもつCOSMOSデータで訓練します。

    条件ベクトルyは3の特徴量(銀河のサイズ、明るさ、宇宙距離)のみです

 1) C-VAE(conditional VAE)

     VAEなので隠れ変数zを仮定します。zは具体的には多変量の平均と分散を表します。

     VAEはデータ\mathcal{D}=(\hat{x}^1,\hat{y}^1),\dots,(\hat{x}^N,\hat{y}^N)から次の生成モデルの隠れ変数z及びパラメータ\theta_1 \ \theta_2を求めることになります。

      p_\theta(x,z | y) = p_{\theta_1}(x | z,y) p_{\theta_2}(z | y)

     隠れ変数zを使ったp_\theta(\hat{x}|\hat{y})の対数尤度の変分は教科書通り次式で定義できます。

    \log p_\theta(\hat{x} | \hat{y}) \ge -\mathbb{D}_{KL} \left(q_\phi(z | \hat{x},\hat{y}) || p_{\theta_1}(z | \hat{y}) \right) + \mathbb{E}_{z \sim q_\phi} \left( \log p_{\theta_2}(\hat{x} | z,\hat{y}) \right)

  VAEの損失関数\mathcal{L}が最小となる隠れ変数z及びパラメータ\phi \ \theta_1 \ \theta_2を深層学習で算出します

       \mathcal{L}(\phi,\theta_1,\theta_2,\hat{x},\hat{y}) = \mathbb{D}_{KL} \left(q_\phi(z | \hat{x},\hat{y}) || p_{\theta_1}(z | \hat{y}) \right) - \mathbb{E}_{z \sim q_\phi} \left( \log p_{\theta_2}(\hat{x} | z,\hat{y}) \right)

 

  2) C-GAN(conditnal GAN)

    条件付敵対的生成モデルGANでは次式で定式化できます。

     min_w  max_\psi \mathbb{E}_{\hat{x},\hat{y} \in \mathcal{D}} \left( \log(D_\psi(\hat{x},\hat{y}) + \log(1 - D_\psi(G_w(z,\hat{y}),\hat{y})) \right)

   ここで

     このGANは隠れ変数zの介在で解けないのでz \sim \mathcal{U}(0,1)で一様乱数としています

   G_w(z,\hat{y})は生成器

      D_\psi(\hat{x},\hat{y})は識別器

 

(1.2) 結果

  COSMOSデータ(特徴量3個)についてRealが銀河の実写で C-VAEとC-GANが生成結果です。

  生成結果は何れもノイズが除去されています。

f:id:mabonki0725:20170925214726p:plain

   

   GALAXY-ZOOデータでGANで生成した結果です。但しこのデータの特徴量yは37個のベクトルですので、精緻画像が得られています。

f:id:mabonki0725:20170925215532p:plain

     

 

 

 

 

 

 

深層強化学習によるChatbotモデルの論文を読む

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

(1) 深層強化学習によるChatbotモデルの論文を読む

 「A Deep Reinforcement Learning Chatbot」https://arxiv.org/abs/1709.02349

 この論文はアマゾンの2017年の人工知能モデル競技会で開発された応答会話モデルMILABOTの詳細な報告です。

 このモデルはありとあらゆる自然言語モデルと自然言語特徴量の寄せ集めで百科事典的なモデルとなっています。

 概要としては以下となります。 

  ・アマゾンが提供する「Amazon Mechanical Turk」で人間による20万件の会話格付を教師データとして利用 Amazon Mechanical Turk – クラウドソーシング用のマーケットプレイス | AWS

 

  ・既存の22の会話モデルで応答の候補を生成します。

   この22の会話モデルには、次の様々なモデルが組込んであります

    用途別(映画/検索)

    手法別(テンプレート法/LSTM/機械学習

   また主要なモデルにはアルゴリズムとモデルインストールサイトが添付されています

  ・応答候補の中で最適な応答が無ければ、強化学習で最優良な応答を選択して返します

  ・候補応答毎について格付予測を深層学習モデルで行っています

   深層学習は自然言語の特徴を1458と14万件の格付の教師データで学習しています。 

   1458の特徴量の仕様が記述されています

  ・会話は互いの応答で成立するので、最終会話までの評価をする必要があります。

   予測格付を報酬として深層強化学習で最終会話までの累計報酬の価値関数を計算して、

   累計報酬の最大価値をもつ応答候補が選択されます

   深層強化学習は自然言語の特徴量23個と累計報酬とで価値関数を解いています

   

 概念図としては以下となります。  

f:id:mabonki0725:20170925051653p:plain

プレイヤーと環境とが敵対的に学習する論文を読む

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

(1) プレイヤーと環境とが敵対的に学習する論文を読む

 「Learning to Design Games: Strategic Environments in Reinforcement Learning

https://arxiv.org/abs/1707.01310v2

 この論文は強化学習でプレイヤーと活動する環境とが敵対的に競争し合ってプレイヤーの能力を高めるものです。

    この論文のコンセプトとして下図を示しています。

f:id:mabonki0725:20170923191740p:plain

 一般道の自動運転では様々な連続的に生起する事象を回避する必要があり、その模擬は大変難しいことが知られています。この論文は運転者とその走行環境を互いに複雑にして運転能力を高める方法を開くものと考えられます。

 この論文では下図の様にプレイヤーと迷路を敵対的に進化させて同時に学習をすることができています。

f:id:mabonki0725:20170923182455p:plain

 (1.1) 手法

 強化学習のBellman方程式に敵対的学習を達成するminmaxが定式化されています。

    (\theta^*,\phi) = argmin_\theta \  max_\phi \mathbb{E}\left( G|\pi_\phi,M_\theta= \lt S,A,P_\theta,R,\gamma \gt \right)

    ここで

  \thetaは遷移確率Pのパラメータで報酬を最小化します

       \phiはプレイヤーの方策/piパラメータで報酬を最大化します

       Gは累計報酬

       S \ A \ R \ \gammaは状態、行動(前後左右移動)、報酬、割引率です

  P_\thetaは遷移確率

       \pi_\phiは方策

 \theta\phi微分して計算して最大傾斜となる値に修正します。

       \theta_{i+1} = \theta_i + \eta \cdot \nabla \theta \cdot \mathbb{E}

       \phi_{i+1} = \phi_i + \eta \cdot \nabla \phi \cdot \mathbb{E}

  但し、\phiは上式で求めてますが、迷路を複雑にする\thetaは報酬Gを最小にする2重の期待値を取る式となっていて相当困難な式が展開されています。 結局擬似プログラムをAppendixに添付しています。

       \theta \sim p(\mu_w)

  w^* = argmin_w \mathbb{E}_{\theta \sim \mu_w} \left ( \mathbb{E} (G|\pi_{\phi^*}; M_\theta^A = \lt S^A,A^A,P_\theta^A,R^A,\gamma^A \gt )\right)

 

 (1.2) 結果

 複数のモデルについてプレイヤーと迷路を同時に高度化しています。

 ここで

  Roundは計算の繰返回数 Returnは迷路での折返し回数です。

  OPTはプレイヤーが学習しないモデル

  DFSは判断木を生成して深さ優先で最適判断するモデル

  RHSは判断木を生成して右方向優先で最適判断するモデル

  DQNはDeep Q-learningです

 この結果ではDQNのプレイヤーが最適な学習をするので早期に複雑な迷路を生成しています。

f:id:mabonki0725:20170923185215p:plain

  

 

問題解決の効率化の論文を読む

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

(1) 問題解決の効率化の論文を読む

Arguments for the Effectiveness of Human Problem Solving - Paper Detail

  この論文は深層学習のHPで紹介されており、人工知能の提唱者であるSolomonoffレイ・ソロモノフ - Wikipediaの定理を使っていたことや珍しく式も図表も何にも無いところにも興味が引かれました。

 要はSolomonoffの定理により問題解決の効率を考えるなら6個の提案を吟味しろという話です。また人工知能も同様に設計してよいとも言っています。

 Solomonoffの定理

  問題の解決策m_1,m_2,\dots,m_nが複数あり、その解決できる確率はp_1,p_2,\dots,p_nで、解決費用はt_1,t_2,\dots,t_nの場合には、最も効率がいいのは \frac{p_k}{t_k}が大きい順に試せば最も効率的に解決策m_kを見つけることができる。

 この論文では式は出現しないですが、無理に定式化すると以下になります。

   optimal \ \ m_k = argmax_{k} \left( \frac{p_k}{t_k} \right)

証明は興味がありますが記述はありません。

 

この定理に従うなら問題解決の効率化は以下を探せば良いことになります。

  ・解決策 m_kの列挙

       ・m_kが成功する確率p_kを見積もり

  ・解決に要する費用t_kの見積もり

この論文では問題の解決策の探索に以下の6方法を提案しています。

 1)Discovering similarities  

        既に解決済みの類似した問題を見つける

 2) Discovering relaion or associations

        ピタゴラスの定理の様に間接的に解決策を見つける

 3) Generalization

        この問題を一般的な問題すると多くの解決策が見つかる

 4) Abstraction

       この問題を抽象化して要素に分解して解決する

 5) Intution

       直感的なアイデアで問題を解決してみる      

 6) Context sensitivity

        解決に適合しない部分を取り除く

 

 感想としては人工知能を提案した一人であるSolomonoffが既に1950年代に問題解決に確率的なアプローチを提唱していたのは先駆的と思われます。しかしこの論文の提案である解決策の探索とその蓋然性の推量には確率的な方法が見られず、学術的な論文の意義が損なわれているのは残念です。

    現在Openposeを利用して姿勢の予測モデルを開発していますが、1)  4) 5)の順番に問題を考えています。やはり創造的な手法を開発するには5)の直感が一番大切な気がします。

f:id:mabonki0725:20170923081157p:plain

  

ImageNetの深層学習を24分間で達成した論文を読む

ランニングできず 英語:英語でOpenpose予測モデルを発表

(1) ImageNetの深層学習を24分間で達成した論文を読む

[1709.05011v1] ImageNet Training in 24 Minutes

 以前なら1ヶ月ぐらいかかったImageNetの深層学習が24分で済ませたという衝撃的なタイトルです。

 しかし詳細に読むと実現したのは144時間(6日)  →  24分(360倍)でした。

 これらは次の工夫によって達成されています。 

  ・LARS(Layer-wise Adaptive Rate Scaling)というロジックでバッチサイズを拡大

  ・Intelの高価な計算機の導入

  ・59%程度の識別精度で達成

   高い識別精度を追求すると今でも半月かかるそうです。

 AlexNetとResNet-50の2種類の深層学習モデルで成果報告されています。

f:id:mabonki0725:20170921211800p:plain

  上表で明らかな様に繰返回数(epoch)と精度(Accuracy)は不変ですが、Batchサイズと

Hardwareの改善によって計算が速くなっています。しかし計算機は1億円しています。

 一般に深層学習は下図の様に並列に動作させます。各workerの深層学習の重みの修正毎にMasterは全workerの修正値を読取り再び調整済み重みを全workerに反映しています。そのためバッチサイズを大きくしてworkerを少なくできるとトラフィックが格段に少なくなるので高速化ができます。   

     f:id:mabonki0725:20170921215733p:plain

 

 この論文の寄与はバッチサイズを大きくしても精度が落ちないのはLARSロジックを開発したことです。

 ImageNetでは下表の様に層によっては重み{||w||}_2と重みの改善幅{||\Delta w||}_2の比率が異なるので、学習率\etaを一律にする必要がなく、比率が高い層は刻みが小さいので\etaを大きくすることができます。          

       f:id:mabonki0725:20170921213105p:plain

 この特性に注目して次のLARS(Layer-wise Adaptive Rate Scaling)調整を事前学習時に実施しておくと、ImageNetの本番の深層学習時にバッチサイズを512 → 32Kまで増すことが出来、24分間の深層学習を達成したとのことです。

            1) \eta = \gamma \cdot \alpha     ※学習率の拡大

            2) \alpha = l \cdot \frac{ {||w||}_2}{{||\Delta w||}_2 + \beta {|| \Delta w||}_2}

            3) \Delta w = \Delta w + \beta w

            4)  a = \mu a + \eta \Delta w

            5)  w = w -a

            ここで  

     l \ \beta \ \mu \ \gammaは調整係数

 

 

 

 

 

  ・

Abbeelの相手の様子を見る強化学習の論文を読む

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

(1) Abbeelの相手の様子を見る強化学習の論文を読む

 「Learning with Opponent-Learning Awareness」https://arxiv.org/abs/1709.04326

 ロボット学の第一人者のAbbeelが参加している敵対的強化学習の論文です。この強化学習はタイトルの[Awareness]が示す様に相手の動きを察知して強化学習するモデルLOLA(Learning with Opponent-Learning Awareness)を提案しています。多分この様な強化学習は存在しないと思います。

 例題の1つとしては「囚人のジレンマ」というものを扱っています。共犯の2人がいて、刑事から密告すると自分は許されが、相手は3年の懲役と言われています。しかし両人が庇いあって黙秘を続けると1年ぐらいで済みそうです。また互いに密告し合うと2年の懲役になります。 

 Cが黙秘でDが密告とすると下表の様になります。 

     f:id:mabonki0725:20170920213712p:plain

 客観的に見れば両人が黙秘を続ける方が都合がいいのですが、思考を繰返すと結局自分の事だけ考えて裏切ると思い結局密告しあう事になります。

 この問題を繰返し模擬した互い(Agent-1 Agent-2)の確信度の分布が下図です。

  a)は従来型の強化学習 native larning (NL)

  b)は相手を察知する強化学習 (LOLA)

 ※下図のs0は模擬の初期値の状態を表します

f:id:mabonki0725:20170920215919p:plain

  a)の従来型の強化学習では最も低い1年となる確信度が広がっていて互いに疑心暗鬼の状態になっています。

  b)のLOLAモデルでは相手の様子を見て判断しているので両人共が裏切るDDが少なく、様子を見て片方が裏切るCDやDCに確信度が集まっています。

 この問題は簡単なので数学的の解けますが、LOLAでは多様な問題に適用できる様に近似解で計算しています。下図が繰返し回数と報酬の結果で従来型(赤と橙)は最悪の懲役2年になっていますがLOLA(青と水色)は互いに裏切る機会を得て低い懲役で済んでいます。なお近似解は少し精度が落ちています。 

f:id:mabonki0725:20170920222018p:plain

  今度は理論解がない複雑な問題の場合です。

 これはセルを移動するAgentが自分の色を取ると1点得点し、相手は1点減点になります。また相手の色を取ると相手に倍の減点を与えられます。 

   f:id:mabonki0725:20170920225356p:plain

 LOLAは相手の動きを見て動くので訓練の結果下図の報酬となります。従来型(NL)は相手を見ていないので殆ど報酬を得ていません。ここでLOLA-OMは相手の経路を評価した近似モデルとなります。

f:id:mabonki0725:20170920230356p:plain

 ここで(a)は自分の色を取る学習の結果、(b)は相手の色を取る場合も含めた結果です。

 LOLA-OMは近似解なので少し劣化しています。

(1.1) 手法

 このモデルの大事な前提は以下です。

 ・相手の価値関数のパレメータ\theta^2が分っていること

        実際には部分的にしか相手の事は判り得ないはずです。

 ・2人敵対モデルである 

   

 1) 自分のパラメータ\theta_{i+1}^1のExactな更新は次式の相手の価値関数を予測して行っています。

  \theta_{i+1}^1 = \theta_i^1 + \Delta \theta^1

        \Delta \theta^1 = argmax_{\Delta \theta^1} V^1 \left( \theta_i^1 + \Delta \theta^1 ,  \theta_i^2 + argmax_{\Delta \theta^2} V^2( \theta_i^1+\Delta \theta^1 , \theta_i^2+\Delta \theta^2)\right)

       ここで

            V^1 \ V^2は自分と相手の価値関数です

   実際には自分のパラメータの更新は自分と相手の価値関数を2回偏微分して行っています。

    \theta_{i+1}^1 = \theta_i^1 + f_{LOLA}^1(\theta_i^1,\theta_i^2)

          f_{LOLA}^1 = \frac{\partial V^1(\theta_i^1,\theta_i^2)}{\partial \theta_i^1} \cdot \delta + \left(  \frac{\partial V^1(\theta_i^1,\theta_i^2)}{\partial \theta_i^2} \right) ^T \frac{\partial^2 V^2(\theta_i^1,\theta_i^2)}{\partial \theta_i^1 \partial \theta_i^2} \cdot \delta \eta

   2) パラメータの更新の微分と2回微分の計算は複雑なモデルでは算出できないので、

  自己と相手の動きの履歴\tau^1 \ \tau^2から近似して求めています。

 \frac{\partial V^1(\theta_i^1,\theta_i^2)}{\partial \theta_i^1} = \nabla_{\theta_1} \mathbb{E} R_O^1(\tau) = \mathbb{E} \left( R_O^1(\tau) \nabla_{\theta^1} \log \pi^1(\tau) \right)

    \frac{\partial^2 V^2(\theta_i^1,\theta_i^2)}{\partial \theta_i^1 \partial \theta_i^2} = \nabla_{\theta_1} \nabla_{\theta_2} \mathbb{E} R_O^2(\tau)

    ここで

       R_O^1\ R_O^2はOまでの自分と相手の累計価値です

 

 

 

 

  

 

  

    

 

 

Attentionによる機械翻訳の論文を読む

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

(1) Attentionによる機械翻訳の論文を読む

 「Effective Approaches to Attention-based Neural Machine Translation」(2015/09/20)

https://arxiv.org/abs/1508.04025

 最近の自然言語処理ではAttentionは必ず聞く言葉なので、どの様な仕掛けか読んでみました。

 RNNを用いた機械翻訳は下図の様な2層型のseq2seqのEncode-Decode方式がbaseになっていています。

 これにAttentionを追加して学習させると大幅に翻訳精度が改善できるとの話です。

f:id:mabonki0725:20170919205551p:plain

 Attentionは翻訳の対応語間の関係をRNNの隠れ変数間の計算で代替するもので、この学習を反映すると精度が向上します。

(1.1)手法

    Attentionc_tはEncoder側の隠れ変数\bar{h}_sとDecoder側の隠れ変数h_tで定義されます。

 被翻訳をxとし翻訳をyとする時、Attention c_tを使って次に翻訳される言葉の確率は次式としています。

  p(y_t | y_1,y_2,\dots,y_{t-1},x) = softmax(W_s \cdot \tilde{h}_t) ①

        \tilde{h}_t = tanh(W_c,[c_t;h_t)]

        c_t = \sum_{s=1}^S  a(s) \bar{h}_s ②

     ここで

   \bar{h}_sはEncoder側の隠れ変数

   h_tはDecoder側の隠れ変数

   a_t(s)は両側の隠れ変数の荷重比率で次式で定義

    a_t(s) = align(h_t,\bar{h}_s) = \frac{\exp \left(score(h_t,\bar{h}_s) \right)}{\sum_{\acute{s}} \exp \left( score(h_t,\bar{h}_{\acute{s}}) \right)} ③

    score(h_t,\bar{h}_s) = v_a^T tanh(W_a(h_t;\bar{h}_s))

            但し W_s \ W_c \ W_a \ v_aは学習パラメータです。

     (a;b)はベクトル a と b の連結です

 上記を図示すると以下となります。f:id:mabonki0725:20170919214011p:plain

    上記は全センテンスの翻訳のAttentionで、これを大域的Attentionと云います。

 長文ではAttentionの構築が広いのでD語幅での局所Attentionが有効な場合があります。

 その場合のa_t(s)加重は言葉の意味位置p_tの偏差を使って次式で定義します。

  a_t(s) = align(h_t,\bar{h}_s) exp \left ( - \frac{(s - p_t)^2}{2\sigma^2} \right)

  p_t = S \cdot sigmoid(v_p^T tanh(W_p,h_t))

  ここで

           v_p \ W_pは学習パラメータです

          Sはencodeの数

          \sigma = \frac{D}{2}

(1.2) 結果

  英語→独語への翻訳結果の精度です。文長は50語以上を選んでいます。

  ここでは翻訳精度の評価としてperplexity(P_pl)とBLEUを使っています。

  比較対照はAttentionが無いseq2seqでBaseと記されています。

 ほぼ2倍の精度向上となっています。perplexityは低い方 BLEUが高い方が精度が高い

f:id:mabonki0725:20170919222609p:plain

ここで

 reverseとあるのは被翻訳文を逆順で入力しています

 globalは大域的Attentionを使っています

    local_pは局所的Attentionを使っています (D=10)

    feed input は 下図の様に求まった隠れ変数\tilde{h}_tを次のRNNに入れています

    BLEUの欄の(+ x.x)は他のAttention論文(Sutskever et al. 2014)との比較です

    unk replaceは出現頻度が低い言葉を一律 unkに置き換えています

 f:id:mabonki0725:20170919220522p:plain

 (1.3) 感想

 上記の仕掛けは翻訳される側とする側の言葉の位置関係を隠れ変数間で計算したAttentionを使うので、当然翻訳精度は高くなります。しかしこのAttentionのため学習パラメータが格段に増えています。下記の資料はこの実装の話で逆伝播のロジックが相当大変との報告です。 

http://www.logos.t.u-tokyo.ac.jp/~eriguchi/slide/20160413_DeepLearning.pdf