自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度強化學習實戰(zhàn):訓練DQN模型玩超級馬里奧兄弟

人工智能 深度學習
深度學習作為當前計算機科學領域最具前沿性的研究方向之一,其應用范圍涵蓋了從計算機視覺到自然語言處理等多個領域。本文將探討深度學習在游戲領域的一個具體應用:構建一個能夠自主學習并完成超級馬里奧兄弟的游戲的智能系統(tǒng)。

深度學習作為當前計算機科學領域最具前沿性的研究方向之一,其應用范圍涵蓋了從計算機視覺到自然語言處理等多個領域。本文將探討深度學習在游戲領域的一個具體應用:構建一個能夠自主學習并完成超級馬里奧兄弟的游戲的智能系統(tǒng)。

強化學習基礎

強化學習是機器學習的一個重要分支,研究智能體如何通過與環(huán)境的交互學習來優(yōu)化其行為策略。類似于人類的學習過程,智能體在虛擬環(huán)境中通過不斷嘗試各種行動并獲取反饋,逐步建立最優(yōu)決策模型。

在強化學習框架中,做出決策的程序被稱為智能體(agent),其所處的交互空間被定義為環(huán)境(environment)。智能體通過執(zhí)行動作(actions)與環(huán)境進行交互,每個動作都會獲得相應的獎勵信號,用以評估該動作在特定狀態(tài)下的效果——這里的狀態(tài)指的是環(huán)境在特定時刻的完整配置信息。

以上圖gif為例,作為智能體的人類嘗試與環(huán)境中的灑水裝置進行交互,采取了一個動作:將其對準自己。執(zhí)行該動作后,智能體接收到了明顯的負向獎勵信號(從干燥到濕潤的狀態(tài)轉換),從而學會了避免重復該動作。

從系統(tǒng)層面來看,智能體通過動作與環(huán)境交互,獲取獎勵信號和新的狀態(tài)信息,這個新狀態(tài)又將作為下一個動作決策的依據(jù)。

在超級馬里奧Bros游戲環(huán)境中,智能體是控制馬里奧行為的程序系統(tǒng),環(huán)境則包含了游戲世界的所有元素:磚塊、管道、敵人等。環(huán)境狀態(tài)即為游戲當前幀的完整信息,這些信息構成了智能體進行決策分析的基礎數(shù)據(jù)。

我們的智能體可以執(zhí)行的動作集合對應著馬里奧的控制指令:跳躍、移動、靜止等。在游戲的每一幀中,智能體都會根據(jù)其行為獲得相應的獎勵信號:失敗時獲得負向獎勵,而向著目標推進則獲得正向獎勵。

通過上述理論框架的建立,我們可以深入理解智能程序如何在特定環(huán)境中通過學習來形成最優(yōu)決策策略。

2013年,人工智能領域的領先企業(yè)DeepMind推出了突破性的深度Q網(wǎng)絡(DQN)技術,該網(wǎng)絡在多款雅達利游戲中實現(xiàn)了超越人類水平的表現(xiàn)。這一創(chuàng)新極大地推進了強化學習的發(fā)展,使其能夠應對更為復雜的問題,包括對游戲畫面的實時分析與理解。

我們的目標是構建一個能夠自主掌握超級馬里奧Bros第一關的深度神經網(wǎng)絡系統(tǒng)。

超級馬里奧Bros環(huán)境構建

在開發(fā)針對超級馬里奧Bros的智能系統(tǒng)之前,我們需要首先構建一個合適的仿真環(huán)境。Gym-Super-Mario-Bros提供了一個專門的強化學習環(huán)境框架,支持智能體在超級馬里奧Bros系列前兩代游戲的各個關卡中進行訓練。

在環(huán)境中,系統(tǒng)接收當前游戲畫面作為狀態(tài)輸入,并需要基于該狀態(tài)信息選擇相應的動作,如跳躍、左右移動或保持靜止等。

Gym-Super-Mario-Bros框架提供了根據(jù)不同研究目標選擇游戲關卡和視覺特征的靈活性。我們選用SuperMarioBros-1-1-v1作為實驗環(huán)境,這是第一關卡的簡化版本,通過降低背景復雜度來優(yōu)化圖像識別效率。

