深度強化學習資料(視訊+PPT+PDF下載)

機器學習演算法與Python學習發表於2018-06-22

機器之心 整理&出品

  • 課程主頁:http://rll.berkeley.edu/deeprlcourse/

  • 所有視訊的連結:https://www.youtube.com/playlist?list=PLkFD6_40KJIznC9CDbVTjAF2oyt8_VAe3


由於文章較長,且有較多外連結,建議下載PDF版進行閱讀

方式一

點選閱讀原文即可下載

方式二

返回選單欄,回覆“20180622”


知識背景


本課程要求具有 CS 189 或同等學力。本課程將假定你已瞭解強化學習、數值優化和機器學習的相關背景知識。本課程所需的背景資料已在下表列出。在課程中,授課人會回顧這些資料的內容,但會非常簡略。


  • 強化學習和 MDP

    • MDP 的定義

    • 精確演算法:策略與價值迭代

    • 搜尋演算法

  • 數值優化

    • 梯度下降、隨機梯度下降

    • 反向傳播演算法

  • 機器學習

    • 分類和迴歸問題:使用哪些損失函式,如何擬合線性和非線性模型

    • 訓練/測試錯誤、過擬合


有關強化學習與 MDP 的介紹資料:


  • CS188 EdX 課程,從馬爾可夫決策過程 I 開始:http://ai.berkeley.edu/home.html

  • Richard S. Sutton 與 Andrew G. Barto 的《強化學習導論》,第三章和第四章:http://incompleteideas.net/book/the-book-2nd.html

  • 有關 MDP 的介紹,請參閱吳恩達的論文《Shaping and policy search in Reinforcement learning》:http://rll.berkeley.edu/deeprlcourse/docs/ng-thesis.pdf

  • David Silver 的課程:http://rll.berkeley.edu/deeprlcourse/#related-materials


有關機器學習和神經網路的介紹性資料,請參閱:


  • Andrej Karpathy 的課程:http://cs231n.github.io/

  • Geoff Hinton 的 Coursera 課程:https://www.coursera.org/learn/neural-networks

  • 吳恩達的 Coursera 課程:https://www.coursera.org/learn/machine-learning/

  • Yaser Abu-Mostafa 的課程:https://work.caltech.edu/telecourse.html


以下是 CS 294 深度強化學習 2017 年秋季課程的主要內容概要,所有的授課文件與視訊都已經發布且展示在課程主頁中。


8 月 23 日:課程簡介(Levine)


640?wx_fmt=png

該課程第一節課主要是課程介紹和對強化學習基本概念的介紹。


該課程教學大綱中包含以下內容:


1. 從監督學習到決策

2. 基礎強化學習:Q 學習和策略梯度

3. 高階模型學習和預測、distillation、獎勵學習

4. 高階深度強化學習:置信域策略梯度、actor-critic 方法、探索

5. 開放性問題、學術講座、特邀報告



8 月 28 日:監督學習和模仿學習(Levine)


640?wx_fmt=png


本節課介紹監督學習,主要內容包括:


1. 序列決策問題的定義

2. 模仿學習:使用監督學習進行決策

3.(深度)模仿學習近期研究案例分析

4. 模仿學習的缺點


本節課目標:


  • 理解監督學習定義和符號;

  • 理解基礎模仿學習演算法;

  • 理解模仿學習演算法的優劣勢。


模仿學習:


640?wx_fmt=png



8 月 30:強化學習簡介(Levine)


640?wx_fmt=png


本節課介紹強化學習,主要內容包括:


1. 馬爾可夫決策過程的定義

2. 強化學習問題的定義

3. 強化學習演算法解析

4. 簡要介紹強化學習演算法型別


本節課目標:


  • 理解強化學習定義和符號;

  • 理解強化學習的目標;

  • 儘可能瞭解所有強化學習演算法。


馬爾可夫鏈定義:

640?wx_fmt=png


馬爾可夫決策過程定義:

640?wx_fmt=png

