日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
從強(qiáng)化學(xué)習(xí)基本概念到Q學(xué)習(xí)的實(shí)現(xiàn),打造自己的迷宮智能體

近年以來,強(qiáng)化學(xué)習(xí)在人工智能所充當(dāng)?shù)慕巧絹碓街匾?,很多研究機(jī)構(gòu)和大學(xué)都將強(qiáng)化學(xué)習(xí)與深度學(xué)習(xí)相結(jié)合打造高性能的系統(tǒng)。因此,本文注重描述強(qiáng)化學(xué)習(xí)的基本概念與實(shí)現(xiàn),希望能為讀者介紹這一機(jī)器學(xué)習(xí)分支的巨大魅力。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括正定網(wǎng)站建設(shè)、正定網(wǎng)站制作、正定網(wǎng)頁制作以及正定網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,正定網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到正定省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

強(qiáng)化學(xué)習(xí)其實(shí)也是機(jī)器學(xué)習(xí)的一個(gè)分支,但是它與我們常見監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)又不太一樣。強(qiáng)化學(xué)習(xí)旨在選擇***決策,它講究在一系列的情景之下,通過多步恰當(dāng)?shù)臎Q策來達(dá)到一個(gè)目標(biāo),是一種序列多步?jīng)Q策的問題。該學(xué)習(xí)算法能幫助我們公式化表達(dá)生物體以獎(jiǎng)勵(lì)為動(dòng)機(jī)(reward-motivated)的行為。比如說,讓一個(gè)孩子坐下來安靜地為考試而復(fù)習(xí)是十分困難的,但如果你在他每次學(xué)完一章時(shí)獎(jiǎng)勵(lì)一塊巧克力,那么他就會(huì)明白只有保持學(xué)習(xí)才能獲得獎(jiǎng)勵(lì),因此也就有動(dòng)力復(fù)習(xí)備考。而現(xiàn)在,如果這個(gè)孩子在備考時(shí)沒有明確的方法,他可能會(huì)花大量時(shí)間學(xué)習(xí)一個(gè)章節(jié)而不能及時(shí)完成課程大綱。所以我們需要小孩有效率地學(xué),因此如果小孩在一小時(shí)內(nèi)完成某章節(jié),那么就獎(jiǎng)勵(lì)大塊巧克力,而超過 1 小時(shí)那就只獎(jiǎng)勵(lì)小塊巧克力。現(xiàn)在他不僅會(huì)學(xué)習(xí),同時(shí)大腦會(huì)思考設(shè)計(jì)出更快完成章節(jié)學(xué)習(xí)的方法。

在這個(gè)例子中,孩子就是代表著訓(xùn)練實(shí)體(Agent :與環(huán)境交互的對(duì)象)。獎(jiǎng)勵(lì)系統(tǒng)和考試就代表著環(huán)境(Environment)。而章節(jié)就可以類比為強(qiáng)化學(xué)習(xí)的狀態(tài)(States)。所以孩子們就需要決定哪些章節(jié)更重要(即計(jì)算每一個(gè)章節(jié)的值),這也就是價(jià)值函數(shù)(Value-Function)所做的事。并且小孩每次從一個(gè)狀態(tài)到另一個(gè)狀態(tài)就能收到獎(jiǎng)勵(lì),而他隨時(shí)間完成章節(jié)的方式就是策略(Policy)。

