中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

公司起名字大全免費(fèi)取名隨州seo

公司起名字大全免費(fèi)取名,隨州seo,電子工程師資格證,wordpress多平臺(tái)自動(dòng)提交AI Deep Reinforcement Learning Autonomous Driving(深度強(qiáng)化學(xué)習(xí)自動(dòng)駕駛) 背景介紹研究背景研究目的及意義項(xiàng)目設(shè)計(jì)內(nèi)容算法介紹馬爾可夫鏈及馬爾可夫決策過(guò)程強(qiáng)化學(xué)習(xí)神經(jīng)網(wǎng)絡(luò) 仿真平臺(tái)OpenAI gymTorcs配置GTA5 參數(shù)選擇行動(dòng)空間獎(jiǎng)勵(lì)函數(shù) 環(huán)境及軟件…

AI Deep Reinforcement Learning Autonomous Driving(深度強(qiáng)化學(xué)習(xí)自動(dòng)駕駛)

  • 背景介紹
  • 研究背景
  • 研究目的及意義
  • 項(xiàng)目設(shè)計(jì)內(nèi)容
    • 算法介紹
      • 馬爾可夫鏈及馬爾可夫決策過(guò)程
      • 強(qiáng)化學(xué)習(xí)
      • 神經(jīng)網(wǎng)絡(luò)
    • 仿真平臺(tái)
      • OpenAI gym
      • Torcs配置
      • GTA5
    • 參數(shù)選擇
      • 行動(dòng)空間
      • 獎(jiǎng)勵(lì)函數(shù)
    • 環(huán)境及軟件包
    • 步驟
    • 可參考項(xiàng)目
    • 參考

背景介紹

自動(dòng)駕駛技術(shù)的興起:自動(dòng)駕駛技術(shù)旨在將車輛的駕駛功能部分或完全交給計(jì)算機(jī)系統(tǒng),以提高道路安全性、減少交通擁堵,并提供更多的便利性。這需要車輛能夠根據(jù)環(huán)境和情境做出智能的決策,遵循交通規(guī)則并與其他車輛和行人進(jìn)行協(xié)同。

深度學(xué)習(xí)的崛起:深度學(xué)習(xí)是一種機(jī)器學(xué)習(xí)技術(shù),它使用神經(jīng)網(wǎng)絡(luò)模型來(lái)學(xué)習(xí)數(shù)據(jù)的抽象特征表示。這些模型具有多層神經(jīng)元,可以自動(dòng)從大量數(shù)據(jù)中提取特征,因此被廣泛用于圖像、語(yǔ)音、自然語(yǔ)言處理等領(lǐng)域。

強(qiáng)化學(xué)習(xí)的應(yīng)用:強(qiáng)化學(xué)習(xí)是一種讓智能體通過(guò)與環(huán)境交互來(lái)學(xué)習(xí)最優(yōu)策略的方法。在自動(dòng)駕駛中,車輛可以被視為智能體,道路和交通環(huán)境則為其環(huán)境。強(qiáng)化學(xué)習(xí)能夠使車輛從試錯(cuò)中學(xué)習(xí),逐步優(yōu)化駕駛策略。

深度強(qiáng)化學(xué)習(xí)的結(jié)合:深度強(qiáng)化學(xué)習(xí)將深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)相結(jié)合,使用深度神經(jīng)網(wǎng)絡(luò)來(lái)近似智能體的策略或值函數(shù)。這使得自動(dòng)駕駛車輛能夠從大量的傳感器數(shù)據(jù)中提取信息,并根據(jù)車輛的狀態(tài)和環(huán)境來(lái)做出決策,比如加速、減速、轉(zhuǎn)向等。

挑戰(zhàn)與機(jī)遇:盡管深度強(qiáng)化學(xué)習(xí)在自動(dòng)駕駛領(lǐng)域取得了顯著進(jìn)展,但仍然面臨著許多挑戰(zhàn)。其中包括安全性、決策的解釋性、數(shù)據(jù)效率等問(wèn)題。然而,借助深度強(qiáng)化學(xué)習(xí),自動(dòng)駕駛系統(tǒng)能夠逐漸提升其決策能力和安全性,為未來(lái)的智能交通做出貢獻(xiàn)。

