機器學習原理與應(yīng)用 課件 第5、6章 集成學習與遷移學習;強化學習_第1頁
機器學習原理與應(yīng)用 課件 第5、6章 集成學習與遷移學習;強化學習_第2頁
機器學習原理與應(yīng)用 課件 第5、6章 集成學習與遷移學習;強化學習_第3頁
機器學習原理與應(yīng)用 課件 第5、6章 集成學習與遷移學習;強化學習_第4頁
機器學習原理與應(yīng)用 課件 第5、6章 集成學習與遷移學習;強化學習_第5頁
已閱讀5頁,還剩106頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

機器學習原理與應(yīng)用第5章集成學習與遷移學習本章學習目標(知識要點)了解集成學習和遷移學習的基本概念及主要流程;掌握集成學習和遷移學習的組成框架及關(guān)鍵技術(shù);熟悉集成學習和遷移學習處理技術(shù)的一些常用技巧;熟練掌握Bagging、Boosting和Stacking等集成學習算法的基本原理;熟練掌握基于實例、特征、模型和關(guān)系等遷移學習算法的基本原理;熟練使用集成學習算法對信用卡欺詐行為檢測的應(yīng)用。目錄

集成學習

遷移學習

綜合案例:欺詐檢測應(yīng)用5.15.25.3◎集成學習簡介

◎集成學習方法◎集成學習應(yīng)用集成學習5.1提出:

由Nilsson在1965年以監(jiān)督學習的方式被提出用于分類任務(wù)主要思想:將多個基本模型訓練為集成成員,并將它們的預測組合成一個輸出,該輸出的平均性能應(yīng)優(yōu)于目標數(shù)據(jù)集上具有不相關(guān)錯誤的任何其他集成成員[1]。決策組合方法:平均法、投票法和概率法大量的經(jīng)驗和理論研究表明,集成模型往往比單一模型具有更高的精度。集合的成員可以預測實數(shù)、類標簽、后驗概率、排名、聚類或任何其他數(shù)量。大多數(shù)集成學習方法是通用的,適用于模型類型和學習任務(wù)的廣泛類。集成學習(EnsembleLearning)5.1.1集成學習簡介

5.1.1集成學習簡介弱學習器(基礎(chǔ)模型):作為構(gòu)建模塊,通過組合多個模型來設(shè)計更復雜的模型。大多數(shù)情況下,基礎(chǔ)模型本身的性能不是很好:要么是有很高的偏差(例如,低自由度模型)要么是方差太大而不具有魯棒性(例如,高自由度模型)圖5-1集成學習的基本結(jié)構(gòu)集成方法的思想通過將這些弱學習者組合在一起,嘗試減少這些弱學習器的偏差或方差,從而創(chuàng)建一個獲得更好性能的強學習器或者集成模型。5.1.1集成學習簡介同質(zhì)集成學習使用相同類型的基礎(chǔ)學習算法,如ID3、C4.5、CART等決策樹算法,這樣就有了同質(zhì)的弱學習器,它們以不同的方式進行訓練,得到的集成模型。異質(zhì)集成學習使用不同類型的基礎(chǔ)學習算法,如隨機森林、CNN神經(jīng)網(wǎng)絡(luò)等算法,將一些異構(gòu)的弱學習者組合成一個異構(gòu)集成模型。注意:對弱學習器的選擇應(yīng)該與聚合這些模型的方式相一致:如果選擇低偏差但高方差的基礎(chǔ)模型,則應(yīng)采用傾向于減少方差的聚合方法如果選擇低方差但高偏差的基礎(chǔ)模型,則應(yīng)采用傾向于減少偏差的聚合方法圖5-1集成學習的基本結(jié)構(gòu)5.1.2集成學習方法集成學習從集成學習算法、輸出組合方式以及集成多樣性等角度可大致劃分為三大類:裝袋(Bagging)提升(Boosting)堆疊(Stacking)圖5-2Bagging算法的基本結(jié)構(gòu)5.1.2集成學習方法——BaggingBaggingBagging算法(Bootstrapaggregating,引導聚合算法),又稱裝袋算法,是機器學習領(lǐng)域的一種集成學習算法[2]。常見的Bagging算法:隨機森林、Baggingmeta-estimator等。組合方式同質(zhì)的弱學習器,相互獨立地并行學習,按照某種確定性的平均過程進行組合。可與其他分類、回歸算法結(jié)合,提高其準確率、穩(wěn)定性通過降低結(jié)果的方差,避免過擬合。計算過程

5.1.2

集成學習方法——BoostingBoosting概念Boosting是一種主要用于減少偏差的集成學習算法,它通過在訓練新模型實例時更注重先前模型錯誤分類的實例來增量構(gòu)建集成模型[3]。基本原理通過串行迭代的方式,將同質(zhì)的弱分類器組合成一個強分類器。弱分類器的權(quán)重與其準確性相關(guān),準確性越高,權(quán)重越大。每次添加弱分類器,數(shù)據(jù)權(quán)重會重新調(diào)整 ·錯誤分類的樣本權(quán)重增加·正確分類的樣本權(quán)重降低。后續(xù)的弱分類器會更多地關(guān)注之前弱分類器錯誤分類的樣本,逐步提高整體分類性能。常見的Boosting算法AdaBoost[4]、LPBoost、GBM、XGBM[5]、LightGBM、CatBoost[6,7]等。圖5-3Boosting算法的基本結(jié)構(gòu)在某些情況下,Boosting已被證明比Bagging可以得到更好的準確率,但同時也存在過擬合問題。5.1.2集成學習方法——StackingStacking的定義:一種用于最小化泛化誤差率的方法。通過訓練元模型來組合多個弱學習器的預測結(jié)果。通常使用異質(zhì)弱學習器,它們之間相互獨立且并行學習。泛化器的作用機制:通過推導泛化器相對于學習集的偏差來發(fā)揮作用。在第二層中,元模型對第一層弱學習器的預測結(jié)果進行泛化,并嘗試對剩余數(shù)據(jù)進行預測。兩種應(yīng)用場景:當與多個泛化器一起使用時,Stacking可以看作是交叉驗證的復雜版本,采用更復雜的策略組合各個泛化器。當與單個泛化器一起使用時,Stacking用于估計泛化器的錯誤,該泛化器已在特定學習集上訓練并用于特定問題。常見的Stacking算法:VotingEnsembles、WeightedAverage、BlendingEnsemble、SuperLearnerEnsemble等。圖5-4Stacking算法的基本結(jié)構(gòu)5.1.2集成學習方法集成學習方法優(yōu)點:能夠有效提高模型精度模型更加健壯和穩(wěn)定確保在大多數(shù)場景中測試用例的良好性能支持兩個或以上不同的模型來擬合數(shù)據(jù)中的線性和非線性復雜關(guān)系集成學習方法缺點:降低了模型的解釋能力,最終很難得出任何關(guān)鍵的業(yè)務(wù)見解非常耗時,可能不是實時應(yīng)用任務(wù)的最佳方案集成模型的挑選需要很多經(jīng)驗知識5.1.3集成學習應(yīng)用近年來,由于計算能力的不斷增強,使得能夠在合理的時間范圍內(nèi)訓練大型集成學習,因此其應(yīng)用的數(shù)量日益增加。集成分類器的應(yīng)用領(lǐng)域:遙感探測網(wǎng)絡(luò)安全目標識別欺詐檢測財務(wù)決策醫(yī)學檢測5.1.3集成學習應(yīng)用遙感探測土地覆蓋制圖利用遙感和地理空間數(shù)據(jù)識別地表物質(zhì)(如道路、建筑物、河流等)。多分類器集成方法(如人工神經(jīng)網(wǎng)絡(luò)、Boosting決策樹、隨機森林)有效識別土地覆蓋物。變化檢測用于監(jiān)測土地覆蓋隨時間的變化,應(yīng)用于城市增長、植被動態(tài)和災(zāi)害監(jiān)測等領(lǐng)域。2、網(wǎng)絡(luò)安全分布式拒絕服務(wù)攻擊是互聯(lián)網(wǎng)服務(wù)提供商面臨的重大威脅。集成分類器通過組合單個分類器輸出,減少攻擊檢測的總錯誤。惡意軟件檢測和入侵檢測系統(tǒng)利用集成學習技術(shù)提高檢測精度。5.1.3集成學習應(yīng)用3.目標識別人臉識別利用數(shù)字圖像識別或驗證個人,基于Gabor-Fisher分類器和獨立分量分析的層次集成是早期應(yīng)用。語音情感識別通過集成學習獲得良好性能。4.欺詐檢測欺詐檢測涉及銀行欺詐(如洗錢、信用卡欺詐、電信欺詐)的識別;集成學習提高正常行為建模的魯棒性,有效檢測欺詐行為。5.財務(wù)決策企業(yè)失敗預測和金融危機檢測是財務(wù)決策中的關(guān)鍵問題。集成分類器用于分析股票市場數(shù)據(jù),檢測股價操縱的可疑行為。6.醫(yī)學檢測集成分類器成功應(yīng)用于神經(jīng)科學、蛋白質(zhì)組學和醫(yī)學診斷。對阿爾茨海默病等神經(jīng)認知障礙檢測效果顯著。目錄

