學到了!UC Berkeley CS 294深度強化學習課程(附視頻與PPT)

 2018-04-02 17:03:20.0

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

  • 所有視頻的鏈接:https://www.youtube.com/playlist?list=PLkFD6_40KJIznC9CDbVTjAF2oyt8_VAe3

知識背景

本課程要求具有 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)

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

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

1. 從監督學習到決策

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

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

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

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

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

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

1. 序列決策問題的定義

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

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

4. 模仿學習的缺點

本節課目標:

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

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

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

模仿學習:

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

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

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

2. 強化學習問題的定義

3. 強化學習算法解析

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

本節課目標:

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

  • 理解強化學習的目標;

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

馬爾可夫鏈定義:

馬爾可夫決策過程定義:

強化學習算法類型:

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

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

1. 策略梯度算法

2. 策略梯度的作用

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

4. 基礎方差縮減:基線

5. 策略梯度示例

本節課的目標:

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

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

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

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

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

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

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

2. 策略評估問題

3. 折現因子

4. actor-critic 算法

本節課目標:

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

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

actor-critic 算法:

架構設計:

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

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

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

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

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

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

廣義的 Q-學習算法:數據收集—目標更新—Q-函數迴歸。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如下展示了一種制定決策或控制的概

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

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

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

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

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

本節課目標:

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

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

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

逆向強化學習:

以下是這一章節的總結:

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

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

理論:

  • 策略梯度方法的問題

  • 策略性能邊界

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

算法:

  • 自然策略梯度

  • 置信域策略優化

  • 近端策略優化

自然策略梯度:

置信域策略優化:

10 月 16 日:探索(Levine)

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

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

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

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

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

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

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

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

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

  • 架構遷移:漸進網絡

  • 在新任務上微調

  • 隨機化源任務域

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

  • 基於模型的強化學習

  • 模型精煉

  • 情境策略

  • 模塊化策略網絡

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

  • 基於 RNN 的元學習

  • 基於梯度的元學習

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

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

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

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

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

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

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

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

該課程後面還有很多受邀嘉賓與它們所授的課程,包括 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/

文章來源:機器之心