AI教學 — Chap6:Temporal Difference Learning (TD)

Chap6:Temporal Difference

Learning(TD)

 

TD 概念:每個值都找太麻煩了,為什麼不用走過的經驗去更新就好呢?走過哪裡就收集經驗,然後做更新,鼎鼎有名的Q learning就是TD的一種,走過的經驗我們稱做sample

 

 

這公式前面講概念時就已經推導過了,現在我們只需要把他移項就可以推出TD所需要的公式,只是這裡我們將代號改成V了:

 

接下來將R代換成sample就可以了:

Sample of V(s):

 

Update to V(s):

Combine:

 

就可以得到

接下來舉一個實際例子讓大家了解,如圖總共有5個狀態分別是ABCDE,然後有4個動作分別是上下左右,紅點代表機器人的起始位置(B)。

 

 

起始狀態:

 

執行動作 B–>C 拿到 reward=-2,代入公式可以得到B從0更新到

 

 

再執行動作 C–>D 拿到 reward=-2,代入公式可以得到C從0更新到3

 

但這又會遇到一個問題,我們知道哪個V比較大了,但是要怎麼代入policy更新呢?

 

 

解決方法,直接更新 Q value就好了,不去更新 V 值,因此

 

V代換為Q

移向後就是維基百科上Q learning的公式了

Q learning 公式如下:

兩者都是Q-learning的公式,只是寫法不同而已

0 0 votes
Article Rating
Subscribe
Notify of
guest

6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
my9981
7 years ago

版大好
想再請問一個問題
文中列出的兩個Q learning公式裏,其中一個有T(s,a,s’)而另一個沒有,這是表示
Q_k+1(s,a)需要考慮執行 a 動作 之後所有可能出現的 s’ 狀態,如Chap4計算v1(cool)般,
而Q(s_t,a_t)只需要考慮執行 a_t 動作 之後的單一個 s_t+1 狀態 嗎?
版主回覆:(05/01/2017 07:58:49 PM)
這裡可能沒有講得很清楚 抱歉~
應該這樣說 下面那個公式是上面的簡化
是上面的公式假設沒有滑倒這種機率事件發生的情況
例如說 走迷宮 我們清楚的知道,選擇往上走的動作 狀態就會往上移
那麼 T(s,up,s’)=1 其他皆為0 因此可以直接寫成下面的式子

my9981
7 years ago

感謝版大的回覆
在這裡學到不少知識,關於Q learning的問題都解決了.
謝謝.
版主回覆:(05/01/2017 11:07:16 PM)
不客氣~~
另外建議你可以把問題公開喔
因為你的問題可能也是別人的問題XD

my9981
7 years ago

版大好
上面的留言已經沒辦法再設定成公開了,如果有需要歡迎版大引用
謝謝
版主回覆:(05/02/2017 09:47:56 AM)
我可以設定XD
公開了~~^.^

阿香
阿香
7 years ago

你好,持續請教,最上面那段 V_k+1=V_k+alpha(R_k-V_k) 公式,你說前面推導過了,是指那一段? 老虎機那段?
版主回覆:(05/05/2017 03:42:17 PM)
對的喔~~^.^

my9981
7 years ago

喔!

Jason
Jason
6 years ago

感謝版主用心的講解 收穫良多 期待能再看到版主更多關於深度學習的優質文章!
版主回覆:(11/25/2017 07:42:55 PM)
恩恩~~謝謝~