集成學習

遷移學習

綜合案例:欺詐檢測應(yīng)用5.15.25.3◎遷移學習簡介

◎遷移學習方法◎遷移學習應(yīng)用遷移學習5.25.2.1遷移學習簡介機器學習的背景機器學習因其提供的預測性解決方案(如開發(fā)智能、可靠的模型)而發(fā)展迅速。然而,訓練模型面臨挑戰(zhàn),尤其是管理標記數(shù)據(jù)和準備模型需要大量時間。遷移學習的定義與目標定義:遷移學習(TransferLearning)是機器學習的一個研究領(lǐng)域,專注于將一個領(lǐng)域或任務(wù)上學習到的知識或模式應(yīng)用到不同但相關(guān)的領(lǐng)域或問題中。目標:通過遷移知識,完成或改進目標領(lǐng)域或任務(wù)的學習效果,從而減少對大量標注數(shù)據(jù)的依賴。圖5-5遷移學習的過程5.2.1遷移學習簡介遷移學習的應(yīng)用示例示例1:用于辨識汽車的知識(或模型)可以提升識別卡車的能力。示例2:騎自行車時學習的平衡邏輯可以轉(zhuǎn)換為學習駕駛其他兩輪車輛。遷移學習的優(yōu)勢解決了監(jiān)督學習中需要大量標注數(shù)據(jù)的問題。提供了一種更智能、更有效的機器學習方法,通過遷移知識減少訓練和標記所需的時間。圖5-5遷移學習的過程5.2.1遷移學習簡介圖5-5遷移學習的過程5.2.2

遷移學習分類遷移學習可以根據(jù)不同標準進行分類,幫助學習者全面了解其不同定位。按目標領(lǐng)域有無標簽分類監(jiān)督遷移學習:目標領(lǐng)域有標簽。半監(jiān)督遷移學習:目標領(lǐng)域部分有標簽。無監(jiān)督遷移學習:目標領(lǐng)域無標簽。圖5-6遷移學習分類按特征屬性分類同構(gòu)遷移學習:特征語義和維度相同。例如:不同汽車之間的遷移。異構(gòu)遷移學習:特征完全不同。例如:圖片到文本的遷移。5.2.2遷移學習分類按知識表示形式分類,遷移學習可以分為四大類:基于實例的遷移學習(instance-basedtransferlearning)1方法:從源域數(shù)據(jù)中選擇與目標域相似的部分數(shù)據(jù)。通過權(quán)重調(diào)整策略為選中的實例分配權(quán)重。將選中的實例作為目標域訓練集的補充進行訓練?;炯僭O(shè):源域中的部分實例可以分配權(quán)重供目標域使用。優(yōu)點:模式簡單,實現(xiàn)容易。缺點:權(quán)重選擇和相似度度量依賴經(jīng)驗。源域與目標域數(shù)據(jù)分布可能不同。5.2.2遷移學習分類基于特征的遷移學習(feature-representationtransferlearning)2方法:將源域和目標域的實例通過特征變換映射到新的數(shù)據(jù)空間。在新空間中使源域和目標域數(shù)據(jù)具有相同分布,然后進行訓練。基本假設(shè):兩個原始域在新數(shù)據(jù)空間中可能更為相似。優(yōu)點:適用于大多數(shù)場景,效果較好。缺點:難于求解,容易過擬合。5.2.2遷移學習分類基于參數(shù)的遷移學習(parameter-transfertransferlearning)3方法:假設(shè)源域和目標域共享模型參數(shù)或先驗分布。將源域中訓練好的模型直接應(yīng)用到目標域進行預測。優(yōu)點:可以充分利用模型之間的相似性。缺點:模型參數(shù)不易收斂。基于關(guān)系的遷移學習(Relational-knowledgeTransferLearning)4方法:假設(shè)源域和目標域具有相似的模式或關(guān)系。將源域中學習到的邏輯網(wǎng)絡(luò)關(guān)系應(yīng)用到目標域。例子:生物病毒傳播模式與計算機病毒傳播模式的相似性。5.2.2遷移學習分類數(shù)據(jù)獨立同分布假設(shè):基于實例、特征、參數(shù)的遷移學習方式要求數(shù)據(jù)獨立同分布。學習算法分類:基于實例、特征、關(guān)系的遷移學習屬于數(shù)據(jù)層面的學習算法。基于參數(shù)的遷移學習屬于模型層面的學習算法。共同要求:四類遷移學習方式都要求源域和目標域相關(guān)。圖5-6遷移學習分類5.2.3遷移學習方法——TrAdaBoost遷移梯度增強(TransferAdaBoost,TrAdaBoost)TrAdaBoost的定義:TrAdaBoost是一種基于實例的遷移學習算法。核心目標:使用部分與測試數(shù)據(jù)具有相同分布的標記訓練數(shù)據(jù)來建立分類模型。實現(xiàn)方式數(shù)據(jù)選擇:從源域中選擇與目標域(測試數(shù)據(jù))分布相似的標記數(shù)據(jù)。模型訓練:利用這些標記數(shù)據(jù)結(jié)合目標域中的少量標記數(shù)據(jù)進行訓練。優(yōu)勢提高精度:相比單純使用少量新標簽數(shù)據(jù)訓練,TrAdaBoost能夠得到更精確的分類模型。利用相似性:通過選擇與目標域分布相似的源域數(shù)據(jù),增強模型的泛化能力。方法特點基于實例的遷移:通過調(diào)整源域中實例的權(quán)重,使其更好地適應(yīng)目標域。適應(yīng)性:適用于源域和目標域數(shù)據(jù)分布不同但存在相似性的場景。5.2.3遷移學習方法——TrAdaBoost5.2.3遷移學習方法——TrAdaBoostTrAdaBoost算法過程TrAdaBoost算法的特點優(yōu)點適用場景:當源數(shù)據(jù)和目標數(shù)據(jù)具有較多相似性時,TrAdaBoost算法可以取得很好的效果。核心優(yōu)勢:能夠有效利用源域數(shù)據(jù)來提升目標域的學習性能。不足噪聲問題:如果輔助數(shù)據(jù)(源數(shù)據(jù))中存在較多噪聲樣本,會影響算法性能。迭代次數(shù)問題:如果迭代次數(shù)控制不當,可能會加大訓練分類器的難度,導致性能下降。