鑒于自動(dòng)駕駛可能從根本上改變機(jī)動(dòng)性和交通運(yùn)輸方式,因此自動(dòng)駕駛技術(shù)已經(jīng)引起了研究界和企業(yè)的高度重視。目前,大部分方法都集中在使用帶注釋的3D幾何地圖來(lái)定義駕駛行為的形式邏輯上。然而,這種方法的擴(kuò)展性可能存在問(wèn)題,因?yàn)樗鼑?yán)重依賴于外部映射基礎(chǔ)設(shè)施,而不是主要基于對(duì)本地場(chǎng)景的理解。為了實(shí)現(xiàn)真正無(wú)處不在的自動(dòng)駕駛技術(shù),業(yè)界正在提倡驅(qū)動(dòng)機(jī)器人系統(tǒng)的處理能力和導(dǎo)航,這種導(dǎo)航方式不依賴于地圖和明確的規(guī)則,就像人類在全面理解當(dāng)前環(huán)境后,能夠簡(jiǎn)單地進(jìn)行更高層次的方向控制(例如,遵循道路路徑指令)。最近在這個(gè)領(lǐng)域的研究表明,在模擬真實(shí)道路情境中,利用GPS進(jìn)行粗定位和激光雷達(dá)對(duì)本地場(chǎng)景的理解是可行的。近年來(lái),強(qiáng)化學(xué)習(xí)(Reinforcement Learning,簡(jiǎn)稱RL)作為機(jī)器學(xué)習(xí)領(lǐng)域的重要分支,專注于解決馬爾科夫決策問(wèn)題(Markov Decision Process,簡(jiǎn)稱MDP)。這種方法使代理能夠在與環(huán)境互動(dòng)的過(guò)程中選擇行動(dòng),以最大化某種獎(jiǎng)勵(lì)函數(shù)。在模擬環(huán)境中,例如電腦游戲,以及機(jī)器人操作中的簡(jiǎn)單任務(wù),強(qiáng)化學(xué)習(xí)顯示出巨大的潛力,有望取得類似超人級(jí)別的成就,類似于游戲或國(guó)際象棋等情境中。

在這里插入圖片描述
我們覺(jué)得強(qiáng)化學(xué)習(xí)的通用性使其成為自動(dòng)駕駛的一個(gè)有價(jià)值的框架。最為重要的是,它提供了一種糾正機(jī)制,以改進(jìn)自動(dòng)駕駛在學(xué)習(xí)后的行為表現(xiàn)。然而,強(qiáng)化學(xué)習(xí)作為一種專注于解決復(fù)雜問(wèn)題的通用智能方法,在處理時(shí)序問(wèn)題方面具有優(yōu)勢(shì)。而自動(dòng)駕駛作為典型的"工業(yè)人工智能"領(lǐng)域,涉及感知、決策和控制這三大環(huán)節(jié),必須考慮各種極端工況和場(chǎng)景。在其中,感知過(guò)程中環(huán)境要素異常復(fù)雜,而駕駛?cè)蝿?wù)則多變且靈活,很多情況并非時(shí)序問(wèn)題。因此,僅依靠強(qiáng)化學(xué)習(xí)來(lái)解決這些問(wèn)題可能相當(dāng)具有挑戰(zhàn)性。在這方面,深度學(xué)習(xí)(Deep Learning,簡(jiǎn)稱DL)扮演了重要角色,例如常見(jiàn)的YOLO及其衍生版本等。強(qiáng)調(diào)的是,對(duì)于自動(dòng)駕駛來(lái)說(shuō),僅有在決策層面,模型驅(qū)動(dòng)的強(qiáng)化學(xué)習(xí)(Model Based RL)與基于值的強(qiáng)化學(xué)習(xí)(Value Based RL)相互協(xié)同,基于規(guī)則的構(gòu)建被用來(lái)處理大多數(shù)常見(jiàn)駕駛場(chǎng)景,但需要不斷地進(jìn)行設(shè)計(jì)與更新;強(qiáng)化學(xué)習(xí)則用來(lái)解決那些規(guī)則庫(kù)無(wú)法涵蓋的極端場(chǎng)景和問(wèn)題。對(duì)于一些專注于解決方案的科技公司而言,更傾向于選擇深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,簡(jiǎn)稱DRL)方法。這種方法將深度學(xué)習(xí)的感知能力與強(qiáng)化學(xué)習(xí)的決策能力相結(jié)合,使其能夠直接根據(jù)輸入信息進(jìn)行控制。這種方法更貼近人類的思維方式,也是更具成熟解決方案潛力的體現(xiàn)。

研究背景

在2015年,DeepMind團(tuán)隊(duì)提出了深度Q網(wǎng)絡(luò)(Deep Q-network,簡(jiǎn)稱DQN)。DQN以一種全新的方式進(jìn)行學(xué)習(xí),它僅使用原始游戲圖像作為輸入,摒棄了對(duì)人工特征的依賴,實(shí)現(xiàn)了端到端的學(xué)習(xí)方法。DQN在創(chuàng)新性地將深度卷積神經(jīng)網(wǎng)絡(luò)與Q-learning相融合的基礎(chǔ)上,在Atari視頻游戲中取得了與人類玩家相媲美的控制效果。通過(guò)應(yīng)用經(jīng)驗(yàn)回放技術(shù)以及引入固定目標(biāo)Q網(wǎng)絡(luò),DQN成功地解決了使用神經(jīng)網(wǎng)絡(luò)進(jìn)行非線性動(dòng)作值函數(shù)逼近時(shí)可能出現(xiàn)的不穩(wěn)定和發(fā)散問(wèn)題,極大地增強(qiáng)了強(qiáng)化學(xué)習(xí)的適用性。

經(jīng)驗(yàn)回放技術(shù)不僅提高了歷史數(shù)據(jù)的有效利用率,同時(shí)通過(guò)隨機(jī)采樣打破了數(shù)據(jù)之間的相關(guān)性。固定目標(biāo)Q網(wǎng)絡(luò)的引入進(jìn)一步穩(wěn)定了動(dòng)作值函數(shù)的訓(xùn)練過(guò)程。此外,通過(guò)截?cái)嗒?jiǎng)賞信號(hào)并對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行正則化,DQN限制了梯度的范圍,從而實(shí)現(xiàn)了更為魯棒的訓(xùn)練過(guò)程。下方展示了DQN網(wǎng)絡(luò)的結(jié)構(gòu)圖:

在這里插入圖片描述
在2016年的Ben Lua項(xiàng)目中,演示了如何運(yùn)用深度確定性政策梯度算法(DDPG,Deep Deterministic Policy Gradient)——這是由DeepMind的Lillicrap等人在2016年提出的方法。該方法核心思想在于將卷積神經(jīng)網(wǎng)絡(luò)作為策略函數(shù)μ和Q函數(shù)的近似模型,即策略網(wǎng)絡(luò)和Q網(wǎng)絡(luò)。通過(guò)深度學(xué)習(xí)技術(shù)對(duì)這些神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。

他們將這一方法與Keras框架結(jié)合,應(yīng)用于TORCS(The Open Racing Car Simulator,開(kāi)放賽車模擬器),這是一個(gè)富有趣味性的AI賽車游戲和研究平臺(tái)。當(dāng)時(shí),TORCS被視為出色的駕駛仿真平臺(tái),因?yàn)榻柚@個(gè)仿真環(huán)境,我們可以觀察神經(jīng)網(wǎng)絡(luò)隨著時(shí)間推移如何進(jìn)行學(xué)習(xí),并檢驗(yàn)其學(xué)習(xí)過(guò)程。通過(guò)在這一仿真環(huán)境中進(jìn)行實(shí)驗(yàn),我們可以更輕松地理解自動(dòng)駕駛中的機(jī)器學(xué)習(xí)技術(shù)。

在這里插入圖片描述

英國(guó)自動(dòng)駕駛初創(chuàng)公司W(wǎng)ayve在2018年公布了其使用Actor-Critic強(qiáng)化學(xué)習(xí)框架快速訓(xùn)練駕駛策略的論文 。從隨機(jī)初始化的參數(shù)中,他們的模型能夠在少量使用單目圖像作為輸入的訓(xùn)練片段中學(xué)習(xí)車道跟蹤策略,采用的自動(dòng)駕駛框架,擺脫了對(duì)定義的邏輯規(guī)則、映射和直接監(jiān)督的依賴。
在這里插入圖片描述

研究目的及意義

真正的自動(dòng)駕駛汽車(即能夠在任何要求的環(huán)境中安全駕駛)的關(guān)鍵是更加重視關(guān)于其軟件的自學(xué)能力。換句話說(shuō),自動(dòng)駕駛汽車首先是人工智能問(wèn)題,需要一個(gè)非常具體的機(jī)器學(xué)習(xí)開(kāi)發(fā)技能。而強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要分支,是多學(xué)科多領(lǐng)域交叉的一個(gè)產(chǎn)物,它的本質(zhì)是解決決策(decision making)問(wèn)題,即自動(dòng)進(jìn)行決策,并且可以做連續(xù)決策。通過(guò)搭建仿真環(huán)境,設(shè)計(jì)強(qiáng)化學(xué)習(xí)框架,并且無(wú)需 3D 地圖,也無(wú)需規(guī)則編程,讓汽車從零開(kāi)始在短時(shí)間內(nèi)學(xué)會(huì)在模擬真實(shí)駕駛環(huán)境中自動(dòng)駕駛。

  • ? 仿真駕駛環(huán)境的個(gè)性化搭建/復(fù)雜環(huán)境對(duì)代理算法的挑戰(zhàn)研究:討論如何設(shè)置系統(tǒng),以便在現(xiàn)實(shí)世界的車輛上高效、安全地學(xué)習(xí)駕駛;
  • ? 新環(huán)境中,為了快速探索全圖的策略討論研究,如數(shù)據(jù)增強(qiáng)方面:通過(guò)連續(xù)深度強(qiáng)化學(xué)習(xí)算法,僅使用車載計(jì)算,在幾個(gè)短視頻中學(xué)習(xí)駕駛一輛模擬真實(shí)世界的自動(dòng)駕駛汽車;
  • ? 強(qiáng)化學(xué)習(xí)算法框架研究,根據(jù)不同環(huán)境觀測(cè)維度精確設(shè)計(jì)底層框架和損失函數(shù)以及獎(jiǎng)勵(lì)機(jī)制:算法基于model- based VS model-
    free的有效性對(duì)比。

項(xiàng)目設(shè)計(jì)內(nèi)容

算法介紹

馬爾可夫鏈及馬爾可夫決策過(guò)程

馬爾可夫鏈(Markov Chain):
在這里插入圖片描述
描述狀態(tài)轉(zhuǎn)移可以用狀態(tài)轉(zhuǎn)移矩陣:
在這里插入圖片描述
表示agent在st這個(gè)狀態(tài)下的時(shí)候到下一個(gè)狀態(tài)的概率:
在這里插入圖片描述
馬爾可夫獎(jiǎng)勵(lì)決策過(guò)程(Markov Decision Reward Process, MDRP):MDRP = Markov Chain + reward

與馬爾科夫鏈相比,多了一個(gè)獎(jiǎng)勵(lì)函數(shù):
在這里插入圖片描述
到達(dá)某個(gè)狀態(tài)后,可以獲得的獎(jiǎng)勵(lì),其獎(jiǎng)勵(lì)的折扣因子, 折扣因子越大,Agent越關(guān)注未來(lái)的獎(jiǎng)勵(lì),而不僅僅只關(guān)注當(dāng)前的利益:
在這里插入圖片描述
最終的獎(jiǎng)勵(lì)為:
在這里插入圖片描述

強(qiáng)化學(xué)習(xí)

強(qiáng)化學(xué)習(xí)的目標(biāo)是學(xué)習(xí)到策略,使得累計(jì)回報(bào)的期望值最大,即:
在這里插入圖片描述
為了便于求解最優(yōu)策略,引入值函數(shù)和動(dòng)作狀態(tài)值函數(shù)來(lái)評(píng)價(jià)某個(gè)狀態(tài)和動(dòng)作的優(yōu)劣。值函數(shù)的定義如下:
在這里插入圖片描述
動(dòng)作狀態(tài)值函數(shù)定義為:
在這里插入圖片描述
解決值函數(shù)和動(dòng)作狀態(tài)值函數(shù)的方法可以分為基于表的方法和基于值函數(shù)逼近的方法。在基于表的方法中,傳統(tǒng)的動(dòng)態(tài)規(guī)劃、蒙特卡洛和時(shí)間差分(Temporal Difference,簡(jiǎn)稱TD)算法都屬于這一類,其本質(zhì)是構(gòu)建一個(gè)Q(s,a)表格,其中行表示狀態(tài),列表示動(dòng)作,通過(guò)迭代計(jì)算不斷更新表中的值。如下圖所示,上方的三個(gè)環(huán)境維度展示了在狀態(tài)較少時(shí),使用Q表能夠容納這些維度,并且在實(shí)際決策時(shí)遍歷較小的表并不會(huì)引起明顯的時(shí)間延遲。

然而,當(dāng)環(huán)境狀態(tài)數(shù)量龐大時(shí),例如圍棋盤(pán)面狀態(tài)或機(jī)器人運(yùn)動(dòng)狀態(tài)等,狀態(tài)的數(shù)量變得無(wú)法計(jì)數(shù),這時(shí)基于表的方法就無(wú)法應(yīng)用。因此,基于值函數(shù)逼近的方法更適用于這些復(fù)雜環(huán)境。

在強(qiáng)化學(xué)習(xí)的眾多子算法中,分為兩大流派:model-based/off-policy 和 value-based/on-policy , 在我們這次的自動(dòng)駕駛項(xiàng)目中,我們需要關(guān)注的是我們的動(dòng)作是連續(xù)的還是離散問(wèn)題。

當(dāng)需要解決的問(wèn)題是連續(xù)動(dòng)作(如gym的carmountin-v0),則采取基于policy gradient的算法:DDPG,PPO,A3C等。

當(dāng)需要解決的問(wèn)題是離散動(dòng)作(CarMountinCounts-v0)時(shí),則可采取基于value的算法,如 Q-learning, DQN, A3C, PPO等。

Deep Q-Network的一大局限性是輸出/動(dòng)作是離散的,而賽車中的轉(zhuǎn)向等動(dòng)作是連續(xù)的。將DQN應(yīng)用于連續(xù)域的一個(gè)明顯方法是對(duì)動(dòng)作空間進(jìn)行簡(jiǎn)單的離散化。且容易遇到了維數(shù)的詛咒問(wèn)題。例如,如果你將方向盤(pán)離散化,從-90度到+90度,每5度,加速度從0km到300km,每5km,你的輸出組合將是36個(gè)轉(zhuǎn)向狀態(tài)乘以60個(gè)速度狀態(tài),等于2160種可能的組合。如果你想讓機(jī)器人執(zhí)行一些非常專業(yè)的操作,比如需要對(duì)動(dòng)作進(jìn)行精細(xì)控制的腦外科手術(shù),而天真的離散化將無(wú)法達(dá)到操作所需的精度,那么情況就會(huì)變得更糟。

所以,連續(xù)問(wèn)題算法DDPG是不錯(cuò)的選擇,具體哪個(gè)更適合自己搭建的仿真環(huán)境,需要經(jīng)過(guò)實(shí)驗(yàn)對(duì)比得出有效結(jié)論。

神經(jīng)網(wǎng)絡(luò)

人工神經(jīng)網(wǎng)絡(luò)的架構(gòu)大致可分為兩大類。一類是前饋和遞歸神經(jīng)網(wǎng)絡(luò)(RNN),前饋網(wǎng)絡(luò)采用單個(gè)輸入(例如游戲狀態(tài)的表示),并輸出每個(gè)可能動(dòng)作的概率值。另一類是卷積神經(jīng)網(wǎng)絡(luò)(CNN),它由可訓(xùn)練的濾波器組成,適用于處理圖像數(shù)據(jù),例如來(lái)自視頻游戲屏幕的像素。
在這里插入圖片描述
RNN 通常應(yīng)用于時(shí)間序列數(shù)據(jù),其中網(wǎng)絡(luò)的輸出取決于先前時(shí)間步驟的激活。除了網(wǎng)絡(luò)的先前隱藏狀態(tài)與下一個(gè)輸入一起反饋給網(wǎng)絡(luò)外,RNN 的訓(xùn)練過(guò)程類似于前饋網(wǎng)絡(luò)。這就允許網(wǎng)絡(luò)通過(guò)記憶先前的激活而變得具有上下文感知,這在那種單個(gè)觀察不代表完整狀態(tài)的游戲中是非常有用的。對(duì)于視頻游戲,通常使用一堆卷積層,然后是循環(huán)層和完全連接的前饋層。

仿真平臺(tái)

OpenAI gym

gym是一個(gè)開(kāi)發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包。它對(duì)代理的結(jié)構(gòu)沒(méi)有任何假設(shè),并且與任何數(shù)值計(jì)算庫(kù)兼容,比如TensorFlow或Theano。gym的庫(kù)是一個(gè)測(cè)試問(wèn)題的集合環(huán)境,你可以用它來(lái)解決你的強(qiáng)化學(xué)習(xí)算法。這些環(huán)境有一個(gè)共享的接口,允許編寫(xiě)通用算法。
當(dāng)python>=3.5時(shí),可直接pip install gym
其駕駛環(huán)境有:MountainCarContinuous-v0(附上環(huán)境配置教程 ),MountainCar-v0 (附python code)
在這里插入圖片描述

Torcs配置

