SARSA 算法詳解:python從零實現

喜歡可以訂閱專欄喲

第一章 強化學習基礎與核心概念

1.1 強化學習的定義與特點

強化學習(Reinforcement Learning, RL)是機器學習三大范式之一(監督學習、無監督學習、強化學習),其核心思想是通過智能體(Agent)與環境(Environment)的持續交互來學習最優策略。與監督學習需要帶標簽的訓練數據不同,強化學習通過試錯機制(Trial-and-Error)和獎勵信號(Reward Signal)來指導學習過程。

關鍵特征包括:

  • 延遲獎勵:智能體的動作可能在未來多個時間步后才獲得反饋
  • 序列決策:決策之間存在時間相關性,當前動作影響后續狀態
  • 探索與利用平衡:在嘗試新動作(探索)與執行已知最優動作(利用)間保持平衡
  • 在線學習:通過與環境的實時交互進行學習
1.2 強化學習基本框架

強化學習系統由以下核心要素構成:

  1. 智能體(Agent):學習主體,負責做出決策
  2. 環境(Environment):智能體交互的對象,提供狀態和獎勵
  3. 狀態(State):對環境的完整描述,記為 s ∈ S s \in \mathcal{S} sS
  4. 動作(Action):智能體可執行的操作,記為 a ∈ A a \in \mathcal{A} aA
  5. 策略(Policy):行為函數 π ( a ∣ s ) \pi(a|s) π(as),定義在給定狀態下選擇動作的概率分布
  6. 獎勵(Reward):環境反饋的即時信號 r = R ( s , a , s ′ ) r = R(s,a,s') r=R(s,a,s)
  7. 價值函數(Value Function):長期回報的預測 V π ( s ) V^\pi(s) Vπ(s) Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)
  8. 環境模型(Model):可選組件,用于預測狀態轉移和獎勵

數學表示為馬爾可夫決策過程(Markov Decision Process, MDP)五元組:
? S , A , P , R , γ ? \langle \mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma \rangle ?S,A,P,R,γ?
其中:

  • P \mathcal{P} P為狀態轉移概率 P ( s ′ ∣ s , a ) P(s'|s,a) P(ss,a)
  • R \mathcal{R} R為獎勵函數 R ( s , a , s ′ ) R(s,a,s') R(s,a,s)
  • γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1]為折扣因子
1.3 強化學習主要算法分類

根據不同的學習策略,強化學習算法可分為:

類別特點代表算法
基于價值(Value-Based)學習價值函數,通過價值選擇動作Q-Learning, SARSA
基于策略(Policy-Based)直接優化策略函數REINFORCE, PPO
Actor-Critic結合價值函數和策略函數A3C, SAC
模型基礎(Model-Based)建立環境模型進行規劃Dyna-Q, MCTS
1.4 時序差分學習(Temporal Difference)

SARSA屬于時序差分學習算法,結合了蒙特卡洛方法和動態規劃的優點:

  • 蒙特卡洛特性:從實際經驗中學習,不需要環境模型
  • 動態規劃特性:基于現有估計進行增量更新(自舉法)

TD學習更新公式:
V ( s t ) ← V ( s t ) + α [ r t + 1 + γ V ( s t + 1 ) ? V ( s t ) ] V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)] V(st?)V(st?)+α[rt+1?+γV(st+1?)?V(st?)]
其中 α \alpha α為學習率, γ \gamma γ為折扣因子

1.5 SARSA算法定位

SARSA(State-Action-Reward-State-Action)是一種on-policy的TD控制算法:

  • On-policy:使用當前策略生成樣本并更新同一策略
  • TD控制:通過TD誤差更新動作價值函數 Q ( s , a ) Q(s,a) Q(s,a)
  • 五元組更新:需要 ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (s_t, a_t, r_{t+1}, s_{t+1}, a_{t+1}) (st?,at?,rt+1?,st+1?,at+1?)進行更新

與Q-Learning的關鍵區別:
SARSA:  Q ( s , a ) ← Q ( s , a ) + α [ r + γ Q ( s ′ , a ′ ) ? Q ( s , a ) ] \text{SARSA: } Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s',a') - Q(s,a)] SARSA: Q(s,a)Q(s,a)+α[r+γQ(s,a)?Q(s,a)]
Q-Learning:  Q ( s , a ) ← Q ( s , a ) + α [ r + γ max ? a ′ Q ( s ′ , a ′ ) ? Q ( s , a ) ] \text{Q-Learning: } Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)] Q-Learning: Q(s,a)Q(s,a)+α[r+γamax?Q(s,a)?Q(s,a)]

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