為了深入理解該環(huán)境的特性,我們首先實現(xiàn)一個基于隨機策略的基準智能體,用于測試第一關卡的基本交互機制。

DQN架構設計

從本質上講,神經網(wǎng)絡是一類通過樣本學習來建立輸入輸出映射關系的函數(shù)系統(tǒng)。在圖像識別等任務中,網(wǎng)絡通過學習樣本建立分類模型。

網(wǎng)絡的輸入為游戲當前狀態(tài)的圖像數(shù)據(jù),輸出為各可能動作的價值評估(Q值),其中最高價值對應的動作被認為是當前狀態(tài)下的最優(yōu)決策。

Q值定義為在特定狀態(tài)下執(zhí)行某動作所能獲得的預期累積獎勵,即在該狀態(tài)采取特定動作后所獲得的總體獎勵的期望值。

從實用角度看,它量化了在某個狀態(tài)下選擇特定動作的價值。

據(jù)此我們設計的神經網(wǎng)絡架構如下圖所示:

系統(tǒng)架構的具體實現(xiàn)如下:

  • 輸入層接收游戲的最近四幀畫面。這種幀堆疊技術(Frame Stacking)的引入使網(wǎng)絡能夠捕獲時序信息
  • 這些圖像數(shù)據(jù)經由網(wǎng)絡的卷積層處理,用于提取和識別圖像中的關鍵特征模式
  • 卷積層的特征輸出傳遞給全連接層,用于計算每個可能動作的Q值
  • 系統(tǒng)基于計算得出的Q值選擇最優(yōu)動作,即選擇Q值最高的動作執(zhí)行

在訓練初期,DQN在圖像特征提取和動作價值評估方面的表現(xiàn)都相對欠佳。但通過持續(xù)的訓練優(yōu)化,網(wǎng)絡逐步提升其狀態(tài)理解能力和動作評估準確度,最終能夠在不同狀態(tài)下做出合理的決策。

雖然網(wǎng)絡實現(xiàn)的具體細節(jié)較為復雜,感興趣的讀者可以參考源代碼,相關技術細節(jié)也將在文末附錄中詳細說明。

在理解了神經網(wǎng)絡的基本架構后,我們現(xiàn)在關注其與環(huán)境的交互實現(xiàn)。

智能體-環(huán)境交互機制

在此前介紹的隨機策略智能體的基礎上,我們將構建一個具有學習能力的智能體系統(tǒng)。

首先實現(xiàn)state_reshape(state)函數(shù)用于狀態(tài)數(shù)據(jù)的預處理和標準化,然后構建智能體訓練函數(shù):

# 狀態(tài)數(shù)據(jù)預處理和標準化函數(shù)
 def state_reshape(state):  
     state = np.swapaxes(state, -3, -1)  
     state = np.swapaxes(state, -1, -2)  
   
     return state / 255.  
   
 # 智能體訓練主函數(shù)
 def train(agent, env, total_timesteps):  
   
     # 環(huán)境初始化
     state = env.reset()  
     # 狀態(tài)預處理
     state = state_reshape(state)  
     timestep = 0  
   
     # 訓練循環(huán)
     while timestep < total_timesteps:  
         # 動作選擇
         actions = agent.act(state)  
   
         # 執(zhí)行動作并獲取新狀態(tài)信息
         next_state, rewards, dones, _ = env.step(actions)  
         # 新狀態(tài)預處理
         next_state = state_reshape(next_state)  
         # 經驗數(shù)據(jù)存儲
         agent.remember(state, actions, rewards, next_state, dones)  
         # 網(wǎng)絡訓練
         agent.train()  
           
         timestep += 1  
   
         # 狀態(tài)更新
         state = next_state  
   
         # epsilon重置,維持探索性
         if timestep % 50000 == 0:  
             agent.epsilon = 0.1

相比隨機策略實現(xiàn),本系統(tǒng)有以下關鍵改進:

  • 采用智能體的.act(state)方法進行動作選擇,替代了隨機選擇機制
  • 引入.remember(state, actions, rewards, next_state, dones)方法實現(xiàn)經驗回放機制,存儲交互數(shù)據(jù)用于后續(xù)訓練
  • 通過.train()方法實現(xiàn)持續(xù)的在線學習,不斷優(yōu)化網(wǎng)絡性能
  • 引入epsilon參數(shù)控制探索-利用平衡,每50,000步重置以維持適度的探索性> 各方法的詳細技術說明請參見文末附錄

