1. 程式人生 > >資源 | UC Berkeley CS 294深度強化學習課程(附視訊、學習資料)

資源 | UC Berkeley CS 294深度強化學習課程(附視訊、學習資料)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

來源:機器之心

本文共4000字,建議閱讀10分鐘。

本文主要介紹了課程中的強化學習主題,涉及深度強化學習的基本理論與前沿挑戰。

CS294 深度強化學習 2017 年秋季課程的所有資源已經放出。該課程為各位讀者提供了強化學習的進階資源,且廣泛涉及深度強化學習的基本理論與前沿挑戰。本文介紹了該課程主要討論的強化學習主題,讀者可根據興趣愛好與背景知識選擇不同部分的課程。請注意,UC Berkeley 的 CS 294 並未被歸類為線上開放課程,所有視訊的使用權僅限個人學習。

課程主頁: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)

640?wx_fmt=jpeg

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

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

  •  從監督學習到決策

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

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

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

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

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

640?wx_fmt=png

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

  • 序列決策問題的定義

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

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

  • 模仿學習的缺點

本節課目標:

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

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

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

模仿學習:

640?wx_fmt=png

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

640?wx_fmt=png

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

  • 馬爾可夫決策過程的定義

  • 強化學習問題的定義

  • 強化學習演算法解析

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

本節課目標:

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

  • 理解強化學習的目標;

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

馬爾可夫鏈定義:

640?wx_fmt=png

馬爾可夫決策過程定義:

640?wx_fmt=png

640?wx_fmt=png

強化學習演算法型別:

640?wx_fmt=png

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

640?wx_fmt=png

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

  • 策略梯度演算法

  • 策略梯度的作用

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

  • 基礎方差縮減:基線

  • 策略梯度示例

本節課的目標:

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

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

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 演算法,主要內容包括:

  • 改進具備 critic 的策略梯度

  • 策略評估問題

  • 折現因子

  • 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=jpeg

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

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

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

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

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

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

本節課目標:

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

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

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

逆向強化學習:

640?wx_fmt=png

以下是這一章節的總結:

640?wx_fmt=png

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

640?wx_fmt=jpeg

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

