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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【强化学习入门】马尔科夫决策过程

發(fā)布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【强化学习入门】马尔科夫决策过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文介紹了馬爾可夫決策過程,首先給出了馬爾可夫決策過程的定義形式,其核心是在時序上的各種狀態(tài)下如何選擇最優(yōu)決策得到最大回報的決策序列,通過貝爾曼方程得到累積回報函數(shù);然后介紹兩種基本的求解最優(yōu)決策的方法,值迭代和策略迭代,同時分析了兩種方法的適用場景;最后回過頭來介紹了馬爾科夫決策過程中的參數(shù)估計問題:求解-即在該狀態(tài)下采取該決策到底下一狀態(tài)的概率。

作者 | 文杰

編輯 | yuquanle

馬爾科夫決策過程

A、馬爾科夫決策過程

機器學(xué)習(xí)算法(有監(jiān)督,無監(jiān)督,弱監(jiān)督)中,馬爾科夫決策過程是弱監(jiān)督中的一類叫增強學(xué)習(xí)。增加學(xué)習(xí)與傳統(tǒng)的有監(jiān)督和無監(jiān)督不同的地方是,這些方法都是一次性決定最終結(jié)果的,而無法刻畫一個決策過程,無法直接定義每一次決策的優(yōu)劣,也就是說每一次的決策信息都是弱信息,所以某種程度上講,強化學(xué)習(xí)也屬于弱監(jiān)督學(xué)習(xí)。從模型角度來看,也屬于馬爾科夫模型,其與隱馬爾科夫模型有非常強的可比性。

下面是一個常用的馬爾科夫模型的劃分關(guān)系


不考慮動作考慮動作
狀態(tài)完全可見馬爾科夫鏈(MC)馬爾科夫決策過程(MDP)
狀態(tài)不完全可見隱馬爾科夫模型(HMM)不完全可觀察馬爾科夫決策過程(POMDP)


馬爾科夫決策過程:

馬爾科夫決策過程由五元組組成

:表示狀態(tài)集合

:表示一組動作

:表示在某一狀態(tài)下,采取動作,轉(zhuǎn)移到轉(zhuǎn)態(tài)的概率,也就是說在確定的狀態(tài)下采取相應(yīng)的動作之后不能完全確定下一狀態(tài),而是以一定的概率確定下一狀態(tài)。

:表示決策過程的一個阻尼系數(shù),用戶定義回報在決策過程中隨時間打折扣,加快決策國產(chǎn)的收斂

:表示在該狀態(tài)下的一個回報,有時由動作和狀態(tài)共同決定回報該時刻的回報。

有了上面的定義之后,一個完整的馬爾科夫決策過程狀態(tài)轉(zhuǎn)移圖如下:

該過程表示從出發(fā),有決策函數(shù)來選擇相應(yīng)的動作,然后以概率到達下一狀態(tài),這里的只是表示第時刻的狀態(tài),而的值屬于狀態(tài)集。

回報函數(shù)定義之后,整個決策過程的累積回報如下:


當回報函數(shù)與狀態(tài)無關(guān)累積回報如下:


其中為折扣因子,隨著決策不斷進行,回報不斷打折扣。

當定義不同決策函數(shù)時,我們會得到不同的回報,因此就定義了一個決策到回報的函數(shù)。在整個決策過程中,給定決策函數(shù)—在狀態(tài)下采取動作。因此,從狀態(tài)出發(fā),采用決策函數(shù),有累積回報函數(shù)如下:


直接最大化累積回報函數(shù)不易,從遞推角度來看,由貝爾曼方程有:


其中為立即回報,表示由采取動作之后轉(zhuǎn)移到下一個狀態(tài)集中,具體到哪個狀態(tài)的概率為。其解釋性可以理解為下象棋最終的累積回報為輸贏,在第狀態(tài)下的累積回報則是當前狀態(tài)下的立即回報以及未來的回報。第一項為立即回報,第二項就是未來的回報。

有了上面的貝爾曼方程,我們的目標就是最大化任意狀態(tài)下出發(fā)的累積回報函數(shù),其中也是一個決策函數(shù),但是在累積回報函數(shù)中它是我們需要優(yōu)化的變量。目標函數(shù)如下:


由目標函數(shù)可以看出,最優(yōu)回報和最優(yōu)決策一一對應(yīng)。最大化累積回報對應(yīng)的決策函數(shù)就是最有決策,最有決策對應(yīng)的累積回報也是最大累積回報,所以最有決策如下:


