在上一講中我們介紹了mdp模型,但上一講中的情況只適應於狀態集和動作集都有限的情況,今天我們將介紹如何解決狀態集無限(連續)而動作集有限的情況。
一種簡單的方法是將連續的狀態離散成有限個狀態,當狀態位於某一區間內時,均將其視為同一狀態,然後進行求解。可以想到,這一方法的計算結果受到離散方式、原有狀態集的特點等條件影響,並且可以看出,隨著狀態集維數的增長,我們離散後的狀態數將按照指數上公升,在狀態集為2、3維的條件下,其被離散為k^2或k^3個狀態,差別並不十分明顯,當維數為4時,狀態數為k^4,通過一些巧妙地方法也許我們也可求解,但當維數上公升至6維甚至12維時,狀態數增長為k^12,者將變得十分難以解決,離散化的這一問題稱為
維數災難the curse of dimensionality。
一種可以適度緩解維數災難的方法稱為
非均一離散non-uniform discretization
,即對於不同的維度,我們將其離散為不同的個數,對於我們更注重的維數,可以將其離散的更細緻些,而不那麼重視的可離散的更粗略些。
另一種解決連續狀態集的方法為將下一狀態的生成過程視為通過乙個模型或模擬器。
假設我們有乙個黑盒子(裡面執行乙個程式),當我們輸入當前的狀態s(t)和動作a(t)時,盒子便輸出下一狀態s(t+1),此時我們不需要考慮轉移概率矩陣(可以認為它在黑盒子裡,也可以認為它已經不存在了)。現在,我們的目標是計算出黑盒中執行的程式。
我們可以假設黑盒中是乙個線性模型,即s(t+1)=as(t)+ba(t)【或認為黑盒是乙個模擬器,此時方程變為s(t+1)=as(t)+ba(t)+ε(t),其中ε服從均值為0、方差為σ的正態分佈,加入ε的目的是模擬模擬器產生的雜訊】
我們可通過大量的實驗獲得由s(t)及a(t)生成s(t+1)的大量資料,通過擬合方程中的a、b,我們希望自己的擬合結果與真實值相差最小,即目標函式為
minσi=1,...,mσt=0,...,t-1 ||s(t+1)(i)-(as(t)+ba(t))||^2
更一般的,我們構建φ(s)是s的函式,當然φ(s)可以為s,也可以為其他的值,則可將擬合方程變為θ^t*φ(s),這一過程包含了核的思想,此時模型已經不再限制於線性模型了。
在上述思想下,我們可通過匹配值迭代演算法對引數θ求解。這一演算法的思想是從服從psa分布的狀態中選擇一些狀態,不斷用其對θ進行迭代更新。
演算法核心可表示為e(s`~psa)[v*(s`)]=v*(f(s, a)),其執行過程如下:
step 1:choose some set of states randomly belong to s
step 2:initialize θ:=0
step 3:repeat
// estimate for r(s(i))+max γe(s`~psa[v(s(i))])
set y(i) = max q(a)
}θ := argmax (1/2)*σi=1, ..., m(θ^t*φ(s(i))-y(i))^2}
很顯然,如果下一狀態的概率為1,則只需進行一次取樣即可,因為在該分布下所有樣本都是一致的。
我們上一講討論的情況可認為是模型情況,因為不存在雜訊,下面我們討論帶雜訊的情況。
此時函式為s(t+1)=f(s(t), a(t))+ε
故e(s`~psa)[v*(s`)]約等於v*(e[s`])=v*(f(s, a))
我們選擇的動作也為 a=argmaxv*(f(s, a)),與模型的狀態相同
// 這裡是分割線~
維數災難與過擬合
一.引言 這裡我們將要討論所謂的 維數災難 同時結合過擬合現象來解釋它在分類器學習中的重要性。舉乙個分類應用的簡單例子,假設我們有一系列的,每張的內容可能是貓也可能是狗 我們需要構造乙個分類器能夠對貓 狗自動的分類。首先,要尋找到一些能夠描述貓和狗的特徵,這樣我們的分類演算法就可以利用這些特徵去識別...
curse of dimension維數災難
維數災難 即高維情況下的過擬合 為了獲得更精準的分類,可以新增更多特徵。也許特徵達到一定維度,我們會得到乙個堪稱完美的分類器?其實不然,因為當特徵達到一定維度後,再去增加維度會導致分類器的效能下降,這便是經常提到的 curse of dimension 在得到乙個效能優良的分類器前,增加特徵便會有更...
kNN的維數災難與PCA降維
假設我們有 x beginx 1 x 2 vdots x m end in mathbb 那麼協方差矩陣 c x dfracxx t dfrac beginx 1x 1 t x 1x 2 t cdots x 1x m t x 2x 1 t x 2x 2 t cdots x 2x m t vdots ...