日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Policy Gradient

發布時間:2023/12/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Policy Gradient 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

李宏毅 課堂筆記

PPO(proximal policy optimal)
字面意思是近似策略優化,是policy gradient的一個變形。
先介紹Policy Gradient
一個軌跡可以看做一幕。 或者是游戲的一個回合,在這種情況下是存在終止狀態的,但很多情況下都是沒有終止狀態的, 這時,就不易區分每一幕是個怎么回事。
Trajectory = {s1,a1,s2,a2,...sT,aTs_1, a_1, s_2 ,a_2,...s_T, a_Ts1?,a1?,s2?,a2?,...sT?,aT?}
我們可以根據PolicyπPolicy \ πPolicy?π中的參數θ\thetaθ 來確定軌跡的發生的概率:

而Policy可以理解為一個包含參數θ 的neutral network,它將Observation中觀察到的變量作為輸入,將各個可能執行的action的概率向量作為輸出,并基于該概率決定下一步要執行的action

這里可以理解為Agent通過觀察環境將環境中的一些變量輸入 神經網絡, 在這里, θ\thetaθ扮演的是 neutralnetworkneutral \ networkneutral?network中參數的角色, 可以認為它代替了整個的策略π\piπ (需要注意的是 , 這里NN 同時當做了Actor)

獎勵R 是伴隨著動作而出現的, 可以將獎勵看做一個函數, 它的輸入參數就包括了動作 A


動作a的選取必定帶有參數θ\thetaθ,這是由于上文中所說的NN決定的, 而更新狀態的概率只和前一個時刻的狀態和動作有關,這里也體現了馬爾科夫性。
既然無法控制外部的環境, 那么只能通過NN as a actor來控制選取的動作, 而一個trajectory里面, 我們知道獎勵為:
R(τ)=∑t=1TrtR(\tau)=\sum_{t=1}^Tr_tR(τ)=t=1T?rt?
那么, 接下來的目標就明確了, 就是最大化這個一幕里面的獎勵, 但是由于它是一個隨機變量(我們的動作的選取和狀態都是隨機的) 。所以,只能通過調整θ\thetaθ來最大化獎勵。
于是, 我們有:

容易理解, 就是在參數θ\thetaθ下, 某個軌跡出現的概率乘以它的累計獎勵的和,也就是獎勵的期望。
Next: 最大化上面的期望, 用梯度上升法,
即求取上式期望的梯度, 有,

顯然, 通過數學公式的轉化, 可化為:

pθ(τ)p_{\theta}(\tau)pθ?(τ)提出寫在下面有:

最后, 抽去N個樣本, 即N個trajectory, 可以將上轉化為:

這里的τn\tau^nτn可以寫成上面的式子, 是因為動作是最為關鍵的,和環境的狀態沒什么關系。還有一點,上面期望回報的公式中各個量之間是 負反饋的, 即如果在s動作選擇動作a的概率大些, 導致了此時的總回報大了, 那么就要更新參數θ讓概率更大, 反之,期望變小了, 說明我們選取的動作不好, 就要降低這個概率。

下面進一步的擴展, 梯度上升就體現在了加號上面, 這樣更新θ\thetaθ當然還不夠, 還有讓Agent觀察環境、和環境互動來收集數據,如下圖所示, 讓它玩N個回合的游戲 ,收集獎勵值和概率值 ,具體怎么計算在代碼中見。

到了這里是整個Policy Gradient的過程, 大概,捋一捋就是通過策略梯度整個大方法, 通過更新參數θ\thetaθ來達到總的期望的獎勵最大。

下面是更加具體的實現過程, 也就是用一些工具求取梯度, 輸入的是什么, 輸出的是什么, 加上一個權重R之后又是什么, 注意這里的R是整幕的匯報, 而不是單單某一step的獎勵。


TIP 1 : Add a BaseLine
很多R都是正的, 對更新策略有影響,無法有效更新期望回報, 因為期望是正的, 所以無論怎么做都會提高梯度下的log概率,這樣其實也沒錯, 但是不好,解決方法: 不讓你的R總是正的,有:

