一、學習內容
3.基於神經網絡方法求解RL
3.1函數逼近與神經網絡
當狀態空間非常龐大的時候,用Q表格來對Q-value進行評估,內存方面非常不現實。
因此可以加個w參數,改用值函數擬合的方法:
一個簡單的例子如圖所示,神經網絡輸出動作,定義損失函數,進行優化:
Q-learning的流程:
用神經網絡:
3.2DQN算法解析
DQN的2大創新點在於:經驗回放,和固定Q目標。分別是爲了解決樣本關聯性和訓練非平穩性問題。
經驗回放,舉個形象例子,前臺小兵採樣預測,S、A、R、S放入經驗池,後臺軍師從經驗池中進行學習
固定Q目標,就是隔一段時間拷貝一次到target網絡,而不是每次都更新,增強訓練的穩定性。
DQN算法整體流程如下:
畫成流程圖更方便理解:
寫代碼的時候則可以參考這個架構:
3.3PARL中DQN代碼
DQN中agent的model可以這麼定義:
DQN的算法可以這麼來操作model,定義超參數:
固定Q目標、隔段時間同步,則可以定義sync函數:
predict()
learn()
agent的learn和build_programm()函數:
用於學習的sample()和predict()函數:
3.4DQN訓練展示、總結
CartPole訓練的例子:
訓練流程:
訓練代碼:
測試代碼:
PARL常用的API:
第3課的總結~~~
課後練習,Montain-Car的例子: