---
# System prepended metadata

title: 深度強化學習

---

# 深度強化學習


![](https://i.imgur.com/USEsT57.png)

TD ERROR 越小越好

qt:完全憑空猜測   yt(td target):部分基於真實r(r=reward)

傳統DQN缺點:1.每次用完就丟很浪費2.st跟st+1會太像 不好

改良:experience relay: 先把一筆transition放進一個很大的buffer 
繼將每一個episode中使用的(s,a,r,a')儲存於M中，再從M中抽取mini-batch轉換來最小化損失函式。
use SGD

pritority experience relay:
![](https://i.imgur.com/6ly3lTH.png)
因為error越大代表TD對這個state更不熟


--------------------------------------------------


![](https://i.imgur.com/yxXrNlF.png)


用TD learning會高估 action value
1. 因為公式是用最大化
2. 用bootstrap 所以如果DQN本來就已經高估了 下一輪只會推到更高

![](https://i.imgur.com/x47yvmC.png)



problem:
![](https://i.imgur.com/isgP5f9.png)

sol:

 1.use target network 
![](https://i.imgur.com/LkdZ5Pz.png)
就是拿一個新的network專門拿來算TD target
 


 2. double dqn:
 
![](https://i.imgur.com/zROaSaF.png)


code 講解:+=目的=+10 , -= 掉到坑=-10gg
    w=wall     p=player
    
state 1 2 差別 :有reward state2=st+1

y=label=target

![](https://i.imgur.com/QjHtws9.png)
![](https://i.imgur.com/36MPEfv.png)
![](https://i.imgur.com/g5DAPmF.png)
