2015-09-03 156 views
1

我對任何機器學習方法都很陌生,我想我會嘗試嘗試Q-Learning。所以,我一直在閱讀這篇文章:Q學習教程混淆

http://mnemstudio.org/path-finding-q-learning-tutorial.htm

什麼是困惑我的是,這個公式:

Q(1, 5) = R(1, 5) + 0.8 * Max[Q(5, 1), Q(5, 4), Q(5, 5)] = 100 + 0.8 * 0 = 100 

R(1, 5)保持在教程中再次改變從1000然後回到100,WHAT ! R矩陣是靜態的。

enter image description here

+0

乍一看,我會說這只是文章中的一個錯誤。儘管獎勵可能有一個隨機組件,但這裏的環境是確定性的。 – maxy

+1

我的第一條評論之前我讀得不夠多。深入研究這篇文章,我對自己正在發生的事情變得非常困惑。問題在於 - 錯誤在哪裏,因爲整個前提似乎從確定方式轉向前進,轉變爲對你剛剛做出的舉動的回顧性評估(爲什麼我們要從隨機狀態3移動到1,然後評估從1開始移動,沒有評估從狀態3開始的移動?狀態3在那裏的目的是什麼?) – roganjosh

+0

我越看越容易混淆。我建議找一個不同的指導:)'由於R(5,1)'即時,不,因爲R(5,1)爲0,所以對Q(1,5)的計算結果是100,因爲R ?另外,他們將100放在附加圖像Q矩陣中的錯誤位置,我懷疑方程之間存在複製/粘貼錯誤,但我無法解開預期過程應該是什麼樣子。 – roganjosh

回答

2

我覺得一個錯誤是在第二個公式使用R(1, 5)。如果你讀了課文,你會發現,你在狀態3目前正在和你隨機挑選狀態1去:

對於下一集,我們先從一個隨機選擇的初始狀態。 這一次,我們有狀態3作爲我們的初始狀態

看看矩陣R的第四行;它有3種可能的動作:進入狀態1,2或4.通過隨機選擇,我們選擇作爲我們的動作進入狀態1。

R(3, 1)0,並在文章後面的更新Q矩陣也有Q(3, 1)填入值。

然後,公式應該是:

Q(3, 1) = R(3, 1) + 0.8 * Max[Q(1, 3), Q(1, 5)] = 0 + 0.8 * 100 = 80 

(1, 2)-1,所以我想利用是一個錯誤。該文本甚至說:

現在我們想象我們處於狀態1.看第二行獎勵矩陣R(即狀態1)。它有2個可能的動作:進入狀態3或狀態5

所以R(1, 5)不會改變:它總是100。它有時與R(3, 1)混淆。

更新

這裏是我認爲應該對清晰度和正確性,我認爲它應該說,爲了什麼要改變的教程中的另一部分。我粗體顯示了我所做的更改。

矩陣Q,Q(5,1),Q(5,4),Q(5,5)的更新條目全部爲零。由於R(5,1)的即時回報,Q(1,5)的計算結果爲100。這個結果不會改變Q矩陣。

更改爲:

矩陣Q的更新的條目,Q(5,1),Q(5,4),Q(5,5)(如,來自先前操作更新)都是零。由於來自R(1,5)的即時獎勵,對於Q(1,5)的這種計算的結果是100。這個結果不會改變Q矩陣。

+0

這是有道理的,但帳戶中的錯誤似乎相當普遍。 '矩陣Q,Q(5,1),Q(5,4),Q(5,5)的更新條目全部爲零。由於R(5,1)的即時回報,Q(1,5)的計算結果爲100。這個結果不會改變Q矩陣。'1)爲什麼我們在這裏引用R(5,1)?這也應該是R(1,5)? 2)如果這不會導致Q矩陣的更新,我們如何在最終形式中得到100以上? – roganjosh

+0

@roganjosh 1)是的,我認爲這也應該是'R(1,5)',我也將這個添加到我的答案中。 2)'Q'更新公式是一個涉及'R'和'Q'的其他值的總和,所以如果讓它運行足夠長的話,它可以很容易地超過100。本教程僅介紹一個步驟,方便選取狀態。其他狀態最終會被選中,這將更新'Q'矩陣。 – IVlad

+0

好吧,我可以理解這一點。但我們首先計算Q(1,5)並達到100.然後,我們通過1計算從3到5的路線,但Q(1,5)不會更新以反映此路線。因此我會假設2→3→1→5也不影響Q(1,5)。我沒有看到Q(1,5)得到更新的點,還是我看錯了? – roganjosh