5.2.3遷移學習方法——TrAdaBoost5.2.3遷移學習方法——TCATCA的定義:TCA是一種典型的基于特征的遷移學習方法。核心目標解決源域和目標域數(shù)據(jù)分布不同時的自適應(yīng)問題。實現(xiàn)方式數(shù)據(jù)映射:將源域和目標域的數(shù)據(jù)一起映射到一個高維的再生核希爾伯特空間。距離最小化:在此空間中,最小化源域和目標域數(shù)據(jù)之間的距離。保留內(nèi)部屬性:在最小化距離的同時,最大程度地保留兩個域各自的內(nèi)部屬性。方法特點通過特征變換實現(xiàn)域適應(yīng),減少源域和目標域之間的分布差異。適用于特征空間不同但語義相關(guān)的遷移學習場景。算法優(yōu)點:實現(xiàn)簡單,方法本身沒有太多的限制。算法缺點:偽逆的求解以及特征值分解需要很多計算時間。遷移成分分析(TransferComponentAnalysis,TCA)5.2.3遷移學習方法——TCATCA算法形式化定義5.2.3遷移學習方法——TransEMDT決策樹嵌入遷移(TransferlearningEMbeddedDecisionTree,TransEMDT)TransEMDT的定義TransEMDT是一種基于模型的遷移學習方法。實現(xiàn)方式步驟1:構(gòu)建魯棒性模型針對已有標記的數(shù)據(jù),利用決策樹構(gòu)建魯棒性的行為識別模型。步驟2:優(yōu)化無標定數(shù)據(jù)針對無標定數(shù)據(jù),使用K-Means聚類方法尋找最優(yōu)化的標定參數(shù)。方法特點模型驅(qū)動:通過決策樹模型實現(xiàn)知識遷移,適用于跨人活動識別問題。聚類優(yōu)化:利用K-Means聚類方法處理無標定數(shù)據(jù),提高模型的適應(yīng)性和泛化能力。優(yōu)勢魯棒性:通過決策樹構(gòu)建的模型能夠適應(yīng)不同個體的活動模式。靈活性:結(jié)合聚類方法優(yōu)化無標定數(shù)據(jù),提升模型在未標記數(shù)據(jù)上的表現(xiàn)。5.2.3遷移學習方法——TransEMDTTransEMDT算法形式化定義5.2.3遷移學習方法——TransEMDTTransEMDT算法過程5.2.3遷移學習方法——TransEMDTTransEMDT算法過程(續(xù))5.2.3遷移學習方法——TAMAR自映射和修訂遷移(TransferviaAutomaticMappingAndRevision,TAMAR)TAMAR的定義:TAMAR是一種基于關(guān)系的遷移學習方法。核心工具:馬爾科夫邏輯網(wǎng)絡(luò)(MarkovLogicNetworks,MLN):結(jié)合一階邏輯的表達能力和概率的靈活性。用于表示源域和目標域的關(guān)系結(jié)構(gòu)。實現(xiàn)方式步驟1:自動映射

將源域的馬爾科夫邏輯網(wǎng)絡(luò)中的謂詞自動映射到目標域。步驟2:修訂映射結(jié)構(gòu)修改映射后的結(jié)構(gòu),以進一步提高精度。方法特點關(guān)系遷移:通過自動映射和修訂,將源域的關(guān)系結(jié)構(gòu)遷移到目標域。結(jié)合邏輯與概率:利用馬爾科夫邏輯網(wǎng)絡(luò)的強大形式主義,同時結(jié)合邏輯表達和概率推理。優(yōu)勢自動映射:能夠自動處理源域和目標域之間的關(guān)系映射。靈活性:通過修訂映射結(jié)構(gòu),進一步優(yōu)化遷移效果,提高模型精度。TAMAR算法形式化定義5.2.3遷移學習方法——TAMAR5.2.3遷移學習方法——TAMARTAMAR關(guān)系網(wǎng)5.2.4遷移學習應(yīng)用遷移學習應(yīng)用真實世界模擬游戲圖像分類零鏡頭平移情緒分類5.2.4