b就是一個線。 如果R - b是正的,而且還比較大, 那么就讓后面的概率變大, 如果一個游戲里面實在沒有負數, 那么如果減后值很小, 那么也可以說 這樣不好, 我們要減小概率值。
取b = E[R(τ)]E[R(\tau)]E[R(τ)]也就是τn\tau_nτn?的平均值, 這樣也挺好。

TIP 2 暫時不看了 。后面看Q-learning 再好好理解一下。


MDP 過程(溫故而知新):

包含了一些自己的理解, 如果理解有問題或者有想法可以提出來一起討論

在馬爾可夫決策過程中,動作是由智能體決定,所以多了一個成分,智能體會采取動作來決定未來的狀態轉移。
(類比與小舟有了人的操控和小舟隨波漂泊不一樣了)

在當前的狀態選擇一個動作是隨機的, 進一步, 選擇了動作之后的狀態也是一個概率分布, 也是不確定的, 但是在動作哪一步中選擇了就是一個決策的過程, 至于怎么選擇 是根據策略π來決定的 ,也可以是上面說的Policy gradient 中的將actor當做一個NN來輸出一個動作,這樣也是可以的, 從這里看, NN的參數θ和策略π還是有一定的關系的。
Bellman 方程 可以理解為 :即時獎勵和后續的折扣獎勵:

馬爾科夫性:一個狀態的下一個狀態只取決于它當前狀態,而跟它當前狀態之前的狀態都沒有關系。

個人認為強化學習很多的概念要不斷進行理解才可以掌握, Q-learning可以是RL中最簡單的一個算法了, 但是認真捋一遍Q學習的流程和代碼發現還是有些地方理解的不到位, 比如策略π到底是個什么東西, 我們當然都知道它是狀態到動作的一個映射函數,它最后輸出的是一個動作,在Q學習中, 我們采取貪婪策略來進行動作的選擇,而這個動作的選擇之后就是在Q表中找使Q值最大的動作a然后返回給一個執行學習過程的函數,按照Q學習的偽代碼一步一步的執行。

我們還知道, 強化學習訓練的目的就是得到一策略函數,在結束訓練之后,用這個策略函數來控制智能體;
這個策略函數就叫做目標策略,一個確定的策略是基于值的,在Q學習中選擇的動作就是最優的動作,這一點DQN同樣適用。

那么有一個問題, 上面說了兩個策略, 一個是貪婪策略, 一個是目標策略,這兩個策略有什么關系呢,作為初學者,看到這種類似的名詞中很容易就搞不明白了。

在強化學習中經常會遇到兩個專業術語:同策略 (On-policy) 和異策略 (Off-policy)。
為了解釋同策略和異策略,我們要從行為策略 (Behavior Policy) 和目標策略 (Target Policy) 講起。
在強化學習中,我們讓智能體與環境交互,記錄下觀測到的狀態、動作、獎勵,用這些經驗來學習一個策略函數。在這一過程中,控制智能體與環境交互的策略被稱作行為策略。行為策略的作用是收集經驗 (Experience),即觀測的環境、動作、獎勵。

行為策略和目標策略可以相同,也可以不同。同策略是指用相同的行為策略和目標策略;異策略是指用不同的行為策略和目標策略;

最常見的行為策略就是貪婪策略,在Q學習中貪婪策略是收集經驗中的動作,行為策略和目標策略可以相同,也可以不同。同策略是指用相同的行為策略和目標
貪婪策略:

這是一本書里面介紹的東西, 但是我和學強化學習的師兄討論了一下, 感覺講的不太好。可以不看這些亂七八糟的策略, 認為貪婪策略是可以說是一個貪婪算法, 它只是以概率值給出了要進行哪一步, 真正的選擇動作a才是真正的策略 .

總結

以上是生活随笔為你收集整理的Policy Gradient的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。