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

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

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

深度學(xué)習(xí)科普文:最通俗易懂 從老虎機(jī)到電子游戲

zhKF_jqr_AI ? 來(lái)源:Medium ? 作者:Bing ? 2018-06-12 19:00 ? 次閱讀

最近,我受邀在北京的O’Reilly人工智能會(huì)議上分享自己在NLP領(lǐng)域的所學(xué)。當(dāng)時(shí)我有幸參加了一場(chǎng)由Unity Technologies舉辦的關(guān)于深度強(qiáng)化學(xué)習(xí)的培訓(xùn),這場(chǎng)由Arthur Juliani領(lǐng)導(dǎo)的會(huì)議給了我很大啟發(fā),下面我會(huì)分享我的收獲。

在我們與各大公司的交談中,我們發(fā)現(xiàn)了許多有趣的深度強(qiáng)化學(xué)習(xí)的應(yīng)用、工具和結(jié)果。同時(shí),深度強(qiáng)化學(xué)習(xí)的應(yīng)用(例如AlphaGo)往往非常深?yuàn)W、難以理解。在這篇文章中,我會(huì)以一種通俗易懂的方式介紹深度強(qiáng)化學(xué)習(xí)的核心要點(diǎn)。

深度強(qiáng)化學(xué)習(xí)的崛起

深度強(qiáng)化學(xué)習(xí)領(lǐng)域已經(jīng)出現(xiàn)了大量研究成果,比如讓計(jì)算機(jī)學(xué)習(xí)雅達(dá)利游戲、在Dota2中戰(zhàn)勝人類(lèi)玩家,或者打敗世界頂尖圍棋選手。與只關(guān)注認(rèn)知的傳統(tǒng)深度學(xué)習(xí)問(wèn)題不同,深度強(qiáng)化學(xué)習(xí)加入了可以影響環(huán)境的動(dòng)作,比傳統(tǒng)多了一個(gè)維度。例如傳統(tǒng)深度學(xué)習(xí)解決的是“這幅畫(huà)中有停止標(biāo)志嗎”這樣的問(wèn)題,而深度強(qiáng)化學(xué)習(xí)還會(huì)研究“目的地在哪、應(yīng)該怎樣到達(dá)”的問(wèn)題。例如在對(duì)話系統(tǒng)中,傳統(tǒng)的深度學(xué)習(xí)的目的是找到對(duì)應(yīng)問(wèn)題的正確回答。而深度強(qiáng)化學(xué)習(xí)則關(guān)注如何組合出正確的句子順序才能獲得一個(gè)積極的結(jié)果,例如怎樣回答才能讓顧客開(kāi)心。

這就讓深度強(qiáng)化學(xué)習(xí)在需要提前計(jì)劃和適應(yīng)的任務(wù)中非常受歡迎,例如制造業(yè)或自動(dòng)駕駛。然而行業(yè)的實(shí)際應(yīng)用趕不上理論發(fā)展。其中主要原因是深度強(qiáng)化學(xué)習(xí)常常需要一個(gè)智能體進(jìn)行數(shù)百萬(wàn)次的實(shí)驗(yàn),如果想快速實(shí)現(xiàn)這一點(diǎn),就需要一個(gè)模擬環(huán)境。這里可以參考Unity的教程創(chuàng)建一個(gè)模擬環(huán)境。

接下來(lái),我將詳細(xì)講述目前深度強(qiáng)化學(xué)習(xí)領(lǐng)域的幾種主流算法。

從老虎機(jī)到電子游戲,淺談強(qiáng)化學(xué)習(xí)

深度強(qiáng)化學(xué)習(xí)可以擊敗頂尖圍棋選手,但是想搞清楚它是怎么做到的,首先要了解幾個(gè)簡(jiǎn)單的概念。我們先從簡(jiǎn)單的開(kāi)始。

假設(shè)你面前有四個(gè)箱子,每次只能打開(kāi)一個(gè),每個(gè)里面的裝的錢(qián)(獎(jiǎng)勵(lì))不一樣,你的目標(biāo)就是在一定的游戲次數(shù)中,最后拿到的總錢(qián)數(shù)是最大的。這個(gè)經(jīng)典游戲被稱(chēng)為“多臂賭博機(jī)問(wèn)題(multi-armed bandit problem”)。這個(gè)問(wèn)題的核心就是控制游戲次數(shù),同時(shí)利用已知信息選擇最佳對(duì)象。

這里我們要用到一種將行為映射到預(yù)計(jì)獎(jiǎng)勵(lì)中的價(jià)值函數(shù)——Q函數(shù)。首先,我們把所有的Q值定成同樣的。然后,我們會(huì)在每次選擇箱子后更新Q值,基于箱子中的錢(qián)有多少。這樣可以讓我們學(xué)習(xí)一個(gè)好的價(jià)值函數(shù),我們會(huì)用一個(gè)神經(jīng)網(wǎng)絡(luò)估計(jì)Q函數(shù)在四個(gè)箱子上潛在的表現(xiàn)。

價(jià)值函數(shù)告訴我們預(yù)測(cè)的每次結(jié)果如何,策略是決定在哪一步停止的函數(shù)。也就是說(shuō),我們可能會(huì)選擇具有最高Q值的策略。但這在實(shí)際中表現(xiàn)得很糟,因?yàn)镼值的估計(jì)在剛開(kāi)始時(shí)表現(xiàn)得非常離譜,根本不足以計(jì)入試錯(cuò)經(jīng)驗(yàn)。這就是為什么我們需要在策略中加入一項(xiàng)機(jī)制鼓勵(lì)探索。其中一種方法就是利用貪婪算法,即用概率?進(jìn)行隨機(jī)選擇。最初,當(dāng)概率接近于1時(shí),選擇更隨機(jī)。隨著概率的降低就會(huì)學(xué)習(xí)到更多關(guān)于箱子的知識(shí)。最終我們知道了那個(gè)更好。

在實(shí)際中,我們也許想選擇另一種更精妙的方法,不用隨機(jī)選擇或挑選最優(yōu)策略。其中一種方法就是Boltzmann Exploration,它可以根據(jù)目前的情況改變概率,加入隨機(jī)因子。

不同狀態(tài)下會(huì)是怎樣

這里不同的背景顏色代表不同的平均獎(jiǎng)勵(lì)

上一個(gè)例子的背景是假設(shè)狀態(tài)相同,挑選四個(gè)完全相同的箱子。而更真實(shí)的情況卻有很大不同,其中有不同的狀態(tài)?,F(xiàn)在箱子后面的背景在三種顏色之間不斷變化,每個(gè)箱子的價(jià)值是在變的。所以我們需要學(xué)習(xí)一個(gè)Q函數(shù)來(lái)決定箱子的選擇和背景顏色。這一問(wèn)題被稱(chēng)為“語(yǔ)境下的多臂賭博機(jī)問(wèn)題”。

我們用的方法和此前相同,唯一需要加入神經(jīng)網(wǎng)絡(luò)的是額外的密集層,將輸入向量作為目前狀態(tài)的代表。

學(xué)習(xí)行為所帶來(lái)的結(jié)果

這里我們學(xué)習(xí)如何移動(dòng)藍(lán)色立方體,讓它到達(dá)綠色立方體那里,同時(shí)不碰到紅色方塊

這里還有一種可以讓我們的方法比其他方法更簡(jiǎn)單的關(guān)鍵因素。在大多數(shù)環(huán)境中,例如迷宮,我們采取的每一步動(dòng)作都會(huì)影響周?chē)h(huán)境。如果在網(wǎng)格中行進(jìn),有可能會(huì)得到獎(jiǎng)勵(lì)(也可能什么都沒(méi)有),但是下一步我們就出在完全不同的狀態(tài)下了。這就是計(jì)劃的重要性。