強(qiáng)化學(xué)習(xí)和其他機(jī)器學(xué)習(xí)范式有什么不同:

  • 沒有大量標(biāo)注數(shù)據(jù)進(jìn)行監(jiān)督,所以也就不能由樣本數(shù)據(jù)告訴系統(tǒng)什么是最可能的動(dòng)作,訓(xùn)練主體只能從每一步動(dòng)作得出獎(jiǎng)勵(lì)。因此系統(tǒng)是不能立即得到標(biāo)記的,而只能得到一個(gè)反饋,也可以說強(qiáng)化學(xué)習(xí)是一種標(biāo)記延遲的監(jiān)督學(xué)習(xí)。
  • 時(shí)間序列的重要性,強(qiáng)化學(xué)習(xí)不像其他接受隨機(jī)輸入的學(xué)習(xí)方法,其更注重序列型數(shù)據(jù),并且下一步的輸入經(jīng)常依賴于前一狀態(tài)的輸入。
  • 延遲獎(jiǎng)勵(lì)的概念,系統(tǒng)可能不會(huì)在每步動(dòng)作上都獲得獎(jiǎng)勵(lì),而只有當(dāng)完成整個(gè)任務(wù)時(shí)才會(huì)獲得獎(jiǎng)勵(lì)。
  • 訓(xùn)練實(shí)體的動(dòng)作影響下一個(gè)輸入。如你可以選擇向左走或向右走,那么當(dāng)選擇的方向不同時(shí),下一個(gè)時(shí)間步的輸入也會(huì)不同。即選擇不同的動(dòng)作進(jìn)入不同的狀態(tài)后,當(dāng)前可選的動(dòng)作又不一樣。

總的來說,強(qiáng)化學(xué)習(xí)的目標(biāo)就是要尋找一個(gè)能使得我們獲得***累積獎(jiǎng)賞的策略。因此,強(qiáng)化學(xué)習(xí)實(shí)際上和我們?nèi)祟惻c環(huán)境的交互方式類似,是一套非常通用的框架,可以用來解決各種各樣的人工智能的問題。

如上所示,在任何時(shí)間步(t),訓(xùn)練實(shí)體會(huì)得到一個(gè)環(huán)境的觀察值(實(shí)例)。然后它會(huì)從所有可行動(dòng)作中采取一種,并獲得環(huán)境的獎(jiǎng)勵(lì)和下一個(gè)觀察值。所以我們需要為訓(xùn)練實(shí)體提供算法,其所作出的決策應(yīng)該是以***化提升結(jié)束時(shí)的全部獎(jiǎng)勵(lì)為目的。

一、歷史與狀態(tài)

歷史(History)是描述在環(huán)境和訓(xùn)練實(shí)體之間發(fā)生的所有事件的變量集合。

訓(xùn)練實(shí)體必須將歷史映射到一個(gè)確切的動(dòng)作中。對(duì)于環(huán)境,其必須將歷史映射到需要發(fā)送的下一組觀察值。因此,訓(xùn)練實(shí)體必須持續(xù)保持并儲(chǔ)存大量的信息,這將占用大量的儲(chǔ)存空間和處理時(shí)間。

所以,我們想創(chuàng)建歷史的抽象表征,它可以儲(chǔ)存足夠的信息以便我們可以選擇下一步動(dòng)作,這也就是狀態(tài)的概念。所以基本上系統(tǒng)的輸出就取決于我們?cè)鯓佣x狀態(tài)。

在上式中,S 表征狀態(tài)、f 表征一種能對(duì)時(shí)間步「t」的歷史求和的函數(shù)。

上述表達(dá)式中,前一個(gè)代表訓(xùn)練實(shí)體的內(nèi)部表征,其可以對(duì)歷史求和并允許在以后采取動(dòng)作。而后一個(gè)代表環(huán)境的內(nèi)部表征,其允許發(fā)送下一個(gè)觀察值。

1. 馬爾可夫狀態(tài)(Markov State)

馬爾可夫狀態(tài)使用抽象形式儲(chǔ)存過去所有的信息。所以如果訓(xùn)練實(shí)體預(yù)測未來的動(dòng)作,其并不會(huì)使用全部的歷史,而是使用馬爾可夫狀態(tài)。本質(zhì)上來說,馬爾可夫狀態(tài)儲(chǔ)存的信息并不比歷史少。

所以在給定狀態(tài) St 的情況下求未來狀態(tài) St+1 的概率和給定前面所有狀態(tài)求 St+1 的概率相同。這是因?yàn)闋顟B(tài) St 已經(jīng)將前面所有狀態(tài)的信息都嵌入了其中。

2. 序列的游戲

現(xiàn)在假設(shè)有個(gè)游戲發(fā)生在餐廳里,餐廳提供三種食物:甜甜圈、飲料和三明治?,F(xiàn)在顧客要求服務(wù)員帶五樣食品,且服務(wù)員會(huì)按順序依次提供這五樣食品。如果顧客喜歡這些食物的順序,那么服務(wù)員將得到獎(jiǎng)勵(lì),否則就會(huì)得到懲罰?,F(xiàn)在服務(wù)員***次提供食物的順序如 S1 所示,他得到了獎(jiǎng)勵(lì)。

