0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何構(gòu)建強(qiáng)化學(xué)習(xí)模型來(lái)訓(xùn)練無(wú)人車算法

ml8z_IV_Technol ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-11-12 14:47 ? 次閱讀

本文作者通過(guò)簡(jiǎn)單的方式構(gòu)建了強(qiáng)化學(xué)習(xí)模型來(lái)訓(xùn)練無(wú)人車算法,可以為初學(xué)者提供快速入門的經(jīng)驗(yàn)。

想象一下,你生活在一個(gè)沒(méi)有交通擁堵,沒(méi)有交通事故,也無(wú)需花費(fèi)時(shí)間開車的世界,那會(huì)多美好。

在我之前做過(guò)的一篇關(guān)于強(qiáng)化學(xué)習(xí)的文章中(鏈接在文末)曾說(shuō)過(guò),自動(dòng)駕駛汽車是一場(chǎng)革命,主要有兩個(gè)原因:

每年因交通事故將挽救125萬(wàn)人的生命

省下開車的時(shí)間,它會(huì)讓你在一生中多活3年

很多公司已經(jīng)在研究自動(dòng)駕駛汽車了!比如特斯拉,谷歌,Wayve等等。這些自動(dòng)駕駛汽車往往使用了強(qiáng)化學(xué)習(xí)!

再說(shuō)一遍,如果你還沒(méi)有讀上一篇文章(鏈接在文末),可以先讀一下,在這里我只做上篇文章的簡(jiǎn)要概述。

強(qiáng)化學(xué)習(xí)使機(jī)器(或者稱為智能體)通過(guò)實(shí)驗(yàn)學(xué)習(xí)。就像人類學(xué)習(xí)走路。起初,你以一定的方式移動(dòng)你的腿,但是你會(huì)跌倒。你跌倒了很多次,但最終,經(jīng)過(guò)多次嘗試,你會(huì)慢慢學(xué)會(huì)如何移動(dòng)你的腿來(lái)走路。強(qiáng)化學(xué)習(xí)的原則與此相同!

比較正式的說(shuō)法是,具有特定狀態(tài)的環(huán)境中的智能體具有可以執(zhí)行的一組動(dòng)作。在執(zhí)行這些動(dòng)作后,它會(huì)收到一個(gè)獎(jiǎng)勵(lì),讓智能體知道這個(gè)動(dòng)作有多好。當(dāng)然,我們希望得到與我們目標(biāo)相符的最高的獎(jiǎng)勵(lì)。貝爾曼方程用于說(shuō)明未來(lái)的獎(jiǎng)勵(lì),它通常是一系列導(dǎo)致積極結(jié)果的動(dòng)作。在Q學(xué)習(xí)函數(shù)(Q-Learning)中,我們使用這些獎(jiǎng)勵(lì)來(lái)更新可以告訴我們某個(gè)狀態(tài)有好壞的Q值。在深度Q學(xué)習(xí)(Deep Q-Learning)中,我們使用可以近似Q值的深度神經(jīng)網(wǎng)絡(luò)來(lái)代替Q值。當(dāng)下次我們的智能體在環(huán)境中移動(dòng)時(shí),它將使用深度Q網(wǎng)絡(luò)(Deep Q-Network)為每個(gè)動(dòng)作生成Q值,并采用具有最高Q值的動(dòng)作。

概念說(shuō)太多也許你不明白,直觀理解就足夠了。強(qiáng)化學(xué)習(xí)與我們學(xué)習(xí)的方式進(jìn)行比較是:

我們采取的行動(dòng)會(huì)產(chǎn)生正面或反面的后果。如果它是正面的,我們會(huì)再次采取行動(dòng),反之亦然。就這么簡(jiǎn)單!

現(xiàn)在開始構(gòu)建我們的虛擬自動(dòng)駕駛汽車,讓我們來(lái)看看構(gòu)建的過(guò)程。

1.建立環(huán)境

首先,我需要為我的車創(chuàng)建虛擬環(huán)境。我最初想到創(chuàng)建一個(gè)Unity環(huán)境,但我的筆記本電腦在創(chuàng)建Unity游戲時(shí)感覺(jué)已經(jīng)快死了。再加上機(jī)器學(xué)習(xí)和錄制軟件,我認(rèn)為這么麻煩不值得。

我使用了一個(gè)名為Kivy的python包來(lái)創(chuàng)建UI。

我們從一張空地圖開始。“汽車”的目標(biāo)是在地圖的左上角到右下角之間來(lái)回移動(dòng)。

但是,我可以在地圖上繪制“沙地”。如果汽車碰到了沙地,就會(huì)被視為出了車禍!