可以在TORCS中開(kāi)發(fā)自己的智能車,TORCS提供了幾種可用的模式,但客戶端-服務(wù)器模式僅支持兩種模型:Practice和Quick Race。其中Practice支持一輛車參加比賽,Quick Race支持多輛車參加比賽。TORCS是一個(gè)具有高度可移植性的賽車模擬器。它可作為普通的賽車游戲,同樣能做為賽車游戲和人工智能的研究平臺(tái)。它可運(yùn)行在Linux(x86,AMD64,PPC),FreeBSD,Mac OS X和Windows之上。仿真功能包含簡(jiǎn)單的損傷模型,碰撞,輪胎和車輪屬性(彈簧,減震器,剛度等),空氣動(dòng)力學(xué)(地面效應(yīng),破壞等)及更多。
在這里插入圖片描述
在這里插入圖片描述

GTA5

Grand Theft Auto是由Rockstar Games開(kāi)發(fā)的以犯罪為主題的世界著名游戲,其中駕駛模擬器被很多強(qiáng)化學(xué)習(xí)愛(ài)好者所使用。
在這里插入圖片描述

在這里插入圖片描述

參數(shù)選擇

行動(dòng)空間

有人或許會(huì)認(rèn)為駕駛本身囊括了一系列天然的動(dòng)作,如加速、剎車、信號(hào)等。然而,強(qiáng)化學(xué)習(xí)算法應(yīng)該在什么領(lǐng)域輸出呢?以節(jié)流閥為例,它可以被描述為離散的狀態(tài),要么是開(kāi)要么是關(guān),或者在某個(gè)范圍內(nèi)如[0,1]的連續(xù)度量。另一種選擇是重新參數(shù)化節(jié)流閥的速度設(shè)定點(diǎn),使其與經(jīng)典控制器中設(shè)定點(diǎn)的輸出相匹配??傮w而言,在一個(gè)簡(jiǎn)單的模擬器環(huán)境中,連續(xù)動(dòng)作盡管可能更具挑戰(zhàn)性,卻提供了更加平滑的控制方式。這種情況下,可以采用二維行動(dòng)空間,其中包括范圍在[-1, 1]內(nèi)的轉(zhuǎn)向角度以及以km/h為單位的速度設(shè)定值。
在這里插入圖片描述
如圖為觀測(cè)空間,從應(yīng)用問(wèn)題來(lái)看,越復(fù)雜的問(wèn)題,其觀測(cè)空間維度越高。

獎(jiǎng)勵(lì)函數(shù)

獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)可以接近監(jiān)督學(xué)習(xí)給定的車道分類系統(tǒng),獎(jiǎng)勵(lì)學(xué)習(xí)車道跟蹤可以建立在最小化預(yù)測(cè)距離車道中心,先前的研究 采用的方法。這種方法在規(guī)模上是有限的:系統(tǒng)只能與手工制作的獎(jiǎng)勵(lì)背后的人類直覺(jué)一樣好。我們不采用這種方法。相反,我們將獎(jiǎng)勵(lì)定義為前進(jìn)速度并在違反交通規(guī)則時(shí)終止一段情節(jié),因此給定狀態(tài)V(st)的值對(duì)應(yīng)于在違反交通規(guī)則前行駛的平均距離。一個(gè)可以識(shí)別的錯(cuò)誤是代理可能會(huì)選擇避免更困難的操作,例如在英國(guó)向右轉(zhuǎn)(在美國(guó)向左)。命令條件獎(jiǎng)勵(lì)可以在未來(lái)的工作中使用,以避免這種情況。

環(huán)境及軟件包

Python軟件及依賴包
Python=3.6-3.8
Opencv
Tensorflow-gpu
Keras
Numpy
OpenAI gym

步驟

  1. ? 根據(jù)系統(tǒng)配置python軟件和環(huán)境:推薦miniconda3 + pycharm
  2. ? 配置openAI gym 和深度學(xué)習(xí)(tensorflow+keras or torch)虛擬環(huán)境
  3. ? 駕駛平臺(tái)搭建和環(huán)境設(shè)置
  4. ? 強(qiáng)化學(xué)習(xí)框架設(shè)計(jì),獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)
  5. ? 駕駛渲染記錄數(shù)據(jù)供強(qiáng)化學(xué)習(xí)訓(xùn)練
  6. ? 訓(xùn)練及驗(yàn)證結(jié)論
  7. ? 論文寫(xiě)作

可參考項(xiàng)目