遷移學習應(yīng)用1.真實世界模擬背景:現(xiàn)實環(huán)境中的訓練(如機器人或自動駕駛汽車)既耗時又昂貴。方法:通過數(shù)字仿真訓練機器人或自動駕駛汽車,并將知識遷移到現(xiàn)實世界。技術(shù):使用漸進網(wǎng)絡(luò)實現(xiàn)模擬到現(xiàn)實的轉(zhuǎn)移,具備有序?qū)W習和抵抗災(zāi)難性遺忘的能力。應(yīng)用:例如,自動駕駛汽車通過視頻游戲(如GTA5)進行模擬訓練,但需注意模擬特征在真實世界中的適用性。5.2.4遷移學習應(yīng)用2.游戲現(xiàn)狀:人工智能(如AlphaGo)在特定游戲(圍棋)中表現(xiàn)出色,但難以適應(yīng)其他游戲。挑戰(zhàn):人工神經(jīng)網(wǎng)絡(luò)難以像人類一樣掌握多種游戲。解決方案:通過遷移學習,將一個游戲中的戰(zhàn)術(shù)遷移到另一個游戲中。案例:MadRTS游戲結(jié)合基于案例推理(CBR)和強化學習(RL)的多層體系結(jié)構(gòu),實現(xiàn)跨任務(wù)學習。5.2.4遷移學習應(yīng)用3.圖像分類背景:神經(jīng)網(wǎng)絡(luò)在圖像識別中表現(xiàn)出色,但訓練需要大量標記數(shù)據(jù)和時間。方法:使用遷移學習,通過ImageNet預訓練模型減少訓練時間。技術(shù):例如,VGG-16卷積神經(jīng)網(wǎng)絡(luò)先在ImageNet上預訓練,然后替換最后一層并逐層訓練,必要時微調(diào)高層權(quán)重。應(yīng)用:在醫(yī)學成像領(lǐng)域,如超聲中腎臟檢測,遷移學習可顯著提高效率。5.2.4遷移學習應(yīng)用4.零鏡頭平移定義:零鏡頭翻譯是監(jiān)督學習的擴展,目標是從訓練數(shù)據(jù)中不存在的值中學習預測新值。案例:谷歌神經(jīng)翻譯模型(GNMT)實現(xiàn)跨語言翻譯,無需中間語言(如英語)。Image2Emoji將視覺和文本結(jié)合,以零鏡頭方式預測表情圖標。優(yōu)勢:避免了中間語言帶來的翻譯扭曲,提高了翻譯效率和準確性。5.2.4遷移學習應(yīng)用5.情緒分類背景:分析新文本語料庫的情緒(如情感分析)難度較大。方法:通過遷移學習,將一個領(lǐng)域的模型(如Twitter)微調(diào)到另一個領(lǐng)域(如影評)。技術(shù):在Twitter上訓練的RNN模型,其單詞嵌入和循環(huán)權(quán)重被遷移到影評領(lǐng)域進行情緒分類。優(yōu)勢:減少訓練時間和成本,提高模型的泛化能力。5.2.4遷移學習應(yīng)用遷移學習的總體影響優(yōu)勢:重用算法和應(yīng)用邏輯,加速機器學習進程。降低資本投資和模型訓練時間。在金融、醫(yī)學、農(nóng)業(yè)等多個領(lǐng)域成功應(yīng)用。展望:遷移學習對未來其他領(lǐng)域的機器學習曲線有重要影響,值得進一步關(guān)注。目錄

集成學習

遷移學習

綜合案例:欺詐檢測應(yīng)用5.15.25.3◎案例分析◎代碼示例綜合案例:欺詐檢測應(yīng)用5.35.3綜合案例:欺詐檢測應(yīng)用信用卡欺詐檢測的背景生活和消費觀念的轉(zhuǎn)變,信用卡使用率持續(xù)增長。信用卡被盜用問題日益嚴重,欺詐行為檢測成為重要問題。信用卡欺詐對銀行的影響:造成巨大經(jīng)濟損失。影響銀行信譽,帶來潛在風險?,F(xiàn)有方法的局限性傳統(tǒng)機器學習算法(如貝葉斯、決策樹、支持向量機):應(yīng)用于信用卡欺詐檢測,但誤報率高。新型神經(jīng)網(wǎng)絡(luò)算法:性能優(yōu)越,但需要大量數(shù)據(jù)進行訓練。數(shù)據(jù)特性問題:信用欺詐數(shù)據(jù)分布極度不均衡。數(shù)據(jù)信息失真。周期性統(tǒng)計偏差大。導致檢測模型抗干擾能力弱,易過擬合。5.3綜合案例:欺詐檢測應(yīng)用解決方案:基于Stacking的集成學習方法核心思想:采用Stacking集成學習算法,通過融合多種分類算法提升檢測精度。開發(fā)環(huán)境:在PyCharm集成開發(fā)環(huán)境下實現(xiàn)。工具:調(diào)用Python機器學習庫Scikit-learn。融合算法:使用K-Neighbors、RandomForest、XGBoost、LogisticRegression等多種常用分類算法??蚣茉O(shè)計:構(gòu)建兩層融合的學習框架。優(yōu)勢:提升信用卡欺詐行為的檢測精度。有效解決不平衡數(shù)據(jù)容易過擬合的問題。5.3綜合案例:欺詐檢測應(yīng)用信用卡數(shù)據(jù)集導入數(shù)據(jù)來源:信用卡欺詐數(shù)據(jù)集由Worldline與機器學習小組合作研究期間收集,屬于大數(shù)據(jù)挖掘和欺詐檢測數(shù)據(jù)集。數(shù)據(jù)集特點:數(shù)據(jù)集包含284807個信用卡事務(wù)。欺詐事務(wù)占比極低,僅為0.172%,數(shù)據(jù)分布高度不平衡。數(shù)據(jù)集包含30個特征和1個目標列(目標列中1表示欺詐,0表示真實)。其中28個特征經(jīng)過PCA(主成分分析)變換,原始特征名稱被更改為V1、V2、V3……V28。未使用PCA變換的特征包括金額和時間。數(shù)據(jù)集劃分:數(shù)據(jù)集的67%用于訓練,其余部分作為測試集。fname="../input/creditcard.csv"

df=pd.read_csv(fname)

features=np.array(df.columns[:-1])

label=np.array(df.columns[-1])

data=df.values

X=data[:,:-1]

y=data[:,-1]

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.33,random_state=42)

5.3綜合案例:欺詐檢測應(yīng)用交叉驗證和超參數(shù)調(diào)整方法:使用隨機搜索和網(wǎng)格搜索方法調(diào)整基礎(chǔ)模型的超參數(shù)。驗證方式:采用5折交叉驗證。目標:從參數(shù)網(wǎng)格中找到基于F1評分的最佳超參數(shù)集。結(jié)果:通過上述方法,為每個基礎(chǔ)模型確定最優(yōu)的超參數(shù)配置。#使用5折網(wǎng)格搜索方法進行KNN分類器超參數(shù)調(diào)整

clf_knn=KNeighborsClassifier()

grid_knn=GridSearchCV(clf_knn,params_knn,scoring='f1',cv=kf)

#使用5折隨機網(wǎng)格搜索方法進行RandomForest分類器超參數(shù)調(diào)整

clf_rf=RandomForestClassifier()

rand_rf=RandomizedSearchCV(clf_rf,params_rf,scoring='f1',cv=kf)

#使用5折隨機網(wǎng)格搜索方法進行XGB分類器超參數(shù)調(diào)整

clf_xgb=XGBClassifier()

rand_xgb=RandomizedSearchCV(clf_xgb,params_xgb,scoring='f1',cv=kf)

#使用5折隨機網(wǎng)格搜索方法進行LogisticRegression分類器超參數(shù)調(diào)整

clf_lr=LogisticRegression()

rand_lr=RandomizedSearchCV(clf_lr,params_lr,scoring='f1',cv=kf)5.3綜合案例:欺詐檢測應(yīng)用#基于F1得分評價指標,通過調(diào)節(jié)超參數(shù)得到最好的KNN分類器

