差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
markov_decision_process [2018/12/17 08:17] – [マルコフ性の活用と状態遷移行列の活用] watalumarkov_decision_process [2019/01/07 07:52] (現在) – [まとめ] watalu
行 1: 行 1:
-==== マルコフ決定過程とは ==== +==== マルコフ決定過程 ==== 
-=== 4つの部品 ===+=== 4つの変数 ===
  
 マルコフ決定過程は、対象の状態S、状態の遷移P、行動A、状態の評価関数R、の4つのコンポーネントからなる確率事象に関する意思決定のモデルである。 マルコフ決定過程は、対象の状態S、状態の遷移P、行動A、状態の評価関数R、の4つのコンポーネントからなる確率事象に関する意思決定のモデルである。
行 7: 行 7:
   - A 行動   - A 行動
   - P 遷移   - P 遷移
-  - R 評価+  - R 評価 (報酬・利得であればRと書いて最大化を考え、費用や損失であればCと書いて最小化を考える)
  
 状態Sの遷移Pには、次の2種類がある。 状態Sの遷移Pには、次の2種類がある。
行 207: 行 207:
 このように方策を比較して、良い方策を得るように探索をしていくのが、マルコフ決定過程の基本的な考え方である。1980年代から2000年代までは、ボードゲームのコンピュータのプレイヤーを作るのに、マルコフ決定過程の考え方がよく用いられていた。どのようなボードゲームにも、神の手と呼ばれる、誰でもその手順に従えば勝てる、という方策は存在せず、相手の手に合わせて状況を評価し、最善の手を打っていくことになる。ゲームでは、状況の数が膨大になり、取り得る行動もたくさんあるため、すべての行動の順列を比較検討すると、組み合わせ爆発が生じる。その爆発した組み合わせを、アドホックに刈り込んで、必要な組み合わせだけを比較するようにして、計算量を軽減する工夫が行われていた。 このように方策を比較して、良い方策を得るように探索をしていくのが、マルコフ決定過程の基本的な考え方である。1980年代から2000年代までは、ボードゲームのコンピュータのプレイヤーを作るのに、マルコフ決定過程の考え方がよく用いられていた。どのようなボードゲームにも、神の手と呼ばれる、誰でもその手順に従えば勝てる、という方策は存在せず、相手の手に合わせて状況を評価し、最善の手を打っていくことになる。ゲームでは、状況の数が膨大になり、取り得る行動もたくさんあるため、すべての行動の順列を比較検討すると、組み合わせ爆発が生じる。その爆発した組み合わせを、アドホックに刈り込んで、必要な組み合わせだけを比較するようにして、計算量を軽減する工夫が行われていた。
  
-==== 保全とマルコフ決定過程 ==== 
  
-保全の問題、対象システム何も保全行動という介入しなければ、システムは劣化していく。 +=== 強化学習 === 
-ただしその状態の遷移は、現在状態とマルフ行列に記された条件付き分布に従う。 + 
-ムはレイヤーが複数いるのが通例だが保全問題では対象であるシステムが打ってくる手はとても単純で、保全行動を実行しなければ劣化よる状態遷移が発生する。保全行動を実行すれば、その結果として状態が回復するという状態遷移が発生する。+でてきたQという関数を様々な状態の対象に様々な行動を適用して、その結果から試行錯誤を繰り返すこで学習、その下で最適行動を選択していく。必要に応じて、アクションごとの状態推移も学習する。 
 + 
 +https://gym.openai.com/envs/MountainCarContinuous-v0/ 
 + 
 +強化学習は、原稿のスコープを大きく超えるの機会る。
  
 +==== マルコフ決定過程における方策の学習 ====
 === マルコフ性の活用と状態遷移行列の活用 === === マルコフ性の活用と状態遷移行列の活用 ===
  