640?wx_fmt=png


強化學習演算法型別:

640?wx_fmt=png


9 月 6 日:策略梯度簡介(Levine)

640?wx_fmt=png


本節課介紹了策略梯度,主要內容包括:


1. 策略梯度演算法

2. 策略梯度的作用

3. 基礎方差縮減:因果性(causality)

4. 基礎方差縮減:基線

5. 策略梯度示例


本節課的目標:


  • 理解策略梯度強化學習;

  • 理解使用策略梯度時需要實際考慮的事情。


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


9 月 8 日:神經網路概述(Achiam)


本節課全面介紹了神經網路,主要內容包括:自動微分、TensorFlow 基礎知識、構建高階計算圖、log 和 debug,以及計算相簿、TensorFlow 的其他 API/封裝器。


9 月 11 日:actor-critic 演算法簡介(Levine)


640?wx_fmt=png


本節課介紹了 actor-critic 演算法,主要內容包括:


1. 改進具備 critic 的策略梯度

2. 策略評估問題

3. 折現因子

4. actor-critic 演算法


本節課目標:


  • 理解策略評估與策略梯度如何擬合;

  • 理解 actor-critic 演算法的工作原理。


actor-critic 演算法:


640?wx_fmt=png


架構設計:

640?wx_fmt=png


9 月 13 日:價值函式介紹(Levine)


640?wx_fmt=png


本節課介紹價值函式的應用,包括從價值函式提取策略,如何用價值函式優化策略,Q-學習演算法的介紹、實際應用和擴充套件等。


640?wx_fmt=png


其中強調了聚焦於價值函式而不是策略本身的重要性,這有助於簡化問題;並介紹了 Q-學習的多種模式,如離線模式、線上模式等。


9 月 18 日:高階 Q-學習演算法(Levine)


本節課介紹 Q-學習演算法的擴充套件,包括如何與深度學習結合、廣義的 Q-學習演算法、Q-學習演算法的實際應用以及連續性 Q 學習演算法。重點是理解在複雜函式逼近中實現 Q-學習,以及如何將 Q-學習擴充套件到連續動作。

640?wx_fmt=png


深度 Q-學習演算法的典型定義。


640?wx_fmt=png


廣義的 Q-學習演算法:資料收集—目標更新—Q-函式迴歸。


9 月 20 日:最優控制和規劃(Levine)

640?wx_fmt=png


本節課介紹了無模型和基於模型的強化學習的差別,以及在建模過程中對轉換動力學的先驗知識的重要性;然後介紹了多種優化方法,包括隨機優化(連續型)、蒙特卡洛樹搜尋(離散型)和軌跡優化。重點是理解如何結合離散或連續空間的已知系統動力學知識來執行規劃。


640?wx_fmt=png


知道強化學習問題的動力學知識會通常來說使問題更加簡單,圍棋、汽車、機器人、視訊遊戲等的動力學知識都是比較容易獲取的。


9 月 25 日:從資料中學習動力學系統(Levine)


640?wx_fmt=png


上節課中介紹了當知道系統的動力學知識之後,如何對問題進行建模。

640?wx_fmt=png


本節課將介紹當系統動力學知識未知時的解決方案,包括擬合全域性動力學模型(基於模型的強化學習)以及擬合局域動力學模型。重點是理解基於模型強化學習的術語和形式,可選的模型型別,以及模型學習中的實際考慮。


9 月 27 日:利用模仿優化控制器學習策略(Levine)


640?wx_fmt=png


上節課中介紹了當系統動力學知識未知時的解決方案,包括全域性方法(基於模型的強化學習)以及局域方法(基於模型並新增約束)。但當需要系統生成策略的時候,該怎麼辦呢?生成策略可以更快地評估智慧體的動作,並且泛化潛力更好。


640?wx_fmt=png


