1. 程式人生 > >深度增強學習入門筆記(一)

深度增強學習入門筆記(一)

知乎專欄智慧單元的學習筆記,僅為自己學習所用,侵刪。

從OpenAI看深度學習研究前沿

OpenAI的三個主要研究方向
1. 深度生成模型 Deep Generative Model
通過學習現有的資料生成新的資料。
相關研究:
1)otoro.net 學習文字自動生成新的文字
2)Deep Dream Neural Art 畫風遷移
3)Sequence to Sequence Learning 從序列到序列的學習 輸入英文,輸出中文;輸入文字,輸出手寫字型等。
4) Deep Generative Adversarial Network s深度生成對抗網路以及衍生而來的 DCGAN 深度卷積生成對抗網路
5)one shot learning 看一眼影象衍生出其變種,快速感知

2 . 神經圖靈機 Neural Turing Machine
讓計算機能夠學習程式,從而具備推理能力。
相關研究:
ICLR 2016 NEURAL PROGRAMMER-INTERPRETERS 通過神經網路解釋程式

3 . 深度增強學習 Deep Reinforcement Learning
使用增強學習實現自學習能力。
OpenAI Gym OpenAI的增強學習平臺

DQN Deep Q Network

這裡寫圖片描述
agent 智慧體 具備行為能力的物體
state 狀態 觀察observation的集合
action 動作
reward 反饋值
state->action稱為policy 策略
state:s,action:a,policy:π
我們需要找到下列關係(一一對應或者是概率表示):
a

=π(s) 或者
π(a|s)
增強學習的任務是找到一個最優的policy策略使得reward反饋值最多。

大多數人工智慧研究,包括增強學習的基礎

  1. 世界的時間是可以被切分的,且有嚴格的先後順序。
  2. 上帝不擲骰子,增強學習的輸入確定,輸出也確定。

馬爾科夫決策過程MDP

MDP基於未來只基於現在的假設,即下一個狀態僅取決於當前的狀態和當前的動作。
一個狀態St是Markov當且僅當
P(st+1|st)=P(st+1|st,st1,...s1,s0) 這裡的狀態是上帝視角的狀態。
增強學習的問題都可以模型化為MDP的問題。
一個基本的MDP可以用(S,A,P)來表示:
S :狀態
A:動作
P:狀態轉移概率,根據當前的狀態s

tat轉移到st+1的概率。如果我們知道了轉移概率P,也就是稱為我們獲得了模型Model,有了模型,未來就可以求解,那麼獲取最優的動作也就有可能,這種通過模型來獲取最優動作的方法也就稱為Model-based的方法。但是現實情況下,很多問題是很難得到準確的模型的,因此就有Model-free的方法來尋找最優的動作。

回報return

基於MDP,每個狀態都可以用一個確定的值來表示,所以就可以判斷好壞。狀態的好壞等價於對未來回報的期望。
設回報return為某個時間t時的狀態所將具備的回報。

Gt=Rt+1+λRt+2+=k=0λkRt+k+1
R: Reward反饋值
λ:discount factor折扣因子,一般小於1,就是說一般當下的反饋是比較重要的,時間越久,影響越小。
注意這是某一個時刻t的狀態所將具備的回報,所以要等整個過程走完,才能算出所有的回報(k是到正無窮的),引出一個概念 價值函式 value function來解決這個問題,價值函式表示一個狀態未來的潛在價值,公式:
這裡寫圖片描述

回到增強學習的目標—-找到一個最優的policy使得reward最多上來,所以有以下三種方法可以找到最優的policy:
1. 直接優化策略π(a|s)或者a=π(s)使得回報更高。
2. 通過估計value function來間接獲得優化的策略。
3. 融合上面兩種做法,如actor-critic演員評論家演算法。
DQN是基於value function的演算法。