日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划算法实验报告_强化学习之动态规划算法

發(fā)布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划算法实验报告_强化学习之动态规划算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如今的強化學習研究大體分為了兩個研究學派:一個是以Sutton,Sliver等人為代表的value-based學派,他們主要從值函數(shù)近似角度入手去研究強化學習,這也是強化學習早期最初發(fā)展起來時沿用的路線;第二個是以伯克利Sergey Levine為代表的policy-based學派,主要從策略近似角度出發(fā)研究強化學習。

今天我介紹的動態(tài)規(guī)劃算法思想在value-based乃至整個強化學習領(lǐng)域都起到了至關(guān)重要的作用,有非常多的算法都從其中衍生而來。話不多說,請坐穩(wěn)扶好,老司機要發(fā)車了,嘟嘟~

動態(tài)規(guī)劃是一種優(yōu)化算法,起源于最優(yōu)控制領(lǐng)域,可以用來解決多階段序列決策問題,或者離散時間動態(tài)自適應(yīng)控制問題。一個問題可以用動態(tài)規(guī)劃求解,需要滿足一下幾條基本性質(zhì):

  • 子問題最優(yōu)性/最優(yōu)子結(jié)構(gòu)

原問題可以被分解為子問題,原問題的最優(yōu)性可以通過子問題的最優(yōu)性推導(dǎo)出

  • 子問題重疊性/重疊子問題

一個問題滿足子問題重疊性,意味著當我們?nèi)デ蠼庖粋€較大問題的最優(yōu)解時,會多次調(diào)用子問題的最優(yōu)解,即子問題的解會被多次遞歸調(diào)用。實際編程中我們會把子問題的解存儲起來,后續(xù)會多次訪問。例如OI中的記憶化搜索等等。

—————————————————————————————————————

馬爾可夫決策過程滿足上述兩條基本性質(zhì):

  • 貝爾曼期望方程給出了遞歸分解式,將原問題的求解分解為子問題的求解
  • 價值函數(shù)可以被存儲和多次調(diào)用

MDPs產(chǎn)生的序列是有先后順序的,對于這種序列決策問題,前驅(qū)狀態(tài)可以看做子問題,后繼狀態(tài)可以看做原問題,通過backup即可利用

可達狀態(tài)的價值函數(shù)推導(dǎo)出 的價值函數(shù)。

動態(tài)規(guī)劃方法用于解決model-based reinforcement learning問題,假設(shè)可知環(huán)境的所有動態(tài)信息,例如狀態(tài)之間的轉(zhuǎn)移規(guī)律等等。這個要求實際是非常苛刻的,因此后續(xù)會有很多的變體,不要求已知一個環(huán)境的模型。

接下來先介紹一下prediction和control的區(qū)別:

prediction:

prediction過程主要在做policy evaluation,即輸入

和policy ,輸出是follow policy 得到的狀態(tài)價值函數(shù)

control

control主要在solve一個optimal policy and optimal value function。輸入是MDP

,輸出:
  • optimal policy
  • optimal value function

接下來我們介紹利用動態(tài)規(guī)劃解決Policy Evaluation的方法:

目標:評估一個Policy的好壞;

解決方法:不斷迭代貝爾曼期望方程;

——————————————————————————————稍后繼續(xù)更新

策略改進:

策略評估:

''' 動態(tài)規(guī)劃之策略迭代實現(xiàn) 算法:Policy Iteration 策略評估 + 策略改進: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,:])# 貝爾曼期望方程策略改進,公式(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("總獎勵 = {}".format(total_reward))ans.append(total_reward) plt.figure() plt.plot(ans,'b-') plt.show()

——————————————稍后繼續(xù)更——————————————————

總結(jié)

以上是生活随笔為你收集整理的动态规划算法实验报告_强化学习之动态规划算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。