強化學習-簡介

背景

  強化學習是機器學習三大分支之一,除去強化學習外,還有監督式學習和非監督式學習,雖然本系列文章主要介紹強化學習,可是瞭解另外兩類的特色還都是頗有必要。本系列的文章首先總體介紹強化學習的相關知識,而後是相關的算法,第一個算法是Q-Learning。算法

監督式學習

  監督式學習比如有一位老師告訴機器某個物件有什麼特徵,例如人有兩條腿,兩隻眼睛等等,而這些特徵被稱之爲標籤,機器根據這些帶有標籤的大量數據訓練本身,得到經驗,當得到數據集以外的輸入時(檢驗模型),機器會根據本身學習到的經驗,判斷這個輸入是什麼物件。不難看出,監督學習即是經過大量帶有標籤的數據訓練機器自身,機器從中得到經驗,達到可識別物體的目的,普遍應用於分類問題和迴歸問題。爲了便於理解,這裏舉一個例子:如今須要讓機器可以在分辨羊和雞,最初機器是一個白癡,什麼也不懂,因而用大量帶有特徵的數據集來訓練機器,例如告訴機器羊有四條腿,雞隻有兩條腿;羊的體型大,雞的體型小;羊有一對犄角,而雞沒有等等,固然數據越多越好,特徵越具體越好,經過大量的數據訓練後,放一隻羊交給機器識別,機器便會提取當前識別對象的特徵,有沒有犄角,有幾隻腿等等,而後和本身學習到的標籤對比,得出是羊的結論。機器學習

非監督式學習

  非監督學習在學習過程當中沒有老師告訴你數據的標籤,也就是說機器獲得的數據僅僅是一條條數據,數據不帶有任何提示信息,而機器的任務是經過觀察大量的數據,本身造成一套認知體系,可以將全部的數據進行歸類,可是機器自己並不知道這個類表明什麼,例如:給機器輸入大量的雞和羊的數據,可是不告訴機器它們的特徵,機器經過訓練後可以將羊和雞分紅兩類,可是機器並不知道他們是羊和雞,就叫聚類。函數

強化學習

  從前文能夠看出,監督學習和非監督學習的經驗來源(也就是數據集)都是靜態的。如今假設這樣一個情景,咱們須要訓練一個機器人可以自主的在地面上行走,咱們應該怎麼訓練它呢?按照非監督學習或者監督學習,咱們須要向機器人提供大量關於環境的數據,什麼是障礙物,什麼是溝壑等等,可是現實環境中影響因素不少,例如障礙物有不少種,有石頭這樣的較小障礙物,也有高樓這樣的障礙物,機器面臨不一樣的障礙物做出的反應也不一樣,前者是作出更大的跨步躲開障礙物,後者則須要繞行。而在環境中這樣的因素不少,加之環境變化很快,所以提供一個完整的數據集來訓練機器人顯然已經不可行。而強化學習即可解決這樣的問題,強化學習的數據集不是靜態數據集,而是動態的。強化學習可稱之爲引導式學習,也有人稱之爲試錯式學習,將機器(代理)仍在環境中,讓它本身探索(即在環境中自由玩耍),機器會作出不少動做做用於環境,而且環境會反饋給機器一個獎勵告訴機器人他作的動做是好仍是壞,好比機器人向右走跌倒了,環境會反饋一個很差的獎勵給機器,告訴機器在這個狀態做這個動做並不有利,若是向左走沒有跌倒,則會反饋一個較好的獎勵,告訴機器在這個狀態作向左走的動做有利,經過不斷地施加動做做用於環境,環境作出反饋,是的機器人不斷從環境中獲得經驗完善本身,告訴本身在某個狀態下作某個動做使本身不會摔倒,從而使其能自主行走。從而獲得與環境最佳的交互策略。比如一位老師在你面前不會告訴你應該作什麼,可是你作的每個動做老師都會給你打分(獎勵),不一樣動做得分有高有低,所以你會選擇分數更高的動做避免更低的動做。這裏用一個經典的方格世界舉例:假設這裏有一個5*5的方格,要求機器人從(1,1)的方格開始,目標走到(5,5)的方格。機器人在每一個方格的動做只有先後左右,最初機器人什麼也不懂,在方格世界亂走,在(1,1)(左下角)有上下左右四種動做,若是選擇了左或者下,就走出方格世界,環境返回獎勵-1告訴機器人在(1,1)向左向下的動做很很差,若是向上或者向右則獲得0的獎勵,這樣子機器人的狀態從(1,1)轉移到(1,2)或者(2,1),而後機器人繼續在該位置執行四個動做中的一個到達下一個狀態,獲得相應的獎勵,當到達(5,5)時,得到獎勵+10,經過這樣不斷的訓練,機器人便會在每一個狀態選擇有利的動做執行而避免收益低的動做(例如在起點不會向左向下),從而最終到達終點。學習