本節課將介紹如何利用反向傳播演算法來學習策略,它和模仿優化控制的關係,然後介紹了引導策略搜尋演算法,最後介紹瞭如何權衡基於模型和無模型強化學習的選擇。本節課的重點在於理解用優化控制訓練策略的過程,以及多種不同方法的權衡過程。


10 月 2 日:高階強化學習和影像處理應用(客座演講:Chelsea Finn)

640?wx_fmt=png

本節課介紹多種高階的模型學習方法,並以影像應用為例分別展示了隱空間學習、影像空間學習、逆模型學習和預測替代數量。

640?wx_fmt=png


其中強調了學習特徵的重要性,以及在利用觀測模型時,需要考慮獎勵函式和目標函式的設定。


640?wx_fmt=png


基於模型方法和無模型方法的優缺點對比。


10 月 4 日:推斷和控制之間的聯絡(Levine)


這一課程的主要目的是理解推斷和控制之間的關係,以及理解具體的強化學習演算法在框架下如何例項化。最優的控制其實可以作為擬合人類行為的模型,但如果資料達不到最優,那有如何擬合人類行為?我們還是可以將強化學習作為圖模型中的推斷而實現控制,其中價值函式為反向資訊,且最大化獎勵和資訊熵以訓練模型。其它方法還有 Soft Q-learning 和基於資訊熵正則化的策略梯度等。


如下展示了一種制定決策或控制的概率圖模型:


640?wx_fmt=png


10 月 9 日:逆向強化學習(Levine)


640?wx_fmt=png


本節課介紹逆向強化學習,主要內容包括:


1. 手動設計獎勵函式來定義一個任務

2. 當我們想從觀察專家過程中學習獎勵函式,然後使用強化學習時會發生什麼?

3. 使用上節課的近似最優模型,學習獎勵函式。


本節課目標:


  • 理解逆向強化學習的定義;

  • 理解如何使用行為概率模型推匯出逆向強化學習演算法;

  • 瞭解我們實踐中使用的逆向強化學習演算法。


逆向強化學習:


640?wx_fmt=png

以下是這一章節的總結:


640?wx_fmt=png


10 月 11 日:高階策略梯度(自然梯度、重要性取樣)(Achiam)


640?wx_fmt=png

本節課介紹高階策略梯度方法,主要內容包括:


理論:


  • 策略梯度方法的問題

  • 策略效能邊界

  • 單調改進理論(Monotonic Improvement Theory)


演算法:


  • 自然策略梯度

  • 置信域策略優化

  • 近端策略優化


自然策略梯度:

640?wx_fmt=png


置信域策略優化:


640?wx_fmt=png

640?wx_fmt=png


10 月 16 日:探索(Levine)


這一章節主要介紹了什麼是探索(exploration),以及為什麼它在強化學習中非常重要。一般來說探索分為基於樂觀探索、基於後驗匹配的探索和基於資訊理論的探索。探索和利用(exploitation)的均衡在強化學習中非常重要,也是非常難以解決的問題。以下展示了探索與利用之間的基本區別:


640?wx_fmt=png


隨後 Levine 詳細展開介紹了為什麼探索是非常困難的,包括搖臂賭博機問題等,而後重點介紹了樂觀探索(Optimistic exploration)、概率匹配與後驗取樣,以及資訊增益等探索方法。以下展示了一種探索演算法。


640?wx_fmt=png


10 月 18 日:探索(第二部分)和遷移學習(Levine)


這一章節首先複習了上堂課介紹的樂觀探索、Thompson 取樣風格的演算法和資訊增益風格的演算法,然後介紹了這三類演算法的近似論證。最後,講師 Levine 還給出了一系列的延伸閱讀以加強我們對探索的理解。


640?wx_fmt=png


該課程後一部分介紹了元學習與遷移學習,以下展示了遷移學習中的一種架構: 漸進神經網路。


640?wx_fmt=png


10 月 23 日:多工學習與遷移(Levine)


該課程主要介紹了多工學習與遷移學習。說到如何解決遷移學習的問題,沒有一個特定的解決方案,所以此課主要對近期(當時)的各種演講論文進行了介紹。