我們將使用強(qiáng)化學(xué)習(xí)(RL),特別是深度Q-Learning來(lái)制造我們的自動(dòng)駕駛汽車。RL算法都有3個(gè)關(guān)鍵元素,狀態(tài)(State),動(dòng)作(Action)和獎(jiǎng)勵(lì)(Reward)。以下我的程序中定義這些元素的方式:

狀態(tài)

汽車所處的狀態(tài)包括5個(gè)變量:

傳感器紅色

傳感器黃色

傳感器藍(lán)色

方向

負(fù)方向

前三個(gè)來(lái)自汽車前部的3個(gè)傳感器。每個(gè)傳感器(紅色,黃色,藍(lán)色)都能探測(cè)到距離自身10像素半徑內(nèi)的沙地的像素。從邏輯上講,也就是說(shuō),如果汽車左側(cè)有一堵沙墻,藍(lán)色傳感器會(huì)比黃色傳感器探測(cè)到的沙地更多。這使汽車可以確定沙地的位置,從而確定行進(jìn)的方向。最后2個(gè)變量代表汽車的方向。以角度衡量,0度將指向上方。我們還添加了負(fù)方向方便優(yōu)化和提升性能。

動(dòng)作

有三種可能的行動(dòng):

順時(shí)針旋轉(zhuǎn)20度

逆時(shí)針轉(zhuǎn)動(dòng)20度

不轉(zhuǎn)彎

獎(jiǎng)勵(lì)

主要獎(jiǎng)勵(lì)包括:

-5:如果汽車駛?cè)肷车?/p>

-0.1:如果汽車離目的地越遠(yuǎn)

0.1:如果汽車更接近目的地

這些只是主要的獎(jiǎng)勵(lì)。我還根據(jù)汽車的性能定義了其他獎(jiǎng)勵(lì)。例如,我后來(lái)意識(shí)到汽車離地圖的邊緣太近了,所以每當(dāng)距離邊緣10個(gè)像素內(nèi)時(shí)我就給它一個(gè)負(fù)獎(jiǎng)勵(lì)。在實(shí)踐中,你可以自行定義獎(jiǎng)勵(lì),以獲得自己想要達(dá)到的效果。

2.選擇模型

我決定使用強(qiáng)化學(xué)習(xí),特別是深度Q學(xué)習(xí)。這是我的神經(jīng)網(wǎng)絡(luò)的架構(gòu):

輸入層:5個(gè)節(jié)點(diǎn)(每個(gè)狀態(tài)一個(gè)輸入節(jié)點(diǎn))

隱藏層:30個(gè)節(jié)點(diǎn)

輸出層:3個(gè)節(jié)點(diǎn)(每個(gè)動(dòng)作一個(gè))

激活函數(shù):ReLU

優(yōu)化器:Adam

一個(gè)隱藏層通常足以解決這類簡(jiǎn)單的問(wèn)題。再進(jìn)行訓(xùn)練需要更長(zhǎng)的時(shí)間,并且不會(huì)帶來(lái)顯著的性能提升。

3.訓(xùn)練

訓(xùn)練時(shí),汽車開始行駛,并逐漸適應(yīng)環(huán)境。我添加了按鈕來(lái)保存,并將以前的模型加載到當(dāng)前的自動(dòng)駕駛汽車中。以下是我們實(shí)際學(xué)習(xí)的代碼片段:

4.評(píng)估和參數(shù)調(diào)整

這是智能體每個(gè)時(shí)間步獲得獎(jiǎng)勵(lì)的圖。在圖中,智能體每次接近目標(biāo)時(shí)都獲得+1獎(jiǎng)勵(lì),遠(yuǎn)離則獲得-1獎(jiǎng)勵(lì)。這由+0.1和-0.1累積而來(lái)。訓(xùn)練在1500個(gè)時(shí)間步后達(dá)到穩(wěn)定水平。

上面是更早之前生成的圖。這是當(dāng)智能體視離目標(biāo)的遠(yuǎn)近分別獲得+0.1和-0.1獎(jiǎng)勵(lì)。如你所見(jiàn),獎(jiǎng)勵(lì)在2000步之后穩(wěn)定了,而不是這次的1500步。這兩個(gè)圖平均需要10個(gè)不同的訓(xùn)練周期。結(jié)果表明,+1和-1獎(jiǎng)勵(lì)訓(xùn)練速度比+0.1和-0.1獎(jiǎng)勵(lì)更快。

對(duì)該模型進(jìn)行了許多其他更改。比如:

天氣調(diào)整

額外的獎(jiǎng)勵(lì)(例如,智能體不采取最佳路線。我們?cè)黾营?jiǎng)勵(lì),鼓勵(lì)智能體降低與上一圈相比達(dá)到目標(biāo)的步數(shù)。)

