Q-learning 算法學習

Q-learning是一種經典的無模型、基于價值的算法,它通過迭代更新狀態-動作對的Q值,最終找到最優策略。

一?Q-learning的核心思想

1.1目標

學習一個狀態-動作價值函數?$Q(s,a)$?,表示在狀態 s 下執行動作 a 并遵循最優策略后的最大累積獎勵。

$Q(s, a)$?的核心目標是為智能體(Agent)在復雜的動態環境中提供數據驅動的決策依據,使得它能夠通過量化的方式評估每個動作的長期價值,進而逐步逼近最優策略

Q值像一張“價值地圖”,指導每一步的最佳方向。

1.2核心特征

(1)離線策略(Off-policy):更新Q值時使用最大預期獎勵(最優策略),而實際行動可能采用探索策略(如ε-greedy:貪婪策略)。

探索策略:智能體在訓練過程中主動嘗試未知或低價值狀態-動作對的策略,目的是打破當前對環境的認知局限,發現潛在的更高回報路徑。可以避免局部最優和應對非平穩環境。

ε-greedy(貪婪策略):以概率 $\epsilon$ 隨機選擇一個動作(探索),以概率 $1-\epsilon$ 選擇當前最高Q值的動作(利用)。初始時 $\epsilon$ 較大,鼓勵充分探索未知區域,隨著訓練逐步降低??$\epsilon$?,后期傾向于利用學到的知識。

def epsilon_greedy(Q, state, epsilon):if np.random.rand() < epsilon:action = np.random.choice(possible_actions)  # 隨機探索else:action = np.argmax(Q[state])  # 選擇最優動作return action

(2)表格方法:適用于離散、有限的狀態和動作空間,通過表格記錄所有$Q(s,a)$

二 算法原理

貝爾曼方程與Q值更新

Q-learning的目標是使Q值收斂到貝爾曼最優方程:

$ Q^*(s, a) = \mathbb{E}\left[ r + \gamma \max_{a'} Q^*(s', a') \mid s, a \right] $

在每次交互中,通過時序差分(TD)學習逐步逼近最優Q值:

$ Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_t + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t) \right] $

$\alpha$?:學習率(控制更新步長,通常0 < α ≤ 1)

$\gamma$?:折扣因子(權衡即時獎勵與未來獎勵,通常0 ≤ γ < 1)

新Q值=舊Q值+α?(TD目標?舊Q值)?

?TD目標結合了當前獎勵和對未來獎勵的最優估計,推動Q值向更優方向調整。

三 算法流程

輸入:環境(狀態集合 S,動作集合 A),學習率α,折扣率γ,探索率?。

輸出:最優Q值表??$Q(s,a)$

初始化Q表為全零或隨機值
for episode in 1 to Max_Episodes:初始化狀態swhile 狀態s非終止狀態:# 選擇動作(平衡探索與利用)if random() < ε:隨機選擇動作aelse:a = argmax_a Q(s, a)# 執行動作,獲得獎勵和新狀態s', r, done = env.step(a)# 更新Q值Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]# 進入下一狀態s = s'# 可選:逐步降低ε(如ε = ε * 0.99)

四 參數設置

參數作用典型值/策略
學習率α控制Q值更新步長初期較高(如0.1~0.5),后期降低(如0.01)
折扣因子γ設定未來獎勵的重要性接近1(長期考慮,如0.9~0.99)
探索率ε平衡探索與利用初始高值(如1.0),逐步衰減至0.01~0.1

收斂條件

(1)每個狀態-動作對被無限次訪問(充分覆蓋)

?(2)學習率需滿足:?$ \sum \alpha = \infty, \sum \alpha^2 < \infty $

五 DQN(Deep Q-Network):Q-learning+深度學習

Q-learning的局限性:

傳統Q-learning基于表格存儲Q值,不適用于高維或連續狀態空間(如視頻游戲畫面)的復雜任務。

深度神經網絡的引入:

使用神經網絡參數化Q值函數:$Q(s, a; \theta)$?,輸入狀態 s ,輸出所有動作的 Q 值。神經網絡能夠擬合復雜狀態表示。

穩定性挑戰:

直接更新Q網絡會導致目標值頻繁變化(Q值依賴自身參數),造成訓練震蕩。DQN通過以下兩個關鍵技術解決這一問題:

(1)目標網絡(Target Network):使用獨立的目標網絡計算目標Q值,參數定期同步,降低相關性。

(2)經驗回放(Experience Replay):將交互數據存入經驗池,隨機采樣訓練,打破樣本間相關性。

