动态规划算法实验报告_强化学习之动态规划算法
如今的強(qiáng)化學(xué)習(xí)研究大體分為了兩個(gè)研究學(xué)派:一個(gè)是以Sutton,Sliver等人為代表的value-based學(xué)派,他們主要從值函數(shù)近似角度入手去研究強(qiáng)化學(xué)習(xí),這也是強(qiáng)化學(xué)習(xí)早期最初發(fā)展起來(lái)時(shí)沿用的路線;第二個(gè)是以伯克利Sergey Levine為代表的policy-based學(xué)派,主要從策略近似角度出發(fā)研究強(qiáng)化學(xué)習(xí)。
今天我介紹的動(dòng)態(tài)規(guī)劃算法思想在value-based乃至整個(gè)強(qiáng)化學(xué)習(xí)領(lǐng)域都起到了至關(guān)重要的作用,有非常多的算法都從其中衍生而來(lái)。話不多說(shuō),請(qǐng)坐穩(wěn)扶好,老司機(jī)要發(fā)車了,嘟嘟~
動(dòng)態(tài)規(guī)劃是一種優(yōu)化算法,起源于最優(yōu)控制領(lǐng)域,可以用來(lái)解決多階段序列決策問(wèn)題,或者離散時(shí)間動(dòng)態(tài)自適應(yīng)控制問(wèn)題。一個(gè)問(wèn)題可以用動(dòng)態(tài)規(guī)劃求解,需要滿足一下幾條基本性質(zhì):
- 子問(wèn)題最優(yōu)性/最優(yōu)子結(jié)構(gòu)
原問(wèn)題可以被分解為子問(wèn)題,原問(wèn)題的最優(yōu)性可以通過(guò)子問(wèn)題的最優(yōu)性推導(dǎo)出
- 子問(wèn)題重疊性/重疊子問(wèn)題
一個(gè)問(wèn)題滿足子問(wèn)題重疊性,意味著當(dāng)我們?nèi)デ蠼庖粋€(gè)較大問(wèn)題的最優(yōu)解時(shí),會(huì)多次調(diào)用子問(wèn)題的最優(yōu)解,即子問(wèn)題的解會(huì)被多次遞歸調(diào)用。實(shí)際編程中我們會(huì)把子問(wèn)題的解存儲(chǔ)起來(lái),后續(xù)會(huì)多次訪問(wèn)。例如OI中的記憶化搜索等等。
—————————————————————————————————————
馬爾可夫決策過(guò)程滿足上述兩條基本性質(zhì):
- 貝爾曼期望方程給出了遞歸分解式,將原問(wèn)題的求解分解為子問(wèn)題的求解
- 價(jià)值函數(shù)可以被存儲(chǔ)和多次調(diào)用
MDPs產(chǎn)生的序列是有先后順序的,對(duì)于這種序列決策問(wèn)題,前驅(qū)狀態(tài)可以看做子問(wèn)題,后繼狀態(tài)可以看做原問(wèn)題,通過(guò)backup即可利用
可達(dá)狀態(tài)的價(jià)值函數(shù)推導(dǎo)出 的價(jià)值函數(shù)。動(dòng)態(tài)規(guī)劃方法用于解決model-based reinforcement learning問(wèn)題,假設(shè)可知環(huán)境的所有動(dòng)態(tài)信息,例如狀態(tài)之間的轉(zhuǎn)移規(guī)律等等。這個(gè)要求實(shí)際是非??量痰?#xff0c;因此后續(xù)會(huì)有很多的變體,不要求已知一個(gè)環(huán)境的模型。
接下來(lái)先介紹一下prediction和control的區(qū)別:
prediction:
prediction過(guò)程主要在做policy evaluation,即輸入
和policy ,輸出是follow policy 得到的狀態(tài)價(jià)值函數(shù)control
control主要在solve一個(gè)optimal policy and optimal value function。輸入是MDP
,輸出:- optimal policy
- optimal value function
接下來(lái)我們介紹利用動(dòng)態(tài)規(guī)劃解決Policy Evaluation的方法:
目標(biāo):評(píng)估一個(gè)Policy的好壞;
解決方法:不斷迭代貝爾曼期望方程;
——————————————————————————————稍后繼續(xù)更新
策略改進(jìn):
策略評(píng)估:
''' 動(dòng)態(tài)規(guī)劃之策略迭代實(shí)現(xiàn) 算法:Policy Iteration 策略評(píng)估 + 策略改進(jìn):Bellman Expectation Equation + Greedy Policy Improvement ''' import gym import matplotlib.pyplot as plt import numpy as np %matplotlib inlineenv = gym.make('CliffWalking-v0') # 導(dǎo)入gym環(huán)境-懸崖尋路def play_once(env,q_table):total_reward = 0state = env.reset()action = np.argmax(q_table[state,:]) # greedy policy improvement 公式(1)while True:next_state, reward, done, _ = env.step(action)next_action = np.argmax(q_table[next_state,:])# 貝爾曼期望方程策略改進(jìn),公式(2)q_table[state,action] = reward + 0.9*q_table[next_state,next_action] total_reward += rewardif done:breakstate = next_stateaction = next_actionreturn total_rewardq_table = np.zeros((env.nS,env.nA)) ans = [] for i in range(30):total_reward = play_once(env,q_table)print("總獎(jiǎng)勵(lì) = {}".format(total_reward))ans.append(total_reward) plt.figure() plt.plot(ans,'b-') plt.show()——————————————稍后繼續(xù)更——————————————————
總結(jié)
以上是生活随笔為你收集整理的动态规划算法实验报告_强化学习之动态规划算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mqtt如何判断设备离线_反渗透纯水设备
- 下一篇: ajax 请求svg,jQuery ap