然而,當(dāng)下一次服務(wù)員又以另一個(gè)順序帶來五份食品(S2)時(shí),他得到了懲罰。那么現(xiàn)在第三個(gè)序列 S3 的輸出是什么,獎(jiǎng)勵(lì)還是懲罰?

這里的解決方案取決于先前狀態(tài)的定義。如果說狀態(tài)的定義僅僅只是采用食物序列***三項(xiàng)的順序,那么根據(jù) S1 ***三項(xiàng)的結(jié)果,S3 序列能獲得獎(jiǎng)勵(lì)。然而如果根據(jù)每個(gè)食物出現(xiàn)的數(shù)量來定義,那么 S3 最有可能得到懲罰,因?yàn)?S2 和 S3 每一份食物的數(shù)量都相同。所以本質(zhì)上系統(tǒng)的輸出是依賴于狀態(tài)的定義。

二、環(huán)境

如果你在電腦上玩自己編寫的象棋,那么你就很清楚計(jì)算機(jī)是如何分析怎樣下棋。所以基本上你知道在給定的行動(dòng)下電腦確定的是哪一步棋。這是一種完全可觀察的環(huán)境(Fully Observable Environment)。

現(xiàn)在如果你在玩由其他人編寫的象棋游戲,你并不知道電腦下一步會(huì)怎么下。所以現(xiàn)在你能做的就是在下一步棋后觀察電腦的下棋。這是一種部分可觀察環(huán)境(Partially Observable Environment)。在這種情況下,你能做的就是預(yù)測游戲的內(nèi)部動(dòng)態(tài),并期望能對(duì)其內(nèi)部狀態(tài)能有一個(gè)足夠好的預(yù)測。

另外,根據(jù)周志華的《機(jī)器學(xué)習(xí)》,我們需注意「機(jī)器」與「環(huán)境」的界限。例如在種西瓜任務(wù)中,環(huán)境是西瓜生長的自然世界;在下棋對(duì)弈中,環(huán)境是棋盤與對(duì)手;在機(jī)器人控制中,環(huán)境是機(jī)器人的軀體與物理世界??傊诃h(huán)境中狀態(tài)的轉(zhuǎn)移、獎(jiǎng)賞的返回是不受機(jī)器控制的,機(jī)器只能通過選擇要執(zhí)行的動(dòng)作來影響環(huán)境,也只能通過觀察轉(zhuǎn)移后的狀態(tài)和返回的獎(jiǎng)賞來感知環(huán)境。

***總結(jié)一下強(qiáng)化學(xué)習(xí)的概念,強(qiáng)化學(xué)習(xí)的輸入 是:

  • 狀態(tài) (States) = 環(huán)境,例如迷宮的每一格就是一個(gè)狀態(tài)
  • 動(dòng)作 (Actions) = 在每個(gè)狀態(tài)下,有什么行動(dòng)是容許的
  • 獎(jiǎng)勵(lì) (Rewards) = 進(jìn)入每個(gè)狀態(tài)時(shí),能帶來正面或負(fù)面的價(jià)值 (utility)

而輸出就是:

  • 策略 (Policy) = 在每個(gè)狀態(tài)下,你會(huì)選擇哪個(gè)行動(dòng)?

如上圖所示,強(qiáng)化學(xué)習(xí)的思想主要:即訓(xùn)練實(shí)體 (Agent) 不斷地采取動(dòng)作 (action), 之后轉(zhuǎn)到下一個(gè)狀態(tài) (State), 并且獲得一個(gè)獎(jiǎng)勵(lì) (reward), 從而進(jìn)一步更新訓(xùn)練實(shí)體。

在了解了強(qiáng)化學(xué)習(xí)的基本概念后,我們就可以進(jìn)一步理解 Q 學(xué)習(xí)(Q-Learning)的原理和實(shí)現(xiàn)。

