医療系の複合現実(MR)の技術サーベイ論文を読む

ランニング30分 英語:Toeic

(1) 医療系の複合現実(MR)の技術サーベイ論文を読む

「Recent Developments and Future Challenges in Medical Mixed Reality」

https://arxiv.org/abs/1708.01225

AI会社の社長からこれは凄いという複合現実の論文を紹介された。面白いことにAIの事は期待するとあるだけで、具体的な記述は全くない。生命が掛かっている医療系では未だに理論根拠がない深層学習の汎化性能など信じていないことがわかる。一方ベイズ統計の自動運転技術のSLAM(地図・自己位置同時推定)はかなり有望視されており、理論が明快な確率モデルは積極的に導入しょうとする姿勢がある。

複合技術(MR:Mixed Reality)はAR(付加現実)とVR(仮想現実)の融合したものである。ARは現実の画像に様々な情報を付加して見せるものである。即ちMRは現実的な対象に対して付加情報と仮想画像融合してみせるものである。

この分野ではマイクロソフトのHololensが先駆けており下図はその動画例

f:id:mabonki0725:20170822052049p:plain

Microsoft HoloLens: University College London Improves Insights for Surgeons - YouTube

(1.1) 論文の趣旨

医療系MRの直近20年間の1403件の記事や論文をLDAで10分類し、その分類毎に現状(直近5年)のMRの技術を紹介している。(左図は分類 右図は分類のトレンド)

f:id:mabonki0725:20170821221949p:plain

(1.2) MRの現状

MRのデータはMRI(磁気共鳴画像)やCT画像あるはx線画像で見えない箇所のデータを取得し、それを現実の画像と合成している。

f:id:mabonki0725:20170821211251p:plain

・施術(Treatment)

 MRでは直接可視ができない血管組織の画像を人間の腕に映して注射や手術を支援することができる。この場合、表層の歪みを補正する必要がありまだ課題が多い。特に脳内神経の観察では切迫した需要がある。

f:id:mabonki0725:20170821222713p:plain

・訓練(Training)

 仮想の人体と手術する実際の腕を同時に映し訓練を行う。この場合も人が人体に触れる反応が感じられる様にするには課題がある。

f:id:mabonki0725:20170821223112p:plain

・表示機能(Display)

 表示機能としては、HMD(頭部装着装置)と一般的な空間での照射表示がある。

f:id:mabonki0725:20170822052809p:plain

下図は映画プロメテイウスでの一般空間での照射表示であるが、相当な表現力があることが分る。

f:id:mabonki0725:20170821202007p:plain

 

・外科的手術(Surgery)

 現状では患者の負担を減らす最小切開(MIS)による口腔鏡による外科技術が望まれている。MRはその口腔鏡のデータをVRで視覚化し他の付加情報を融合して表示する。

f:id:mabonki0725:20170821210438p:plain

・位置特定(Registration)

 SLAM(地図と自己位置同時推定)は移動する度に計測されるセンサー情報と移動情報により逐次的に環境認識を精緻化するものである。センサー情報と移動情報には誤差があるが、地図と自己位置は隠れ変数として捉えベイズ統計で最適化して補足している。SLAMは観測データのみで動画にでき仮想を前提しないので、この論文では新たな視認技術として3D-SLAMにかなりの期待を寄せている。左図はカメラの移動した楕円経路を示し、右図はSLAMによって位置(マーカー)が特定された画像になっている。

f:id:mabonki0725:20170821222834p:plain

(1.3) 評価

 この論文にある様に医療機器では、切迫した患者の状態をReal-Timeで診る必要と要求される認識精度(1mm以下)がトレードオフの関係にあり、未だに課題が多い。しかしMRは見えない場所の可視化(VR)と付加情報(AR)の融合で新たな画像認識を築くものである。

映画プロメテイウスではMR画像がCG合成で随所に使われており、新しい認識技術として現実化に向かって推進されると考えられる。

 

MicroSoftのゲームのアイテム毎に強化学習する論文を読む

テニス2時間 英語:できず

(1) ゲームのアイテム毎に強化学習する論文を読む

「Hybrid Reward Architecher for Reinforcement Learninghttps://arxiv.org/abs/1706.04208

(1.1) 論文の意図

