筆記-強化式學習演算法簡介:"Policy Gradient"

筆記-強化式學習演算法簡介:"Policy Gradient"

更新於 發佈於 閱讀時間約 3 分鐘

前言

跟上一篇文章一樣,都是看到陌生的演算法後,去搜尋資料記錄成文章。



正文

在強化式學習中,策略(Policy)指的是代理人根據目前的狀態決定下一個動作的方針,具體來說就是在某個狀態下採取某個動作的機率。Policy Gradient的目的是找到一個最優策略,使得整個任務的回報值最大化。

策略通常表示為一個帶有參數的函數 π𝜃​(𝑠,𝑎),其中 𝑠 是當前狀態,𝑎 是行動,𝜃 是策略的參數,Policy Gradient算法通過梯度上升法調整這些參數 𝜃,以最大化期望回報值。

以遊戲為例:首先代理人到一個遊戲畫面(狀態) 𝑠1,決定採取第一個動作(例如左移) 𝑎1,之後得到回饋值 𝑟1 = 0;再來,代理人看到下一個畫面 𝑠2,決定開火 𝑎2,得到回饋值 𝑟2 = 5,...,一直到遊戲結束。一場遊戲稱為 episode,整個遊戲過程的回報值以 𝑅 來表示,即 𝑅 = ∑𝑇𝑡=1 𝑟𝑡,目的就是得到最大的 𝑅。而整個串起來,軌跡 Trajectory,就是:𝜏 = {𝑠1,𝑎1,𝑠2,𝑎2,...,𝑠𝑇,𝑎𝑇}。

因此可以假設得到上面這個 Trajectory 的機率為:(得到 𝑠1 狀態的機率) * (在 𝑠1 狀態下採取 𝑎1 這個動作的機率) * (在 𝑠1 狀態並且採取 𝑎1 的動作下與環境互動能得到 𝑠2 的機率)...,一直乘下去直到這場遊戲結束。而(得到 𝑠1 狀態的機率)是無法控制的,可以控制的是(在 𝑠1 狀態下採取 𝑎1 這個動作的機率),這取決於代理人的參數 𝜃,我們就是要調整參數 𝜃 讓 𝑅 的值愈大愈好。

所以窮舉所有可能出現的 Trajectory,並且把此 Trajectory 的 𝑅 與出現此 Trajectory 的機率相乘做加總,得到採取這組 𝜃 參數所得到的期望回報值。得到期望回報值後,就可以透過梯度上升法最大化目標函數,更新參數 𝜃 進而更新模型。(數學式子在此不細講,詳見參考文章)



參考



小結

繼續趕路,繼續留腳印(XD),雙十國慶假日愉快!



avatar-img
柴郡貓姍蒂的沙龍
48會員
25內容數
留言
avatar-img
留言分享你的想法!
柴郡貓姍蒂的沙龍 的其他內容
前言 最近在研究時間序列的預測,除了上課,也有在Medium上看文章,學到一些知識,除了自己做筆記記錄,也分享給大家。本篇筆記為翻譯統整:Neural Network (MLP) for Time Series Forecasting in Practice—Daniel J. TOTH,這篇Me
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》一書時,對一些沒有聽過的演算法感到陌生,基於打基礎或是增廣見聞的念頭下,上網或問ChatGPT,搜尋了一些資料,整理並紀錄而成這篇文章。 正文 下面說的兩種選擇策略方法用來解決類似多臂拉霸機(Multi-Armed Ban
前言 最近在研究GAT,在網路上看到使用torch和DGL實作的GAT模型的程式碼,就想說下載下來自己跑跑看,這篇文章:Understand Graph Attention Network。途中遇到問題,把找到的解法記錄下來,給也有一樣問題的朋友參考。 正文 在Colab直接使用: !p
前言 最近在研究時間序列的預測,除了上課,也有在Medium上看文章,學到一些知識,除了自己做筆記記錄,也分享給大家。本篇筆記為翻譯統整:Neural Network (MLP) for Time Series Forecasting in Practice—Daniel J. TOTH,這篇Me
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》一書時,對一些沒有聽過的演算法感到陌生,基於打基礎或是增廣見聞的念頭下,上網或問ChatGPT,搜尋了一些資料,整理並紀錄而成這篇文章。 正文 下面說的兩種選擇策略方法用來解決類似多臂拉霸機(Multi-Armed Ban
前言 最近在研究GAT,在網路上看到使用torch和DGL實作的GAT模型的程式碼,就想說下載下來自己跑跑看,這篇文章:Understand Graph Attention Network。途中遇到問題,把找到的解法記錄下來,給也有一樣問題的朋友參考。 正文 在Colab直接使用: !p