下面我們將從迷宮尋寶游戲開始了解 Q 學(xué)習(xí)的基本概念。該游戲規(guī)則如下:

該游戲從一個(gè)給定的位置開始,即初始狀態(tài)(starting state)。在每一個(gè)狀態(tài)下訓(xùn)練實(shí)體都可以保留原地或選擇向上、下、左、右移動(dòng),但不能穿越迷宮的邊界。每個(gè)動(dòng)作都將使得訓(xùn)練實(shí)體進(jìn)入不同的單元格(即不同的狀態(tài))?,F(xiàn)在在某個(gè)單元格有一個(gè)寶箱(即目標(biāo)狀態(tài))。此外,迷宮的某些位置/狀態(tài)有蛇。因此訓(xùn)練實(shí)體的目標(biāo)就是通過尋找一條沒有蛇的路徑從起始狀態(tài)走到目標(biāo)狀態(tài)。

現(xiàn)在當(dāng)我們?cè)诰W(wǎng)格中(即環(huán)境中)放置一個(gè)訓(xùn)練實(shí)體,它首先會(huì)開始探索。它最開始不知道蛇是什么,也不知道什么是寶箱或?qū)毾湓谀摹K晕覀冃枰o定訓(xùn)練主體蛇和寶箱的概念,并在每一步動(dòng)作后給予一定的獎(jiǎng)勵(lì)。對(duì)于每一塊有蛇的單元格(狀態(tài)),我們給予-10 的獎(jiǎng)勵(lì),而對(duì)于寶藏,我們給予+10 的獎(jiǎng)勵(lì)。現(xiàn)在我們希望訓(xùn)練實(shí)體盡快完成任務(wù)(采取最短路徑),因此我們給予其他狀態(tài)-1 的獎(jiǎng)勵(lì)。***我們給定訓(xùn)練實(shí)體的目標(biāo)就是***化***累積得分。隨著訓(xùn)練實(shí)體的探索,它會(huì)知道蛇是有害的,寶藏是有益的,并且它需要盡可能快地得到寶箱。上圖中「-」就表示從起始狀態(tài)到目標(biāo)狀態(tài)最短的路徑。

Q 學(xué)習(xí)(Q-Learning)就嘗試在給定狀態(tài)下學(xué)習(xí)當(dāng)前值,并采取特定的動(dòng)作。

現(xiàn)在我們?cè)O(shè)計(jì)一張表格,其中每行是訓(xùn)練實(shí)體的狀態(tài),而每列是訓(xùn)練實(shí)體可能采取的動(dòng)作。所以上例有 16×5 種可能的狀態(tài)-行動(dòng)對(duì),其中每種狀態(tài)都是迷宮中的一個(gè)單元格。

首先我們初始化矩陣(上文所述的 16×5 表格)為零矩陣,然后根據(jù)不同動(dòng)作所獲得的獎(jiǎng)勵(lì)更新矩陣的元素。當(dāng)然,更新該矩陣的方法為計(jì)算貝爾曼方程(Bellman Equation):

「S」代表當(dāng)前狀態(tài),「a」代表訓(xùn)練實(shí)體在當(dāng)前狀態(tài)下所采取的動(dòng)作,「S'」代表采取該動(dòng)作所產(chǎn)生的狀態(tài),「r'」是采取該動(dòng)作所得到的獎(jiǎng)勵(lì)。貼現(xiàn)系數(shù)(discount factor)「γ」決定了訓(xùn)練實(shí)體對(duì)未來獎(jiǎng)勵(lì)的重視程度,γ越大,訓(xùn)練實(shí)體就會(huì)越重視以往經(jīng)驗(yàn),而γ越小,訓(xùn)練實(shí)體只重視眼前的利益。如果說訓(xùn)練實(shí)體向遠(yuǎn)離目標(biāo)狀態(tài)的狀態(tài)運(yùn)動(dòng),而該狀態(tài)遇到蛇的概率減少,那么實(shí)時(shí)獎(jiǎng)勵(lì)將減少,未來獎(jiǎng)勵(lì)將增加,訓(xùn)練實(shí)體更注重未來的獎(jiǎng)勵(lì)。

