vocus logo

方格子 vocus

強韌學習Q-learning 優化作法

甘果-avatar-img
發佈於程式
更新 發佈閱讀 8 分鐘

在上一篇的強韌學習中,可以看到行為 (action) 的主要還是依據 Q-Table 的最大數值來決定;而 Q-Table 中的數值是依照過去的行為經驗累積而來;在經驗累積的過程中,每次單純累計回饋 (reward) 的數值;所以,可以觀察到最後形成的 Q-Table 各個數值內容會逐漸地累計而出現離散而極端的差異;這樣的現象,會使得愈後面訓練的回饋數值相較於 Q-Table 的數值,影響力愈來愈小;因此,在建立 Q-Table 時,要儘量將不同時間加入的回饋值對 Q-Table 有一定的影響。

  • 優化強韌學習參數

作法上可以除了回饋 (reword) 值以外,再將 Q-Table 中的最大值,作為加權相加;接下來,在建立 Q-Table 時,將以上的加權相加值打折後加入 Q-Table,作為數值平滑過濾,來減少 Q-Table 極端值產生,例如:

maxValue=1.0+0.8*np.max(qtable[observation,:])
qtable[observation,action]+=0.2*(maxValue-qtable[observation,action])

所以完整的訓練程式可以寫成:

import numpy as np
qtable=np.zeros((16,4))
#--------------
np.random.seed(13)
epochs=2000
for epoch in range(epochs):
state=env.reset()
path=[]
terminated=False
while (not terminated):
action=np.random.randint(4)
path.append(action)
observation, reward, terminated,_,_=env.step(action)
if(reward>0):
env.reset()
for j in range(len(path)):
action=path[j]
observation,_,_,_,_=env.step(action)
#----------------------
maxValue=1.0+0.8*np.max(qtable[observation,:])
qtable[observation,action]+=0.2*(maxValue-qtable[observation,action])
#----------------------
# print('successful path:',path)
print('table:',qtable)
#-------
np.save('qtable',qtable)

再用測試程式執行

qtable=np.load('qtable.npy')

np.random.seed(13)
epochs=400
for epoch in range(epochs):
env.reset()
observation=0
path=[]
terminated=False
while (not terminated):
dice=np.random.randint(6)
if(dice>2):
action=np.argmax(qtable[observation,:])
else:
action=np.random.randint(4)
path.append(action)
observation, reward, terminated,_,_=env.step(action)
if(reward>0):
print('successful path:',path)
raw-image

我們可以發現,增加了訓練的學習能力之後,成功完成的次數又再增加;由原來 400 次的嘗試成功 8 次,增加到 12 次;約 50%的成功。

  • 自我學習

另一方面,如果可同時進行訓練及測試程式,每次的測試結果都可以不斷地進行學習,可以更進一步增加強韌學習的效率;因此可以將程式再更新如下:

import numpy as np
qtable=np.zeros((16,4))
#--------------
np.random.seed(13)
epochs=400
for epoch in range(epochs):
env.reset()
observation=0
path=[]
terminated=False
inDB=False
while (not terminated):
dice=np.random.randint(6)
if not inDB:
dice=0
if(dice>2):
action=np.argmax(qtable[observation,:])
else:
action=np.random.randint(4)
path.append(action)
observation, reward, terminated,_,_=env.step(action)

if(reward>0):
inDB=True
env.reset()
for j in range(len(path)):
action=path[j]
observation,_,_,_,_=env.step(action)
#----------------------
maxValue=1.0+0.8*np.max(qtable[observation,:])
qtable[observation,action]+=0.2*(maxValue-qtable[observation,action])
#----------------------
print('successful path:',path)

print('table:',qtable)
raw-image

透過同步學習及測試的作法,既使只有 400 次的嘗試,也會由原來的僅有一次成功的結果,增加到 8 次成功結果;更重要的是,可以從原來累計學習成功的結果,加入成為學習的輸入,也就是「自我學習」的效果。