640?wx_fmt=png


1.「前向」遷移:在一個任務上訓練,遷移到新任務


  • 只是試試,希望有好結果

  • 架構遷移:漸進網路

  • 在新任務上微調

  • 隨機化源任務域


2. 多工遷移:在多種任務上訓練,遷移到一個新任務上


  • 基於模型的強化學習

  • 模型精煉

  • 情境策略

  • 模組化策略網路


3. 多工元學習:學習從多種任務上學習


  • 基於 RNN 的元學習

  • 基於梯度的元學習


10 月 25 日:元學習和並行化(Levine)


首先元學習是一種學習如何學習的方法,它在實踐中與多工學習非常相近,一般而言元學習可以分為學習一種優化器、學習一個 RNN 以捕捉經驗資訊和學習一種表徵。如果元學習是一種快速的強化學習器,那麼我們就能快速學習新任務。


一般而言元學習可以通過監督學習或強化學習構建,它可以返回優秀的表徵而加速學習也可以用來構建對經驗的記憶等。


640?wx_fmt=png


該章節的後一部分介紹了強化學習中的並行化,包括強化學習到底哪一部分需要並行,如何並行以及最終怎樣實現等。以下展示了我們最終需要並行的部分。


640?wx_fmt=png


10 月 30 日:進階模仿學習和開放性問題(Levine)


我們知道模仿學習的目標是通過監督學習在給定觀察下求得行動的概率分佈,而強化學習是給定環境和狀態下求得行動的概率分佈。模仿學習要求預先的演示且必須解決分佈遷移問題,它的優點在於可以通過簡單穩定的監督學習實現。而強化學習需要獎勵函式且必須解決模型的探索問題,它雖然可能會無法收斂,但卻能夠實現任意好的效能。


這一章節介紹了結合模仿學習的監督方式和強化學習的方法:

640?wx_fmt=png

後一部分介紹了深度強化學習的挑戰,包括超引數調整、樣本複雜度、泛化效能和 shenwuxu 生物學啟示等。


640?wx_fmt=png

該課程後面還有很多受邀嘉賓與它們所授的課程,包括 OpenAI 的 Igor Mordatch、谷歌的 Mohammad Norouz、伯克利和 OpenAI 的 Pieter Abbeel、伯克利的 Aviv Tamar 和 OpenAI 的 John Schulman。他們並沒有提供對應的授課文件,但演講視訊在 YouTube 上都已經放出來了。


相關學習材料


機器學習夏季課程中 John 的視訊:


  • 視訊 1:https://www.youtube.com/watch?v=aUrX-rP_ss4

  • 視訊 2:https://www.youtube.com/watch?v=oPGVsoBonLM

  • 視訊 3:https://www.youtube.com/watch?v=rO7Dx8pSJQw

  • 視訊 4:https://www.youtube.com/watch?v=gb5Q2XL5c8A


課程:


  • David Silver 的強化學習課程:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html

  • Nando de Freita 的機器學習課程:https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/

  • Andrej Karpathy 的神經網路課程:http://cs231n.github.io/


相關書籍:


  • 深度學習:http://www.deeplearningbook.org/

  • Sutton 和 Barto 合著的 Reinforcement Learning: An Introduction (http://webdocs.cs.ualberta.ca/~sutton/book/the-book.html):http://webdocs.cs.ualberta.ca/~sutton/book/the-book.html

  • Szepesvari 的Algorithms for Reinforcement Learning:https://sites.ualberta.ca/~szepesva/RLBook.html

  • Dynamic Programming and Optimal Control:http://www.athenasc.com/dpbook.html

  • Markov Decision Processes: Discrete Stochastic Dynamic Programming:https://www.wiley.com/en-us/Markov+Decision+Processes%3A+Discrete+Stochastic+Dynamic+Programming-p-9780471727828

  • Approximate Dynamic Programming:http://adp.princeton.edu/

640?wx_fmt=png

相關文章