特性Q-learningDQN
Q值存儲方式表格深度神經網絡擬合
狀態空間適應性僅限離散、低維可處理高維、連續狀態(如圖像輸入)
穩定性增強技術經驗回放 + 目標網絡
應用場景簡單環境(如網格世界)復雜環境(如Atari游戲、機器人控制)

六 應用場景?

(1)簡單游戲AI(如棋牌類、迷宮導航)。

(2)庫存管理(優化補貨策略)。

(3)交通信號燈控制(平衡車輛通行效率)。

Q-learning作為強化學習的基石,通過貝爾曼最優方程不斷優化動作價值,適用于小規模離散問題。盡管在復雜場景中被深度方法(如DQN)取代,理解Q-learning仍是掌握先進算法(如DQN、Actor-Critic)的重要前提。對于實際應用,需根據問題規模選擇Q-learning或升級至深度版本。

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

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

相關文章

鴻蒙生態崛起:開發者機遇與挑戰并存

&#x1f493; 博客主頁&#xff1a;倔強的石頭的CSDN主頁 &#x1f4dd;Gitee主頁&#xff1a;倔強的石頭的gitee主頁 ? 文章專欄&#xff1a;《熱點時事》 期待您的關注 目錄 引言 一、何為鴻蒙生態&#xff1f; 二、在鴻蒙生態下開發時遇到的挑戰 三、對于鴻蒙生態未…

TCP/IP-——C++編程詳解

1. TCP/IP 編程基本概念 TCP&#xff08;傳輸控制協議&#xff09;&#xff1a;面向連接、可靠的傳輸層協議&#xff0c;保證數據順序和完整性。IP&#xff08;網際協議&#xff09;&#xff1a;負責將數據包路由到目標地址。Socket&#xff08;套接字&#xff09;&#xff1a…

Python圖像處理基礎(三)

Python圖像處理基礎(三) 文章目錄 Python圖像處理基礎(三)2、計算機色彩(Computer Color)2.5 色彩分辨率2.6 灰度顏色模型2.7 CMYK 顏色模型2.7.1 K 部分2.8 HSL/HSB 顏色模型2、計算機色彩(Computer Color) 2.5 色彩分辨率 人眼可以看到許多不同的顏色,但我們的感知…

Vue路由深度解析:Vue Router與導航守衛

Vue路由深度解析&#xff1a;Vue Router與導航守衛 一、Vue Router基礎與安裝配置 1. Vue Router核心概念 Vue Router是Vue.js官方的路由管理器&#xff0c;主要功能包括&#xff1a; 嵌套路由映射模塊化的路由配置路由參數、查詢、通配符細粒度的導航控制自動激活的CSS類鏈…

前后端分離微服務架構

前后端分離微服務架構 介紹: 前端通過Vue和ElementUI構建界面&#xff0c;使用axios調用后端API。Nginx作為反向代理&#xff0c;將請求路由到Zuul網關。Zuul進行權限驗證&#xff08;JWT&#xff09;后&#xff0c;將請求分發到微服務。(身份驗證,安全防護(sql注入,xxs跨網站…

iOS 工廠模式

iOS 工廠模式 文章目錄 iOS 工廠模式前言工廠模式簡單工廠案例場景分析蘋果類優點缺點 小結 工廠模式客戶端調用**優點****缺點** 抽象工廠模式三個模式對比 前言 筆者之前學習了有關于設計模式的六大原則,之前簡單了解過這個工廠模式,今天主要是重新學習一下這個模式,正式系統…

【機器學習】工具入門:飛牛啟動Dify Ollama Deepseek

很久沒有更新文章了,最近正好需要研究一些機器學習的東西&#xff0c;打算研究一下 difyOllama 以下是基于FN 的dify本地化部署&#xff0c;當然這也可能是全網唯一的飛牛部署dify手冊 部署 官方手冊&#xff1a;https://docs.dify.ai/en/getting-started/install-self-hos…

安卓A15系統實現修改鎖屏界面默認壁紙功能

最近遇到一個A15系統項目&#xff0c;客戶要求修改鎖屏界面的默認壁紙&#xff0c;客戶提供了一張壁紙圖片&#xff0c;但是從A15系統的源代碼查看時才知道谷歌已經去掉了相關的代碼&#xff0c;已經不支持了&#xff0c;A13和A14系統好像是支持的&#xff0c;A15系統的Wallpap…

從理論到實戰:模糊邏輯算法的深度解析與應用實踐

從理論到實戰&#xff1a;模糊邏輯算法的深度解析與應用實踐 一、模糊邏輯的核心概念與數學基礎 模糊邏輯&#xff08;Fuzzy Logic&#xff09;是一種處理不確定性的數學工具&#xff0c;其核心思想是將傳統布爾邏輯的“非黑即白”擴展為連續的隸屬度函數。例如&#xff0c;在…

