価値関数 ベルマン方程式



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク

公開日:2020/8/24         

前提知識
期待値
条件付き確率
マルコフ決定過程


■価値関数
価値関数には以下二つの関数があります。

状態価値関数(state-value function)
状態価値関数とは、状態sのとき、ある方策πに従って行動する事で、その後将来に渡って得る事が期待される割引報酬和を表す関数で、以下で表します。



Eは期待値を、カッコの中は条件付き確率を表しており、状態Stがsの時の報酬和Gtとなり具体的に以下となります。



行動価値関数(action-value function)
行動価値関数とは、状態sのとき、方策とは無関係に行動aを取った後、ある方策πに従って行動する事で、その後将来に渡って得る事が期待される割引報酬和を表す関数で、以下で表します。



状態価値関数との違いは、初めに方策とは無関係の行動aをとるか否かです。こうする事で、状態の価値を測るのか、行動の価値を測るのかを区別することができます。

■ベルマン方程式
強化学習の目的は、行動あるいは状態に対する報酬(価値関数)を最大化する方策を見つける事であると言えます。しかしそれを見つけるためには、すべての状態にわたって価値関数を計算する必要があります。 これを効率よく計算するために用いられるのがベルマン方程式(Bellman equation)といい、ある状態sにおける価値関数と、その次の状態s'における価値関数と関連付ける方程式となっています。 なお、この方程式が成り立つ前提として、学習対象がマルコフ決定過程に従う必要があります。



■実例
以下の様な迷路において、ポリシーに従って行動した時の各状態の状態価値、行動価値を求めます。



<状態価値>



ここで、S4とS7の価値を求めた式を見ると、計算が重複しているのが解ります。これをベルマン方程式を使って効率的に計算すると以下式となります。



<行動価値>
行動価値は、初回は任意の方向に行動しその後はポリシーに従って動くため、以下の様に各状態を4分割して各方向に動いた場合の価値を記入します。



全て計算すると以下となります。











サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク