成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能 正文
    發私信給AI研習社-譯站
    發送

    0

    深度強化學習-深度Q網絡(DQN)介紹

    本文作者: AI研習社-譯站 2019-07-31 15:04
    導語:原始的深度強化學習是純強化學習,其典型問題為馬爾科夫決策過程(MDP)。


    深度強化學習-深度Q網絡(DQN)介紹

    原標題 |  Deep Reinforcement Learning. Introduction. Deep Q Network (DQN) algorithm.

    作者 |  Markus Buchholz

    譯者 |  qianyuhappy、AI小山

      1.引言

    深度強化學習-深度Q網絡(DQN)介紹

    由DeepDream生成的圖像

    原始的深度強化學習是純強化學習,其典型問題為馬爾科夫決策過程(MDP)。馬爾科夫決策過程包含一組狀態S和動作A。狀態的轉換是通過概率P,獎勵R和一個折衷參數gamma決定的。概率轉換P反映了轉換和狀態轉變的獎勵之間的關系,狀態和獎勵僅依賴上一時間步的狀態和動作。

    強化學習為Agent定義了環境,來實現某些動作以最大化獎勵(這些動作根據policy采取)。對Agent的優化行為的基礎由Bellman方程定義,這是一種廣泛用于求解實際優化問題的方法。為了解決Bellman優化問題,我們使用了一種動態編程的方法。

    當Agent存在于環境中并轉換到另一個狀態(位置)時,我們需要估計狀態V(s)(位置)-狀態值函數的值。一旦我們知道了每個狀態的值,我們就可以找出執行Q(S, A)-動作值函數的最佳方法(只需遵循值最高的狀態)。

    這兩個映射或函數相關性很高,可以幫助我們找到問題的最佳策略。從狀態值函數我們可以看出遵循策略的Agent,處于的S狀態有多好。

    符號解釋:

    E[X]?—?隨機變量X的期望

    ?—?policy

    Gt?—?t時刻的折現收益

    γ?—?折現率

    深度強化學習-深度Q網絡(DQN)介紹

    但是,動作值函數q(s,a)是從狀態S開始,采取動作A,并遵循策略π的折現收益,并告訴我們從特定狀態采取特定動作的效果。

    深度強化學習-深度Q網絡(DQN)介紹

    很明顯,狀態值函數和Q函數之間的區別在于值函數體現狀態的良好性,而Q函數體現狀態中的動作的良好性。

    MDP由Bellman方程求解,Bellman方程是以美國數學家Richard Bellman的名字命名的。該方程有助于尋找最優的策略和價值函數。代理根據所施加的策略選擇操作(策略——正式地說,策略定義為每種可能狀態下操作的概率分布)。代理可以遵循的不同策略意味著狀態的不同值函數。然而,如果目標是使收集到的獎勵最大化,我們必須找到最好的可能的政策,稱為最優政策。

    深度強化學習-深度Q網絡(DQN)介紹

    另一方面,最佳狀態值函數的值,比所有其它值函數(最大返回值)都要大,因此,最佳值函數也以通過代入最大Q值來進行估算:

    深度強化學習-深度Q網絡(DQN)介紹

    最后,值函數的貝爾曼等式(Bellman equation)可表示如下:

    深度強化學習-深度Q網絡(DQN)介紹

    類似地,Q函數的貝爾曼等式可表示如下:

    深度強化學習-深度Q網絡(DQN)介紹

    基于最佳狀態值函數以及上述的狀態值函數、動作值函數的等式,我們可以寫出最終的最佳值函數的等式,該等式稱作貝爾曼最佳等式:

    深度強化學習-深度Q網絡(DQN)介紹

    深度強化學習-深度Q網絡(DQN)介紹

    通常,強化學習的問題通過Q學習算法來解決。這里,如上所言,智能體與環境交互并接收獎勵。目標是用足最佳策略(選擇動作的方法),以取得最大獎勵。在學習過程中,智能體更新Q(S,A)表(當回合結束時,任務完成,目標達到)。

    Q學習算法通過以下步驟實現:

    1、用隨機數初始化Q(S,A)表。

    2、用epsilon貪心策略選取一個行動,然后進入下一個狀態S’

    3、根據更新等式來更新前一個狀態的Q值:

    深度強化學習-深度Q網絡(DQN)介紹

    最好是從解決來自OpenAI gym的 Frozen Lake 開始。

    在凍湖環境里(最好能熟悉OpenAI的描述),智能體可處理16種狀態,執行4個不同的動作(在一個狀態中)。在這種情況下,我們的A(S,A)表的大小是16x4。

    Frozen Lake 代碼如下,你也可以點擊此處查看~

    深度強化學習-深度Q網絡(DQN)介紹

    https://gist.github.com/markusbuchholz/af4e5b5891de6d3cf5528f83b6198311#file-qlearning_algorithm-py

    深度強化學習-深度Q網絡(DQN)介紹

    請注意上面給出的Q算法屬于時序差分學習算法(Temporal Difference Learning algorithms)(由Richard S. Sutton于1988年提出)。Q算法是一種線下策略(off-policy)算法(這種算法具有從舊的歷史數據學習的能力)。Q學習算法的擴展是SARSA(在線策略(on-policy)算法)。唯一區別在于Q(S,A)表的更新:

    深度強化學習-深度Q網絡(DQN)介紹

      2. 深度強化學習(深度Q網絡--DNQ)

    當所有可到達的狀態處于可控(能夠迭代)并且能存儲在計算機RAM中時,強化學習對于環境來說是足夠好用的。然而,當環境中的狀態數超過現代計算機容量時(Atari游戲有12833600個狀態),標準的強化學習模式就不太有效了。而且,在真實環境中,智能體必須面對連續狀態(不離散),連續變量和連續控制(動作)的問題。

    知道了智能體所處的環境的復雜性(狀態數量,連續控制),標準的、定義明確的強化學習Q表就得被深度神經網絡(Q網絡)取代了,后者可以把環境狀態映射為智能體動作(非線性逼近)。網絡架構,網絡超參數的選擇以及學習都在訓練階段(Q網絡權重的學習)中完成。DQN允許智能體探索非結構化的環境并獲取知識,經過時間積累,他們可以模仿人類的行為。

      3. 學習算法DQN

    下圖(在訓練過程中)描述了DQN的核心概念,圖中,Q網絡做非線性逼近,把狀態映射為動作值。

    在訓練過程中,智能體與環境交互,并接收數據,這些數據在Q網絡的學習過程中會用到。智能體探索環境,建立一個轉換和動作輸出的全圖。開始時,隨機進行動作,隨著時間推移,這樣做越來越沒效果。在探索環境時,智能體盡量查詢Q網絡(逼近)以決定如何行動。我們把這種方式(綜合了隨機行為和Q網絡查詢)稱為epsilon貪心方法(epsilon貪心動作選擇塊),也就是說利用概率超參數epsilon在隨機和Q策略間進行選擇。

    我們所講的Q學習算法的核心來自于監督學習。

    如前所述,我們的目標是用深度神經逼近一個復雜的非線性函數Q(S,A)。

    跟監督學習一樣,在DQN中,我們定義損失函數為目標和預測值之間的方差,我們也更新權重盡量減少損失(假定智能體從一個狀態轉換到另一個狀態,進行了某個動作a,獲取獎勵r)。

    深度強化學習-深度Q網絡(DQN)介紹

    在學習過程中,我們使用兩個不相關的Q網絡(Q_network_local和Q_network_target)來計算預測值(權重θ)和目標值(權重θ’)。經過若干步驟后,目標網絡會被凍結,然后拷貝實際的Q網絡的權重到目標網絡權重。凍結目標Q網絡一段時間再用實際Q網絡的權重更新其權重,可以穩定訓練過程。

    深度強化學習-深度Q網絡(DQN)介紹

    圖1. DQN算法概念

    為使訓練過程更穩定(我們要避免用比較關聯的數據來訓練網絡,如果基于連續更新最后轉換來進行訓練的話, 這種情況就有可能發生),我們引入重播緩沖區,它能記住智能體所經歷的行為。然后,用重播緩沖區里的隨機樣本來進行訓練(這可以減少智能體的經歷之間的關聯性,并有助于智能體從更廣泛的經歷中進行學習)。

    DQN算法可描述如下:

    1. 初始化重播緩沖區。

    2. 預處理環境,并把狀態S輸入DQN, 后者會返回該狀態中所有可能的動作的Q值。

    3. 用epsilon貪心策略選取一個動作:當有概率epsilon時,我們選擇隨機動作A,當有概率1-epsilon時,選取具有最高Q值的動作,例如A=argmax(Q(S, A, θ))。

    4. 選擇了動作A后,智能體在狀態S中執行所選的動作,并進行到新狀態S ,接收獎勵R。

    5. 把轉換存儲在重播緩沖中,記作<S,A,R,S’>。            。    

    6. 下一步,從重播緩沖區中抽取隨機批次的轉換,并用以下公式計算損失:

    深度強化學習-深度Q網絡(DQN)介紹

    7. 針對實際網絡參數,執行梯度下降,以使損失最小化。

    8. 每隔k步之后,拷貝實際網絡權重到目標網絡權重中。

    9. 重復這些步驟M回合。

      4. 工程設置.結果.

    在這一段中,我展示Udacity(深度強化學習)的工程代碼的結果。

    a. 工程的目標

    本工程的目標是訓練智能體如何在方塊環境中通過移動來采集黃色香蕉。工程要求在100個連續回合中獲取+13的平均分。

    b. 在導航工程中,使用下列參數設置神經網絡架構和超參數:

    以下是每回合的獎勵圖,顯示出智能體在玩了2247回合后,能收到的平均獎勵(超過100回合)有至少+13。

    Q網絡架構:

    輸入層FC1:37節點輸入,64節點輸出

    隱藏層FC2:64節點輸入,64節點輸出

    隱藏層FC3:64節點輸入,64節點輸出

    輸出層:64節點輸入,4節點輸出----動作的大小

    使用的超參數:

    BUFFER_SIZE = int(1e5) # 重播緩沖區大小
    BATCH_SIZE = 64 # 最小批量大小
    GAMMA = 0.99 # 折扣率
    TAU = 1e-3 # 用于目標參數的軟更新
    LR = 5e-4 # 學習率
    UPDATE_EVERY = 4 # 更快網絡的快慢
    Epsilon start = 1.0
    Epsilon start = 0.01
    Epsilon decay = 0.999

    深度強化學習-深度Q網絡(DQN)介紹

    深度強化學習-深度Q網絡(DQN)介紹

    圖2. 智能體學習的平均得分

      5. 未來工作的想法

    如果有深度學習的相關經驗,那么未來工作將主要集中于圖像處理方面(從像素中學習)。下圖展示了DQN的架構,圖中,我們輸入游戲畫面,Q網絡逼近游戲狀態中所有動作的Q值。動作由我們討論過的DQN算法進行選擇。

    深度強化學習-深度Q網絡(DQN)介紹

    圖3. 從像素學習的概念

    其次,未來的工作將集中在生成一個決斗(Dueling)式DQN。在這個新的架構中,我們指定新的優勢函數,這個函數計算出智能體執行的一個動作,比其它動作好了多少(優勢可為正也可為負)。

    Dueling DQN架構與上面講的DQN相同,只不過最后的全連接層分成兩股(見下圖所描述)。

    若環境的一個狀態有確定數量的動作空間,絕大多數計算出來的動作對狀態沒有什么影響。此外,有些動作有冗余效應。在這種情況下,新的dueling DQN將會比DQN架構估算出來的Q值更精確。

    其中一股計算值函數,另一股計算優勢函數(用于決定哪個動作更優)。

    深度強化學習-深度Q網絡(DQN)介紹

    圖4. Dueling DQN架構

    最后,我們考慮一下從人類的偏好中進行學習 (OpenAI和Deep Mind) 。這個新概念的核心思想是從人類的反饋中學習。接收人類反饋的智能體,將盡力進行人類期望的動作,并相應地設置獎勵。人類與智能體的直接交互 ,會有助于降低設計獎勵函數和復雜的目標函數的難度。

    深度強化學習-深度Q網絡(DQN)介紹

    你可以通過我的Github找到本工程的全部源碼:

    https://github.com/markusbuchholz/deep-reinforcement-learning/tree/master/p1_navigation

    本文編輯:王立魚

    英語原文:https://medium.com/@markus.x.buchholz/deep-reinforcement-learning-introduction-deep-q-network-dqn-algorithm-fb74bf4d68621

    想要繼續查看該篇文章相關鏈接和參考文獻?

    點擊【深度強化學習-深度Q網絡(DQN)介紹】即可訪問!

    福利大放送——滿滿的干貨課程免費送!

    「好玩的Python:從數據挖掘到深度學習」該課程涵蓋了從Python入門到CV、NLP實踐等內容,是非常不錯的深度學習入門課程,共計9節32課時,總長度約為13個小時。。

    課程頁面:https://ai.yanxishe.com/page/domesticCourse/37

    「計算機視覺基礎入門課程」本課程主要介紹深度學習在計算機視覺方向的算法與應用,涵蓋了計算機視覺的歷史與整個課程規劃、CNN的模型原理與訓練技巧、計算機視覺的應用案例等,適合對計算機視覺感興趣的新人。

    課程頁面:https://ai.yanxishe.com/page/domesticCourse/46

    現AI研習社將兩門課程免費開放給社區認證用戶,只要您在認證時在備注框里填寫「Python」,待認證通過后,即可獲得該課程全部解鎖權限。心動不如行動噢~

    認證方式:https://ai.yanxishe.com/page/blogDetail/13999

    雷鋒網雷鋒網雷鋒網


    雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

    深度強化學習-深度Q網絡(DQN)介紹

    分享:
    相關文章

    知情人士

    AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說