首先,我們會(huì)將Q函數(shù)定義為目前狀態(tài)下立即的獎(jiǎng)勵(lì)以及未來(lái)全部行為都結(jié)束后的部分獎(jiǎng)勵(lì)。如果Q估計(jì)的狀態(tài)精確,那么這種方法就有用,所以我們先要學(xué)習(xí)如何做出正確估計(jì)。

我們要用一種成為T(mén)emporal Difference(TD)Learning的方法,學(xué)習(xí)一個(gè)好的Q函數(shù)。這種方法只關(guān)注最近的幾步行為,例如TD(1)只用接下來(lái)的兩步來(lái)評(píng)估獎(jiǎng)勵(lì)。

意外的是,我們可以用表示目前狀態(tài)的TD(0)和對(duì)下一步獎(jiǎng)勵(lì)的評(píng)估得到不錯(cuò)的結(jié)果。網(wǎng)絡(luò)的結(jié)構(gòu)不變,但是我們需要在犯錯(cuò)之前進(jìn)行下一步行動(dòng),然后用這個(gè)錯(cuò)誤對(duì)梯度進(jìn)行反向傳播,就像傳統(tǒng)深度學(xué)習(xí)那樣,之后再對(duì)值進(jìn)行重新估計(jì)。

蒙特卡羅介紹

預(yù)測(cè)最終成功的另一種方法就是蒙特卡羅估計(jì)。該方法要將目前策略下所有可能都運(yùn)行以便知道結(jié)束,然后用這一結(jié)果對(duì)每次得到的狀態(tài)進(jìn)行評(píng)估。這讓我們?cè)诿看蝿?dòng)作時(shí)都能有效傳播值而不是簡(jiǎn)單地移動(dòng)。與之而來(lái)的代價(jià)就是會(huì)在估計(jì)值中引入噪聲。

離散的環(huán)境

此前的方法使用神經(jīng)網(wǎng)絡(luò)近似估計(jì)預(yù)測(cè)值,將一些狀態(tài)和動(dòng)作映射到數(shù)值上。例如在迷宮中共有49個(gè)位置和四種動(dòng)作,在這個(gè)環(huán)境下,我們?cè)囍鴮W(xué)習(xí)如何讓球體在二維平面上保持平衡,每一步我們會(huì)決定讓平板往哪個(gè)方向傾斜。這里的狀態(tài)空間就是連續(xù)的,好消息是我們可以使用神經(jīng)網(wǎng)絡(luò)來(lái)估計(jì)函數(shù)。

這里插播一下off-policy和on-policy的區(qū)別:之前我們用的方法是off-policy,也就是我們可以從任意策略中生成數(shù)據(jù)并從中學(xué)習(xí)。on-policy的方法智能從動(dòng)作中學(xué)習(xí)。這就限制了我們學(xué)習(xí)的過(guò)程因?yàn)槲覀儽仨氂幸粋€(gè)建立在策略之上的探索策略,但是可以將結(jié)果直接綁定在推理上,同時(shí)讓我們學(xué)習(xí)得更高效。

我們這里將使用的方法稱(chēng)為策略梯度,這是一種on-policy方法。之前,我們首先學(xué)習(xí)了一個(gè)價(jià)值函數(shù)Q,然后在這之上建立了策略。在Vanilla策略梯度中,我們?nèi)匀皇褂妹商乜_估計(jì),但是我們直接從損失函數(shù)那里學(xué)習(xí)策略,這樣增加了選到有獎(jiǎng)勵(lì)的可能性。因?yàn)槲覀兪窃诓呗陨线M(jìn)行學(xué)習(xí)的,就不能用貪婪算法這樣的方法,只能用一種稱(chēng)為熵正則化的方法,它估計(jì)的概率更加廣泛,也鼓勵(lì)我們做出更多大膽的選擇。

直接從屏幕中學(xué)習(xí)

模型中輸入的是像素

這是用深度學(xué)習(xí)的另一個(gè)好處因?yàn)樯疃壬窠?jīng)網(wǎng)絡(luò)擅長(zhǎng)處理視覺(jué)問(wèn)題。當(dāng)人類(lèi)玩游戲時(shí),我們接收到的信息不是一串狀態(tài),而是一張圖片。