DQNは画面からDNNで直接特徴量を読み取り、特徴量の変化と得点で強化学習を行うが、複雑な場面の場合には特徴量の変動が読み取り難く容易に学習が進まない。そこでゲームを特徴付けているアイテム毎に分解して強化学習すれば特徴量の変動が簡単に補足でき、効果的な学習ができるとの考えである。

具体的にはパックマン・ゲームの場合、パックマン、ペレット、ゴースト毎に強化学習を行う実験をしている。

「パックマン」の画像検索結果

(1.2) HRA(Hybrid Reward Architecture)の手法

状態価値関数Q_{HRA}(s,a)は重み付き加重加算とする

  Q_{HRA}:=\sum_{k=1}^n w_k Q_k(s,a)

論文によると、下記の場合はモデルを分解できるとしている。

・報酬と特徴量のペアが独立している場合。具体例としては複数の果物を集める迷路モデルでは、各果物とその環境は分解できる。

・報酬を得られない終末状態は分離して計算しない。

・特徴量が認識しやすい擬似的な報酬を作って分離する

分解されたモデルをHeadと称する

f:id:mabonki0725:20170821075535p:plain

(1.3)実験結果

・果物を集めるゲーム

 画面を10分割するHRAモデル以外に下記の機能(右端図)を追加している

 HRA+1:果物と無関係な特徴量を削除

 HRA+2:果物の獲得できない状態の削除

 HRA+3:10箇所の位置に分割して擬似的な報酬をGVFsで生成

     GVFs(General Value Function)

f:id:mabonki0725:20170821075954p:plain

・Packman

   パックマン、ペレット、ゴースト毎に分割して強化学習している。

   このモデルではHRA以外にDeepMindが採用して効果があった下記のモデルを追加して導入している

 ・diversification:最初の50ステップではランダムにQ学習する

 ・Count-based: 画像の変化が多いと報酬を加算する

 ・executive-memory:  過去の成功事例を記憶して再利用する

f:id:mabonki0725:20170821080057p:plain

 (1.3) 評価

・汎用的なDQNと比べゲームの特性に沿ってモデル化しており、当然性能が向上するのは当然と思われる。逆に課題に応じてモデルを分割する戦略が有効である事を示している。

・状態価値関数Q_{HRA}(s,a)は加重加算となっているが、この重みの調整は手動であり適切に推定する方法が示されていない。

 

Bradley-Terryを使ったツイッター分析の論文を読む

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

神嶌先生が出てくるツイッター分析の論文を読む

「被フォロー順序に基づくユーザの役割推定方法の提案」(2017)

http://db-event.jpn.org/deim2017/papers/209.pdf

以前書いた人間の感性を利用した強化学習で、2つのゲームビデオ画面の好悪比較で総合的な好みの順序をBradley-Terryモデルで推定していた。

[1706.03741] Deep reinforcement learning from human preferences

この論文はこのモデルの詳細な記述があるので読んでみた。

・論文の意図

ツイッターで自分のフォローしている人々(Followee)の分類とその特性の分析である。

f:id:mabonki0725:20170820084524p:plain

 

ツイッターでは、データをダウンロードするAIP(Twitter REST API)があり

自分のフォローする特定の分野のFollowee(フォローしている先)を集める。

ユーザのフォロー先で最初に表示した先は選好先として優劣を付ける。この総合的優劣を次のBradley-Terry推定で解く。

・Bradley-Terryの方法

このBradley-Terry推定は1952年の出案でかなり古い。

 ユーザu_i u_jの優劣を決定する隠れ変数x_i,x_jを想定して、総合順序を推定する。

  p(u_i \succ u_j) = \frac{x_i}{x_i+x_j}

  x_iの推定には最尤度で行う。

  \mathcal{L}(x) = \prod_{i=1}^m \prod_{j=1}^m p(u_i \succ u_j)^{n_{ij}}

  \mathcal{L}(x) = \prod_{i=1}^m \prod_{j=1}^m \left(\frac{x_i}{x_i+x_j} \right)^{n_{ij}}

  \mathcal{L}(x) = \prod_{i=1}^m \prod_{j \gt i}^m (x_i+x_j)^{-n_{ij}} \cdot (x_i+x_j)^{-n_{ij}}\cdot x_i^{n_{ij}}\cdot x_j^{n_{ji}}

  \mathcal{L}(x) = \prod_{i=1}^m \prod_{j \gt i}^m (x_i+x_j)^{-N_{ij}}\cdot \prod_{i=1}^m x_i^{W_i}     \left(s.t \,\, Wi = \sum_j^m n_{ij} \right)

 この対数尤度は

 \mathcal{L}(x) = \sum_{i=1}^{m} W_i \log x_i - \sum_{i=1}^m \sum_{i \gt j}^m N_{ij} \log(x_i+x_j)

 ここで次の拘束を入れる

 \sum_{i+1}^m x_i = 1

