強化學習 訓練過程感知與理解

2021-10-18 23:06:54 字數 3480 閱讀 9826

收斂性的直觀理解

訓練情況的感知

q (s

,a)=

q(s,

a)+ϵ

(u−q

(s,a

))

q(s,a)=q(s,a)+\epsilon(u-q(s,a))

q(s,a)

=q(s

,a)+

ϵ(u−

q(s,

a))其中,u

uu是對q(s

,a

)q(s,a)

q(s,a)

真實值的估計:

u =e

[q(s

,a)]

=e[r

+γ⋅q

(s′,

a′)]

=e[r

]+γ⋅

e[q(

s′,a

′)

]\begin u &= e[q(s,a)] \\ &= e[r + \gamma·q(s',a')] \\ &= e[r] + \gamma·e[q(s',a')] \end

u​=e[q

(s,a

)]=e

[r+γ

⋅q(s

′,a′

)]=e

[r]+

γ⋅e[

q(s′

,a′)

]​實際應用過程中,

sarsa,簡單粗暴,認為「發生的事件」是「大概率事件」,因此可以作為期望的一種粗略估計(關注了主要矛盾…):

u =r

+γ⋅q

(s′,

a′

)u=r+\gamma·q(s',a')

u=r+γ⋅

q(s′

,a′)

q-learning,貪心且樂觀,將價值的上限,視作價值期望粗略估計;

u =r

⋅max⁡q

(s′,

a′

)u=r+\gamma·\max q(s',a')

u=r+γ⋅

maxq(s

′,a′

)double q-learning,貪心,相對客觀,同樣將價值的上限視作價值期望的粗略估計,但通過使用兩個智慧型體,(部分)抵消了樂觀導致的正偏差;

u =r

+γ⋅q

(s′,

arg max⁡a

′q′(

s′,a

′)

)u=r+\gamma·q(s',\argmax_ q'(s',a'))

u=r+γ⋅

q(s′

,a′a

rgma

x​q′

(s′,

a′))

實際上,上面三種u

uu的估計方式,都是一邊按照現有 思維方式 / 評價模型 q′(

s′,a

′)

q'(s',a')

q′(s′,

a′),一邊使用已經發生的獎勵r

rr作為修正項,兩者按照γ:1

\gamma :1

γ:1的比例綜合考慮的結果。

因此,智慧型體的訓練過程,是通過不斷地試錯、自我優化、自我改進實現,即sutton書(中譯版)中的「自舉」。

引數擬合型問題,收斂性不能保證,不可證明。

一點直觀的理解和感受,不一定對,僅供參考:

直觀上看,更新目標是相對準確的

按照更新方程,更新目標由兩部分組成:

狀態轉移過程( s→a

s′

s \xrightarrow s'

sa​s

′ )獲得的短時收益,即獎勵r

rr

狀態轉移後一狀態(基準狀態s』)的價值v(s

′)

v(s')

v(s′

);或者說隨後執行動作a′a'

a′後達到的價值q(s

′,a′

)q(s',a')

q(s′,a

′)

其中,從後向視角考慮(回顧已發生的事件),狀態轉移前狀態(被更新狀態s

ss)的價值和轉移時獲得的獎勵r

rr相關。考慮到r

rr已經發生,因此(相比其他的雖然沒有發生、但同樣有發生的獎勵值)距離e[r

]e[r]

e[r]

更近,可作為一種粗略估計;

從前向視角考慮(向未來看),狀態轉移後狀態(基準狀態s′s'

s′)相比於狀態轉移前狀態(被更新狀態s

ss),距離終點更近,變數更少,不確定性更低。

按照更新方程,loss並不能代表模型訓練效果的好壞。

訓練過程中的loss,描述的僅僅是對更新目標的擬合效果,而更新目標本身不是準確的,只不過強化學習借助「自舉」的訓練和學習模式,通過不斷試錯,實現自我完善,從而具有一定的收斂性,使得模型最終能夠較好地對價值函式q(s

,a

)q(s,a)

q(s,a)

進行估計。

因此,不同於監督學習,強化學習的訓練階段是通過類似一輪輪遊戲的形式,讓智慧型體和環境的互動中實現試錯和自我完善。

而環境中充滿著隨機性,在一輪遊戲中,智慧型體面對的任務可能很簡單(遊戲結束後通常拿到較多的回報),也可能相對較難(較少回報)。

因此,訓練過程中回報,有著強烈的波動,直接觀察回報的波動情況,難以直觀感受到訓練的情況和智慧型體狀況。

針對環境中的隨機性導致回報的劇烈波動,可以以某種大小的滑動視窗,如100輪遊戲,統計視窗內回報的均值和方差,一定程度上可以消除環境的隨機性對觀測的影響,

方差,對應智慧型體的試錯和探索強度;

直觀上的感受

方差增大

初期探索,頻繁跳進跳出區域性最優;

方差縮小

找到重點,縮小探索範圍到某個區域性最優;

但重點可能不對,之後還會跳出來找到更好的區域性最優;

方差不變

仍在隨機探索;

方差縮小

探索進行中,逐漸鎖定重點,但一般為區域性最優附近區域;

方差保持

最某個的重點區域的階段性探索完成,找到了區域性最優;

但探索完成後發現,該重點區域意義不大,即區域性最優的效果不能達到要求,更不是全域性最優;

方差變大

探索強度增加,頻繁地在區域性最優中跳進跳出;

方差增大

可能轉移到了全域性最優附近,具有較高的探索意義,探索得到的區域性最優很有可能是全域性最優;

方差恆定

探索進行中,充分探索尋找區域性最優;

方差縮小

找到較好地重點探索區域,並微調逐漸像區域性最優點靠攏,效果好且專注.

訓練過程視覺化學習記錄

這幾天跑網路出現了點問題,不知道是什麼原因導致網路沒學到東西,學習下訓練過程的視覺化,這樣在訓練過程中可以更加直觀的看出問題所在。用的視覺化庫是visdom。開啟anaconda視窗終端,conda activate 虛擬環境名,啟動虛擬環境。pip install visdom import vi...

強化學習概念理解

一 基本理解 強化學習與其他機器學習不同之處為 沒有教師訊號,也沒有label,只有reward。反饋有延時,不是能立即返回。資料是序列化的,資料與資料之間是有關的,而不是i.i.d的 agent執行的動作會影響之後的資料。四 強化學習的關鍵要素 強化學習的關鍵要素有 environment,rew...

嘗試理解強化學習

強化學習就是評價學習,這個和深度學習有啥區別?我個人理解就是深度學習需要對乙個一組特徵設定標籤,然後反覆訓練模型,是這個模型盡量接近 一坨特徵資料等於標籤。而強化學習是對一坨特徵,模型剛開始不知道標籤是具體是啥,隨便輸出乙個值y就行,然後我們實現乙個獎勵函式,對這個輸出值打乙個分,分數越高,說明這個...