行 288: 行 292:
 現在の最適な行動と、その行動の帰結として将来に渡って発生する費用の総額は、勿論、将来の費用に依存する。t=∞の時点の費用が分かっていれば、例えば V∞(s)≡0ならば、そこから1時点ずつ遡ってVtを計算していくことが考えられる。この計算が、tを小さくするにつれて、つまり過去に遡るにつれて、ある一定の関数に収束するなら、その関数は次の方程式を満たす。 現在の最適な行動と、その行動の帰結として将来に渡って発生する費用の総額は、勿論、将来の費用に依存する。t=∞の時点の費用が分かっていれば、例えば V∞(s)≡0ならば、そこから1時点ずつ遡ってVtを計算していくことが考えられる。この計算が、tを小さくするにつれて、つまり過去に遡るにつれて、ある一定の関数に収束するなら、その関数は次の方程式を満たす。
  
-{{:bellman-equation-inifinite-horizon-reward.png?450|}}+{{::bellman-equation-cost-discounted.png?400|}}
  
-これがベルマン方程式である。+これがベルマン方程式である。ベルマン更新の式との違いは関数Vの添え字の有無しかない。でもこの違いは、Vが遷移している状態か、定常状態かの違いでもある。 
 + 
 +将来の費用関数をどのように算出するか、そして将来の状態をどのように予測するか、がマルコフ決定過程がうまく働くための鍵となる。 
 + 
 +== 報酬の場合 ==
  
 費用ではなく、報酬が得られる場合は、ベルマン更新が 費用ではなく、報酬が得られる場合は、ベルマン更新が
行 298: 行 306:
 定常状態におけるQ関数とベルマン方程式はそれぞれ次のようになる。 定常状態におけるQ関数とベルマン方程式はそれぞれ次のようになる。
  
-{{:bellman-equation-q-function.png?400|}}+{{::bellman-equation-q-function-reward-discounted.png?400|}}
  
 {{::bellman-equation-reward.png?400|}} {{::bellman-equation-reward.png?400|}}
- 
-そこで、将来の費用関数をどのように算出するか、そして将来の状態をどのように予測するか、がマルコフ決定過程がうまく働くための鍵となる。 
  
 == マルコフ連鎖に基づく予測 == == マルコフ連鎖に基づく予測 ==
行 361: 行 367:
 最終時点のVをひとつ与える。次にベルマン更新 最終時点のVをひとつ与える。次にベルマン更新
  
-{{:bellman-update-markov-chain.png?400|}}+{{:bellman-update-formula.png?400|}}
  
 によって、時点を1つ戻す。毎時点、費用を最小にするように状態sごとに行動aを選ぶ。 によって、時点を1つ戻す。毎時点、費用を最小にするように状態sごとに行動aを選ぶ。
行 372: 行 378:
 この関数を用いて、現時点で将来の推移を考慮しながら、最適な行動を選択する。 この関数を用いて、現時点で将来の推移を考慮しながら、最適な行動を選択する。
  
 +== 要検討課題 ==
  
 +価値反復と方策反復では、得られる方策の解が同じでも、総期待割引き報酬もしくは費用Vの値が異なる。なぜか?
 +==== Rでマルコフ決定過程の計算を行う ====
  
-=== 強化学習 ===+[[::r:markovchain]]はマルコフ連鎖(離散時間離散状態マルコフ過程)の遷移行列の推定や、マルコフ過程の性質の解析決定を行う。
  
-上ででてきたQという関数を、様々な状態対象に様々な行動を用して、そ結果から試行錯誤を繰り返すことで学習し、その下で最適な動を選択していく。必要に応じて、アクションごとの状態推移も学習する+[[::r:mdptoolbox]]はマルコフ決定過程方策の学習
  
-https://gym.openai.com/envs/MountainCarContinuous-v0/+この2つを組み合わせると、データから遷移行列を推定して、その遷移行列と評価関数に基づいてマルコフ決定過程に基づく最適方策の学習を行う、という一連の最適化プロセスを実装できる。 
 + 
 +==== 保全とマルコフ決定過程 ==== 
 + 
 +保全の問題では、対象システムに何も保全行動という介入しなければ、システムは劣化していく。 
 +ただしその状態の遷移は、現在の状態とマルコフ行列に記された条件付き分布に従う。 
 +ゲームはプレイヤーが複数いるのが通例だが、保全の問題では対象であるシステムが打ってくる手はとても単純で、保全行動を実行しなければ劣化による状態遷移が発生する。保全行動を実行すれば、その結果として状態が回復するという状態遷移が発生する。
  
-強化学習の話は、この原稿のスコープを大きく超えるので、別の機会に譲る。