最終的な対数尤度は

 \mathcal{L}(x) = \sum_{i=1}^{m} W_i \log x_i - \sum_{i=1}^m \sum_{i \gt j}^m N_{ij} \log(x_i+x_j) - \lambda \left(\sum_{i=1}^m x_i = 1\right)

 対数尤度を偏微分して連立方程式を解くと

  \sum_{j \not i}^m N_{ij} \frac{{\color{red}{x_i}}}{x_i+x_j} = W_i

 上式をx_iで解く。しかし次式は陽に解けないので次式で\tilde{x_i}が収束するまで行う

 \tilde{x_i} = \frac{W_i}{\sum_{j \not i}^m \frac{N_{ij}}{x_i+x_j}}

 

・分析結果

 ジャンルである機械学習とイアホンの2種類について上記の選好順位とフォロー数を基にした順位で以下に区分する。

 A型:選好順位とフォロー数順位の差(ギャップ)が大きい先

 B型:選好順位とフォロー数順位の差が小さい先

 C型:上記以外

f:id:mabonki0725:20170820110730p:plain

 上記の結果から以下と分析している。

 A型:個人の選好よりフォロー数が絶対的に多い先なので権威先

    @sima_simaは神嶌先生

            @ibiml:機械学習グループ

    @preferred-jp:プリファード・ネットワーク会社 

 B型:ツイート数が多い先で特定の情報を発信する先

 C型:情報収集が目的のフォロー先

 

DeepMindとOpenAIの人間の好みを反映した強化学習の論文を読む

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

DeepMindとOpenAIの人間の好みを反映した強化学習の論文を読む

「Deep reinforcement learning from human preferences」

[1706.03741] Deep reinforcement learning from human preferences

強化学習では報酬が明確でないと学習できるモデルにはならない。一方で報酬が明瞭でない問題は多い。例えば紆余曲折して最後にゴールに達する様な問題などがそうである。その点では人間は経験や感を有しており、この様な報酬が曖昧な問題で人間の知識が強化学習に役に立つか検証する論文である。

人間の知識を強化学習に組み込む方法として逆強化学習(IRL:Inverse Reinforcement)がある。これは熟達者の経路データから逆に報酬を計算する手法である。しかしIRLの方式は貴重な熟練者のデータだけでなく多様なデータがないと適切な報酬が計算できないことが判明している。

そこで多数の人間に比較が容易な様にゲーム場面のビデオを2本づつ見せて、彼らの好悪を報酬に変換する案がこの論文の意図である。

f:id:mabonki0725:20170819104005p:plain

・報酬の推定方法

行動の経路(観察o_iと行動a_i)を撮ったビデオを2本づつ見せ、その好悪を得る。

    \sigma^1 \succ \sigma^2  左式は経路\sigma^1\sigma^2の優劣を示す

  \sigma^1=(o_0^1,a_0^1),\dots,(o_{k-1}^1,a_{k-1}^1)

  \sigma^2=(o_0^2,a_0^1),\dots,(o_{k-1}^2,a_{k-1}^2)  

収集したデータから経路選択確率求まる。これに次式のsoftmax関数を当てはめる。

   \hat{P}(\sigma^1 \succ \sigma^2) = \frac{\exp \sum_t \hat{r}(o_t^1,a_t^1)}{\exp \sum_t \hat{r}(o_t^1,a_t^1) + \exp \sum_t \hat{r}(o_t^2,a_t^2)}

 この式をBradley-Terry方程で解くと全ての経路報酬\sum_t \hat{r}(o_t,a_t)を逆算することができる。この計算は繰返し演算が必要になる。

注)Bradley-Terry方程式の解法についは下記の論文に詳しい

http://db-event.jpn.org/deim2017/papers/209.pdf

 

・予想報酬の計算手順

1) まず適当な報酬で複数の経路\sigma_1,\dots,\sigma_kを計算する

