正如術語的複習,在Q學習,你正在努力學習的Q功能,這取決於國家和行動:
Q(S,A) = ????
標準版大多數課程教授的Q-learning會告訴您,對於每個S和A,您需要在表格中學習單獨的值,並告訴您如何執行Bellman更新以便收斂到最優值。
現在,讓我們說,而不是你使用不同的函數approximator。例如,讓我們嘗試線性函數。帶上你的(S,A)對,並考慮一些你可以從中提取的功能。一個特徵的例子是「我是否在牆壁旁邊」,另一個例子是「動作是否將物體放置在牆壁旁邊」等等。這些特徵被賦予f1(S,A),f2(S,A),...。 ..
現在,試着學習Q函數爲這些功能
線性函數
Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A)
你應該如何學習加權W?那麼,因爲這是一項家庭作業,我會讓你自己想一想。
然而,作爲一個提示,可以說,你在每個狀態中有K個可能的狀態和M個可能的動作。假設您定義了K * M個特徵,每個特徵都是您是否處於特定狀態並將採取特定行動的指標。所以
Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ...
現在,請注意,對於任何狀態/動作對,只有一個特徵將是1,其餘的將是0,所以Q(S,A)將等於相應的w和你基本上學習一張桌子。因此,您可以將標準的表格Q學習視爲使用這些線性函數進行學習的特例。所以,想想正常的Q-learning算法的作用,以及你應該做什麼。
希望你能找到一小部分功能,比K * M少得多,這將使你能夠很好地代表你的空間。
希望你不要介意標記爲功課。提到「老師」讓我覺得這很合適。 – spender 2009-10-09 09:05:17