本發(fā)明屬于機(jī)器學(xué)習(xí)技術(shù)領(lǐng)域,特別是一種結(jié)合馬爾科夫決策過程的動作知識提取方法。
背景技術(shù):
在機(jī)器學(xué)習(xí)中,許多模型如支持向量機(jī)、隨機(jī)森林、深層神經(jīng)網(wǎng)絡(luò)已經(jīng)被提出并取得了很大的成功,但是在許多實際應(yīng)用中,這些模型的可實施性比較差。
強(qiáng)化學(xué)習(xí)是一類特殊的機(jī)器學(xué)習(xí),通過與所在環(huán)境的自主交互來學(xué)習(xí)決策策略,使得策略收到的長期累積獎賞最大;強(qiáng)化學(xué)習(xí)與其他機(jī)器學(xué)習(xí)方法的區(qū)別在于:不用預(yù)先給出訓(xùn)練數(shù)據(jù),而是要通過與環(huán)境的交互來產(chǎn)生;在管理科學(xué)領(lǐng)域,知識提取問題是采用統(tǒng)計學(xué)的方法來分析用戶的行為并找出特定的規(guī)則;在機(jī)器學(xué)習(xí)領(lǐng)域,知識提取問題主要是采用模型后續(xù)分析技術(shù)。
這兩類方法的主要缺點(diǎn)是他們是用全部數(shù)據(jù)建立模型來提取知識,并不是對單獨(dú)記錄提取其有用的知識。所以在許多應(yīng)用中,這些模型的可實施性比較差,因為這些模型僅對狀態(tài)的一個屬性值進(jìn)行修改,這就造成了在實際應(yīng)用中結(jié)果會出現(xiàn)誤差,不能準(zhǔn)確地給出可行性的建議。
技術(shù)實現(xiàn)要素:
本發(fā)明所解決的技術(shù)問題在于提供一種結(jié)合馬爾科夫決策過程的動作知識提取方法,以解決現(xiàn)有技術(shù)中用全部數(shù)據(jù)建立模型提取知識和只改變狀態(tài)的一個屬性值,導(dǎo)致結(jié)果誤差較大的問題;本發(fā)明通過強(qiáng)化學(xué)習(xí)的馬爾科夫決策過程實現(xiàn)數(shù)據(jù)驅(qū)動的動作知識提取,實現(xiàn)把機(jī)器學(xué)習(xí)模型的預(yù)測結(jié)果轉(zhuǎn)化為動作知識的能力。
實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:
一種結(jié)合馬爾科夫決策過程的動作知識提取方法,包括如下步驟:
步驟1:訓(xùn)練隨機(jī)森林模型h;
步驟2:定義動作知識提取問題ake:針對隨機(jī)森林模型h,對屬性進(jìn)行分割,定義屬性變化、動作,在此基礎(chǔ)上定義動作知識提取問題ake;
步驟3、用馬爾科夫決策過程求解ake優(yōu)化問題:對任意輸入數(shù)據(jù),定義馬爾科夫決策過程mdp,并定義策略,通過策略迭代更新策略,最后求解得到一個最優(yōu)策略。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn):
(1)本發(fā)明提出了一種結(jié)合經(jīng)典強(qiáng)化學(xué)習(xí)方法馬爾科夫決策過程的方法,為當(dāng)前動作知識提取領(lǐng)域提供了一種新的方法。
(2)本發(fā)明提出的動作知識提取技術(shù)有效地改進(jìn)了在有限時間內(nèi)找到最優(yōu)策略的準(zhǔn)確率;本發(fā)明是基于隨機(jī)森林模型,隨機(jī)森林模型是現(xiàn)有的最好分類模型之一,已被廣泛用于實際問題中,通過隨機(jī)森林模型的預(yù)處理,可以使得數(shù)據(jù)有序分類,優(yōu)化了在后續(xù)的馬爾科夫決策過程中迭代尋找最優(yōu)策略的時間。
(3)本發(fā)明中動作知識提取定義的動作,能夠改變狀態(tài)的多個屬性值,在實際應(yīng)用中,將會給出準(zhǔn)確的可行性建議。
(4)基于馬爾科夫決策過程中每步狀態(tài)完全可以被觀測到,迭代尋找最優(yōu)策略的準(zhǔn)確率得以保證;結(jié)合馬爾科夫決策過程不需要使用全部數(shù)據(jù)來建立模型的特點(diǎn),本發(fā)明能夠針對某個單獨(dú)記錄提取其可用的動作知識,可以通過與環(huán)境的交互來自主地了解環(huán)境并得到一個更好的策略。
下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。
附圖說明
圖1為本發(fā)明方法總體流程圖。
具體實施方式
本發(fā)明的一種結(jié)合馬爾科夫決策過程的動作知識提取方法,結(jié)合機(jī)器學(xué)習(xí)與強(qiáng)化學(xué)習(xí),利用馬爾科夫決策過程提取動作知識;具體步驟如下:
步驟1:訓(xùn)練隨機(jī)森林模型h:
給定一個訓(xùn)練數(shù)據(jù)集,建立一個隨機(jī)森林模型h;定義訓(xùn)練數(shù)據(jù)集為{x,y},x為輸入數(shù)據(jù)向量集合,y為輸出類別標(biāo)記集合,通過隨機(jī)采樣和完全分裂建立隨機(jī)森林模型h,隨機(jī)森林模型h的預(yù)測函數(shù)為
其中,
步驟2:定義動作知識提取問題(ake):針對隨機(jī)森林模型h,對屬性進(jìn)行分割,定義屬性變化、動作,在此基礎(chǔ)上定義動作知識提取問題(ake)。
2.1對屬性進(jìn)行分割:給定一個隨機(jī)森林模型h,每一個屬性xi(i=1,…,m)被分割為m個數(shù)量的區(qū)間。
1)如果屬性xi是分類類型的并且具有n個分類,則屬性xi自然被分割成n個區(qū)間,此時m=n。
2)如果屬性xi是數(shù)值類型的,隨機(jī)森林模型h中每棵決策樹上的分支結(jié)點(diǎn)為xi>b,則b即為屬性xi的一個分割點(diǎn)。如果在所有決策樹中屬性xi有n個分割點(diǎn),則屬性xi分割為n+1個區(qū)間,此時m=n+1。
2.2定義屬性變化:給定一個隨機(jī)森林模型h,一個屬性變化τ定義為一個三元組τ=(xi,p,q),p和q分別是該屬性xi的兩個分割區(qū)間。
一個屬性變化τ在給定的輸入向量
2.3、定義動作:
一個動作a定義為一個屬性變化集,即動作a={τ1,…,τ|a|};每個動作a都有一個立即獎賞r(α)。
其中,|a|表示動作a中屬性變化的個數(shù),|a|≥1,即一個動作a至少包含一個屬性變化τ。
一個動作a在輸入向量
2.4、定義動作知識提取問題(ake)為:
subjecttop(y=c|x*)>z
其中,a為可執(zhí)行的動作集合,as為需要尋找的最優(yōu)動作序列,ai為最優(yōu)動作序列as中任意一個動作,r(ai)為動作ai的立即獎賞,f(as)為作用于最優(yōu)動作序列as上得到的總獎賞值,y為隨機(jī)森林模型h在輸入向量為
ake問題是找一個動作序列把輸入向量轉(zhuǎn)變?yōu)橐粋€具有期望預(yù)測分類的目標(biāo)向量,同時保證該動作序列的獎賞總和最大;所以,這是一個優(yōu)化問題,稱為ake優(yōu)化問題。在ake問題的動作定義中,一個動作至少包含一個屬性變化,這就能夠改變一個狀態(tài)的多個屬性值,在實際應(yīng)用中,將會給出準(zhǔn)確的可行性建議。
步驟3、用馬爾科夫決策過程求解ake優(yōu)化問題:對任意輸入數(shù)據(jù),定義馬爾科夫決策過程(mdp),并定義策略,通過策略迭代更新策略,最后求解得到一個最優(yōu)策略。
3.1定義馬爾科夫決策過程為πmdp={s,a,t,r};
定義過程為現(xiàn)有技術(shù),其中s表示狀態(tài)空間,狀態(tài)用s表示;a表示動作空間,動作用a表示;t:s×a×s→[0,1]是狀態(tài)轉(zhuǎn)移函數(shù),表示在一個狀態(tài)下執(zhí)行一個動作后轉(zhuǎn)移到另一個狀態(tài)的概率;r:s×a→r是獎賞函數(shù),表示發(fā)生狀態(tài)轉(zhuǎn)移時環(huán)境給出的立即獎賞。從狀態(tài)s出發(fā),采取動作a∈a(s),收到環(huán)境反饋的獎賞r(s,a),并且以t(s,a,s′)的概率轉(zhuǎn)移到下一時刻的狀態(tài)s′∈s,其中a(s)表示在狀態(tài)s可采取動作的集合。
馬爾科夫決策過程是一個循環(huán)迭代的過程,直到滿足終止條件為止,結(jié)束之后輸出最優(yōu)策略序列b。
3.2定義策略:
策略π為狀態(tài)到動作的映射:s×a→[0,1],目標(biāo)是找到一個具有最大累計獎賞rπ的最優(yōu)策略π*:
其中,rπ是策略π下t時刻執(zhí)行動作的累計獎賞,γt是折扣因子γ的t次方,eπ[·]是策略π下的期望,rt是t時刻執(zhí)行動作的立即獎賞。
3.3定義值函數(shù):
獎賞函數(shù)是對一個狀態(tài)(動作)的即時評價,值函數(shù)則是從長遠(yuǎn)角度來考慮一個狀態(tài)的好壞;這里使用狀態(tài)值函數(shù)v(s)。
給定一個策略π,狀態(tài)值函數(shù)定義為:
基于最優(yōu)策略π*,最優(yōu)狀態(tài)值函數(shù)v*(s)可以定義為:
其中,s0表示初始狀態(tài),s0=s表示以狀態(tài)s為初始狀態(tài),vπ(s)是在策略π下以狀態(tài)s為初始狀態(tài)的狀態(tài)值函數(shù),v*(s)是在策略π下以狀態(tài)s為初始狀態(tài)的最優(yōu)狀態(tài)值函數(shù)。
根據(jù)bellman最優(yōu)等式,可有:
其中,rt+1是t+1時刻執(zhí)行動作的立即獎賞,v*(st+1)為t+1時刻狀態(tài)st+1的最優(yōu)狀態(tài)值函數(shù),s′是下一時刻的狀態(tài),t(s,a,s′)是狀態(tài)轉(zhuǎn)移概率,γ是折扣因子,r(s,α)是在狀態(tài)s、動作a下的累計獎賞,v*(s′)是下一狀態(tài)s′下最優(yōu)狀態(tài)值函數(shù)。
3.4、根據(jù)策略迭代求解得到一個最優(yōu)策略:
先隨機(jī)初始化一個策略πt,計算這個策略下狀態(tài)值函數(shù)vt,根據(jù)這些狀態(tài)值函數(shù)得到新的策略πt+1,計算新策略下每個狀態(tài)的值函數(shù)vt+1,直到收斂。
計算一個策略下每個狀態(tài)的價值,被稱為策略評估;根據(jù)狀態(tài)價值得到新策略,被稱為策略改進(jìn)。
3.4.1進(jìn)行策略評估:
根據(jù)bellman等式,一個狀態(tài)的值函數(shù)和它后續(xù)狀態(tài)的值函數(shù)相關(guān);因此,用后續(xù)狀態(tài)值函數(shù)v(s′)來更新當(dāng)前狀態(tài)的值函數(shù)v(s);
策略評估遍歷所有狀態(tài),按照下面公式來更新狀態(tài)值函數(shù):
更新狀態(tài)值函數(shù)之后,將策略πt添加到最優(yōu)策略序列b中;
其中,
3.4.2進(jìn)行策略改進(jìn):
根據(jù)狀態(tài)值函數(shù)得到一個優(yōu)于舊策略的新策略;對于一個狀態(tài)s,讓策略選擇一個動作a,使得當(dāng)前狀態(tài)值函數(shù)r(s,a)+γ∑s′t(s,a,s′)vπ(s′)最大,即
其中,πt+1表示t+1時刻的策略。
3.4.3根據(jù)策略改進(jìn)的結(jié)果,輸出最優(yōu)策略序列b:判斷策略中的狀態(tài)是否是目標(biāo)狀態(tài),如果是目標(biāo)狀態(tài)就退出策略迭代并輸出最優(yōu)策略序列b;如果不是目標(biāo)狀態(tài),則重新進(jìn)行策略評估,直到滿足狀態(tài)s是目標(biāo)狀態(tài),并輸出最優(yōu)策略b。
是否為目標(biāo)函數(shù)的判斷條件為:
本發(fā)明提出了一種結(jié)合經(jīng)典強(qiáng)化學(xué)習(xí)方法馬爾科夫決策過程的方法,為當(dāng)前動作知識提取領(lǐng)域提供了一種新的方法。本發(fā)明是基于隨機(jī)森林模型,隨機(jī)森林模型是現(xiàn)有的最好分類模型之一,已被廣泛用于實際問題中。通過隨機(jī)森林模型的預(yù)處理,可以使得數(shù)據(jù)有序分類,優(yōu)化了在后續(xù)的馬爾科夫決策過程中迭代尋找最優(yōu)策略的時間,因此本發(fā)明提出的動作知識提取方法有效地改進(jìn)了在有限時間內(nèi)找到最優(yōu)策略的準(zhǔn)確率。本發(fā)明中動作知識提取定義的動作,能夠改變狀態(tài)的多個屬性值,在實際應(yīng)用中,將會給出準(zhǔn)確的可行性建議?;隈R爾科夫決策過程中每步狀態(tài)完全可以被觀測到,迭代尋找最優(yōu)策略的準(zhǔn)確率得以保證。結(jié)合馬爾科夫決策過程不需要使用全部數(shù)據(jù)來建立模型的特點(diǎn),本發(fā)明能夠針對某個單獨(dú)記錄提取其可用的動作知識,可以通過與環(huán)境的交互來自主地了解環(huán)境并得到一個更好的策略。