基于圖像的學(xué)習(xí)結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)。在這一環(huán)境中,我們關(guān)注的是原始圖像而不是特征,同時(shí)在網(wǎng)絡(luò)中加入了一個(gè)2層的CNN。我們甚至可以看看網(wǎng)絡(luò)在生成值時(shí)會(huì)做什么動(dòng)作。在下面的例子中,我們可以看到網(wǎng)絡(luò)利用目前的分?jǐn)?shù)和遠(yuǎn)處的障礙預(yù)測(cè)目前的價(jià)值,用近處的障礙決定做出怎樣的動(dòng)作。

這里我注意到,深度學(xué)習(xí)對(duì)超參數(shù)很敏感。例如稍微調(diào)整一下折扣率,就會(huì)完全阻止神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。這個(gè)問(wèn)題已經(jīng)普遍存在了,但是自己親眼看到還是很有趣的。

細(xì)微動(dòng)作

目前為止,我們已經(jīng)在分散和連續(xù)的狀態(tài)空間中進(jìn)行了實(shí)驗(yàn),但是我們研究的每個(gè)環(huán)境都有著分散的動(dòng)作空間:我們可以向四個(gè)方向移動(dòng)或者將板子向左向右傾斜。理想情況下,對(duì)于類(lèi)似自動(dòng)駕駛的產(chǎn)品,我們想學(xué)習(xí)連續(xù)的動(dòng)作,例如轉(zhuǎn)動(dòng)方向盤(pán)。在這個(gè)3D環(huán)境下,我們可以選擇傾斜板子到任意值,這也讓我們對(duì)動(dòng)作有了更多控制,但是動(dòng)作空間也更大了。

下一步

下面是區(qū)分各種算法的幾個(gè)概念:

并列(parallelizing):A3C是最常見(jiàn)的方法之一。它為actor critic添加了異步步驟,使其能并行運(yùn)行。這讓它在合理時(shí)間內(nèi)解決更多有趣的問(wèn)題。演化方法可以進(jìn)一步并行化,并且表現(xiàn)得很不錯(cuò)。

課程學(xué)習(xí)(curriculum learning):在很多情況中,隨機(jī)運(yùn)行可能不會(huì)得到任何獎(jiǎng)勵(lì)。這使得探索過(guò)程變得非常棘手,因?yàn)槲覀冇肋h(yuǎn)學(xué)不到任何有價(jià)值的東西。在這樣的情況下,我們可以簡(jiǎn)化問(wèn)題,先解決一個(gè)簡(jiǎn)單版本的問(wèn)題,然后用基礎(chǔ)模型再解決更復(fù)雜的環(huán)境。

記憶:例如,利用LSTM,我們可以記住過(guò)去發(fā)生了什么,然后用序列進(jìn)行決策。

基于模型的強(qiáng)化學(xué)習(xí):目前有好幾種方法可以幫助算法建立它們學(xué)習(xí)的環(huán)境模型,這樣它們可以推斷出環(huán)境是如何工作的,同時(shí)只用做簡(jiǎn)單的動(dòng)作就能得到較高獎(jiǎng)勵(lì)。AlphaGo就結(jié)合了模型和計(jì)劃。

至此,我的總結(jié)就結(jié)束了,希望你能覺(jué)得有用!如果你想深入了解強(qiáng)化學(xué)習(xí)。編者按:本文作者是專(zhuān)注于機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)的專(zhuān)家Emmanuel Ameisen,他在自己的博客上分享了對(duì)深度學(xué)習(xí)的理解,用簡(jiǎn)明扼要的方式為大家講述了深度學(xué)習(xí)的基本概念。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4575

    瀏覽量

    92339
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132165
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5431

    瀏覽量

    120790