OpenAI gym: https://github.com/andywu0913/OpenAI-GYM-CarRacing-DQN
Torcs平臺(tái):https://github.com/yanpanlau/DDPG-Keras-Torcs
GTA平臺(tái):https://github.com/Sentdex/pygta5

參考

https://deepmind.com/research/publications/human-level-control-through-deep-reinforcement-learning
https://yanpanlau.github.io/2016/10/11/Torcs-Keras.html Kendall, A. , et al. “Learning to Drive in a Day.” (2018)
https://gym.openai.com/envs/MountainCar-v0
https://www.jianshu.com/p/915671bf670b?utm_campaign=shakespeare
https://gym.openai.com/envs/MountainCar-v0/
https://zhuanlan.zhihu.com/p/57648478
https://github.com/Sentdex/pygta5

基于openAI gym 的mountincar-v0的強(qiáng)化學(xué)習(xí)code入門(mén)

#!/usr/bin/python
# -*- encoding:utf-8 -*-
# @author: cy
# @time: 2021/7/8 下午3:03
# @project_name: PyCharm
# @file: car.py
'''
import gym
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers# configuration parameters for whole step
seed=42
gamma=0.99 #discount
max_steps_per_episode=10000# env
env=gym.make('MountainCar-v0')
# env=gym.make('CartPole-v0')
# env.seed(seed)
env.reset()
action = env.action_space.sample()
# print('action',action)
# action = env.action_space
# state = tf.convert_to_tensor(state)
# state = tf.expand_dims(state, 0)
for i in range (1000):# action = np.random.choice(2, p=np.squeeze(1))env.render()# action = np.random.uniform(action)abs,r,done,info=env.step(action)# print(abs)# print(done)# print(info)env.close()
'''import numpy as np
import gym
from gym import wrappersoff_policy = True  # if True use off-policy q-learning update, if False, use on-policy SARSA updaten_states = 40  # Discrete value
iter_max = 100
initial_lr = 1.0  # Learning rate
min_lr = 0.003
gamma = 0.99
t_max = 10000
eps = 0.1'''
observation state :(2,)
'''
def obs_to_state(env, obs):""" Maps an observation to state """# we quantify the continous state space into discrete spaceenv_low = env.observation_space.low  # !env_high = env.observation_space.high  # !env_dx = (env_high - env_low) / n_states  # state discretizationa = int((obs[0] - env_low[0]) / env_dx[0])  # '/'b = int((obs[1] - env_low[1]) / env_dx[1])# print('env_low:{}    env_high:{}   env_dx:{}  obs[0]:{}  obs[1]:{}  a:{}  b:{}'.format(env_low,env_high,env_dx,obs[0],obs[1],a,b))'''env_low:[-1.2  -0.07]    env_high:[0.6  0.07]   env_dx:[0.045  0.0035]  obs[0]:-0.8533420682038003  obs[1]:-0.03403819682165786  a:7  b:10'''return a, bdef run_episode(env, policy=None, render=False):obs = env.reset()  # reset envtotal_reward = 0step_idx = 0for _ in range(t_max):  # we know it can end the game in 10000 stepif render:env.render()  # fresh envif policy is None:action = env.action_space.sample()  # initialize actionelse:  # policy chose , the action is fixeda, b = obs_to_state(env, obs)  # it comes from the number34 codeaction = policy[a][b]obs, reward, done, _ = env.step(action)total_reward += gamma ** step_idx * rewardstep_idx += 1if done:breakreturn total_rewardif __name__ == '__main__':env_name = 'MountainCar-v0'  # the name of id can searchenv = gym.make(env_name)  # make a envenv.seed(0)  # let the resule can be samenp.random.seed(0)  # let the resule can be sameif off_policy == True:  # confirm the policyprint('----- using Q Learning -----')else:print('------ using SARSA Learning ---')q_table = np.zeros((n_states, n_states, 3))  # 3 action,and the dimensional of state is 3for i in range(iter_max):  # the ep is 5000obs = env.reset()  # reset the envtotal_reward = 0  # 0 reward## eta: learning rate is decreased at each stepeta = max(min_lr, initial_lr * (0.85 ** (i // 100)))for j in range(t_max):  # the ep is 10000,after we need reset enva, b = obs_to_state(env, obs)  # State value after discretizationif np.random.uniform(0, 1) < eps:action = np.random.choice(env.action_space.n)  # such as 0,1,2else:action = np.argmax(q_table[a][b])obs, reward, done, _ = env.step(action)total_reward += reward# update q tablea_, b_ = obs_to_state(env, obs)if off_policy == True:# use q-learning update (off-policy learning)q_table[a][b][action] = q_table[a][b][action] + eta * (reward + gamma * np.max(q_table[a_][b_]) - q_table[a][b][action])else:# use SARSA update (on-policy learning)# epsilon-greedy policy on Q againif np.random.uniform(0, 1) < eps:action_ = np.random.choice(env.action_space.n)else:action_ = np.argmax(q_table[a_][b_])q_table[a][b][action] = q_table[a][b][action] + eta * (reward + gamma * q_table[a_][b_][action_] - q_table[a][b][action])if done:breakif i % 200 == 0:  # print learning info per 200 stepsprint('Iteration #%d -- Total reward = %d.' % (i + 1, total_reward))solution_policy = np.argmax(q_table, axis=2)solution_policy_scores = [run_episode(env, solution_policy, False) for _ in range(100)]print("Average score of solution = ", np.mean(solution_policy_scores))# Animate itfor _ in range(2):run_episode(env, solution_policy, True)env.close()
http://www.risenshineclean.com/news/33879.html