第二章 SARSA算法的數學原理與推導

2.1 馬爾可夫決策過程(MDP)回顧

SARSA算法的理論基礎建立在馬爾可夫決策過程之上。MDP的核心性質是馬爾可夫性:
P ( s t + 1 ∣ s t , a t ) = P ( s t + 1 ∣ s t , a t , s t ? 1 , a t ? 1 , . . . ) P(s_{t+1}|s_t,a_t) = P(s_{t+1}|s_t,a_t,s_{t-1},a_{t-1},...) P(st+1?st?,at?)=

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78052.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78052.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78052.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(C題|社交媒體平臺用戶分析問題)2025年第二十二屆五一數學建模競賽(五一杯/五一賽)解題思路|完整代碼論文集合

我是Tina表姐,畢業于中國人民大學,對數學建模的熱愛讓我在這一領域深耕多年。我的建模思路已經幫助了百余位學習者和參賽者在數學建模的道路上取得了顯著的進步和成就。現在,我將這份寶貴的經驗和知識凝練成一份全面的解題思路與代碼論文集合…

AI重塑SEO關鍵詞策略

內容概要 傳統SEO策略主要依賴人工經驗與基礎工具進行關鍵詞布局,存在效率低、覆蓋維度單一等痛點。而AI技術的介入,使關鍵詞優化從靜態詞庫匹配轉向動態語義網絡構建。通過自然語言處理(NLP)與深度學習模型,AI不僅能…

【Unity】 組件庫分類詳解

1?? Audio(音頻組件) 用于處理游戲中的聲音。 Audio Source 讀音[???di?? ?s??s],音頻源組件,用于播放音頻文件,可設置音量、Pitch、循環播放等屬性,是音頻播放的核心組件。 Audio Listener 讀音…

【區塊鏈】區塊鏈技術介紹

引言 區塊鏈技術自2008年中本聰提出比特幣概念以來,逐漸從加密貨幣的底層技術演變為一場顛覆傳統信任機制的全球性革命。它不僅重塑了金融體系,更在物流、醫療、政務等領域展現出巨大潛力。本文將用通俗易懂的語言,結合實例與原理&#xff0c…

MySQL零基礎入門:Ubuntu環境安裝與操作精解

知識點1【數據庫】 數據的存儲方式,我們之前學的,從變量,數組,鏈表,最后到文件,文件之上,便是數據庫,而我們要介紹的MySQL就是數據庫的關系數據庫中的其中一種。 1、數據庫 本質&…

力扣——23合并升序鏈表

目錄 1:題目描述: 2.算法思想: 3.代碼展示: 1:題目描述: 給你一個鏈表數組,每個鏈表都已經按升序排列。 請你將所有鏈表合并到一個升序鏈表中,返回合并后的鏈表。 示例 1: 輸入&#xff…

AI重構危化品進口清關:一場效率與安全的雙重革命

在全球化工產業鏈深度捆綁的今天,每年超過3億噸危險化學品通過中國各大口岸流入國內市場。這些支撐著新能源電池、半導體材料等戰略產業的“工業血液”,其進口清關流程卻長期困于效率與安全的兩難困境:人工審核單據平均耗時72小時&#xff0c…

牛客網題解 | 棧的壓入、彈出序列

棧的壓入、彈出序列 一、題目鏈接二、題目三、算法原理:用一個棧模擬入棧出棧的過程四、編寫代碼 一、題目鏈接 棧的壓入、彈出序列 二、題目 三、算法原理:用一個棧模擬入棧出棧的過程 思路:用一個棧模擬入棧出棧的過程,模擬出…

使用CubeMX新建DMA工程——存儲器到存儲器模式

目錄 1、新建板級支持包 2、修改main.c 3、程序流程 4、問題 新建工程的基本操作步驟參考這里: 【【野火】STM32 HAL庫開發實戰指南 教學視頻 手把手教學STM32全系列 零基礎入門CubeMXHAL庫,基于野火全系列STM32開發板】 https://www.bilibili.com/…

HTML5 新增的主要標簽整理