2) 複数の人間に経路のビデオを見せ、経路の好悪 を問い合わせる。

3) Bradley-Terry方程式を解き、全経路の報酬\hat{r}を計算する。

4) 1)に戻って繰り返し、報酬\hat{r}が安定するまで繰返す

 

・実験結果

 実験は8種類のロボットの模擬とAtariゲームで行った。

人間に対する問い合わせは以下の2種類を実施している

①事前にビデオを見せて経路の選択の問合せ(紫色)

②ゲーム中にOn-lineで人間に指示を仰ぐ(青色)

比較のため、モデルに報酬関数を設定した場合(橙色)を乗せている

 ・ロボットの模擬の結果

f:id:mabonki0725:20170819114524p:plain

 

f:id:mabonki0725:20170819120717p:plain

 

 Atariゲームの結果の結果

f:id:mabonki0725:20170819114709p:plain

 ロボット環境では人間の経路選択が有効であることがしめされている。特にOn-lineの指示が優勢である。Atariはスコアが明瞭なゲームなので、既存のDQNモデルが有効であることが示されている。

 

 

DeepMindのグループ対戦型ゲームの強化学習の論文を読む

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

(1) DeepMindのグループ対戦型ゲームの強化学習の論文を読む

StarCraft II: A New Challenge for Reinforcement Learning

StarCraft II: A New Challenge for Reinforcement Learning | DeepMind

StarCraftゲームはグループ対戦型ゲームの強化学習の学習データとしてよく使われている。過去にはアリババの下記の論文の記事がある。(この論文はグループ対戦型の複数のモデルと自分達のRNNモデルとを比較している)

協調型の強化学習の論文を読む - mabonki0725の日記

 

1) この論文の意図

グループ対戦型という類を見ない強化学習の実験用の環境SC2LEの公開である。この実験環境は以下のことが提供されている

・1対1だけでなくグループ対戦型の2対2、3対3、4対4の対戦が可能

・各Agentが部分的に観測した情報を連絡によりグループで共有できる

・複雑な陣地や行動(300種類)の複雑な組合わせ(百万以上)が実験できる

・模擬して報酬やデータを取得できる環境になっている

・対戦用にA3Cによる複数の強化学習モデルの提供している

・パラメータ調整や特徴選択の組合わせでAgentを強化できる

f:id:mabonki0725:20170818085136p:plain

 

このグループ対戦型の実験環境はPythonで構築され以下に既に公開されている。

GitHub - deepmind/pysc2: StarCraft II Learning Environment

 

2) ゲームの状況の観測画面

ゲームとしては、フルゲームと簡単なミニゲームが用意されている。簡単なミニゲームを用意してあるのは、取得できるデータの解釈が容易だからである。

フルゲーム中の観測データとして、下図の様に左端の数値データと様々な地図情報や位置情報が取得できる。

f:id:mabonki0725:20170818091154p:plain

3) 強化学習モデル

強化学習モデルは方策\pi_\theta\thetaを改善するモデルである。A3Cで構築され、この解法には3種類の深層強化学習で最適化している。しかし何れも熟達した人間相手では勝つことができないので、ベースラインとしての提供である。何れのモデルでも対戦用に弱いAgentと相当強いAgentの2種類が用意されている。

 

f:id:mabonki0725:20170818090958p:plain

 DeepMindはこの様な本格的な野戦型のグループ対戦環境を提供して、新しいグループ協調型の強化学習モデルのアイデアを募ろうとしている。

 

openPoseの解析結果の時系列データの作成作業

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

(1) openPoseの解析結果の時系列データの作成作業

大学の研修でopenPoseによる予測モデルの構築をしている。現在はバスケットのフリースロー動作からの予測点数の推定モデル

openPose資料

www.slideshare.net

https://www.slideshare.net/MasatoNakai1/open-posedoc

openPoseは下図の18点の2次元座標を1フレーム毎にファイルに出力するので、時系列データにするには複数のファイルを統合してフレーム番号毎にX,Y座標を編集する必要がある。

f:id:mabonki0725:20170714131745p:plain

読み込んだ時系列の結果(X軸とY軸)

f:id:mabonki0725:20170817084924p:plain

f:id:mabonki0725:20170817085050p:plain

DeepMindの外部メモリー型DQNの論文を読む

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

(1) DeepMindの外部メモリーDQNの論文を読む