不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)(例如,層數(shù),節(jié)點(diǎn)數(shù),優(yōu)化器,激活函數(shù))

5.預(yù)測(cè)!

現(xiàn)在,我們的優(yōu)化模型。我們的汽車可以無(wú)碰撞地進(jìn)行自動(dòng)駕駛!

我在這里開發(fā)了RL驅(qū)動(dòng)的自動(dòng)駕駛汽車的基礎(chǔ)架構(gòu)。現(xiàn)實(shí)生活中的汽車將更難進(jìn)行編碼,但我相信我們最終會(huì)成功。并且,我是在筆記本電腦上進(jìn)行研發(fā),其計(jì)算能力比特斯拉公司的小數(shù)百萬(wàn)倍。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:強(qiáng)化學(xué)習(xí)開源項(xiàng)目:自己動(dòng)手創(chuàng)建虛擬自動(dòng)駕駛汽車

文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深度強(qiáng)化學(xué)習(xí)實(shí)戰(zhàn)

    內(nèi)容2:課程一: TensoRFlow入門到熟練:課程二:圖像分類:課程三:物體檢測(cè):課程四:人臉識(shí)別:課程五:算法實(shí)現(xiàn):1、卷積神經(jīng)網(wǎng)絡(luò)CNN2、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN3、強(qiáng)化學(xué)習(xí)DRL4、對(duì)抗性生成
    發(fā)表于 01-10 13:42

    基于強(qiáng)化學(xué)習(xí)的MADDPG算法原理及實(shí)現(xiàn)

    之前接觸的強(qiáng)化學(xué)習(xí)算法都是單個(gè)智能體的強(qiáng)化學(xué)習(xí)算法,但是也有很多重要的應(yīng)用場(chǎng)景牽涉到多個(gè)智能體之間的交互。
    的頭像 發(fā)表于 11-02 16:18 ?2.2w次閱讀

    量化深度強(qiáng)化學(xué)習(xí)算法的泛化能力

    OpenAI 近期發(fā)布了一個(gè)新的訓(xùn)練環(huán)境 CoinRun,它提供了一個(gè)度量智能體將其學(xué)習(xí)經(jīng)驗(yàn)活學(xué)活用到新情況的能力指標(biāo),而且還可以解決一項(xiàng)長(zhǎng)期存在于強(qiáng)化學(xué)習(xí)中的疑難問(wèn)題——即使是廣受贊譽(yù)的強(qiáng)化
    的頭像 發(fā)表于 01-01 09:22 ?2593次閱讀
    量化深度<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b><b class='flag-5'>算法</b>的泛化能力

    基于PPO強(qiáng)化學(xué)習(xí)算法的AI應(yīng)用案例

    Viet Nguyen就是其中一個(gè)。這位來(lái)自德國(guó)的程序員表示自己只玩到了第9個(gè)關(guān)卡。因此,他決定利用強(qiáng)化學(xué)習(xí)AI算法來(lái)幫他完成未通關(guān)的遺憾。
    發(fā)表于 07-29 09:30 ?3032次閱讀

    機(jī)器學(xué)習(xí)中的無(wú)模型強(qiáng)化學(xué)習(xí)算法及研究綜述

    強(qiáng)化學(xué)習(xí)( Reinforcement learning,RL)作為機(jī)器學(xué)習(xí)領(lǐng)域中與監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)并列的第三種學(xué)習(xí)范式,通過(guò)與環(huán)境進(jìn)行
    發(fā)表于 04-08 11:41 ?11次下載
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>中的無(wú)<b class='flag-5'>模型</b><b class='flag-5'>強(qiáng)化學(xué)習(xí)</b><b class='flag-5'>算法</b>及研究綜述

    模型化深度強(qiáng)化學(xué)習(xí)應(yīng)用研究綜述

    強(qiáng)化學(xué)習(xí)。無(wú)模型強(qiáng)仳學(xué)習(xí)方法的訓(xùn)練過(guò)程需要大量樣本,當(dāng)采樣預(yù)算不足,無(wú)法收集大量樣本時(shí),很難達(dá)到預(yù)期效果。然而,模型
    發(fā)表于 04-12 11:01 ?9次下載
    <b class='flag-5'>模型</b>化深度<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>應(yīng)用研究綜述

    基于深度強(qiáng)化學(xué)習(xí)的路口單交叉信號(hào)控制

    利用深度強(qiáng)化學(xué)習(xí)技術(shù)實(shí)現(xiàn)路口信號(hào)控制是智能交通領(lǐng)域的硏究熱點(diǎn)?,F(xiàn)有硏究大多利用強(qiáng)化學(xué)習(xí)來(lái)全面刻畫交通狀態(tài)以及設(shè)計(jì)有效強(qiáng)化學(xué)習(xí)算法以解決信號(hào)配
    發(fā)表于 04-23 15:30 ?21次下載
    基于深度<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>的路口單交叉信號(hào)控制

    基于深度強(qiáng)化學(xué)習(xí)仿真集成的壓邊力控制模型

    壓邊力控制策略的學(xué)習(xí)優(yōu)化。基于深度強(qiáng)化學(xué)習(xí)的壓邊力優(yōu)化算法,利用深度神經(jīng)網(wǎng)絡(luò)處理巨大的狀態(tài)空間,避免了系統(tǒng)動(dòng)力學(xué)的擬合,并且使用一種新的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)構(gòu)
    發(fā)表于 05-27 10:32 ?0次下載

    基于深度強(qiáng)化學(xué)習(xí)無(wú)人機(jī)控制律設(shè)計(jì)方法

    基于深度強(qiáng)化學(xué)習(xí)無(wú)人機(jī)控制律設(shè)計(jì)方法
    發(fā)表于 06-23 14:59 ?46次下載

    基于強(qiáng)化學(xué)習(xí)的虛擬場(chǎng)景角色乒乓球訓(xùn)練

    基于強(qiáng)化學(xué)習(xí)的虛擬場(chǎng)景角色乒乓球訓(xùn)練
    發(fā)表于 06-27 11:34 ?62次下載

    強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)和6種基本算法解釋

    來(lái)源:DeepHub IMBA 強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)和概念簡(jiǎn)介(無(wú)模型、在線學(xué)習(xí)、離線強(qiáng)化學(xué)習(xí)等) 機(jī)器學(xué)習(xí)(ML)分為三個(gè)分支:監(jiān)督
    的頭像 發(fā)表于 12-20 14:00 ?1269次閱讀

    徹底改變算法交易:強(qiáng)化學(xué)習(xí)的力量

    強(qiáng)化學(xué)習(xí)(RL)是人工智能的一個(gè)子領(lǐng)域,專注于決策過(guò)程。與其他形式的機(jī)器學(xué)習(xí)相比,強(qiáng)化學(xué)習(xí)模型通過(guò)與環(huán)境交互并以獎(jiǎng)勵(lì)或懲罰的形式接收反饋來(lái)
    發(fā)表于 06-09 09:23 ?690次閱讀

    ICLR 2023 Spotlight|節(jié)省95%訓(xùn)練開銷,清華黃隆波團(tuán)隊(duì)提出強(qiáng)化學(xué)習(xí)專用稀疏訓(xùn)練框架RLx2

    模型時(shí)代,模型壓縮和加速顯得尤為重要。傳統(tǒng)監(jiān)督學(xué)習(xí)可通過(guò)稀疏神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)模型壓縮和加速,那么同樣需要大量計(jì)算開銷的強(qiáng)化學(xué)習(xí)任務(wù)可以基于稀疏
    的頭像 發(fā)表于 06-11 21:40 ?857次閱讀
    ICLR 2023 Spotlight|節(jié)省95%<b class='flag-5'>訓(xùn)練</b>開銷,清華黃隆波團(tuán)隊(duì)提出<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>專用稀疏<b class='flag-5'>訓(xùn)練</b>框架RLx2

    強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)和6種基本算法解釋

    來(lái)源:DeepHubIMBA強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)和概念簡(jiǎn)介(無(wú)模型、在線學(xué)習(xí)、離線強(qiáng)化學(xué)習(xí)等)機(jī)器學(xué)習(xí)(ML)分為三個(gè)分支:監(jiān)督
    的頭像 發(fā)表于 01-05 14:54 ?1232次閱讀
    <b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>的基礎(chǔ)知識(shí)和6種基本<b class='flag-5'>算法</b>解釋

    模擬矩陣在深度強(qiáng)化學(xué)習(xí)智能控制系統(tǒng)中的應(yīng)用

    。 在深度強(qiáng)化學(xué)習(xí)智能控制系統(tǒng)中,訊維模擬矩陣可以用來(lái)做以下幾方面的模擬和預(yù)測(cè): 環(huán)境模擬:構(gòu)建多種環(huán)境模型,包括不同參數(shù)的系統(tǒng)、不同干擾因素等,為深度強(qiáng)化學(xué)習(xí)智能控制系統(tǒng)提供多樣化的
    的頭像 發(fā)表于 09-04 14:26 ?734次閱讀
    模擬矩陣在深度<b class='flag-5'>強(qiáng)化學(xué)習(xí)</b>智能控制系統(tǒng)中的應(yīng)用

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品