正向代理與反向代理區別及應用

正向代理和反向代理是兩種常見的代理服務器類型&#xff0c;它們在網絡架構中扮演不同角色&#xff0c;核心區別在于代理對象和使用場景。 1. 正向代理&#xff08;Forward Proxy&#xff09; 定義&#xff1a;正向代理是客戶端&#xff08;如瀏覽器&#xff09;主動配置的代理…

OpenCV CUDA模塊中逐元素操作------邏輯運算

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 比較、AND、OR、NOT等。這類操作可用于創建基于條件的掩碼&#xff0c;這對于圖像分割或特征選擇非常有用。 主要函數 1. 按位與 (cv::cuda::b…

一臺入網的電腦有6要素, 機器名,mac,ip,俺碼,網關,dns,分別有什么作用

一臺入網的電腦需要配置的 六大網絡要素&#xff08;機器名、MAC地址、IP地址、子網掩碼、網關、DNS&#xff09;各自承擔不同的關鍵作用&#xff0c;共同確保設備能正確通信和訪問網絡資源。以下是它們的詳細功能解析&#xff1a; 1. 機器名&#xff08;主機名&#xff09; 作…

MySQL之儲存引擎和視圖

一、儲存引擎 基本介紹&#xff1a; 1、MySQL的表類型由儲存引擎(Storage Engines)決定&#xff0c;主要包括MyISAM、innoDB、Memory等。 2、MySQL數據表主要支持六種類型&#xff0c;分別是&#xff1a;CSV、Memory、ARCHIVE、MRG_MYISAN、MYISAM、InnoBDB。 3、這六種又分…

【Spring Boot后端組件】mybatis-plus使用

文章目錄 mybatis-plus使用一、依賴引入二、添加相關配置項三、功能詳解1.自增主鍵2.邏輯刪除3.操作時間自動填充4.其他字段自動填充5.分頁查詢6.自定義動態查詢7.代碼生成器8.代碼生成器(自定義模板) mybatis-plus使用 一、依賴引入 pom.xml文件 <?xml version"1.…

docker compose 啟動指定的 service

使用 Docker Compose 啟動指定服務 要在 Docker Compose 中啟動特定的服務而不是所有服務&#xff0c;可以使用以下命令&#xff1a; docker compose up [服務名] 基本用法 啟動單個服務&#xff1a; docker compose up service_name 啟動多個指定服務&#xff1a; docker …

wordcount程序

### 在 IntelliJ IDEA 中編寫和運行 Spark WordCount 程序 要使用 IntelliJ IDEA 編寫并運行 Spark 的 WordCount 程序&#xff0c;需按照以下流程逐步完成環境配置、代碼編寫以及任務提交。 --- #### 1. **安裝與配置 IntelliJ IDEA** 確保已正確安裝 IntelliJ IDEA&#x…

SmartETL函數式組件的設計與應用

SmartETL框架主要采用了面向對象的設計思想&#xff0c;將ETL過程中的處理邏輯抽象為Loader和Processor&#xff08;對應loader模塊和iterator模塊&#xff09;&#xff0c;所有流程組件需要繼承或實現DataProvider&#xff08;iter方法&#xff09;或JsonIterator&#xff08;…

鴻蒙AI開發:10-多模態大模型與原子化服務的集成

鴻蒙AI開發&#xff1a;10-多模態大模型與原子化服務的集成 在鴻蒙生態中&#xff0c;多模態大模型與原子化服務的集成是一個重要課題。本文將介紹如何在鴻蒙平臺上進行多模態大模型與原子化服務的集成&#xff0c;以及相關的技術細節和實際案例。 鴻蒙AI開發概述 什么是鴻蒙AI…

python打卡day29@浙大疏錦行

知識點回顧 類的裝飾器裝飾器思想的進一步理解&#xff1a;外部修改、動態類方法的定義&#xff1a;內部定義和外部定義 作業&#xff1a;復習類和函數的知識點&#xff0c;寫下自己過去29天的學習心得&#xff0c;如對函數和類的理解&#xff0c;對python這門工具的理解等&…

20250516使用TF卡將NanoPi NEO core開發板出廠的Ubuntu core22.04.3系統降級到Ubuntu core16.04.2

20250516使用TF卡將NanoPi NEO core開發板出廠的Ubuntu core22.04.3系統降級到Ubuntu core16.04.2 2025/5/16 10:58 緣起&#xff1a;NanoPi NEO core核心板出廠預制的OS操作系統為Ubuntu core22.04.3系統。 【雖然是友善之臂提供的最新的系統&#xff0c;但是缺少很多用用程序…