print("K-NearestNeighbor(KNN)Scores:")

b_knn=KNeighborsClassifier(algorithm='auto',leaf_size=30,metric='minkowski',

metric_params=None,n_jobs=1,n_neighbors=1,p=2,

weights='uniform')

#基于F1得分評價指標,通過調(diào)節(jié)超參數(shù)得到最好的RF分類器

print("RandomForest(RF)Scores:")

b_rf=RandomForestClassifier(bootstrap=True,class_weight=None,criterion='gini',

max_depth=8,max_features='auto',max_leaf_nodes=None,

min_impurity_decrease=0.0,min_samples_leaf=2,min_samples_split=5,

min_weight_fraction_leaf=0.0,n_estimators=50,n_jobs=1,

oob_score=False,random_state=42,verbose=0,

warm_start=False)

#基于F1得分評價指標,通過調(diào)節(jié)超參數(shù)得到最好的XGB分類器

print("eXtremeGradientBoosting(XGB)Scores:")

b_xgb=XGBClassifier(base_score=0.5,booster='gbtree',colsample_bylevel=1,

colsample_bytree=1,gamma=0,learning_rate=0.1,max_delta_step=0,

max_depth=3,min_child_weight=1,n_estimators=210,

n_jobs=1,nthread=None,objective='binary:logistic',random_state=42,

reg_alpha=0,reg_lambda=1,scale_pos_weight=1,seed=None,

subsample=1,use_label_encoder=False,

eval_metric=['logloss','auc','error'])#基于F1得分評價指標,通過調(diào)節(jié)超參數(shù)得到最好的LR分類器

print("LogisticRegression(LR)Scores:")

b_lr=LogisticRegression(C=0.11,class_weight=None,dual=False,fit_intercept=True,

intercept_scaling=1,max_iter=100,multi_class='ovr',n_jobs=1,

penalty='l1',random_state=78,solver='liblinear',tol=0.0001,

verbose=0,warm_start=False)#將基類的預測附加到原始特征集

X_train=np.hstack((X_train,pred_train_knn))

X_test=np.hstack((X_test,pred_test_knn))

X_train=np.hstack((X_train,pred_train_rf))

X_test=np.hstack((X_test,pred_test_rf))

X_train=np.hstack((X_train,pred_train_xgb))

X_test=np.hstack((X_test,pred_test_xgb))

X_train=np.hstack((X_train,pred_train_lr))

X_test=np.hstack((X_test,pred_test_lr))

#運行具有堆疊功能的集成XGB模型

print("StackedEnsembleXGB(SEXGB)Scores:")

ens_xgb=XGBClassifier(base_score=0.5,booster='gbtree',colsample_bylevel=1,

colsample_bytree=1,gamma=0,learning_rate=0.1,max_delta_step=0,

max_depth=3,min_child_weight=1,n_estimators=210,

n_jobs=1,nthread=None,objective='binary:logistic',random_state=42,

reg_alpha=0,reg_lambda=1,scale_pos_weight=1,seed=None,subsample=1,

use_label_encoder=False,eval_metric=['logloss','auc','error'])集成模型訓練第一層(基學習器)組成:包含4個監(jiān)督分類器:K-Neighbors(K近鄰)RandomForest(隨機森林)XGBoost(極端梯度提升)LogisticRegression(邏輯回歸)功能:分類器作用于原始特征,生成各自的預測結(jié)果。第二層(元學習器)組成:由XGBoost分類器構(gòu)成。輸入:包括第一層分類器的預測結(jié)果(疊加預測)和原始特征。功能:利用第一層的預測結(jié)果和原始特征進行訓練,進一步優(yōu)化模型性能。5.3綜合案例:欺詐檢測應(yīng)用運行結(jié)果如圖5-7所示。從圖中可知,XGB模型F1值可達0.8808,優(yōu)于KNN、RF和LR這三個模型。同時,堆疊SEXGB集成模型性能最好,F(xiàn)1值可達0.8817。圖5-7基于集成學習的信用卡欺詐檢測結(jié)果本章小結(jié)集成學習基礎(chǔ)定義:通過組合多個模型的預測來提高總體精度。目標:減少模型誤差、保持模型泛化能力。集成學習算法BaggingBoostingStacking遷移學習按算法類型:有監(jiān)督遷移學習、半監(jiān)督遷移學習、無監(jiān)督遷移學習按知識表示形式:基于實例的遷移學習、基于特征的遷移學習、基于參數(shù)的遷移學習、基于關(guān)系的遷移學習習題概念題什么是集成學習?應(yīng)用場景包括哪些?列舉不少于5種集成學習方法。Bagging、Boosting和Stacking區(qū)別是什么?什么是遷移學習?應(yīng)用場景包括哪些?列舉不少于5種遷移學習方法。簡要敘述遷移學習的知識表示形式。操作題編寫一個能從圖片中分類不同種類花的遷移學習模型。從Kaggle網(wǎng)站/alxmamaev/flowers-recognition下載花分類數(shù)據(jù)集。該數(shù)據(jù)集一共有5個類別,分別是:鄒菊(Daisy)、蒲公英(Dandelion)、玫瑰(Roses)、向日葵(Sunflowers)、郁金香(Tulips),一共有3670張圖片。數(shù)據(jù)集按9:1進行劃分,其中訓練集train中有3306張、驗證集val中有364張圖片,要求模型識別精度在90%以上。參考文獻1周志華.機器學習[M].北京:清華大學出版社,2016.2BreimanL.Baggingpredictors[J].Machinelearning,1996,24(2):123-140.3FreundY,SchapireR,AbeN.Ashortintroductiontoboosting[J].Journal-JapaneseSocietyForArtificialIntelligence,1999,14(771-780):1612.4FreundY,SchapireRE.Adecision-theoreticgeneralizationofon-linelearningandanapplicationtoboosting[J].JournalofComputerandSystemSciences,1997,55(1):119-139.5ChenT,GuestrinC.Xgboost:Ascalabletreeboostingsystem[C].Proceedingsofthe22ndACMSIGKDDInternationalConferenceonKnowledgeDiscoveryandDataMining.2016:785-794.6DorogushAV,ErshovV,GulinA.CatBoost:gradientboostingwithcategoricalfeaturessupport[J].arXivpreprintarXiv:1810.11363,2018.7ProkhorenkovaL,GusevG,VorobevA,etal.CatBoost:unbiasedboostingwithcategoricalfeatures[J].AdvancesinNeuralInformationProcessingSystems,2018,31.8WolpertDH.Stackedgeneralization[J].Neuralnetworks,1992,5(2):241-259.9楊強,張宇,戴文淵,潘嘉林.遷移學習[M].北京:北京:高等教育出版社,2020.10PanSJ,YangQ.Asurveyontransferlearning[J].IEEETransactionsonknowledgeanddataengineering,2009,22(10):1345-1359.11TanC,SunF,KongT,etal.Asurveyondeeptransferlearning[C].Internationalconferenceonartificialneuralnetworks.Springer,Cham,2018:270-279.12YaoY,DorettoG.Boostingfortransferlearningwithmultiplesources[C].2010IEEEcomputersocietyconferenceoncomputervisionandpatternrecognition.IEEE,2010:1855-1862.13PanSJ,TsangIW,KwokJT,etal.Domainadaptationviatransfercomponentanalysis[J].IEEEtransactionsonneuralnetworks,2010,22(2):199-210.14ZhaoZ,ChenY,LiuJ,etal.Cross-peoplemobile-phonebasedactivityrecognition[C].Twenty-secondinternationaljointconferenceonartificialintelligence.2011.15MihalkovaL,HuynhT,MooneyRJ.Mappingandrevisingmarkovlogicnetworksfortransferlearning[C].Twenty-SecondConferenceonArtificialIntelligence.2007,7:608-614.謝謝!58機器學習原理與應(yīng)用第6章強化學習目錄

強化學習簡介

強化學習技術(shù)

綜合案例:飛揚小鳥游戲6.16.26.3本章學習目標(知識要點)了解強化學習的基本概念及主要流程;掌握強化學習的組成框架及關(guān)鍵技術(shù);熟悉強化學習處理技術(shù)的一些常用技巧;

熟練掌握Q學習、蒙特卡洛學習和時間差分學習等強化學習算法的基本原理;熟練使用強化學習算法對環(huán)境交互性要求較高的應(yīng)用。目錄

強化學習簡介

強化學習技術(shù)

綜合案例:飛揚小鳥游戲6.16.26.3強化學習簡介6.16.1.1強化學習概念概念機器學習的一個領(lǐng)域,強調(diào)如何基于環(huán)境行動,以最大化預期利益。第三種基本的機器學習方法,與監(jiān)督學習和無監(jiān)督學習并列。與監(jiān)督學習的區(qū)別監(jiān)督學習:需要帶標簽的輸入輸出對對非最優(yōu)解進行精確糾正強化學習:平衡“探索”(未知領(lǐng)域)與“利用”(已有知識)“探索-利用”的交換e.g.多臂老虎機、有限MDP6.1.2強化學習的理論基礎(chǔ)靈感來源:心理學行為主義理論:有機體通過環(huán)境給予的獎勵或懲罰刺激,逐步形成對刺激的預期,并產(chǎn)生能獲得最大利益的習慣性行為。環(huán)境建模在機器學習問題中,環(huán)境通常被抽象為馬爾可夫決策過程(MarkovDecisionProcesses,MDP)。傳統(tǒng)動態(tài)規(guī)劃與強化學習的區(qū)別傳統(tǒng)動態(tài)規(guī)劃:需要完整的MDP知識強化學習:不需要關(guān)于MDP的完整知識,適用于無法找到確切解法的大規(guī)模MDP問題。6.1.3強化學習的核心要素系統(tǒng)的核心要素智能體(Agent)感知環(huán)境的狀態(tài)(State),并根據(jù)反饋的獎勵(Reward)學習選擇一個合適的動作(Action),來最大化長期總收益。環(huán)境(Environment)接收智能體執(zhí)行的一系列動作,對這一系列動作進行評價并轉(zhuǎn)換為一種可量化的信號反饋給智能體。策略(Policy)定義了智能體在特定時間的行為方式。策略是環(huán)境狀態(tài)到動作的映射。獎勵函數(shù)(RewardFunction)定義了強化學習問題中的目標。在每一步中,環(huán)境向智能體發(fā)送一個稱為收益的標量數(shù)值。價值函數(shù)(ValueFunction)表示了從長遠的角度看什么是好的。一個狀態(tài)的價值是一個智能體從這個狀態(tài)開始,對將來累積的總收益的期望。環(huán)境模型(EnvironmentModel)是一種對環(huán)境的反應(yīng)模式的模擬,它允許對外部環(huán)境的行為進行推斷。6.1.4強化學習概述目標導向的學習與決策強化學習是一種對目標導向的學習與決策問題進行理解和自動化處理的計算方法。通過智能體與環(huán)境的互動來學習,不依賴于監(jiān)督信號或完全建模環(huán)境,具有與其他方法不同的范式。馬爾可夫決策過程(MDP)框架基于MDP框架,使用狀態(tài)、動作和獎勵定義智能體與環(huán)境的互動過程,包含對因果關(guān)系、不確定性和顯式目標存在性的認知。價值與價值函數(shù)強化學習的重要組成部分,有助于策略空間的有效搜索。6.1.5強化學習應(yīng)用領(lǐng)域自動駕駛汽車:優(yōu)化軌跡規(guī)劃、動態(tài)路徑和控制器策略貿(mào)易和金融:自動化交易決策醫(yī)療保?。?/p>

動態(tài)制定個性化治療方案新聞推薦:實時跟蹤用戶偏好,提供個性化新聞推薦競技游戲:學習游戲策略人機對話:生成連貫且信息豐富的對話,提升聊天機器人交互體驗?zāi)夸?/p>

強化學習簡介

強化學習技術(shù)

綜合案例:飛揚小鳥游戲6.16.26.3◎有模型與無模型

◎推薦系統(tǒng)◎模仿學習

◎Q-learning算法◎蒙特卡洛方法

◎時序差分方法強化學習技術(shù)6.26.2.1有模型與無模型根據(jù)馬爾可夫決策過程中是否使用了獎勵函數(shù),強化學習的方法主要有兩種:有模型法和無模型法。6.2.1有模型與無模型有模型強化學習(Model-BasedReinforcementLearning)

對環(huán)境有提前的認知,利用轉(zhuǎn)換函數(shù)和獎勵函數(shù)來估計最優(yōu)策略。

智能體可能只能訪問這些函數(shù)的近似值,并在交互時進行學習,或由另一個智能體授予。

能夠預測環(huán)境動態(tài)所用的函數(shù)只是近似,可能導致無法找到最優(yōu)策略。如果模型與真實世界不匹配,實際應(yīng)用效果可能較差。

無模型強化學習(Model-FreeReinforcementLearning)

直接通過交互經(jīng)驗估計“價值函數(shù)”或“策略”,不使用轉(zhuǎn)換函數(shù)和獎勵函數(shù)。

效率低于有模型方法更容易實現(xiàn),在真實場景下調(diào)整能力更強。

6.2.1有模型與無模型對比有模型方法:使用模型和規(guī)劃來解決強化學習問題。

無模型方法:通過明確的試錯學習機制進行強化學習。

