iT邦幫忙

2023 iThome 鐵人賽

DAY 28
1
AI & Data

ML From Scratch系列 第 28

[Day 28] Deep Q-Network — 背後理論

  • 分享至 

  • xImage
  •  

Prerequisite

Q-Learning

Q-Learning是一種強化學習演算法,用於解決基於狀態和行動的問題。

它通常用於機器學習和人工智慧領域,特別是在處理決策性任務和控制問題時。

Q-Learning的目標是學習一個策略,使一個智能體(或代理)能夠在環境中選擇最佳的行動,以最大程度地增加其長期回報(或累積的獎勵)。

Q-Learning基於一個Q-值函數,它用來估計在特定狀態下執行特定行動的預期回報。

Q-值函數的更新是通過不斷地觀察環境和執行行動來完成的。

演算法的目標是不斷調整Q-值,使其逼近真實的最佳Q-值,以便智能體能夠做出最佳的決策。

Q-值的更新式子

https://chart.googleapis.com/chart?cht=tx&chl=Q(s%2C%20a)%20%3D%20(1%20-%20%5Calpha)%20*%20Q(s%2C%20a)%20%2B%20%5Calpha%20*%20%5Br%20%2B%20%5Cgamma%20*%20%5Cmax(Q(s'%2C%20a'))%5D

  • https://chart.googleapis.com/chart?cht=tx&chl=Q(s%2C%20a) 是在狀態https://chart.googleapis.com/chart?cht=tx&chl=s下執行行動https://chart.googleapis.com/chart?cht=tx&chl=a的Q-值。
  • https://chart.googleapis.com/chart?cht=tx&chl=%5Calpha 是學習速率,表示更新Q-值時的權重,通常在0和1之間。
  • https://chart.googleapis.com/chart?cht=tx&chl=r 是執行行動https://chart.googleapis.com/chart?cht=tx&chl=a後獲得的即時獎勵。
  • https://chart.googleapis.com/chart?cht=tx&chl=%5Cgamma 是折扣因子,表示長期回報的重要性,通常在0和1之間。
  • https://chart.googleapis.com/chart?cht=tx&chl=%5Cmax(Q(s'%2C%20a')) 表示在下一個狀態https://chart.googleapis.com/chart?cht=tx&chl=s'中選擇最佳行動的Q-值。

Q-Learning的核心思想是使用Bellman方程來更新Q-值,以便智能體可以在不斷地嘗試中學習最佳的策略。

Bellman方程

https://chart.googleapis.com/chart?cht=tx&chl=Q*(s%2C%20a)%20%3D%20r%20%2B%20%5Cgamma%20*%20%5Cmax(Q*(s'%2C%20a'))

這是最優Q-值函數https://chart.googleapis.com/chart?cht=tx&chl=Q%5E*的Bellman方程,它表示在狀態https://chart.googleapis.com/chart?cht=tx&chl=s下執行行動https://chart.googleapis.com/chart?cht=tx&chl=a的最優Q-值等於即時獎勵https://chart.googleapis.com/chart?cht=tx&chl=r加上折扣因子https://chart.googleapis.com/chart?cht=tx&chl=%5Cgamma乘以下一個狀態https://chart.googleapis.com/chart?cht=tx&chl=s'中選擇最佳行動的最優Q-值。

這些式子是Q-Learning算法的核心,它們用於不斷更新Q-值函數,以最大化長期回報,從而學習最佳的策略。

根據具體的問題和實現,還可以添加一些其他細節和調整。

該演算法是一種模型無關的方法,因此不需要對環境進行精確的建模,而是通過試驗和學習來優化策略。

Experience Replay

Experience Replay 是一種在深度強化學習(Deep Reinforcement Learning)中常用的技術,用於改進智能代理(如機器人或遊戲AI)的訓練效果。

它的主要目標是改善訓練過程的效率和穩定性,特別是在處理連續的環境交互中。

在 Experience Replay 中,智能代理會將之前觀察到的環境狀態、行動、獎勵以及下一個狀態存儲在一個緩存(或經驗池)中。然後,代理可以從這個緩存中隨機抽樣過去的經驗來進行訓練。這樣的好處有幾個:

  1. 減少數據相關性:當代理連續地與環境互動時,連續的狀態和行動可能具有高度相關性,這可能導致模型的不穩定性。通過隨機抽樣經驗,可以減少這種相關性,有助於穩定訓練。
  2. 提高數據效率:代理可以反復使用以前的經驗,而不僅僅使用新的經驗。這對於在資源有限的情況下進行高效訓練非常有用,因為它可以更充分地利用可用的數據。
  3. 增加訓練樣本多樣性:經驗回放可以包含代理在不同時間點和環境情境下收集的經驗,這有助於代理更好地探索和學習不同的策略。

Target Network

在 Deep Reinforcement Learning 中,Target Network 是一個重要的概念。

它通常用於改進Q-learning算法的穩定性和訓練效率。

簡單來說,Target Network 是一個複製 Q-network,但它的參數會以一個較慢的速度更新。

主要的作用是用來計算Q-learning目標,而不是像Q-network那樣經常更新。這樣做的目的是為了降低目標估計的方差,從而提高訓練的穩定性。

在訓練過程中,Q-learning算法通常使用Target Network計算目標Q值,而不是使用實時更新的Q-network。

這樣可以減少Q值估計的不穩定性,有助於更穩定地訓練深度強化學習模型,特別是在面對高度非穩定環境時。

Goal

Deep Q-Network 是一種強化學習演算法,用於訓練在不同狀態下做出最佳動作決策的人工智慧代理。

Background

Deep Q-Network(DQN)是一種強化學習算法,用於解決離散動作空間的問題。

DQN的核心思想是使用深度神經網絡來近似Q函數,其中Q函數衡量在給定狀態下採取某個動作的價值。DQN的訓練過程包括以下步驟:

  1. 建立一個深度神經網絡,通常是一個卷積神經網絡(CNN),用於估計Q值。
  2. 存儲過去的狀態、動作、獎勵、下一個狀態的數據,以建立經驗回放緩衝區。
  3. 使用經驗回放方法,從緩衝區中隨機抽取數據批次,以減小數據間的相關性,並使用這些數據來更新神經網絡的權重。
  4. 使用Q學習更新規則,進行目標Q值的估計和訓練。這包括使用目標網絡來穩定訓練過程,目標網絡的權重較慢地更新,以提高訓練的穩定性。
  5. 重複執行步驟3和4,直到達到所需的性能水平或訓練次數。

明天就會實做 Deep Q-Network

敬請期待 ~

/images/emoticon/emoticon01.gif


上一篇
[Day 27] Reinforcement Learning
下一篇
[Day 29] Deep Q-Network — 主題實作
系列文
ML From Scratch31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言