理論:

  • 策略梯度方法的問題

  • 策略效能邊界

  • 單調改進理論(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=jpeg

後一部分介紹了深度強化學習的挑戰,包括超引數調整、樣本複雜度、泛化效能和 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

  • 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=jpeg

相關推薦

資源 | UC Berkeley CS 294深度強化學習課程視訊學習資料

來源:機器之心本文共4000字,建議閱讀10分鐘。本文主要介紹了課程中的強化學習主題,涉及深度強

清華大學張長水教授:機器學習和影象識別視訊PPT下載

本篇乾貨整理自清華大學自動化系教授張長水於2018年4月27日在清華大學資料科學研

CS294-112深度增強學習課程加州大學伯克利分校 2017NO.2 optimal control and planning

技術分享 課程 ogr png amp LV planning control 大學 solved normally by sequential quadratic programming algorit

入門到精通:資深程式設計師規劃JAVA大資料學習路線視訊教程

人類正在從IT時代走向DT(Data Technology)的時代。以網際網路、雲端計算、大資料和人工智慧為代表的技術革命正在滲透至各行各業,改變著我們的生活。 本文主要針對從事大資料開發的程式設計師們整理了整套的大資料學習相關的路線圖和知識材料,希望能幫助到大家。 很多初學者,對大資

201711671125 《Java程式設計》第9周學習總結第九十章

教材學習內容總結 第九章 1.處理事件 1.1事件處理模式 事件源:能夠產生事件的物件。 監視器:需要一個物件對事件源進行監視,以便對發生的事件做出處理。事件源通過呼叫相應的方法將某個物件註冊為自己的監視器。 addActionListener(監視器); 處理事件的介面

python資料探勘入門與實戰——學習筆記第34章

chapter 3 決策樹預測獲勝球隊 pandas載入資料集 import pandas as pd dataset = pd.read_csv('filepath+filename') 資料清洗,可在讀入時清洗 dataset = pd.read_csv('filen

java學習筆記12-繼承抽象類

1.繼承關鍵字extends java中繼承特點: 在Java中,類只支援單繼承,不允許多繼承,也就是說一個類只能有一個直接父類 多個類可以繼承一個父類 在Java中,多層繼承是可以的,即一個類的父類可以再去繼承另外的父類,例如C類繼承自B類,而B類又可以去繼承A類,這時,C類也可稱作A類的

手把手教你用R實現標記化程式碼學習資料語料庫

作者:Rachael Tatman翻譯:樑傅淇本文長度為1600字,建議閱讀4分鐘標記化是自然語

零基礎入門學習python視訊教程

最近收集了一些python的視訊教程(共87集),提升360linker社群夥伴們在這方面的能力,教大家如何快速學會Python。沒進社群的可以加官方微信li_360linker或者掃描下方二維碼,獲得下載地址。

入門最佳!PyTorch深度學習免費課程資源

來源:新智元本文共1600字,建議閱讀6分鐘。為你推薦一個適合碎片時間學習的關於神經網路程式設計

深度學習數學基礎】向量點乘內積和叉乘外積向量積概念及幾何意義解讀

1. 點乘 向量的點乘,也叫向量的內積、數量積,對兩個向量執行點乘運算,就是對這兩個向量對應位一一相乘之後求和的操作,點乘的結果是一個標量。 對於向量a和向量b:                                                 

《TensorFlow:實戰Google深度學習框架》——5.4 模型持久化模型儲存模型載入

目錄 1、持久化程式碼實現 2、載入儲存的TensorFlow模型 3、載入部分變數 4、載入變數時重新命名 1、持久化程式碼實現 TensorFlow提供了一個非常簡單的API來儲存和還原一個神經網路模型。這個API就是tf.train.Saver類。一下程式碼給出了儲

深度學習 影象分割開原始碼連結,超級全

轉自github,感謝作者mrgloom的整理 Awesome Semantic Segmentation Networks by architecture Semantic segmentation Instance aware segmentation

李巨集毅機器學習筆記-6 深度學習簡介Brief Introduction of Deep Learning

Brief Introduction of Deep Learning - 深度學習簡介 1. 前言 deep learning 在近些年非常熱門,從2012年開始,深度學習的應用數目幾乎是呈指數增長的。 深度學習的發展史如下圖:

強化學習導論Reinforcement Learning:An Introduction學習筆記

Introduction ​ 我們在思考學習本質時首先想到的可能就是通過與我們的環境進行互動從而學習。當一個嬰兒玩耍時,揮動著他的手臂,雖然看起來,他沒有明確的老師,但他確實與他的環境有直接的感覺聯絡。並且這種聯絡可以產生大量關於因果,行為後果以及為了實現

強化學習導論Reinforcement Learning:An Introduction學習筆記

強化學習導論 1.6小結 強化學習是一種理解和自動進行目標導向學習和決策的計算方法。它與其他計算方法不同之處在於它強調了代理與環境的直接互動學習,而不依賴於監督或完整的環境模型。在我們看來,強化學習是第一個認真處理在學習與環境的互動時產生的計算問題,

吳恩達.深度學習系列-C1神經網路與深度學習-w4- 作業:建立神經網路

前言 注意:coursera要求不要在網際網路公佈自己的作業。如果你在學習這個課程,建議你進入課程系統自行完成作業。我覺得程式碼有參考和保留的意義。 本週的作業包含兩個部分。Building your Deep Neural Network, De

《小白滴滴系列》-線程和進程小白學習,內容均參考網絡資料

多個 系統 資料 搶占式 線程 並發 強制 資源 資源分配 1、進程就是操作系統將資源分配成一塊一塊的內存 2、線程就是在進程中運行的多個程序 3、線程是程序運行的最小單位,而進程則是分配資源的最小單位。 4、一個進程可以有多個線程 5、任務調度:采取時間片輪轉搶占式執行,

各種圖的創建以及廣度,深度優先遍歷臨接矩陣存儲

visit pos code cell stream 相關 pri inpu mar #include <stdio.h> #include <iostream> #include <limits.h> #include <