強韌學習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
留言分享你的想法!
avatar-img
甘果的沙龍
4會員
25內容數
作者從國內主要的半導體公司退休,重回校園唸書;開始第三人生。分享退休投資規劃、科技產業經驗以及校園學習點滴。
甘果的沙龍的其他內容
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
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
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
這篇文章介紹了《深度學習的技術》中的五大學習部分:記憶力,理解力,知識網,拓展能力與生活應用。作者分享了對於這些學習部分的心得與建議,並提供了主題相關的書籍推薦及閱讀資料。
Thumbnail
這篇文章介紹了《深度學習的技術》中的五大學習部分:記憶力,理解力,知識網,拓展能力與生活應用。作者分享了對於這些學習部分的心得與建議,並提供了主題相關的書籍推薦及閱讀資料。
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
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News