人工智慧- Actor Critic

        Actor-Critic可以分為兩個部份來說明,Actor的前身是Policy Gradients,非常適合在連續動作中選取合適的動作,而Q-learning在做這件事情,會使Q-learning癱瘓的。

       那為什麼不直接使用Policy Gradients?

因為Critic的前身是Q-learning之類的以值為基礎的學習算法,能進行單步更新。在Policy Gradients則是回合更新。這會降低學習效率。將兩者結合,Actor來選擇動作,Critic來告訴Actor它選擇的動作是否合適。
       
在Actor-Critic Network中的loss function,還是使用Policy Gradients中的loss=-log(prob)*vt,只是在Actor-Critic中將vt換成了TD error。訓練的方式很簡單,當收集到一組資訊集的時候,分別把s_t與s_{t+1}送進網路後可以得到相對應的q_t與q_{t+1},將網路輸出的數值與r_t代入下列公式中算出loss即可一步一步慢慢的更新網路參數使得TD error越來越小。


                                 

                                                                                                                      圖1 TD error of Critic Network

        Actor 網路更新演算法和之前所敘述的policy gradient更新方式一樣,只是Advantage function換成了Critic網路所提供的TD error。
                                   

                                                                                                                       圖2 Actor Network



        因此,完整的Actor Critic網路表示如下,第一步先用Critic網路算出TD error,第二步再使用TD error對Actor網路進行參數更新。
                                  

                                                                                                                       圖3 Actor Critic Network

        在下面Actor-Critic架構圖可以很清楚看到,Actor是一個策略網絡(Policy Network),那麼他就需要獎懲信息來進行調節不同狀態下採取各種動作的機率,在傳統的Policy Gradient算法中,這種獎懲信息是通過走完一個完整的episode來計算得到的,這導致了學習速率很慢。而既然Critic是一個以值為基礎的學習法,那麼他可以進行單步更新,計算每一步的獎懲值。那麼二者相結合,Actor來選擇動作,Critic來告訴Actor它選擇的動作是否合適。在這一過程中,Actor不斷疊代,得到每一個狀態下選擇每一動作的合理機率,加了Critic網路之後就可以使用TD error當作advantage function做每步更新的步驟,Critic也不斷疊代,每個狀態下選擇每一個動作的獎懲值。


                                            

                                                                                                                           圖4 Actor–Critic 架構圖

        因此Actor-Critic演算法的核心理論就是使用TD error當成policy gradient演算法的Advantage function。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論