Q-learning是一種經典的無模型、基于價值的算法,它通過迭代更新狀態-動作對的Q值,最終找到最優策略。
一?Q-learning的核心思想
1.1目標
學習一個狀態-動作價值函數??,表示在狀態 s 下執行動作 a 并遵循最優策略后的最大累積獎勵。
?的核心目標是為智能體(Agent)在復雜的動態環境中提供數據驅動的決策依據,使得它能夠通過量化的方式評估每個動作的長期價值,進而逐步逼近最優策略。
Q值像一張“價值地圖”,指導每一步的最佳方向。
1.2核心特征
(1)離線策略(Off-policy):更新Q值時使用最大預期獎勵(最優策略),而實際行動可能采用探索策略(如ε-greedy:貪婪策略)。
探索策略:智能體在訓練過程中主動嘗試未知或低價值狀態-動作對的策略,目的是打破當前對環境的認知局限,發現潛在的更高回報路徑。可以避免局部最優和應對非平穩環境。
ε-greedy(貪婪策略):以概率 隨機選擇一個動作(探索),以概率
選擇當前最高Q值的動作(利用)。初始時
較大,鼓勵充分探索未知區域,隨著訓練逐步降低??
?,后期傾向于利用學到的知識。
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值更新
Q-learning的目標是使Q值收斂到貝爾曼最優方程:
在每次交互中,通過時序差分(TD)學習逐步逼近最優Q值:
?:學習率(控制更新步長,通常0 < α ≤ 1)
?:折扣因子(權衡即時獎勵與未來獎勵,通常0 ≤ γ < 1)
新Q值=舊Q值+α?(TD目標?舊Q值)?
?TD目標結合了當前獎勵和對未來獎勵的最優估計,推動Q值向更優方向調整。
三 算法流程
輸入:環境(狀態集合 S,動作集合 A),學習率α,折扣率γ,探索率?。
輸出:最優Q值表??
初始化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)學習率需滿足:?
五 DQN(Deep Q-Network):Q-learning+深度學習
Q-learning的局限性:
傳統Q-learning基于表格存儲Q值,不適用于高維或連續狀態空間(如視頻游戲畫面)的復雜任務。
深度神經網絡的引入:
使用神經網絡參數化Q值函數:?,輸入狀態 s ,輸出所有動作的 Q 值。神經網絡能夠擬合復雜狀態表示。
穩定性挑戰:
直接更新Q網絡會導致目標值頻繁變化(Q值依賴自身參數),造成訓練震蕩。DQN通過以下兩個關鍵技術解決這一問題:
(1)目標網絡(Target Network):使用獨立的目標網絡計算目標Q值,參數定期同步,降低相關性。
(2)經驗回放(Experience Replay):將交互數據存入經驗池,隨機采樣訓練,打破樣本間相關性。
特性 | Q-learning | DQN |
---|---|---|
Q值存儲方式 | 表格 | 深度神經網絡擬合 |
狀態空間適應性 | 僅限離散、低維 | 可處理高維、連續狀態(如圖像輸入) |
穩定性增強技術 | 無 | 經驗回放 + 目標網絡 |
應用場景 | 簡單環境(如網格世界) | 復雜環境(如Atari游戲、機器人控制) |
六 應用場景?
(1)簡單游戲AI(如棋牌類、迷宮導航)。
(2)庫存管理(優化補貨策略)。
(3)交通信號燈控制(平衡車輛通行效率)。
Q-learning作為強化學習的基石,通過貝爾曼最優方程不斷優化動作價值,適用于小規模離散問題。盡管在復雜場景中被深度方法(如DQN)取代,理解Q-learning仍是掌握先進算法(如DQN、Actor-Critic)的重要前提。對于實際應用,需根據問題規模選擇Q-learning或升級至深度版本。