1. 程式人生 > >深度強化學習cs294 Lecture1: Introduction and Course Overview

深度強化學習cs294 Lecture1: Introduction and Course Overview

cs294 Lecture1: Introduction and Course Overview


第一次看到了該做hw1,然後被嚇退。而今捲土重來,一定好好上完23333

強化學習介紹

當我們要建立一個智慧系統的時候需要考慮什麼?比如在一艘遠洋巨輪上,我們有很好的航行系統和演算法,但是上面依然需要人類船員。因為需要修復一些引擎的損壞,處理很多非常複雜的問題。這些問題目前還無法完全用智慧系統自動完成。

目前我們擁有深度學習。深度學習能夠幫我們直接從非結構化的環境裡提取有用的資訊。我們也有強化學習,強化學習能夠為採取行為提供一個處理機制。所以什麼是深度強化學習,為什麼我們要關注它呢?

傳統的處理影象的演算法可能是通過手動設計特徵,級聯之後放到分類器之中。這很複雜而且繁瑣。但是有了深度學習,直接有了一個端到端的解決方式,特徵的提取直接用深度學習就可以解決。

而普通的強化學習也是通過設計特徵,加上更多的特徵,然後傳到一個線性的策略或是值函式中得到動作。而深度強化學習可以直接通過一個端到端的方式從原始場景裡直接得出動作。

對於一個序列的決策過程,端到端的學習意味著什麼?假如一個類人的智慧體看到叢林中可能有個老虎,普通的方式是先對看到的東西進行一個分類,然後用另一個網路來決策做什麼動作。但是端到端的方式是,通過對感知到的資訊直接處理得到一個動作。

比如ppt上面的兩個控制機器人的例子,都可以直接從原始的影象中得出對於電機控制的命令。

深度學習賦予了強化學習能夠端到端地處理複雜問題的能力。比如一個模擬砸釘子的例子,有時候還能從問題裡學到一些意想不到的解決方案,還有一個很有意思的解決交通擁堵的例子。

為什麼現在學習深度強化學習

  1. 深度學習最近有了大的發展
  2. 強化學習也有了很大的發展
  3. 計算能力的大大提升

現在很多的理論都不是什麼新的東西。比如他提到的1993年的一篇論文裡的一些想法,都依然是目前最前沿的研究方向。

還有很多有意思的案例比如:atari遊戲、實際控制機器人,alphago程式等等,這些本課程裡都有可能涉及。

序列決策需要解決的其他問題

基本的強化學習會學習使用最大化reward的演算法。但是對於序列決策問題來說,這樣做並不是唯一的方式。本門課還會講到一些其它的高階課題比如:

  • 從例子裡學習reward函式(inverse RL)
  • 在不同領域遷移知識(遷移學習,元學習)
  • 學習預測以及利用預測來做動作

reward從哪裡來

很多問題裡的reward很容易得到,比如遊戲裡。很多問題裡卻很難設計,而且不知道如何設計。實際生活中可能有的reward人生中只有一次。比如一個豹子追羚羊的時候,羚羊可能只有一次接收反饋的機會。人腦中也有很多關於反饋的機制。

其他型別的監督學習

  • 從示例中學習
    • 直接複製觀察到的動作
    • 從觀察到的動作中推斷反饋(IRL)
  • 從觀察世界中學習
    • 學習預測
    • 非監督學習
  • 從其它任務中學習
    • 遷移學習
    • 元學習

我們如何建立智慧系統

有的能力我們都可以輕易做到,有的能力必須好好學習。我們可以學會很多事情,包括非常複雜的。儘管我們的學習機制基本上能夠學會所有和智慧有關的東西,但有時候一些硬編碼的程式也有很大的作用。

建立系統時面臨一個選擇,是對於每一個功能都寫一個演算法還是隻用一個演算法來學習所有的能力。ppt中降到很多關於人腦的研究,可以看出的是人腦中的機制有可能是隻有一種,但是可以處理各種各樣的外界資訊。

假如我們只使用一個單個演算法來建立一個智慧系統,那麼它需要完成對於輸入訊號的處理工作以及複雜的決策功能。這就是我們需要深度強化學習的理由。深度表明我們能夠處理複雜的訊號輸入,而強化學習幫助我們做複雜的決策。

有的研究表明深度學習處理的感知訊號得到的特徵與生物腦中的很接近。而強化學習也和人腦的很多機制很相似。

目前深度學習和強化學習可以做到:

  • 在簡單已知的領域中訓練出非常高程度的能力如圍棋
  • 如果給了足夠多的資訊,能夠從原始感知訊號學到簡單的技能
  • 通過模仿提供的人類專家行為學習

目前還非常困難的問題有:

  • 人類可以學得非常快,但演算法還不行
  • 人類可以利用過往經驗,遷移學習還是個開放問題
  • 不知道反饋函式的設計
  • 不清楚預測該做的角色