有了最優(yōu)決策和最大累積回報,那么必定有下式:


也就是說最優(yōu)決策下對應(yīng)的累積回報一定不小于一般的決策下的累積回報。

值得注意是,最優(yōu)決策是出于全局考慮的,是從所有狀態(tài)下出發(fā)到得到的累積回報的加和最大,這就意味著決策函數(shù)不保證其中每一個狀態(tài)出發(fā)根據(jù)決策函數(shù)得到的累積回報都是最大的。

最優(yōu)決策:

也許上面的目標函數(shù)還不清晰,如何求解最有決策,如何最大化累積回報

下面結(jié)合例子來介紹如何求解上面的目標函數(shù)。且說明累積回報函數(shù)本身就是一個過程的累積回報,回報函數(shù)才是每一步的回報。

下面再來看求解上述最優(yōu)問題,其中 就是以s為初始狀態(tài)沿著決策函數(shù)走到結(jié)束狀態(tài)的累積回報。

值迭代:

  • 將每一個初始狀態(tài)為s的初始化為0,目標狀態(tài)累積回報為1

  • 循環(huán)直到收斂{

  • 對于每一個初始狀態(tài),對進行更新:

    }

    可以看出,更新第一次所有的,也就是說都只看眼下的立即回報,然后由于獎勵狀態(tài)和懲罰狀態(tài)的分布不同,由靠近獎勵狀態(tài)和懲罰狀態(tài)的狀態(tài)決策逐漸導(dǎo)向到初始狀態(tài)的決策,這也就是累積回報不斷更新的原因(動力)。但是值得思考的還是最終會不會收斂到最優(yōu)累積回報(暫時不作討論)。

    內(nèi)循環(huán)迭代的的處理方法有兩種:

  • 同步迭代:即在一次循環(huán)過程中,累積回報不更新,而是計算完所有的累積回報之后,再統(tǒng)一更新。

  • 異步迭代,即在一次循環(huán)過程中,每計算完一個初始狀態(tài)下累積回報就立即更新,不需要等到所有的累積回報都計算出來之后再更新。

  • 可以看出兩種迭代方式造成不同的原因是第二項,因為立即更新之后,再計算下一個初始狀態(tài)下的累積回報與暫時不更新得到的累積回報肯定不一樣,拿第一次更新為例,同步更新第一次?,而異步更新則第一次內(nèi)循環(huán)中,除了第一次更新的s會出現(xiàn)?,剩下的都有?,值得肯定的是異步迭代的收斂速度肯定是快于同步迭代。

    策略迭代:

    值迭代是使累積回報值最優(yōu)為目標進行迭代,而策略迭代是借助累積回報最優(yōu)即策略最優(yōu)的等價性,進行策略迭代。

  • 隨機指定一個策略??。

  • 循環(huán)直到收斂{

    a:令

    b:對于每一個狀態(tài)s,對做更新

  • }

    這里要說明的是a步是通過前面的貝爾曼方程,以解方程的形式求解出每一個狀態(tài)下的累積回報:

    在b步則是根據(jù)累積回報值,重新更新決策?。

    同樣,收斂性也是值得探討的,這里簡單的思考一下,由于獎勵狀態(tài)和懲罰狀態(tài)的分布,以及累積回報唯一確定決策函數(shù),那么未達到最優(yōu)決策,必然累積回報和決策函數(shù)處于不穩(wěn)定的狀態(tài),而只有當?shù)竭_最優(yōu)決策時,才有:

    所以該過程就是在a步由決策函數(shù)確定累積回報,然后最大化累積回報來更新決策,如此反復(fù),則有最優(yōu)決策。值迭代和策略迭代比較:可以看出策略迭代涉及從決策函數(shù)到累積回報的解線性方程組的步驟,值迭代則是反復(fù)的,所以策略迭代更適合處理少量狀態(tài)的情況,一般10000以內(nèi)還是可以接受的。

    MDP中的參數(shù)估計:

    回過頭來再來看前面的馬爾科夫決策過程的定義是一個五元組,一般情況下,五元組應(yīng)該是我們更加特定的問題建立馬爾科夫決策模型時該確定的,并在此基礎(chǔ)上來求解最優(yōu)決策。所以在求解最優(yōu)決策之前,我們還需更加實際問題建立馬爾科夫模型,建模過程就是確定五元組的過程,其中我們僅考慮狀態(tài)轉(zhuǎn)移概率,那么也就是一個參數(shù)估計過程。(其他參數(shù)一般都好確定,或設(shè)定)。

    假設(shè),在時間過程中,我們有下面的狀態(tài)轉(zhuǎn)移路徑:



    其中表示步,第條轉(zhuǎn)移路徑對應(yīng)的狀態(tài),是狀態(tài)下執(zhí)行的動作,每一條轉(zhuǎn)移路徑中狀態(tài)數(shù)都是有限的,在實際過程中,每一個狀態(tài)轉(zhuǎn)移路徑都要進入終結(jié)狀態(tài)。如果我們獲得了很多上面的轉(zhuǎn)移路徑,那么我們就可以來估計參數(shù)。


    分子是在狀態(tài)下采取動作都轉(zhuǎn)移到的次數(shù),分母是在狀態(tài)下采取動作的次數(shù)。為了避免的情況,同樣采用拉普拉斯平滑。也就是說當?shù)竭_的狀態(tài)是樣本中為為到達過的狀態(tài),那么在該狀態(tài)下的執(zhí)行的動作達到下一狀態(tài)的概率均分。上面的這種估計方法是從歷史數(shù)據(jù)中進行統(tǒng)計的,同樣該方法適合于在線更新。對于立即回報函數(shù)的估計,一般根據(jù)實際情況學(xué)習(xí)或者設(shè)定。

    所以整個馬爾科夫決策過程流程如下(以策略迭代為例):

  • 隨機初始化策略 ??? 。

  • 循環(huán)直到收斂{

    a 在樣本上統(tǒng)計該策略下每個狀態(tài)轉(zhuǎn)移的次數(shù),來估計和

    b 使用估計到參數(shù)來更新對應(yīng)決策函數(shù)下的累積回報

    c 根據(jù)更新的累積回報重新進行決策,即更新

  • }

    整個流程就是在策略迭代的基礎(chǔ)上,同時進行了參數(shù)估計。

    代碼實戰(zhàn)

    A、馬爾可夫決策過程值迭代

    /***馬爾科夫決策過程值迭代,關(guān)鍵在于第一次迭代要例外,因為目標狀態(tài)是一個終止狀態(tài),放到迭代循環(huán)里面會出現(xiàn)臨近的狀態(tài)回報函數(shù)無限的,發(fā)散。迭代過程采用的是異步迭代,即每一次內(nèi)層循環(huán)找到更優(yōu)的回報就立即更新最大回報,以便與之相鄰的狀態(tài)能立即更新到最優(yōu)*/?/****值迭代同步更新12*12*7*/?while(!flag){flag=1;for(i=0; i<size; i++){if(action[i]>0||action[i]==0)maxreward[i]=reward[i]+maxreward[action[i]];else?maxreward[i]=reward[i];}//放到這意味著同步更新,count=1008是12*12的7倍,即掃了7遍for(i=0; i<size; i++)//對每一個狀態(tài)求最大的V(s){for(j=0; j<size; j++)//策略迭代的話這里其實可以換做掃一遍策略集,這也就是和值迭代不同的地方{//cout<<"i="<<i<<" "<<maxreward[i]<<" "<<endl;if(matrix[i][j]==1&&maxreward[j]>maxreward[i]-reward[i]+0.0001)//更新累積回報{action[i]=j;//if(action[i]>0||action[i]==0)//maxreward[i]=reward[i]+maxreward[action[i]];//放到這是異步更新,//else// maxreward[i]=reward[i];flag=0;//當累積回報不再更新,即不進入該if,那么就結(jié)束迭代}count++;}}}

    B、馬爾可夫決策過程策略迭代

    while(!flag){flag=1;for(i=0; i<size; i++)//對每一個狀態(tài)求最大的V(s){for(j=0; j<ACTION; j++)//策略迭代的話這里其實可以換做掃一遍策略集,這也就是和值迭代不同的地方{//cout<<"i="<<i<<" "<<maxreward[i]<<" "<<endl;if(matrix[i][ac[j]+i]==1&&maxreward[ac[j]+i]>maxreward[i]-reward[i]+0.0001){action[i]=j;//if(reward[i]!=1&&reward[i]!=-1)maxreward[i]=reward[i]+maxreward[ac[j]+i];//else// maxreward[i]=reward[i];flag=0;}count++;}}}

    C、馬爾可夫決策過程動態(tài)規(guī)劃版

    /**4 非遞歸動態(tài)規(guī)劃從最終狀態(tài)出發(fā),采用廣度遍歷不斷的更新其上一狀態(tài)的累積回報*/?/*while(q!=NULL)//這里圖的廣度遍歷沒有用到隊列,但也用到了隊列的思想//對于當前步能到達的節(jié)點用鏈表連接起來,然后逐漸進行下一步的能到達的節(jié)點進行入鏈(入隊列),同樣是一種先進先出思想{for(i=0; i<size; i++) //由于不是策略迭代,只能遍歷所有的狀態(tài),找出能到的,且更優(yōu)的{if(matrix[i][q->data]==1&&maxreward[i]<0)//double類型比較大小的偏差,加上一個小數(shù)作為精度{maxreward[i]=reward[i]+maxreward[q->data];p=(subset *)malloc(sizeof(subset)*1);p->data=i;p->next=NULL;q=maxsubset;while((q->next)!=NULL)q=q->next;q->next=p;}count++;}maxsubset->next=maxsubset->next->next;//刪除當前節(jié)點,即當前步下能到達的節(jié)點都已經(jīng)走完了,可出隊列了q=maxsubset->next;//}

    The End

    備注:公眾號菜單包含了整理了一本AI小抄非常適合在通勤路上用學(xué)習(xí)

    往期精彩回顧2019年公眾號文章精選適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)在線手冊深度學(xué)習(xí)在線手冊AI基礎(chǔ)下載(第一部分)備注:加入本站微信群或者qq群,請回復(fù)“加群”加入知識星球(4500+用戶,ID:92416895),請回復(fù)“知識星球”

    喜歡文章,點個在看

    總結(jié)

    以上是生活随笔為你收集整理的【强化学习入门】马尔科夫决策过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 不卡一区在线 | 日本aaa级片 | 极品在线观看 | 日日舔夜夜操 | 久久免费看少妇高潮v片特黄 | 深爱激情丁香 | 中文高清av | 久久精品国产精品亚洲毛片 | 成人免费毛片网站 | 黄色一级视频 | 欧美日韩国产在线播放 | 91网站免费入口 | 免费看黄色一级片 | 精品视频一区二区三区在线观看 | 性高潮久久久久久 | 日本久久精品 | 欧美一区二区人人喊爽 | 国产乱码精品一区二区三区中文 | 午夜av影院| 久久欲 | 国产精品一区二区免费视频 | www久久 | 91久久精| 亚洲一区二区三区四区在线 | 欧美资源站 | 超碰香蕉| 亚洲av无码国产精品麻豆天美 | 日韩综合一区 | 性——交——性——乱免费的 | 又粗又大又硬又长又爽 | 麻豆tube| 国产一区二区视频免费在线观看 | 国产精品最新 | 欧美日韩在线视频一区二区三区 | 2025国产精品 | 打屁股外国网站 | 成人片免费视频 | 国产美女流白浆 | 91视频首页 | 成人午夜视频在线 | 四虎影视永久 | 亚洲图片 欧美 | 国产综合久久久久久鬼色 | 欧美1234区 | 欧美日韩黑人 | 日韩精品网站 | 少妇高潮久久久 | 日本黄网在线观看 | 亚洲一区欧美日韩 | 网站黄在线观看 | 久久中字| 黄色午夜 | 国v精品久久久网 | 国产精品精东影业 | 一级毛片基地 | 性高湖久久久久久久久免费 | 色狠狠一区 | 国产二区自拍 | 性――交――性――乱睡觉 | 性感美女一区二区三区 | 免费欧美一级视频 | 亚洲香蕉一区 | 欧美大片一级 | 超污视频软件 | 亚洲一区二区三区香蕉 | 亚洲va国产va天堂va久久 | 亚洲午夜精品 | 国内少妇精品 | 午夜精品久久久久久久99 | 二区中文字幕 | 亚洲AV无码乱码国产精品色欲 | 久久久一二三四 | 波多野结衣视频在线 | 视频一区二区三区在线观看 | 成人免费看片'在线观看 | 超碰95在线 | 亚洲AV无码国产精品午夜字幕 | 日韩视频在线播放 | 性做久久久 | 欧美性天天 | 中文字幕日韩久久 | 二级黄色大片 | 中国免费一级片 | 国产欧美在线观看视频 | 色91在线 | 色屁屁ts人妖系列二区 | 黄色aaa毛片 | 黄色男同视频 | 91免费大片| 91偷拍一区二区三区精品 | 污污网站在线观看视频 | 第一福利丝瓜av导航 | 国产另类综合 | 哺乳喂奶一二三区乳 | a级网站在线观看 | 黄色午夜 | 又黄又爽又色的视频 | av无毛 | 久久久久久不卡 |