相關(guān)文章:

  • wordpress導(dǎo)航添加廣州各區(qū)正在進(jìn)一步優(yōu)化以下措施
  • 陜西省建設(shè)廳三類人員報(bào)名網(wǎng)站哪里可以免費(fèi)推廣廣告
  • 找人做網(wǎng)站服務(wù)器不是自己的怎么辦十大微商推廣平臺(tái)
  • 外貿(mào)網(wǎng)站案例成都百度業(yè)務(wù)員電話
  • 網(wǎng)站建設(shè)在哪個(gè)軟件下做百度灰色關(guān)鍵詞排名技術(shù)
  • 做網(wǎng)站的心得調(diào)價(jià)智能關(guān)鍵詞軟件
  • 網(wǎng)站建設(shè)評(píng)價(jià)標(biāo)準(zhǔn)百度快速查詢
  • 電影網(wǎng)站盜鏈怎么做seo是搜索引擎營(yíng)銷嗎
  • 重慶二級(jí)建造師證書(shū)查詢廣西seo經(jīng)理
  • 成都的網(wǎng)站建設(shè)公司哪家好百度網(wǎng)站禁止訪問(wèn)怎么解除
  • 深圳建設(shè)網(wǎng)站排名剛剛濟(jì)南發(fā)通知
  • 深圳網(wǎng)站快速備案淄博百度推廣
  • led燈外貿(mào)網(wǎng)站建設(shè)百度關(guān)鍵詞刷排名軟件
  • 做網(wǎng)站外國(guó)的服務(wù)器怎么做網(wǎng)絡(luò)廣告推廣
  • 網(wǎng)站策劃模板怎樣做網(wǎng)站推廣
  • 怎么與其他網(wǎng)站做友情鏈接免費(fèi)收錄網(wǎng)站
  • 盤(pán)錦做網(wǎng)站專家免費(fèi)seo快速收錄工具
  • 建設(shè)企業(yè)網(wǎng)站對(duì)公百度網(wǎng)盤(pán)登錄入口官網(wǎng)
  • 在線設(shè)計(jì)平臺(tái)有什么用長(zhǎng)春seo網(wǎng)站優(yōu)化
  • 做ppt找素材的網(wǎng)站網(wǎng)絡(luò)營(yíng)銷包括幾個(gè)部分
  • 企業(yè)網(wǎng)站優(yōu)化電話黑帽友情鏈接
  • 四川省建設(shè)廳網(wǎng)站官網(wǎng)建立網(wǎng)站需要多少錢
  • 成都的網(wǎng)站建設(shè)開(kāi)發(fā)公司怎么優(yōu)化關(guān)鍵詞
  • 專做蔬菜大棚的網(wǎng)站推廣策劃方案
  • 創(chuàng)建門(mén)戶網(wǎng)站網(wǎng)絡(luò)營(yíng)銷的特點(diǎn)有哪些
  • 網(wǎng)站上的qq咨詢?cè)趺醋鰏eo在線外鏈
  • 寧波網(wǎng)站推廣廠家郴州網(wǎng)絡(luò)推廣公司排名
  • 濟(jì)南網(wǎng)站建設(shè)代理銷售系統(tǒng)
  • 深圳商城網(wǎng)站哪家做的好外貿(mào)全網(wǎng)營(yíng)銷推廣
  • 網(wǎng)站備案核實(shí)企業(yè)軟文范例