在這裏插入圖片描述

強化學習五個方面

  前文簡單介紹了監督學習、非監督學習、強化學習,而本系列文章主要記錄強化學習相關知識,首先看一下強化學習的五個內容組成。強化學習能夠總結爲環境+獎勵+表達策略的方法+選擇算法訓練代理+部署驗證。在強化學習中,須要訓練的對象(即爲前文的機器、機器人)統稱爲Agent(代理、智能體)。代理

Environment(環境)

  環境即爲代理玩耍的場所,前文提到,強化學習就是代理與環境不斷和交互獲得反饋來完善自身的過程。代理能夠有不少的動做,動做做用於環境,環境能夠根據動做給代理獎勵評價代理的動做的好壞,而且代理能夠從環境中觀察到狀態信息。在方格世界中,環境就是整個5*5的方格,動做就是上下左右,狀態就是對應的位置信息,也就是座標。對象

Reward(獎勵)

  獎勵是代理用於獲取經驗、完善本身的重要依據,根據環境反饋的經驗,代理能夠了解到在當前狀態下執行某個動做的利弊,從而使其在每一個狀態執行有利的動做,而避免低收益動做。例如在方格世界中在(1,1)點執行向下或者向左會獲得-1獎勵,是一個消極獎勵,代理便會在該狀態避免該動做。而在(4,5)執行向右的動做,便會獲得+10的獎勵,是一個積極的獎勵,是的代理在該狀態更傾向於該動做。blog

Policy(策略)

  策略能夠理解爲一個函數,該函數是狀態空間到動做空間的映射,輸入是狀態,輸出是執行動做,用於指引代理在該狀態執行什麼動做,最優策略則是在每個狀態下,都能使得代理作出合適的動做從而得到最佳的長期獎勵(價值)。而強化學習的目標就是學習與環境交互得最佳策略,而學習就是系統性調整參數使得策略收斂到最佳狀態的過程。表達策略的方法多種多樣,在以後的文章會介紹。 圖片

訓練代理的方法

  經常使用的強化學習算法有Q-Learning、Sarsa、DQN(Deep Q-Learning Network),在後面會逐步介紹。資源

部署驗證

實地部署驗證結果。開發

強化學習分類

  強化學習能夠分爲兩類,基於模型的方法和無模型方法。

無模型的方法

  在無模型訓練方法中,代理對環境一無所知,所以代理須要對環境的全部區域進行探索,意味着會花費大量時間去探索低獎勵回報的區域,這樣會浪費大量的時間去作無用功,但在大多數狀況都會使用這種方式。

基於模型的方法

  在開發者知道環境中某些區域或者所有環境的狀況下,開發者能夠將這些狀況告知代理,就像一張地圖,會告訴代理哪些區域回報極低,避免探索低迴報區域,加快訓練速度,節約資源。

總結

  關於強化學習的概述就當這裏結束,水平有限,若有理解不當或者須要改正補充的地方,歡迎批評指正。接下來我將詳細闡述五個方面,闡述完後開始相關算法的分享,包括算法的理解、算法分析與總結、算法實現、具體場景的仿真與分析。

相關文章
相關標籤/搜索