日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

强化学习笔记1:强化学习概述

發(fā)布時間:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 强化学习笔记1:强化学习概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

七個字概括強化學習適用的問題:多序列決策問題

1 agent和environment

????????強化學習討論的問題是一個智能體(agent) 怎么在一個復(fù)雜不確定的環(huán)境(environment)里面去極大化它能獲得的獎勵。

? ? ? ??上圖由兩部分組成:agent 和 environment。

????????在強化學習過程中,agent 跟 environment 一直在交互。

? ? ? ? agent 在environment里面獲取到狀態(tài),agent 會利用這個狀態(tài)輸出一個動作(action),或者我們稱之為一個決策。

????????然后這個決策會放到environment之中去,environment會根據(jù) agent 采取的決策,輸出下一個狀態(tài)以及當前的這個決策得到的獎勵。

? ? ? ? agent 的目的就是為了盡可能多地從環(huán)境中獲取獎勵。

? ? ? ? state是環(huán)境的狀態(tài),不是agent的狀態(tài)(用另一種貼切的方法來說,可以想成agent的observation)

2 強化學習 VS 監(jiān)督學習

2.1 監(jiān)督學習:

?????????以圖片分類為例,監(jiān)督學習(supervised learning)就是說我們有一大堆標注的數(shù)據(jù),比如車、飛機、凳子這些標注的圖片。我們要訓練一個分類器,分辨照片的類型。

????????訓練過程中,我們把真實的標簽給了這個網(wǎng)絡(luò)。當這個網(wǎng)絡(luò)做出一個錯誤的預(yù)測,比如現(xiàn)在輸入了汽車的圖片,它預(yù)測出來是飛機。我們就會直接告訴它,你這個預(yù)測是錯誤的,正確的標簽應(yīng)該是車。

? ? ? ??然后我們把這個錯誤寫成一個損失函數(shù)(loss function),通過反向傳播(Backpropagation)來訓練這個網(wǎng)絡(luò)。

? ? ? ? 也就是說,在監(jiān)督學習中,我們需要告訴學習器(learner)正確的標簽是什么,這樣它才可以通過正確的標簽來修正自己的預(yù)測。

?

????????強化學習需要很多很多次的訓練。以圍棋為例,可能需要上千萬次的training,不可能有人可以這樣和機器互下來train 機器。所以AlfaGo 當時是建立了兩個強化學習模型,一開始先和人類下棋,之后互相下,來進行訓練。

2.2 強化學習

????????以Atari Breakout 游戲為例,這是一個打磚塊的游戲,控制木板左右移動把球反彈到上面來消除磚塊。

????????在游戲過程中,agent 得到的觀測數(shù)據(jù)是相關(guān)聯(lián)的時間序列數(shù)據(jù),上一幀和下一幀之間其實有非常強的連續(xù)性。

????????另外一點是,在玩游戲的過程中,并沒有立刻獲得反饋,沒有告訴你哪個動作是正確動作。比如你現(xiàn)在把這個木板往右移,那么只會使得這個球往上或者往左上去一點,并不會得到立刻的反饋。

????????所以強化學習這么困難的原因是沒有得到很好的很及時的反饋,然后你依然希望 agent 在這個environment里面學習。

????????比如現(xiàn)在是在第三步,你把這個序列放進去,你希望這個網(wǎng)絡(luò)可以輸出一個決策,在當前的這個狀態(tài)應(yīng)該輸出往右移或者往左移。