我們將每次迭代(訓(xùn)練主體的嘗試動(dòng)作)作為一個(gè) episode。對(duì)于每一次 episode,訓(xùn)練主體將嘗試到達(dá)目標(biāo)狀態(tài),并且對(duì)于每一次動(dòng)作,Q 矩陣元素都會(huì)進(jìn)行一次更新。

現(xiàn)在讓我們了解一下 Q 矩陣是如何計(jì)算的(為了更簡潔,我們采用更小的 2×2 迷宮):

Q 矩陣的初始狀態(tài)如下(每行代表一個(gè)狀態(tài),每列代表一個(gè)動(dòng)作):

U—向上走, D—向下走, L—向左走, R—向右走

獎(jiǎng)勵(lì)矩陣如下所示:

其中 E 代表空值(NULL,訓(xùn)練主體不能采取該動(dòng)作)

算法:

  • 初始化 Q 矩陣為零矩陣,設(shè)定「γ」值,完成獎(jiǎng)勵(lì)矩陣。
  • 對(duì)于每一 episode,選擇一個(gè)隨機(jī)起始狀態(tài)(在這個(gè)案例中,我們嚴(yán)格限制起始狀態(tài)為-1)。
  • 在當(dāng)前狀態(tài)(S)的所有可能動(dòng)作中選擇一個(gè)。
  • 作為該動(dòng)作(a)的結(jié)果,訓(xùn)練主體移往下一個(gè)狀態(tài)(S')。
  • 對(duì)于狀態(tài)(S')產(chǎn)生的所有可能動(dòng)作,選擇 Q 值***的動(dòng)作。
  • 使用貝爾曼方程(Bellman Equation)更新 Q 矩陣。
  • 將下一個(gè)狀態(tài)設(shè)置為當(dāng)前狀態(tài)。
  • 如果到達(dá)目標(biāo)狀態(tài),結(jié)束算法。

我們可以從以下一段偽代碼進(jìn)一步理解:

現(xiàn)在假設(shè)訓(xùn)練主體從狀態(tài) 1 開始,其可以采取動(dòng)作 D 或 R。如果采取了動(dòng)作 D,那么訓(xùn)練主體到達(dá)狀態(tài) 3(蛇),并可以采取動(dòng)作 U 或 R?,F(xiàn)在取值γ = 0.8,那么方程有:

  • Q(1,D) = R(1,D) + γ*[max(Q(3,U) & Q(3,R))]
  • Q(1,D) = -10 + 0.8*0 = -10

其中,因?yàn)?Q 矩陣還沒有更新,max(Q(3,U) & Q(3,R)) = 0。設(shè)定設(shè)定踩上蛇的獎(jiǎng)勵(lì)為-10?,F(xiàn)在新的 Q 矩陣的值就如下所示:

現(xiàn)在,狀態(tài) 3 為當(dāng)前狀態(tài),從狀態(tài) 3 采取了動(dòng)作 R。訓(xùn)練主體就到達(dá)狀態(tài) 4,并其可以采取動(dòng)作 U 或 L。

  • Q(3,R) = R(3,R) + 0.8*[max(Q(4,U) & Q(4,L))]
  • Q(3,R) = 10 + 0.8*0 = 10

再一次更新 Q 矩陣的值:

所以,現(xiàn)在訓(xùn)練主體到達(dá)目標(biāo)狀態(tài) 4。接下來終止該進(jìn)程,并進(jìn)行更多的訓(xùn)練直到訓(xùn)練主體理解了所有狀態(tài)和動(dòng)作,且所有的 Q 矩陣元素成為常數(shù)。這也就意味為訓(xùn)練主體已經(jīng)嘗試了所有的狀態(tài)-動(dòng)作對(duì)。

這一過程的 Python 實(shí)現(xiàn):

*** Q 矩陣的輸出:

原文:

https://medium.com/becoming-human/the-very-basics-of-reinforcement-learning-154f28a79071

【本文是專欄機(jī)構(gòu)機(jī)器之心的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文


分享標(biāo)題:從強(qiáng)化學(xué)習(xí)基本概念到Q學(xué)習(xí)的實(shí)現(xiàn),打造自己的迷宮智能體
文章路徑:http://www.5511xx.com/article/coejpss.html