前言:自己學習西湖大學趙老師的課、youtube系列的課程相關比較重要的內容,后續不斷再進行完善。
YouTube Serrano.academy rlhf講的很好 合集最后一個沒看
強化學習第四章
police沒一步需要無窮,值迭代只需要一步 收斂不一樣
值迭代:原因在于值迭代在于貝爾曼最優方程的值,核心的目的在于優化得到矩陣方塊中每個格子的值。只需要每步驟選擇action的q值最大的策略,然后不斷迭代,然后就能優化得到最后收斂的格子值。
策略迭代: 策略迭代之所以需要n步,就是因為策略迭代需要進行策略矩陣求解,如果不進行矩陣求解的話就要進行值迭代
第五章
蒙卡諾納 mc basis 還是之前的policy evaluate policy improve 只不過q值不是模型計算出來的,而是取樣取出來的
mc exploring starts 一條軌跡走的很遠,從而一條軌跡能有很多的復用
mc greedy 采取策略的時候不用argmax 最優化的選擇,而是放寬一點策略,允許一些隨機游動,增加探索性
第六章
RM算法 :在不知道具體函數表達式的情況之下,在第k次的根的估值值wk計算之后,再進行一次有噪音的觀測乘以系數加和,就得到了wk+1次根估計觀測
Rm算法的收斂條件 1.梯度有限 2.系數值不要收斂到0太快,但是也也要收斂到0,比如1/k 3.高斯噪聲滿足期望為0,方差有限
隨機梯度下降收斂性分析:隨機梯度下降在初始值距離最優值很遠的時候,表現像梯度下降。當距離最優值很近的時候,就會上下跳躍浮動,隨機性很大
批量梯度下降,所有樣本都用上了,隨著n變大,所有樣本平均值接近于真實梯度值。小批量梯度下降 用了幾個,隨機梯度下降只用了一個
第七章
第二小節
TD learning最簡單的形式 PPT紅色部分的表達式
vt+1(st) 每個下標不同的含義,vt+1的t+1代表是t+1時刻的估計值(也不能理解為時刻 可以理解為迭代次數),st中的t代表環境中的agent在t時候到達了某個狀態st
TD error 就是當前第t次的估計值,與還是t次不過狀態st要到下一個st+1狀態后續TD target的差距,TD算法就是類似RM,不斷優化迭代
TD算法本質是一個使用rm求解一個貝爾曼期望方程
TD與MC的區別,td算法是在線的 不需要一個episode結束,是持續改進的,需要給一個初始值的Initial guess,是低反差 因為隨機變量少rt+1 st+1 at+1 但是有偏估計(對比mc算法,從頭開始估計episode)
第三節
Sarsa算法 和TD算法類似,只不過從狀態值變成了action值的估計
sarsa算法過程,policy evaluate 就是action值得估計,然后得到一步迭代之后,就里面policy improve ,使用部分greedy算法
第四節
expected sarsa是將q值變化的地方action值變為從具體單個樣本迭代值,變為變量,從而可以再求期
第五節
n-step sarsa ,n=1變成,sarsa算法,n=無窮變成MC算法(需要無窮樣本)
第六節
q learning 解決的是一個貝爾曼最優方程
off-policy 就是說behavior policy 和target policy不一樣,我們可以從別人不一樣的經驗里面學東西,sarsa和mc算法是on policy,q learning是off policy的
q learning 有2個版本 on policy 策略更新policy improve采用greedy算法,便于探索性,off policy采用episode從πa生存,然后policy improve不采用greedy算法,直接取最優的情況
第七節
不同的td算法,本質就是td target的不同,從sarsa到n step 到expected sarsa 到q learning到mc 方法
第八章
第二節
2.1最后 dπ代表一個軌跡走了很遠之后,出現在每一個狀態的概率值。dπ=dπ*pπ,代表在軌跡走了很遠很遠趨于無窮之后,乘以pπ,狀態轉移矩陣,還是相同的概率值
2.2優化算法 采用類似RM迭代式算法來優化參數w相關的東西。方式采用隨機梯度下降的算法,一個個采樣st進行迭代式下降
2.3 說表格的表示方法是線性估計法的特例,其中推導過程中部分表達式看著看著就看不懂了,比如tabular是function approximation的一個特殊形式,最后推導過程中w(s),代表參數向量w中第s個參數,wt(st+1)代表wt第t次迭代向量參數,t+1時刻agent所在的s的狀態
2.5 告訴我們實際上真正TD線性算法狀態是估計是最小化投影后的貝爾曼方差
這章后面dqn算法,本質就拿神經網絡擬合相應的參數,類似線性擬合法,具體細節需要看PPT
第九章
第九章和第八章類似,第八章是action和state可以從表格變成函數,第九章是策略也可以用函數表達
9.1 policy gradient的基本思想
使用j(θ)來定義最優策略,然后使用梯度上升最優化策略
9.2 講的是怎么定義j(θ)
第一種方式 -所有狀態的期望值
① d的分布和策略π無關,那么就記作d0,最終的值記作v-0
② d的分布與策略π有關,可以利用dπ=dπ*pπ,知道pπ可以知道平穩狀態下的dπ情況
第二種方式- 一步reward的平均值
具體最終的值的遞進關系如下:
rπ- (所有狀態s的期望值) <- rπ(s) (在特定狀態s的所有action的最終期望) <-r(s,a)(所有可能reward的期望) 【具體看PPT】
附錄:在論文中經常看到lim1/n Rt+k 的加和,實際就是rπ-
上面兩種方式,在discounted情況下實際是等價的,rπ-=+(1-y)vπ-
總結: rπ- =dπ(s)rπ(s)的加和= lim1/n Rt的加和
vπ- =dπ(s)vπ(s)的加和 =y^tRt+1 從0到無窮的期望加和
論文中經常讀到的是后者
9.3 主要講的是最優策略的梯度的表達式
這里定義了一個表達式,但是具體推導沒給出來。通過這個公式我們可以不斷進行梯度上升,
9.4 講解到底怎么梯度上升
這節課表達式中的qt(st,at),可以使用MC估計的方法來估計,叫做REANFORCE方法
具體見PPT,其中迭代算法系數值,有一個平衡的機制,一部分是加強選擇更大的q值,一部分是加強更強的探索性,剛好平衡了這兩點
算法步驟
一開始π(θk),產生一些episode,然后qt使用MC算法進行近似迭代。然后進行policy更新,最后拿更新后的policy再進行迭代。注意的是這個是離線的算法,需要等都采樣完之后才能更新。
10 actor-critics方法 主要思想就是第八章 value approximation方法引入到第九章 policy gradient方法里面
10.1最簡單的AC算法 QAC算法
其中算法和第九章最后的算法步驟一模一樣,θ的迭代算法就是指的actor,qt(s,a)其中qt就是指的是critic
其中qt值被用mc進行估計,就是第九章算法,叫做REANFORCE
而QAC是如下形式
其中critica實際就是算法步驟中sarsa+value function估計的方法(但是這里我還是沒懂和之前的算法有什么本質的區別???) ,actor指的是policy update方法,這個算法是on policy的能改進原來的算法情況
為什么叫qac,q實際指的是q值
10.2 A2C主要目的是在求策略函數的時候,怎么加進去一個東西使其的方差最小。加進入這個b(s)就是vπ(s),經過一系列的簡化步驟之后,我們發現使用迭代算法優化θt,我們會采用相對值而不是絕對值q值來優化θ,因為q值1w看著很大,但是周圍2w,相對來講也不是最優值了
算法過程:前提 將qt(st,at)-vt(st)簡化成rt+1+yvt(st+1)-vt(st)這樣后面萬一用神經網絡擬合時候少用一個網絡
算法具體步驟
先算 td error
然后 critic (value update)采用的是
td算法,拿之前算的td error來帶入
然后 再進行actor (policy update)
進行θ迭代,同樣拿之前的td error帶入進行迭代
(???但是我還是沒有理解里面的本質含義)
10.3 off policy actor-critic
重要性采樣:一個分布用來behavior一個用來改進策略,兩個分布不同,所以直接采樣肯定用a的分布來估計b肯定不準,所以要講a的概率分布進行表達式進行轉換,轉成b的這樣就不會有問題了
重要性 權重就是p0(xi)/p1(xi) ,但是這個里面需要知道我們想要求的a分布(對應p0),和b分布(對應p1),但是重要性采樣的權重的表達式都知道p0(xi)/p1(xi)*xi,相當于直接求期望,為什么不這樣呢,因為有的分布不好直接求期望,比如用神經網絡擬合的分布
整體的算法步驟相比,critic和actor中多了一個轉換的系數因子
10.4 deterministic policy
這樣的策略 a=u(s,θ),不像之前的π一樣都是大于0的 ,輸出的直接是一個action,比如向上 向下什么的
deterministic policy。是off policy的,因為在推導中策略函數j(θ)的梯度,中a被u(s,θ)代替了,所以我們不需要像之前那樣a,s,a,s這樣交替更換下去,來判斷a是是哪個策略來的,可以是任何策略 所以是off policy的
這個算法步驟和之前類似,最后有些不一樣