????????這里有個問題:我們沒有標簽來說明你現(xiàn)在這個動作是正確還是錯誤,必須等到游戲結(jié)束才可能說明?,F(xiàn)在這個動作到底對最后游戲結(jié)束能贏是否有幫助,其實是不清楚的。這里就面臨延遲獎勵(Delayed Reward),所以就使得訓練這個網(wǎng)絡(luò)非常困難。

  • Agent 獲得自己能力的過程中,其實是通過不斷地試錯探索(trial-and-error exploration)。
    • 探索(exploration)和利用(exploitation)是強化學習里面非常核心的一個問題。
    • 探索:你會去嘗試一些新的行為,這些新的行為有可能會使你得到更高的獎勵,也有可能使你一無所有。
    • 利用:采取你已知的可以獲得最大獎勵的行為,你就重復(fù)執(zhí)行這個動作就可以了,因為你已經(jīng)知道可以獲得一定的獎勵。
    • 因此,我們需要在探索和利用之間取得一個權(quán)衡,這也是在監(jiān)督學習里面沒有的情況。?

????????在強化學習過程中,沒有非常強的監(jiān)督者(supervisor),只有一個獎勵信號(reward signal),并且這個獎勵信號是延遲的,就是環(huán)境會在很久以后告訴你之前你采取的行為到底是不是有效的。

????????Agent 在這個強化學習里面學習的話就非常困難,因為你沒有得到即時反饋。

????????當你采取一個行為過后,如果是監(jiān)督學習,你就立刻可以獲得一個指引,就說你現(xiàn)在做出了一個錯誤的決定,那么正確的決定應(yīng)該是誰。模型可以及時通過損失函數(shù)調(diào)整參數(shù)。

????????而在強化學習里面,環(huán)境可能會告訴你這個行為是錯誤的,但是它并沒有告訴你正確的行為是什么。而且更困難的是,它可能是在一兩分鐘過后告訴你錯誤,它再告訴你之前的行為到底行不行。所以這也是強化學習和監(jiān)督學習不同的地方。

3 強化學習的特征

通過跟監(jiān)督學習比較,我們可以總結(jié)出強化學習的一些特征。

  • 強化學習有這個?試錯探索(trial-and-error exploration),它需要通過探索環(huán)境來獲取對環(huán)境的理解。
  • 強化學習 agent 會從環(huán)境里面獲得延遲的獎勵。
  • 在強化學習的訓練過程中,時間非常重要。因為你得到的數(shù)據(jù)都是有時間關(guān)聯(lián)的(sequential data)時序數(shù)據(jù)。
  • Agent 的行為會影響它隨后得到的數(shù)據(jù),這一點是非常重要的。在我們訓練 agent 的過程中,很多時候我們也是通過正在學習的這個 agent 去跟環(huán)境交互來得到數(shù)據(jù)。所以如果在訓練過程中,這個 agent 的模型很快死掉了,那會使得我們采集到的數(shù)據(jù)是非常糟糕的,這樣整個訓練過程就失敗了。所以在強化學習里面一個非常重要的問題就是怎么讓這個 agent 的行為一直穩(wěn)定地提升。

4 為什么關(guān)注強化學習?

為什么我們關(guān)注強化學習,其中非常重要的一點就是強化學習得到的模型可以有超人類的表現(xiàn)。

  • 監(jiān)督學習獲取的這些監(jiān)督數(shù)據(jù),其實是讓人來標注的。比如說 ImageNet 的圖片都是人類標注的。那么我們就可以確定這個算法的上限(upper bound)就是人類的表現(xiàn),人類的這個標注結(jié)果決定了它永遠不可能超越人類。
  • 但是對于強化學習,它在環(huán)境里面自己探索,有非常大的潛力,它可以獲得超越人的能力的這個表現(xiàn),比如谷歌 DeepMind 的 AlphaGo 這樣一個強化學習的算法可以把人類最強的棋手都打敗。

?5 強化學習舉例:Pong

????????上圖是強化學習的一個經(jīng)典例子,就是雅達利的一個叫 Pong 的游戲。這個游戲就是把這個球拍到左邊,然后左邊這個選手需要把這個球拍到右邊。

在這個 pong 的游戲里面,決策其實就是兩個動作:往上或者往下。如果強化學習是通過學習一個 policy network 來分類的話,其實就是輸入當前幀的圖片,policy network 就會輸出所有決策的可能性。