系統(tǒng)實現(xiàn)完成后,只需執(zhí)行訓練程序即可啟動學習過程。經過數(shù)小時的訓練,我們使用DQN獲得的最佳表現(xiàn)如文章開頭所示,并且在引入更復雜的強化學習算法后,系統(tǒng)性能得到進一步提升:

總結

本研究展示了強化學習在游戲人工智能領域的應用潛力。通過具體項目實踐,我們期望能夠推動該領域的研究發(fā)展,并激發(fā)更多研究者的興趣。

如需深入了解本項目的技術細節(jié),請參考下方附錄和完整的源代碼。

以下是對文中部分技術細節(jié)的補充說明:

神經網(wǎng)絡架構  

項目采用基于PyTorch實現(xiàn)的神經網(wǎng)絡,包含三個卷積層和兩個全連接層。

import torch.nn as nn  
 import torch.nn.functional as F  
   
 class Network(nn.Module):  
     def __init__(self, in_dim: int, out_dim: int):  
         super(Network, self).__init__()  
         self.out_dim = out_dim  
   
         self.convs = nn.Sequential(nn.Conv2d(4, 32, 8, stride=4, padding=0), nn.ReLU(),  
                                  nn.Conv2d(32, 64, 4, stride=2, padding=0), nn.ReLU(),  
                                  nn.Conv2d(64, 64, 3, stride=1, padding=0), nn.ReLU())  
   
         self.advantage1 = nn.Linear(7 * 7 * 64, 512)  
         self.advantage2 = nn.Linear(512, out_dim)  
   
         self.value1 = nn.Linear(7 * 7 * 64, 512)  
         self.value2 = nn.Linear(512, 1)  
   
     def forward(self, state):
         conv = self.convs(state)
         flat = conv.reshape(-1, 7 * 7 * 64)
         adv_hid = F.relu(self.advantage1(flat))
         val_hid = F.relu(self.value1(flat))
 
         advantages = self.advantage2(adv_hid)
         values = self.value2(val_hid)
 
         q = values + (advantages - advantages.mean())

這里采用了Dueling Deep Q-Network架構,將網(wǎng)絡輸出分為狀態(tài)價值(V)估計和動作優(yōu)勢(Advantage)估計兩個分支。這種架構設計通過將Q值分解為兩個獨立的組件,提高了網(wǎng)絡的學習效率和性能。

動作選擇策略

為了平衡探索與利用,系統(tǒng)采用ε-貪心策略進行動作選擇。初始階段較高的探索率確保對動作空間的充分探索,隨訓練進行逐步降低探索率,但保留最小探索概率以維持適應性。

經驗存儲機制

每次交互后的經驗數(shù)據(jù)(當前狀態(tài)、動作、獎勵、下一狀態(tài)、終止標志)被存儲到經驗回放緩沖區(qū),用于后續(xù)批量訓練。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2017-04-16 18:28:25

人工智能

2024-06-21 14:13:44

2021-08-04 10:32:34

人工智能機器學習技術

2023-06-26 11:49:29

2020-07-29 15:06:39

數(shù)據(jù)泄露源代碼泄露信息安全

2022-09-04 14:38:00

世界模型建模IRIS

2013-10-11 09:35:59

HTML 5

2025-03-10 09:36:00

2021-09-17 15:54:41

深度學習機器學習人工智能

2023-02-20 15:26:52

游戲技術

2022-11-02 14:02:02

強化學習訓練

2012-03-07 15:03:57

模擬器智能手機游戲

2017-11-07 16:17:43

編程AI

2023-08-28 06:52:29

2017-08-22 15:56:49

神經網(wǎng)絡強化學習DQN

2020-05-12 07:00:00

深度學習強化學習人工智能

2023-12-03 22:08:41

深度學習人工智能

2022-05-31 10:45:01

深度學習防御

2024-07-26 09:33:22

2023-08-28 09:00:00

強化學習深度學習人工智能
點贊
收藏

51CTO技術棧公眾號