一、語義化標簽&#xff08;讓網頁結構更清晰&#xff09; 1. <header> 和 <footer> 定義&#xff1a;表示網頁的「頂部區域」和「底部區域」。場景&#xff1a; <header>&#xff1a;放 Logo、導航欄、搜索框。<footer>&#xff1a;放版權信息、聯系…

Mysql數據庫高可用解決方案-Mysql Router

目錄 一.MySQL Router介紹 1. 什么是 MySQL Router&#xff1f; 2. MySQL Router 的主要用途 3. MySQL Router 的工作原理 4. MySQL Router 的核心組件 5. MySQL Router 的部署和配置 6. MySQL Router 的優勢 7. 注意事項 8. MySQL Router 與其他工具的對比 9. 總結 …

【學習筆記】機器學習(Machine Learning) | 第六周|過擬合問題

機器學習&#xff08;Machine Learning&#xff09; 簡要聲明 基于吳恩達教授(Andrew Ng)課程視頻 BiliBili課程資源 文章目錄 機器學習&#xff08;Machine Learning&#xff09;簡要聲明 摘要過擬合與欠擬合問題一、回歸問題中的過擬合1. 欠擬合&#xff08;Underfit&#x…

當算力遇上堵車:AI如何讓城市血管不再“血栓”?

目錄 一、算力治堵的“外科手術” 二、算力治堵的“內科檢查” 三、算力治堵的“中醫調理” 治堵如治水,算力是新時代的“大禹” “堵車”是每個大城市的通病,但鮮少有人意識到:交通擁堵的根源并非車輛過多,而在于車速過慢,不是因為堵車才慢,而是因為慢才堵車。中國工…

VM虛擬機安裝CentOS7.9

目錄 1.下載CentOS7.9 2.VM虛擬機選擇自定義&#xff0c;然后一直傻瓜式下一步 3.選擇編輯虛擬機設置&#xff0c;然后選擇剛剛下載的ISO 4.輸入 ip addr 獲取ip地址 5.用Xshell連接 1.下載CentOS7.9 鏈接&#xff1a;https://pan.baidu.com/s/1kW2gGWnbcjNtq4kz46LKVw?p…

文本解析到大模型應用

文本解析到到大模型應用 一、背景 最近接到一個比較惡心的工作&#xff0c;之前有個同事將很多個小的文檔整合到了一個大文檔中&#xff0c;同時暴露出一個新的問題&#xff0c;大的文檔雖然查找問題比較方便但是維護起來較為麻煩&#xff0c;所以需要將大的文檔按照標題拆分…

AWS虛擬專用網絡全解析:從基礎到高級實踐

導語 AWS虛擬專用網絡是連接企業本地數據中心與AWS云環境的關鍵橋梁。本文將深入探討AWS VPN的核心概念、配置方法、最佳實踐以及常見問題解決方案,助您構建安全、可靠的混合云網絡架構。 一、AWS VPN概述 1. 定義 AWS VPN是一種網絡服務,允許用戶通過加密隧道將本地網絡…

【含文檔+PPT+源碼】基于微信小程序的校園快遞平臺

項目介紹 本課程演示的是一款基于微信小程序的校園快遞平臺&#xff0c;主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含&#xff1a;項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系統 3.該項目附帶…

基于 Rancher 部署 Kubernetes 集群的工程實踐指南

一、現狀分析 在當今的云計算和容器化領域&#xff0c;Kubernetes&#xff08;K8S&#xff09;已經成為了容器編排和管理的事實標準。根據 Gartner 的數據&#xff0c;超過 70% 的企業在生產環境中使用 K8S 來管理容器化應用。然而&#xff0c;K8S 的安裝和管理對于許多企業來…

Windows服務器提權實戰:常見方法、場景與防御指南

在滲透測試中&#xff0c;??權限提升&#xff08;提權&#xff09;??是從低權限賬戶&#xff08;如IIS、Apache運行賬戶&#xff09;獲取系統管理員&#xff08;如SYSTEM&#xff09;權限的關鍵步驟。本文將從實戰角度解析Windows服務器提權的常見技術&#xff0c;并結合真…

C# | 基于C#實現的BDS NMEA-0183數據解析上位機

以下是一個基于C#實現的BDS NMEA-0183數據解析上位機的示例代碼,包含基礎功能和界面: using System; using System.Collections.Generic; using System.IO.Ports; using System.Windows.Forms; using System.Drawing; using System.Globalization;namespace BDS_NMEA_Viewer…