兩者各有優(yōu)劣,智能體可結(jié)合兩者,以增強適應(yīng)性和決策能力。6.2.2推薦系統(tǒng)概念基于用戶信息、興趣、趨勢內(nèi)容等數(shù)據(jù)構(gòu)建模型,為客戶推薦最相關(guān)的內(nèi)容。YouTube、Netflix、抖音、網(wǎng)易……傳統(tǒng)推薦系統(tǒng)的兩大建模范式基于協(xié)同過濾的推薦通過用戶的接近度來檢測相似的用戶和他們的興趣,主要考慮了用戶和項目的交互基于內(nèi)存的方法:對新用戶,通過識別相似用戶來推薦他們的偏好內(nèi)容,無法量化誤差?;谀P偷姆椒ǎ夯凇坝脩?項目交互矩陣”生成模型預測新用戶偏好,可觀察到模型偏差和方差?;趦?nèi)容的推薦額外考慮了用戶信息和偏好、內(nèi)容特征(流行度、描述、購買歷史等)。包含更多與內(nèi)容相關(guān)的描述性信息,往往具有較高的偏差,但方差最低。6.2.2推薦系統(tǒng)近年來,基于強化學習的推薦系統(tǒng)已經(jīng)成為一個新興的研究領(lǐng)域。由于其交互性和自主學習能力,它往往超過了傳統(tǒng)的推薦模型,甚至超過了最新的基于深度學習的方法?;趶娀瘜W習的推薦系統(tǒng)基于傳統(tǒng)強化學習的推薦基于深度強化學習的推薦基于多臂老虎機的強化推薦基于馬爾可夫決策過程的強化推薦基于值函數(shù)的強化推薦基于策略梯度的強化推薦6.2.2推薦系統(tǒng)——基于多臂老虎機的強化推薦

6.2.2推薦系統(tǒng)——基于多臂老虎機的強化推薦

6.2.2推薦系統(tǒng)——基于馬爾可夫決策過程的強化推薦概念借助強化學習模型中的馬爾可夫?qū)傩詢?nèi)容作為狀態(tài),動作是要推薦的下一個最佳內(nèi)容,獎勵是用戶滿意度、轉(zhuǎn)換或評論等內(nèi)容。每個訓練模型的內(nèi)容可轉(zhuǎn)換為向量嵌入,解釋探索與利用的平衡。動態(tài)推薦機制算法既推薦用戶可能認為最有用的內(nèi)容,也推薦隨機內(nèi)容,以激發(fā)新興趣。自適應(yīng)學習模型會持續(xù)學習,適應(yīng)用戶興趣變化,提高推薦的魯棒性。6.2.2推薦系統(tǒng)——基于馬爾可夫決策過程的強化推薦

6.2.2推薦系統(tǒng)——基于馬爾可夫決策過程的強化推薦

6.2.2推薦系統(tǒng)——基于值函數(shù)的強化推薦

6.2.2推薦系統(tǒng)——基于值函數(shù)的強化推薦

6.2.2推薦系統(tǒng)——基于策略梯度的強化推薦概念使用策略梯度算法更新對抗生成網(wǎng)絡(luò)框架中的生成器模型參數(shù)解決關(guān)鍵問題在生成推薦列表任務(wù)中,離散采樣無法直接使用梯度下降的問題。應(yīng)用場景用于對話系統(tǒng),決定對話機器人何時開始推薦。深度策略梯度方法核心:通過梯度下降針對預期回報(長期累積獎勵)優(yōu)化參數(shù)化策略。優(yōu)勢:不受傳統(tǒng)強化學習方法的限制,如價值函數(shù)的不確定性、狀態(tài)信息不完整、連續(xù)狀態(tài)和動作的復雜性等。6.2.2推薦系統(tǒng)——基于策略梯度的強化推薦

6.2.2推薦系統(tǒng)——基于策略梯度的強化推薦

6.2.3模仿學習

6.2.3模仿學習分類名稱主要思想算法過程優(yōu)點缺點使用場景行為克隆使用監(jiān)督學習模仿專家策略的簡單算法根據(jù)專家的軌跡,將其劃分為狀態(tài)-動作對,并將其作為獨立同分布的示例處理,最后應(yīng)用監(jiān)督學習,損失函數(shù)取決于應(yīng)用。簡單高效獨立同分布假設(shè)不成立時,可能導致災(zāi)難性故障不需要長期規(guī)劃,專家的軌跡可以覆蓋狀態(tài)空間,犯錯誤不會導致致命后果的場景直接政策學習行為克隆的改進算法,通過交互式專家的反饋,不斷優(yōu)化策略直到形成閉環(huán)在初始專家演示的基礎(chǔ)上,先提出一個初始預測策略。執(zhí)行一個循環(huán),直到收斂。在每次迭代中,都會通過推出當前策略來收集軌跡,并利用這些策略估計狀態(tài)分布。對于每個狀態(tài)都收集專家的反饋。最后利用這個反饋來訓練一個新的政策。訓練效率高,支持長期規(guī)劃需要交互式專家實時評估行為復雜任務(wù)且有交互式專家的場景反向強化學習通過專家演示學習收益函數(shù),再利用強化學習找到最優(yōu)策略假設(shè)從一組專家的最優(yōu)演示開始,嘗試估計參數(shù)化的收益函數(shù),引起專家的行為和策略。不斷更新收益函數(shù)的參數(shù),將新學習的策略與專家的策略進行了比較,直到找到一個足夠好的策略。無需交互專家,訓練高效,支持長期規(guī)劃訓練難度大復雜任務(wù)且交互專家不可用,或?qū)W習獎勵函數(shù)比模仿策略更簡單的場景6.2.4Q-learning算法概念無模型的強化學習算法用于學習特定狀態(tài)下動作的值,幫助智能體選擇最大獎勵的動作。不需要對環(huán)境進行建模,能夠處理隨機轉(zhuǎn)換和獎勵問題。對于任何有限馬爾可夫決策過程,Q-learning從當前狀態(tài)出發(fā),在任何和所有連續(xù)步驟上尋找總回報期望值最大化的最優(yōu)策略??梢宰R別任何給定有限馬爾可夫決策過程的最優(yōu)行為選擇策略,給定無限探索時間和部分隨機策略。6.2.4Q-learning算法

6.2.4Q-learning算法

6.2.4Q-learning算法

6.2.5蒙特卡洛方法概念一種無模型的強化學習方法。在不清楚馬爾可夫決策過程的狀態(tài)轉(zhuǎn)移概率的情況下,直接從經(jīng)歷過的完整的狀態(tài)序列(episode)中學習估計狀態(tài)的真實值,并假設(shè)某狀態(tài)的值等于在多個狀態(tài)序列中以該狀態(tài)為基準得到的所有收獲的平均值。理論上,蒙特卡洛方法完整的狀態(tài)序列越多,結(jié)果越準確。6.2.5蒙特卡洛方法

6.2.5蒙特卡洛方法

6.2.5蒙特卡洛方法