「Neural Episodic Memory](2017/03) https://arxiv.org/abs/1703.01988

この論文は人間がある状況で適切な行動を求められる場合、過去の類似した状況での結果を思いだして行動選択する事をモデル化したものである。この発展版がDeepMindの外部記憶メモリを使う「Neural Turing Machine」である事がわかった。

このモデルはUNREALなど多くのモデルの一部として採用されており、一般的になりつつある。

一般にBellman方程式は、状態sでの採った行動aでの期待できる将来価値Qを計算する式である。しかし将来への漸化式になっているので陽に解けないので、Q関数は特徴量\phiとパラメータ\thetaの線形和で近似する場合が多い。

   Q_{t+1}(s,a) = \mathbb{E}\left(r_t + \gamma \max_{a'}Q_t(s',a')\right)

   Q(s,a;\theta) = \sum_{k} \phi_k(s,a) * \theta_k

 DQNはQ学習アルゴリズムとして、2つの重要な考え方を導入してEnd-to-Endの問題を解くモデルを実現した。

  1)特徴量\phi(s,a)はゲーム画像をDeepLearningのCNNで抽象化して生成する

  2)パラメータ\thetaは、t時点に実際得られた報酬rと近似されたQ関数の差からパラメータ\theta_t微分してして解き、さらに近似を精緻化する。

   \mathcal{L}(\theta_t) = \mathbb{E_{s,a \sim p}}\left((r_t - Q(s,a;\theta_t)^2\right)

  \nabla_{\theta_t} \mathcal{L}(\theta_t) = \mathbb{E_{s,a \sim p}}\left(\left(r+\gamma \max_{a} Q(s',a';\theta_{t-1}) - Q(s,a;\theta_t)\right) \nabla_{\theta_t} Q(s,a;\theta_t)\right)  

  \theta'=\theta +  \eta \nabla_{\theta^*}\mathcal{L}(\theta^*)    ここで \etaは学習率

 

 しかし、DQNは人が2時間でマスターするゲームを200時間もかかってしまう。これはQ関数が単なるパラメータの近似関数なので有効な学習が難しいためと考えられる。

そこで、今までの実際得た価値を外部記憶に記憶させ、今の状況と似たものから呼出して価値を計算してしまおうとする考え方である。

 

f:id:mabonki0725:20170816105519p:plain

 この外部記憶モデルは近似的なQ関数の代替なので、素早い計算が要求されるので

・簡単な内積計算でQ値を計算する

・書込みは追加だけ

 以下はモデルの説明

1)外部記憶からの呼び出し

・外部記憶は行動a毎に設定され、各々外部記憶M_aがある。外部記憶はインデックスh_iとその値Q_iの表構造で構成されている。

・現在のゲーム画像sをCNNで抽象化してベクトルhをキーとして生成する。

・複数の行動a毎に外部記憶M_aをキーhで検索して、行動毎に価値Q(s,a)を計算する。その中で最大の価値Qを採る行動を決定する。

・キーが一致しない場合が殆どなので(キーは画像の場面を表わすから)、外部記憶のインデックスh_iとキーhが似ていいる程、尊重する様調整する。

 キーが似ているかは内積を採ればいいのであるが、少し上等にしてガウシアンカーネルk(h,h_i)を使って調整する

 注)ガウシアン・カーネルとはキーhと検索インデックスh_iの一致具合を正規分布表現するものである。

    調整の重みは     w_i  = \frac{k(h,h_i)}{\sum_j k(h,h_j)}

 算出するQ値は    Q(s,a) = \sum_j w_j * Q_j

2) 外部記憶への書込み値 

 ・ゲーム画像sを表わすキーhの追加書込みの値はN期先までの価値としている。

    N期先の価値関数    rは報酬  \gammaは将来への割引値

 {Q^N(s_t,a) = \sum_{j=0}^{N-1}\gamma^j r_{t+j} + \gamma^N \max_{a'} Q(s_{t+N},a')}

・既存の外部メモリーの価値Qiの調整を行う。 \alphaは調整係数

 Q_i= Q_i + \alpha \left(Q^N(s,a) - Q_i\right)

・もし追加枠が一杯になれば、最も近いインデックスを持つものと置き換える

 

 

この様な外部記憶を使うことによって、従来モデルと比較して大幅な改善を達成している。

f:id:mabonki0725:20170816120543p:plain