Abstract
昔話題になったAlphaGoではDQNという強化学習の一手法が用いられています。強化学習はゲームやロボット制御の分野でよく研究されていますが、医学研究でも活用されているのを知ったので紹介を兼ねて実装してみたいと思います。今回はTD法を用いて薬物依存の原因とされている報酬系(ドーパミン神経)をモデル化していきましょう。
Introduction
計算論的精神医学
計算論的精神医学とは、精神障害患者の示す特徴的な行動や神経活動に関して、その背景にあるプロセスを理論的な制約と物理的な制約を反映させた数理モデルによって明らかにするという、計算論的アプローチを用いて精神障害の研究を行う学問領域である。
(「計算論的精神医学」第2章より一部改変)
現代精神医学の問題として、
- 疾病分類の問題
- バイオマーカーの問題
- 説明のギャップ
が挙げられます。
例えば、「幻覚や妄想は精神病で重複して観察されるので、幻覚や妄想が診断の指標にはならないのでは?」、「血中の白血球数を調べるといった客観的かつ定量的な診断ができないので、ほとんど患者自身の主観的体験の報告と行動観察に基づいて診断が行われるとその信頼性は怪しくない?」、「ドーパミン関連遺伝子とかドーパミンニューロンの精神回路についての研究成果はたくさんあるけど、ドーパミンが統合失調症にどう関与するかはまだわからないです...。」(ドーパミンD2受容体ブロッカーが統合失調症に効果があると判明したのは終戦直後なので、もう70年近く経っている。)といった問題があります。
それらの問題を解決するために、計算で人間の脳をモデル化しよう!というのが計算論的精神医学です。
薬物依存の数理モデル化
「計算論的精神医学」では、
Redishによる研究が紹介されています。今回はそれを参考にしてモデル化と実装を行います。
薬物依存症とは、薬物の効果が切れてくると、薬物が欲しいという強い欲求(渇望)がわいてきて、その渇望をコントロールできずに薬物を使ってしまう状態をいいます。薬物依存ともいいます。
(
厚生労働省HP)
薬物に依存してしまうのは単純に薬物を得た際の報酬が高いからだとすると、薬物の快楽が薄れてもやめられないという依存状態を説明できません。ここでRedishは強化学習のActor Critic法を用いてTD誤差の拡張をすることで依存をモデル化しました。(ここでは元論文のような連続的な時間ではなく書籍と同じく段階的に状態遷移するモデルを考えます。)
まず、環境を設定します。眼の前にピーマン、チョコケーキ、コカインがおいてある状態
S0を考えます。ピーマンは依存性は無いけど(単体では)美味しくもないもの,ケーキは依存性は無く美味しいもの,コカインは美味しいかどうかは知りませんが依存性があるものとして扱います。ここでエージェントは戦略
πt(st)に従って行動
a1,a2,a3から1つを選択します。行動
a1,a2,a3はそれぞれ「ピーマンを食べる」、「ケーキを食べる」、「コカインを摂取する」とし、行動後は状態
S1,S2,S3に遷移します。状態
S1,S2,S3ではそれぞれ食べたものに応じて報酬
R1,R2,R3が与えられます。そこでTD誤差を用いて状態価値
Vt(st)と戦略
πt(st)を更新し、その後エージェントは状態
S4に遷移します。状態
S4は日常生活に相当し、食べたものに関係なく一定の報酬
R4が与えられます。もう一度同じく状態価値
Vt(st)と戦略
πt(st)を更新します。以上が1エピソードで合計200エピソード繰り返します。
普通のActor Critic法では状態価値
Vt(st)と戦略
πt(st)を以下のように更新します。
Vt+1(st)=Vt(st)+αCδtπt+1(st)=πt(st)+αPδtδt=rt+γVt(st+1)−Vt(st)
α は学習率、
γは割引率を表します。
ここではTD誤差
δtを薬物による過渡的なドーパミンの増加
D(st)を用いて
δt=max{rt+γVt(st+1)−Vt(st)+D(st),D(st)}
とすることで、薬物を摂取したときに
δtは最低でも正の値を持ち、状態価値は増加し続けます。薬物を選択した場合以外では
D(st)=0とします。
「計算論的精神医学」では強化学習だけでなく、他にもノーベル賞を受賞したHodgkin-Huxleyモデルなどの生物物理学モデル、ニューラルネットワークモデル、ベイズ推論モデルによるうつ病、統合失調症、ASD、PTSDなどのモデル化事例も紹介されているので、気になった方は是非図書館で借りるか買ってみてください。
実装
- Ubuntu 18.04 LTS
- Python 3.6.7
「Pythonで学ぶ強化学習」を参考に実装。説明はコメントアウトします。