6.2.6時序差分方法概念一種無模型的學習方法從當前值函數(shù)的估計值出發(fā),通過自舉學習(bootstrapping)從環(huán)境中采樣得到不完整的狀態(tài)序列,使用后繼狀態(tài)的值函數(shù)估計的方法得到該狀態(tài)的收益,然后通過不斷的采樣并根據(jù)當前估計值執(zhí)行更新。結(jié)合了蒙特卡羅的采樣方法和動態(tài)規(guī)劃方法,具有單步更新、速度更快的特點。6.2.6時序差分方法

6.2.6時序差分方法

目錄

強化學習簡介

強化學習技術(shù)

綜合案例:飛揚小鳥游戲6.16.26.3◎創(chuàng)建Q-learning網(wǎng)絡(luò)

◎訓練Q-learning網(wǎng)絡(luò)◎運行飛揚小鳥游戲綜合案例:飛揚小鳥應(yīng)用6.36.3綜合案例:飛揚小鳥應(yīng)用FlappyBird由越南視頻游戲藝術(shù)家和程序員DongNguyen開發(fā)的一款手機游戲。玩家通過點擊手機屏幕來控制一只小鳥的飛行高度,讓小鳥在綠色管道柱之間飛行,而不會撞到它們。如果小鳥一不小心撞到了水管或者掉在地上的話,游戲便結(jié)束。人類玩家經(jīng)常會受到各種因素的干擾,無法順利過關(guān)。環(huán)境與工具PyCharm,Pygame,TensorFlow,Python6.3綜合案例:飛揚小鳥應(yīng)用1.創(chuàng)建Q-learning網(wǎng)絡(luò)defcreateQNetwork(self): #網(wǎng)絡(luò)權(quán)重 W_conv1=self.weight_variable([8,8,4,32]) b_conv1=self.bias_variable([32])

W_conv2=self.weight_variable([4,4,32,64]) b_conv2=self.bias_variable([64])

W_conv3=self.weight_variable([3,3,64,64]) b_conv3=self.bias_variable([64])

W_fc1=self.weight_variable([1600,512]) b_fc1=self.bias_variable([512])

W_fc2=self.weight_variable([512,self.actions]) b_fc2=self.bias_variable([self.actions]) #輸入層 stateInput=tf.placeholder("float",[None,80,80,4]) #隱藏層 h_conv1=tf.nn.relu(self.conv2d(stateInput,W_conv1,4)+b_conv1) h_pool1=self.max_pool_2x2(h_conv1)

h_conv2=tf.nn.relu(self.conv2d(h_pool1,W_conv2,2)+b_conv2)

h_conv3=tf.nn.relu(self.conv2d(h_conv2,W_conv3,1)+b_conv3)

h_conv3_flat=tf.reshape(h_conv3,[-1,1600]) h_fc1=tf.nn.relu(tf.matmul(h_conv3_flat,W_fc1)+b_fc1)

#Q值層 QValue=tf.matmul(h_fc1,W_fc2)+b_fc2

returnstateInput,QValue,W_conv1,b_conv1,W_conv2,b_conv2,W_conv3,b_conv3,W_fc1,b_fc1,W_fc2,b_fc26.3綜合案例:飛揚小鳥應(yīng)用2.訓練Q-learning網(wǎng)絡(luò)deftrainQNetwork(self):#步驟1:從回放內(nèi)存中獲取隨機小批量 minibatch=random.sample(self.replayMemory,BATCH_SIZE)

state_batch=[data[0]fordatainminibatch] action_batch=[data[1]fordatainminibatch] reward_batch=[data[2]fordatainminibatch] nextState_batch=[data[3]fordatainminibatch]

#步驟2:計算y值 y_batch=[] QValue_batch=self.QValueT.eval(feed_dict={self.stateInputT:nextState_batch}) foriinrange(0,BATCH_SIZE): terminal=minibatch[i][4] ifterminal: y_batch.append(reward_batch[i]) else: y_batch.append(reward_batch[i]+GAMMA*np.max(QValue_batch[i]))

self.trainStep.run(feed_dict={ self.yInput:y_batch, self.actionInput:action_batch, self.stateInput:state_batch })

#每迭代100000次保存網(wǎng)絡(luò)模型 ifself.timeStep%10000==0: self.saver.save(self.session,'saved_networks/'+'network'+'-dqn',global_step=self.timeStep)

ifself.timeStep%UPDATE_TIME==0:

self.copyTargetQNetwork()6.3綜合案例:飛揚小鳥應(yīng)用3.運行飛揚小鳥游戲defplayFlappyBird(): #初始化DQN actions=2 brain=BrainDQN(actions)

#初始化飛揚的小鳥游戲 flappyBird=game.GameState()

#設(shè)置初始化動作 action0=np.array([1,0])

#獲取圖像數(shù)據(jù)、獎勵、游戲是否結(jié)束 observation0,reward0,terminal=flappyBird.frame_step(action0)

observation0=cv2.cvtColor(cv2.resize(observation0,(80,80)),cv2.COLOR_BGR2GRAY) ret,observation0=cv2.threshold(observation0,1,255,cv2.THRESH_BINARY)#二值化

brain.setInitState(observation0)#設(shè)置初始狀態(tài)

#運行游戲 while1!=0: action=brain.getAction()#獲取動作 nextObservation,reward,terminal=flappyBird.frame_step(action) nextObservation=preprocess(nextObservation)#原始圖像處理為80*80灰度圖像 brain.setPerception(nextObservation,action,reward,terminal)6.3綜合案例:飛揚小鳥應(yīng)用如圖所示,在飛揚小鳥這個游戲中,強化學習模型通過接收鼠標點擊操作來控制小鳥的飛行高度,躲過各種水管,飛的越遠越好,因為飛的越遠就能獲得更高的積分獎勵。該強化學習模型在不需要大量的數(shù)據(jù)輸入情況下,通過自身不停的嘗試來學會某些技能,這正是強化學習方法不同于其他機器學習方法的強大之處。本章小結(jié)強化學習簡介通過代理與環(huán)境交互,利用行為反饋進行學習。代理通過反復試驗,根據(jù)獎勵和懲罰進行學習?,F(xiàn)代人工智能中的重要課題,應(yīng)用前景廣闊。強化學習vs監(jiān)督學習vs無監(jiān)督學習監(jiān)督學習:基于輸入輸出的映射需要使用正確的動作集強化學習:基于輸入輸出的映射使用獎勵與懲罰信號引導學習目標:找到一個合適的動作模型,以最大化代理的總累積獎勵無監(jiān)督學習目標:尋找數(shù)據(jù)點之間的相似性與差異本章小結(jié)常見強化學習算法Q-learning基于值策略,代理根據(jù)從另一個策略派生的動作學習值。SARSA基于策略的方法,根據(jù)從當前動作派生的當前動作來學習值。強化學習的挑戰(zhàn)部署難度實際應(yīng)用中環(huán)境變化頻繁,難以始終采取最佳行為。計算資源與時間需求訓練環(huán)境復雜時需要大量時間與計算資源。與監(jiān)督學習的比較監(jiān)督

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論