參考:算法
http://www.javashuo.com/article/p-cvsmdvyi-er.html框架
http://www.javashuo.com/article/p-thjmrfvj-dq.html機器學習
1、強化學習及其與其餘機器學習算法的區別函數
機器學習算法可分爲3種:學習
(1)有監督學習;spa
(2)無監督學習;.net
(3)強化學習;blog
強化學習的本質是解決decision making,即自動進行決策,而且能夠作連續決策。ci
它主要包含四個元素,agent,環境狀態,行動,獎勵。開發
強化學習的目標就是得到最多的累計獎勵。
強化學習的特色是經過先嚐試做出一些行爲獲得一個結果,經過這個結果是對仍是錯的反饋,調整以前的行爲,這樣不斷的調整,算法可以學習到在什麼環境下做出什麼樣的行動,這樣的一連串行爲能夠累計獲得最大的獎勵。
監督式學習學到的是輸入跟輸出的關係(即什麼樣的輸入會獲得什麼樣的輸出);強化學習是讓機器學會判斷,即某種行爲是對仍是錯。(能夠理解爲監督式學習讓機器學會作任務,強化學習讓它學會作判斷,能夠說是一種價值觀或者是世界觀的植入了)
另外強化學習的結果反饋有延時,有時候須要走不少步之後才知道之前的某一步的選擇是好仍是壞,而監督學習作了比較壞的選擇會當即反饋給算法。
並且強化學習面對的輸入老是在變化,每當算法做出一個行爲,它影響下一次決策的輸入,而監督學習的輸入是獨立同分布的。
經過強化學習,一個 agent 能夠在探索和開發(exploration and exploitation)之間作權衡,而且選擇一個最大的回報。
exploration 會嘗試不少不一樣的事情,看它們是否比之前嘗試過的更好。
exploitation 會嘗試過去經驗中最有效的行爲。
通常的監督學習算法不考慮這種平衡,就只是是 exploitative。
非監督式學習是利用類似性來學習,獲得的結果是「理解」內容;而強化學習是經過 「嘗試」<->「反饋」的模式來學習,獲得的結果是「三觀」的創建。
總的來講,強化學習相比於監督和無監督來講,是一種更深層次的學習方式。
其餘許多機器學習方法都是在學習怎樣作,而RL是在嘗試的過程當中學習在特定的情景下選擇哪一種行動能夠獲得最大的回報。在不少場景中,當前的行動不只會影響當前的rewards,還會影響以後的狀態和一系列的rewards。RL最重要的三個特徵在於:
(1)一般是一種閉環的形式;
(2)不會直接指示選擇哪一種行動(actions);
(3)一系列的actions和獎勵信號(reward signals)都會影響以後較長的時間。
RL 與有監督學習、無監督學習的比較:
(1)有監督的學習是從一個已經標記的訓練集中進行學習,訓練集中每個樣本的特徵能夠視爲是對該situation的描述,而其label能夠視爲是應該執行的正確的action,可是有監督的學習不能學習交互的情景,由於在交互的問題中得到指望行爲的樣例是很是不實際的,agent 只能從本身的經歷(experience)中進行學習,而experience中採起的行爲並不必定是最優的(所以監督學習無法獲得一個最優的策略)。這時利用RL就很是合適,由於RL不是利用正確的行爲來指導,而是利用已有的訓練信息來對行爲進行評價。
(2)由於RL利用的並非採起正確行動的experience,從這一點來看和無監督的學習確實有點像,可是仍是不同的,無監督的學習的目的能夠說是從一堆未標記樣本中發現隱藏的結構,而RL的目的是最大化 reward signal。
(3)總的來講,RL與其餘機器學習算法不一樣的地方在於:其中沒有監督者,只有一個reward信號;反饋是延遲的,不是當即生成的;時間在RL中具備重要的意義;agent的行爲會影響以後一系列的data。
2、強化學習的特色及其包含的主要元素
RL採用的是邊得到樣例邊學習的方式,在得到樣例以後更新本身的模型,利用當前的模型來指導下一步的行動,下一步的行動得到reward以後再更新模型,不斷迭代重複直到模型收斂。這種「trial-and-error learning」的方式,最重要的一點就是 「探索」(exploration) 和」發現」(exploitation)。在RL中,如何權衡exploration 與exploitation是一個重要的問題和挑戰。
RL的另外一個特色是它將agents和與其交互的不肯定的環境視爲是一個完整的問題。在RL問題中,有四個很是重要的概念:
(1)規則(policy)
Policy定義了agents在特定的時間特定的環境下的行爲方式,能夠視爲是從環境狀態到行爲的映射,經常使用 π來表示。policy能夠分爲兩類:
肯定性的policy(Deterministic policy): a=π(s)
隨機性的policy(Stochastic policy): π(a∣s)=P[At=a∣St=t]
(2)獎勵信號(a reward signal)
Reward就是一個標量值,是每一個time step中環境根據agent的行爲返回給agent的信號,reward定義了在該情景下執行該行爲的好壞,agent能夠根據reward來調整本身的policy。經常使用R
R來表示。
(3)值函數(value function)
Reward定義的是當即的收益,而value function定義的是長期的收益,它能夠看做是累計的reward,經常使用v
v來表示。
(4)環境模型(a model of the environment)
整個Agent和Environment交互的過程能夠用下圖來表示:
3、強化學習的主要算法和分類:
Q-learning
Sarsa
4、深度加強學習
Actor-Critic框架
DQN算法