強化學習 強化學習基礎

2021-10-05 01:24:16 字數 2197 閱讀 8411

為了應對車載網路中通訊環境快速變化的難題,可以使用強化學習進行解決,這裡對強化學習的基礎進行整理。主要的應用場景為車載網路中資源分配問題。

本文源自莫煩python 強化學習章節,有需要請查閱原文

20200413補充了一些內容,來自這篇部落格,是李巨集毅的深度強化學習的筆記。

強化學習的主要構成有:agent(主體)、狀態、動作準則、獎勵函式。

主要流程為:agent開始時處 於某種狀態中,agent需要通過動作準則決定自己的動作並進入下乙個狀態,此外在做出動作後將通過獎勵函式獲得獎勵,並更新動作準則。

與監督學習的區別:

與mdp(馬爾可夫決策過程)的區別:

當你需要與環境互動或快速追隨環境的變化,進而改進自己的行為的時候,強化學習很適用

這兩者的差別就是 演算法中是否包含agent所處環境的模型。

model-based的演算法中會構建乙個虛擬的環境,它可以在這個虛擬環境中進行試驗,然後再在真實環境中進行試驗,這樣的好處就是避免在真實環境中的低階錯誤(因為他在真實環境中的動作都是在虛擬環境中驗證過的比較好的動作)

q learning、sarsa都是model-free

選擇動作時需要給對每個動作進行比較然後選擇合適的動作。

如果使用概率進行比較,那我不一定選擇概率數值最高的動作(因為那個只是概率高,我也有概率選擇其他的動作)。如果使用數值(價值)比較,那麼答案就很明確了,選擇數值最高的就好,其他的動作我不可能選。

基於價值和基於動作相比就是引入了選擇其他分數不高的動作的隨機性。

這個詞條蠻複雜的,我這裡只是做表面理解,詳細請另行查詢blog,比如這個

區別發生在更新動作準則的打分函式的階段。

off在新狀態思考下一步行動時只想著讓動作分數最優,on在新狀態後會使用一定策略進行動作選擇。

所謂決策,是根據狀態和動作準則選擇動作的過程。q learning中的動作準則用乙個**表示,這個表稱作q表,如下所示

狀態\動作

a1a2

s1-2

s2-4

2左側目錄表示狀態,上側目錄表示動作,每個單元格表示在當前狀態下選擇當前動作所得到的分數,稱作q值。

決策時,動作準則是已知的,將agent的當前狀態作為輸入,查詢準則選擇q值高的動作作為輸出。

當決策進行後,狀態發生改變(由s變為s'),接下來更新q表,更新後的q表記為q'。

更新方法如下:

將決策階段選擇的動作所獲得q值記為q1,並根據獎勵函式得到乙個獎勵r

以s『為輸入,在q表上再次進行決策並將得分記作q2

現實 = r +

此時已經得到更新後的q表:q『

【一次完整的迭代結束,接下來從』決策『步驟開始下一輪迭代】

我在刷碗(狀態s),對接下來的幹些啥(動作空間)已經有了小算盤(q表),【這個小算盤的每一行表示乙個狀態、每一列表示乙個動作,每個格仔是該狀態下該動作所得到的快活】,我想去做目前可以做到的最快活的事(最大化q值),那就是去偷懶(決策)!,進入偷懶狀態(狀態s『)。【到此為止決策完畢,進入了新的狀態,但一次完整的迭代還沒結束】,此時媽媽(獎勵函式)給了我刷碗的工資(獎勵),而我腦中再次快速運轉,根據小算盤思考現在做什麼可以「讓自己最快活」。

這時,洗碗狀態下可能得到的最大快活(q值),和 工資帶來快活+偷懶狀態下可能得到的最大快活(q值),存在一定差異,根據此差異修正我的小算盤(更新q表)【到此為止一次完整的迭代完畢,得到了新的q表、新的狀態】。

這裡要注意,q值和獎勵 r 的差別。q值是我的小算盤,而獎勵是執行動作後實際的收益,這兩者之間存在的差別是我們更新小算盤的動力。

q表每一行表示乙個狀態,當狀態太多時,儲存和搜尋都是問題。所以用dnn代替q表,輸入狀態和動作,輸出有兩種形式:1.直接輸出q值;2.輸出動作打分,再由一定準則輸出q值(這樣主要是省去了對各種狀態下動作打分的儲存和查詢)。

以下分析基於輸出動作q值的dnn,輸入的是狀態和動作,輸出的是動作的q值。

具體方法和更新q表一樣,形式上就是把q表替換為dnn,將查表的操作替換為dnn執行前傳進行**。

經驗重播(experience replay)允許dqn在更新的時候,隨機抽取一些經歷進行學習,通過隨機抽取打亂經歷之間的相關性,從而使神經網路的訓練更有效率。

fix q-targets將會用另乙個dnn**『現實』。這個dnn的引數是很久以前的引數,進而打亂相關性。

強化學習基礎

mdps簡單來說就是乙個智慧型體 agent 採取行動 action 從而改變自己的狀態 state 來獲取獎勵 reward 與環境 environment 互動的過程。mdps的策略完全取決於當前狀態,這也是馬爾科夫性質的體現。可以簡單的表示為 m a,ps a,r 回報 return u s0...

強化學習 1 1 0 強化學習介紹

abstract 本文介紹reinforcement learning的具體特點和與其他機器學習演算法不同之處,本文是乙個骨架性的文章,所有專有名詞都保持英文原始單詞,具體內容會在後續中給出詳細解答。keywords reinforcement learning,situation,action,e...

強化學習系列1 強化學習簡介

2015年10月,alphago在和歐洲冠軍進行的圍棋賽上獲得了5 0的完勝,其後的深度強化學習也隨之火了起來。從本期開始開個新坑,一步步把強化學習的內容捋一遍。強化學習 reinforcement learning 是用來解決連續決策問題的一種方法。針對的模型是馬爾科夫決策過程 markov de...