留言
avatar-img
甘果的沙龍
6會員
33內容數
作者從國內主要的半導體公司退休,重回校園唸書;開始第三人生。分享退休投資規劃、科技產業經驗以及校園學習點滴。
甘果的沙龍的其他內容
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/26
本文章說明如何在已安裝 Python 3.9 的 iMac mini 上設定 Python 虛擬環境,以及如何使用 venv 工具、安裝常用函式庫(如 numpy、pyTorch 等),並設定 Jupyter 連動不同 Python 虛擬環境。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
2025/04/19
這篇文章說明如何在iMac mini M4上設定Jupyter Notebook作為遠端程式設計伺服器,方便使用iPad進行程式開發。文章涵蓋Jupyter Notebook的安裝、設定遠端連線以及建立可執行的shell script,讓伺服器能持續運作。
Thumbnail
2025/04/10
本文介紹如何將蘋果iMac mini作為CP值最高的人工智慧程式設計伺服器,搭配 iPad 進行遠端程式設計工作。文章說明瞭啟動遠端服務、連接SSH伺服器、使用外接硬碟及連接FTP伺服器等步驟,並推薦了相關應用 app。
Thumbnail
2025/04/10
本文介紹如何將蘋果iMac mini作為CP值最高的人工智慧程式設計伺服器,搭配 iPad 進行遠端程式設計工作。文章說明瞭啟動遠端服務、連接SSH伺服器、使用外接硬碟及連接FTP伺服器等步驟,並推薦了相關應用 app。
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
創業者常因資金困境而無法抓住機會,利用房產活化讓二胎房貸成為財務策略的有力夥伴。 諮詢國峯厝好貸的二胎房貸服務,讓你的房子成為你最強力的天使投資人,推動事業成長。
Thumbnail
創業者常因資金困境而無法抓住機會,利用房產活化讓二胎房貸成為財務策略的有力夥伴。 諮詢國峯厝好貸的二胎房貸服務,讓你的房子成為你最強力的天使投資人,推動事業成長。
Thumbnail
Reinforcement Learning (強化學習) 的理論非常有趣,可能是因為其中許多方法,與人類的學習歷程極為相似,如試錯,獎懲,改進策略,持續優化等等。現在準備來爬這座山了,我把學習階段大致分成三個小山峰,依序為 Q-Learning --> DQN --> Actor-Critic,
Thumbnail
Reinforcement Learning (強化學習) 的理論非常有趣,可能是因為其中許多方法,與人類的學習歷程極為相似,如試錯,獎懲,改進策略,持續優化等等。現在準備來爬這座山了,我把學習階段大致分成三個小山峰,依序為 Q-Learning --> DQN --> Actor-Critic,
Thumbnail
“以底層邏輯為節點,種進大腦;以思考框架為算法模型,在架上快速迭代。”   好書分享:峰值體驗2 作者:汪志謙、朱海蓓 天下雜誌出版   一個知識框架可以持續進化,然後繼續升級,大概就是我在相對短時間內看完峰值體驗1與2的最大驚訝,其中當然包含著很多的資訊含量,但此同時作者也持續的累
Thumbnail
“以底層邏輯為節點,種進大腦;以思考框架為算法模型,在架上快速迭代。”   好書分享:峰值體驗2 作者:汪志謙、朱海蓓 天下雜誌出版   一個知識框架可以持續進化,然後繼續升級,大概就是我在相對短時間內看完峰值體驗1與2的最大驚訝,其中當然包含著很多的資訊含量,但此同時作者也持續的累
Thumbnail
純強化式學習的概念與應用 純強化式學習(Pure Reinforcement Learning, RL)是一種機器學習方法,智能體(agent)通過與環境的互動來學習行為策略,目標是最大化累積獎勵。這種學習方式不依賴於標記數據,而是通過試錯過程來獲得經驗,從而改進其決策能力。 基本原理 在
Thumbnail
純強化式學習的概念與應用 純強化式學習(Pure Reinforcement Learning, RL)是一種機器學習方法,智能體(agent)通過與環境的互動來學習行為策略,目標是最大化累積獎勵。這種學習方式不依賴於標記數據,而是通過試錯過程來獲得經驗,從而改進其決策能力。 基本原理 在
Thumbnail
在上一篇的強韌學習中,可以看到行為 (action) 的主要還是依據 Q-Table 的最大數值來決定;而 Q-Table 中的數值是依照過去的行為經驗累積而來;在經驗累積的過程中,每次單純累計回饋 (reward) 的數值;所以,可以觀察到最後形成的 Q-Table 各個數值內容會逐漸地累計而出現
Thumbnail
在上一篇的強韌學習中,可以看到行為 (action) 的主要還是依據 Q-Table 的最大數值來決定;而 Q-Table 中的數值是依照過去的行為經驗累積而來;在經驗累積的過程中,每次單純累計回饋 (reward) 的數值;所以,可以觀察到最後形成的 Q-Table 各個數值內容會逐漸地累計而出現
Thumbnail
為什麼讀了書卻記不住?楊大輝在《深度學習的技術》中拆解,將學習分為「記、懂、網、拓、活」五大維度。透過「主動回想」打破熟悉陷阱,利用「費曼學習法」檢驗理解力,並以 80/20 法則平衡專業與創新。本書結合認知科學與實戰技術,教你將零散知識拼湊成強大系統,是提升學習效率、實踐終身成長的必讀指南。
Thumbnail
為什麼讀了書卻記不住?楊大輝在《深度學習的技術》中拆解,將學習分為「記、懂、網、拓、活」五大維度。透過「主動回想」打破熟悉陷阱,利用「費曼學習法」檢驗理解力,並以 80/20 法則平衡專業與創新。本書結合認知科學與實戰技術,教你將零散知識拼湊成強大系統,是提升學習效率、實踐終身成長的必讀指南。
Thumbnail
高手的學習方法 第十九章 行為設計學,創造推力 引導客戶的行為,例如小便斗的蒼蠅 這個人必須自己想做這件事— 要有意願 必須能做到— 這件事越簡單越好 你得提醒他 獎勵隨機化,更能讓人上癮   第二十章 喜歡=熟悉+意外  覺得美的東西,是多看效應:看的次數多了就喜歡了 在意
Thumbnail
高手的學習方法 第十九章 行為設計學,創造推力 引導客戶的行為,例如小便斗的蒼蠅 這個人必須自己想做這件事— 要有意願 必須能做到— 這件事越簡單越好 你得提醒他 獎勵隨機化,更能讓人上癮   第二十章 喜歡=熟悉+意外  覺得美的東西,是多看效應:看的次數多了就喜歡了 在意
Thumbnail
在資料科學中常可以聽到「權重」,可藉由專家經驗和機器學習取得「權重」,但他們差別是什麼?在透過演算法決定權重的想法相對盛行的現今,又如何整合兩種途徑的結果?
Thumbnail
在資料科學中常可以聽到「權重」,可藉由專家經驗和機器學習取得「權重」,但他們差別是什麼?在透過演算法決定權重的想法相對盛行的現今,又如何整合兩種途徑的結果?
Thumbnail
本書提供一套高效學習的方法論,幫助你在生活與職場提升自我價值 你可以學到以下幾個要點: 1. 牢記學過的東西 2. 加深理解的方法 3. 打造完整的知識體系 4.如何實踐在生活中
Thumbnail
本書提供一套高效學習的方法論,幫助你在生活與職場提升自我價值 你可以學到以下幾個要點: 1. 牢記學過的東西 2. 加深理解的方法 3. 打造完整的知識體系 4.如何實踐在生活中
Thumbnail
我們將會對動態設定學習率(learning rate)作為最陡梯度下降法的變異演算法做介紹。內容包括了解釋什麼事循環式的學習率調整排程法和何謂使用指數衰退權重來計算移動平均值,同時也介紹如何對大量參數的變數進行最佳化和目前活躍的演算法變異。如 adagrad, adadelta 和 RMSprop
Thumbnail
我們將會對動態設定學習率(learning rate)作為最陡梯度下降法的變異演算法做介紹。內容包括了解釋什麼事循環式的學習率調整排程法和何謂使用指數衰退權重來計算移動平均值,同時也介紹如何對大量參數的變數進行最佳化和目前活躍的演算法變異。如 adagrad, adadelta 和 RMSprop
Thumbnail
是什麼讓一個人的成長速度比另一個人更快呢? 《深度學習的技術》的作者楊大輝的答案是:學習的深淺。
Thumbnail
是什麼讓一個人的成長速度比另一個人更快呢? 《深度學習的技術》的作者楊大輝的答案是:學習的深淺。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News