原文標(biāo)題:這可能是最通俗易懂的深度學(xué)習(xí)科普文了

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)學(xué)習(xí)資料。深入淺出通俗易懂,用錢(qián)買(mǎi)的。

    單片機(jī)學(xué)習(xí)資料。深入淺出通俗易懂,用錢(qián)買(mǎi)的。
    發(fā)表于 02-04 22:46

    通俗易懂的PID教程

    本帖最后由 Calvin248 于 2013-5-5 15:31 編輯 幫助大家更好的理解PID算法,講解的很通俗易懂,并且附有程序,幫助大家理解掌握!
    發(fā)表于 05-05 15:30

    模擬老虎機(jī)程序分享

    自己做了個(gè)模擬老虎機(jī),還有很多不足,請(qǐng)各位高手點(diǎn)評(píng)
    發(fā)表于 01-13 22:29

    通俗易懂的PID算法

    發(fā)幾個(gè)通俗易懂的PID算法,需要的拿走
    發(fā)表于 01-26 00:54

    通俗易懂系列整合—電源基礎(chǔ)知識(shí)講解

    之前發(fā)表了六篇用通俗易懂的話講解電源知識(shí)的文章,分別是關(guān)于三極管、電阻、電容、電感、二極管和場(chǎng)效應(yīng)管的講解。怕想學(xué)習(xí)的壇友找不到內(nèi)容,所以這邊整合一下,給大家分享文章的鏈接。用通俗易懂的話讓你明白
    發(fā)表于 02-17 09:43

    PID通俗易懂

    PID通俗易懂.....................
    發(fā)表于 06-30 18:54

    通俗易懂電子稱(chēng)綜合演示篇

    通俗易懂電子稱(chēng)綜合演示篇:前幾篇鏈接如下:通俗易懂電子稱(chēng)開(kāi)發(fā)立項(xiàng)篇https://bbs.elecfans.com/jishu_919726_1_1.html
    發(fā)表于 07-18 21:17

    通俗易懂電子稱(chēng)開(kāi)發(fā)導(dǎo)航篇

    通俗易懂電子稱(chēng)開(kāi)發(fā)立項(xiàng)篇https://bbs.elecfans.com/jishu_919726_1_1.html通俗易懂電子稱(chēng)開(kāi)發(fā)硬件篇https://bbs.elecfans
    發(fā)表于 07-18 21:22

    通俗易懂的單片機(jī)教程

    通俗易懂的單片機(jī)教程
    發(fā)表于 09-29 15:45 ?636次下載
    <b class='flag-5'>通俗易懂</b>的單片<b class='flag-5'>機(jī)</b>教程

    卡爾曼濾波的原理說(shuō)明(通俗易懂)

    通俗易懂的 卡爾曼濾波原理 由淺入深不光是公式的介紹
    發(fā)表于 12-08 18:13 ?37次下載

    卡爾曼濾波的原理說(shuō)明(通俗易懂)

    這是關(guān)于卡爾曼濾波的原理說(shuō)明(通俗易懂),適合初學(xué)者
    發(fā)表于 03-16 14:40 ?0次下載

    PID通俗易懂

    PID通俗易懂PID通俗易懂PID通俗易懂PID通俗易懂PID通俗易懂PID通俗易懂
    發(fā)表于 04-19 09:54 ?21次下載

    步進(jìn)電機(jī)基本原理(通俗易懂)

    步進(jìn)電機(jī)基本原理(通俗易懂)
    發(fā)表于 11-30 11:55 ?0次下載

    通俗易懂的ArkTS語(yǔ)言入門(mén)指南

    本文為我整理出來(lái)最通俗易懂的 ArkTS 語(yǔ)言入門(mén)指南。
    的頭像 發(fā)表于 06-18 15:12 ?2.2w次閱讀
    最<b class='flag-5'>通俗易懂</b>的ArkTS語(yǔ)言入門(mén)指南

    通俗易懂的PCB爆板原因以及玻璃轉(zhuǎn)換溫度

    科普通俗易懂的PCB爆板原因以及玻璃轉(zhuǎn)換溫度
    的頭像 發(fā)表于 11-24 16:01 ?921次閱讀
    <b class='flag-5'>通俗易懂</b>的PCB爆板原因以及玻璃轉(zhuǎn)換溫度