# Q-Learning 與 Policy Gradient 之比較 ###### tags: `machine learning` `Q-Learning` `Policy Gradient` ![](https://i.imgur.com/wBPlL0f.png) ## Q-Learing Q-Learning是強化學習算法中value-based的算法,Q即為Q(s,a)就是在某一時刻的s 狀態下(s∈S),採取動作a (a∈A)動作能夠獲得收益的期望,環境會根據agent的動作反饋相應的回報reward r,所以算法的主要思想就是將State與Action構建成一張Q-table來存儲Q值,然後根據Q值來選取能夠獲得最大的收益的動作。 | Q-table | A1 | A2 | | ----- | -------- | -------- | | S1 | Q(S1,A1) | Q(S1,A2) | | S2 | Q(S2,A1) | Q(S2,A2) | | S3 | Q(S3,A1) | Q(S3,A2) | **Q-learning的核心是Q-table。根據State 查詢此Q-table 並採取Q-value最大的Action** ![](https://i.imgur.com/fizZ03m.png) ## Policy Gradient 但Q-learning這基於Value的方法一般是確定性的,給定一個狀態就能計算出每種可能動作的獎勵(確定值),但這種確定性的方法恰恰無法處理一些現實的問題,比如玩100 把猜拳遊戲,最好的解法是隨機的使用石頭、剪刀和布並儘量保證這三種手勢出現的概率一樣,因為任何一種手勢的概率高於其他手勢都會被對手注意到並使用相應的手勢贏得遊戲。 又假設我們身處一個巨大的迷宮無法獲得整個迷宮的佈局信息,如果在相同的可感知的狀態下**總是做出固定的判斷**的話,仍然會導致在某個局部原地打轉。 Policy Gradient是強化學習算法中policy-based的算法(策略梯度),正是為了解決上面的兩個問題產生的,而它的秘密武器就是隨機(Stochastic)。首先隨機能提供非確定的結果,但這種非確定的結果並不是完全的隨意而是服從某種機率分佈的隨機,策略梯度不計算獎勵(reward)而是使用機率選擇動作,這樣就避免了因為計算獎勵而維護狀態表。 策略梯度的基本原理是通過反饋調整策略,具體來說就是在得到正向獎勵時,增加相應的動作的機率;得到負向的獎勵時,降低相應動作的機率。 ![](https://i.imgur.com/F74xd5f.png) 左圖中的綠點表示獲得正向獎勵的動作,右圖表示更新後的策略,可以發現產生正向獎勵的區域的概率都增加了(離圓心的距離更近)。 #### 另外有一種actor-critic則是結合這兩種特性... 下次再來整理