前言
?最近想開一個關于強化學習專欄,因為DeepSeek-R1很火,但本人對于LLM連門都沒入。因此,只是記錄一些類似的讀書筆記,內容不深,大多數只是一些概念的東西,數學公式也不會太多,還望讀者多多指教。本次閱讀書籍為:馬克西姆的《深度強化學習實踐》。
?限于篇幅原因,請讀者首先看下歷史文章:
?馬爾科夫過程
?馬爾科夫獎勵過程
?馬爾科夫獎勵過程二
?RL框架Gym簡介
?Gym實現CartPole隨機智能體
?交叉熵方法數學推導
?強化學習入門:交叉熵方法實現CartPole智能體
1、出發點
?原定本篇博客該介紹bellman方程的,但發現自己對于一些基礎概念的計算和理解有點兒模糊,于是本篇先惡補一下目前RL所出現的一些基礎概念,并搭配詳細的計算公式。
2、示例
?這里以書中一個例子來說明一些概念,在上圖中,每個灰色節點表示狀態,每條邊上實線圓表示狀態轉移概率,每個虛線圓則表示狀態轉移所獲得的獎勵。
?下面將舉個視為片段的例子,在RL中也被稱為“狀態鏈”。
?片段:家–> 咖啡 --> 計算機 --> 家。
?在引入了片段后,就能解釋何為“回報”定義了:
?這里先貼下回報公式,對于一個片段來說,在 t t t時刻的回報定義為:
G t = R t + 1 + γ R t + 2 + . . . = ∑ k = 0 ∞ γ k R t + k + 1 G_t = R_{t+1} + \gamma R_{t+2} +... = \sum_{k=0}^{\infty}\gamma^kR_{t+k+1} Gt?=Rt+1?+γRt+2?+...=k=0∑∞?γkRt+k+1?
其中 γ \gamma γ是超參數, R t R_t Rt?表示 t t t時刻獎勵。
?這里有個問題,對于一個智能體來說,可執行的狀態鏈太多了,實際上回報應用的不太多,因此,這里引入了一個狀態的期望回報(對大量狀態鏈求回報的期望),即狀態的價值:
V ( s ) = E [ G ] = E [ ∑ k = 0 ∞ γ k R t + k + 1 ] V(s) = E[G] = E[\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}] V(s)=E[G]=E[k=0∑∞?γkRt+k+1?]
?okay,現在拿到公式了,現在計算狀態“家”的價值:
家–>家 | 家–>咖啡 | |
---|---|---|
概率 | 0.6 | 0.4 |
獎勵 | 1 | 1 |
?則根據價值的定義:總共有兩個狀態鏈:則家的價值為
V ( 家 ) = 0.6 ? 1 + 0.4 ? 1 = 1.0 V(家) = 0.6*1 + 0.4*1 = 1.0 V(家)=0.6?1+0.4?1=1.0
?按照同樣的道理:能得到其余狀態的價值:
V ( c o f f e e ) = 2 × 0.7 + 1 × 0.1 + 3 × 0.2 = 2.1 V ( c o m p u t e r ) = 2 × 0.7 + 1 × 0.1 + 3 × 0.2 = 2.8 V(coffee) = 2×0.7 + 1×0.1 + 3×0.2 = 2.1 \\ V(computer) = 2×0.7 + 1×0.1 + 3×0.2 = 2.8 V(coffee)=2×0.7+1×0.1+3×0.2=2.1V(computer)=2×0.7+1×0.1+3×0.2=2.8
?在上述例子中,你其實就是智能體,你可以自由選擇3個狀態,并執行某一個狀態鏈,進而獲得最大的獎勵:則從眾多的狀態鏈中選擇出一個回報最大的狀態鏈,就是策略的選擇,即 π ( s ) \pi(s) π(s)。
?而智能體優化目標常常是:選擇何種策略,通常會伴隨選擇執行什么樣動作,使得 π ( a ∣ s ) \pi(a|s) π(a∣s)最優。
總結
?本文只是介紹了一部分概念,后續會逐步添加新的概念,從感性上認識下RL的一些基礎概念。