對于監(jiān)督學習,我們可以直接告訴 agent 正確的標簽是什么(這一步應(yīng)該是向上還是向下,這樣就可以用CrossEntropy來表示其損失函數(shù),然后進行誤差反向傳播了)。但在這種游戲情況下面,我們并不知道它的正確的標簽是什么。

?

?在強化學習里面,我們是通過讓它嘗試去玩這個游戲,然后直到游戲結(jié)束過后,再去說你前面的一系列動作到底是正確還是錯誤。

?

  • 上圖的過程是?rollout?的一個過程。Rollout 的意思是從當前幀去生成很多局的游戲。

  • 當前的 agent 去跟環(huán)境交互,你就會得到一堆觀測。你可以把每一個觀測看成一個軌跡(trajectory)。軌跡就是當前幀以及它采取的策略,即狀態(tài)和動作的一個序列:

?????????????????????????????????????????????????

  • 最后結(jié)束過后,你會知道你到底有沒有把這個球擊到對方區(qū)域,對方有沒有接住,你是贏了還是輸了。

  • 我們可以通過觀測序列以及最終獎勵(eventual reward)來訓練這個 agent ,使它盡可能地采取可以獲得這個最終獎勵的動作。

  • 一場游戲叫做一個?episode(回合)?或者?trial(試驗)。

?6 用CV 類比深度強化學習 deep reinforcement learning

強化學習也是有一定的歷史的,只是最近大家把強化學習跟深度學習結(jié)合起來,就形成了深度強化學習(Deep Reinforcemet Learning)。深度強化學習 = 深度學習 + 強化學習。

這里做一個類比,把它類比于這個傳統(tǒng)的計算機視覺以及深度計算機視覺。

  • 傳統(tǒng)的計算機視覺由兩個過程組成。
    • 給定一張圖,我們先要提取它的特征,用一些設(shè)計好的特征(feature),比如說 HOG、DPM。
    • 提取這些特征后,我們再單獨訓練一個分類器。這個分類器可以是 SVM、Boosting,然后就可以辨別這張圖片是狗還是貓。
  • 2012 年過后,我們有了卷積神經(jīng)網(wǎng)絡(luò)CNN,大家就把特征提取以及分類兩者合到一塊兒去了,就是訓練一個神經(jīng)網(wǎng)絡(luò)。這個神經(jīng)網(wǎng)絡(luò)既可以做特征提取,也可以做分類。它可以實現(xiàn)這種端到端的訓練,它里面的參數(shù)可以在每一個階段都得到極大的優(yōu)化,這樣就得到了一個非常重要的突破。

我們可以把神經(jīng)網(wǎng)絡(luò)放到強化學習里面。

  • Standard RL:之前的強化學習,比如 TD-Gammon 玩 backgammon 這個游戲,它其實是設(shè)計特征,然后通過訓練價值函數(shù)的一個過程,就是它先設(shè)計了很多手工的特征,這個手工特征可以描述現(xiàn)在整個狀態(tài)。得到這些特征過后,它就可以通過訓練一個分類網(wǎng)絡(luò)或者分別訓練一個價值估計函數(shù)來做出決策。
  • Deep RL:現(xiàn)在我們有了深度學習,有了神經(jīng)網(wǎng)絡(luò),那么大家也把這個過程改進成一個端到端訓練(end-to-end training)的過程。你直接輸入這個狀態(tài),我們不需要去手工地設(shè)計這個特征,就可以讓它直接輸出動作。那么就可以用一個神經(jīng)網(wǎng)絡(luò)來擬合我們這里的價值函數(shù)或策略網(wǎng)絡(luò),省去了特征工程(feature engineering)的過程。

?參考文獻?第一章 強化學習概述 (datawhalechina.github.io)

總結(jié)

以上是生活随笔為你收集整理的强化学习笔记1:强化学习概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。