強化學習是一種學習范式,它關注于如何學習控制一個系統,從而最大化表達一個長期目標的數值性能度量。強化學習與監督學習的區別在于,對于學習者的預測,只向學習者提供部分反饋。此外,預測還可能通過影響被控系統的未來狀態而產生長期影響。因此,時間起著特殊的作用。強化學習的目標是開發高效的學習算法,以及了解算法的優點和局限性。強化學習具有廣泛的實際應用價值,從人工智能到運籌學或控制工程等領域。在這本書中,我們重點關注那些基于強大的動態規劃理論的強化學習算法。我們給出了一個相當全面的學習問題目錄,描述了核心思想,關注大量的最新算法,然后討論了它們的理論性質和局限性。
Preface ix Acknowledgments xiii Markov Decision Processes 1 Value Prediction Problems 11 Control 37 For Further Exploration 63 Further reading 63 Applications 63 Software 64 Appendix: The Theory of Discounted Markovian Decision Processes 65 A.1 Contractions and Banach’s fixed-point theorem 65 A.2 Application to MDPs 69 Bibliography 73 Author's Biography 89
這本書是為任何想學習如何開發機器學習系統的人準備的。我們將從理論和實踐兩方面涵蓋關于機器學習算法的最重要概念,并將使用Python編程語言中的Scikit-learn庫實現許多機器學習算法。在第一章中,您將學習機器學習最重要的概念,在下一章中,您將主要學習分類。在最后一章中,你將學習如何訓練你的模型。我假定你已經了解了編程的基礎知識。
要實現人工智能的夢想,就需要學會做出正確決策的自主系統。強化學習是這樣做的一個強大范式,它與大量的任務相關,包括機器人、游戲、消費者建模和醫療保健。本課程將提供強化學習領域的充實介紹,學生將學習強化學習的核心挑戰和方法,包括推廣和探索。通過講課、書面作業和編碼作業的結合,學生將學習RL的關鍵思想和技術。作業將包括強化學習的基礎知識以及深度強化學習——一個結合了深度學習技術和強化學習的極具前景的新領域。
地址: //web.stanford.edu/class/cs234/
學生能夠學習到:
內容目錄:
本課程關注控制理論和強化學習的理論介紹,側重于連續狀態空間以及物理世界和機器人技術的應用。我們強調計算效率的算法和可證明的界。特別關注RL中非隨機控制和遺憾最小化的新方法。我們將與該領域的經典方法論進行比較和對比。
本課程的練習和項目將需要用python編寫代碼。
這門課程對所有學生開放,但要求有很強的數學背景。
//sites.google.com/view/cos59x-cct/home
深度學習的先驅、圖靈獎獲得者Yann Lecun教授有一種非常簡潔明了地抓住問題癥結的氣質。2020年2月左右,他在巴巴多斯研討會上說,
“控制=梯度強化學習”。
強化學習和控制理論的關鍵區別在于它們所操作的空間。強化學習的范圍通常位于離散狀態空間(如圍棋、國際象棋),而控制理論通常處理涉及物理和連續空間(如機器人)的問題。物理學和結構環境的知識使我們能夠利用差分信息。
后者允許我們使用強大的數學優化和凸松弛技術來設計高效的算法。這是自適應非隨機控制理論的主題,也是本課程的主題。
強化學習是機器學習領域的研究熱點, 是考察智能體與環境的相互作用, 做出序列決策、優化策略并最大化累積回報的過程. 強化學習具有巨大的研究價值和應用潛力, 是實現通用人工智能的關鍵步驟. 本文綜述了強化學習算法與應用的研究進展和發展動態, 首先介紹強化學習的基本原理, 包括馬爾可夫決策過程、價值函數、探索-利用問題. 其次, 回顧強化學習經典算法, 包括基于價值函數的強化學習算法、基于策略搜索的強化學習算法、結合價值函數和策略搜索的強化學習算法, 以及綜述強化學習前沿研究, 主要介紹多智能體強化學習和元強化學習方向. 最后綜述強化學習在游戲對抗、機器人控制、城市交通和商業等領域的成功應用, 以及總結與展望.
這份手冊最大的特點就是包含許多關于機器學習的經典公式和圖表,有助于您快速回憶有關機器學習的知識點。非常適合那些正在準備與機器學習相關的工作面試的人。
項目地址: //github.com/soulmachine/machine-learning-cheat-sheet
該手冊雖然只有 135 頁,但麻雀雖小五臟俱全,包含了 28 個主題內容,目錄如下:
題目:Applied Reinforcement Learning with Python With OpenAI Gym, Tensorflow, and Keras
深入研究強化學習算法,并通過Python將它們應用到不同的用例中。這本書涵蓋了重要的主題,如策略梯度和Q學習,并利用框架,如Tensorflow, Keras,和OpenAI Gym。
Python中的應用增強學習向您介紹了強化學習(RL)算法背后的理論和用于實現它們的代碼。您將在指導下了解OpenAI Gym的特性,從使用標準庫到創建自己的環境,然后了解如何構建強化學習問題,以便研究、開發和部署基于rl的解決方案。
你將學習:
這本書是給誰看的: 數據科學家、機器學習工程師和軟件工程師熟悉機器學習和深度學習的概念。
地址:
//www.springerprofessional.de/en/applied-reinforcement-learning-with-python/17098944
目錄:
第1章 強化學習導論
在過去的一年里,深度學習技術的不斷擴散和發展給各個行業帶來了革命性的變化。毫無疑問,這個領域最令人興奮的部分之一是強化學習(RL)。這本身往往是許多通用人工智能應用程序的基礎,例如學習玩視頻游戲或下棋的軟件。強化學習的好處是,假設可以將問題建模為包含操作、環境和代理的框架,那么代理就可以熟悉大量的任務。假設,解決問題的范圍可以從簡單的游戲,更復雜的3d游戲,自動駕駛汽車教學如何挑選和減少乘客在各種不同的地方以及教一個機械手臂如何把握對象和地點在廚房柜臺上。
第二章 強化學習算法
讀者應該知道,我們將利用各種深度學習和強化學習的方法在這本書。然而,由于我們的重點將轉移到討論實現和這些算法如何在生產環境中工作,我們必須花一些時間來更詳細地介紹算法本身。因此,本章的重點將是引導讀者通過幾個強化學習算法的例子,通常應用和展示他們在使用Open AI gym 不同的問題。
第三章 強化學習算法:Q學習及其變體
隨著策略梯度和Actor-Critic模型的初步討論的結束,我們現在可以討論讀者可能會發現有用的替代深度學習算法。具體來說,我們將討論Q學習、深度Q學習以及深度確定性策略梯度。一旦我們了解了這些,我們就可以開始處理更抽象的問題,更具體的領域,這將教會用戶如何處理不同任務的強化學習。
第四章 通過強化學習做市場
除了在許多書中發現的強化學習中的一些標準問題之外,最好看看那些答案既不客觀也不完全解決的領域。在金融領域,尤其是強化學習領域,最好的例子之一就是做市。我們將討論學科本身,提出一些不基于機器學習的基線方法,然后測試幾種基于強化學習的方法。
第五章 自定義OpenAI強化學習環境
在我們的最后一章,我們將專注于Open AI Gym,但更重要的是嘗試理解我們如何創建我們自己的自定義環境,這樣我們可以處理更多的典型用例。本章的大部分內容將集中在我對開放人工智能的編程實踐的建議,以及我如何編寫這個軟件的建議。最后,在我們完成創建環境之后,我們將繼續集中精力解決問題。對于這個例子,我們將集中精力嘗試創建和解決一個新的視頻游戲。
The tutorial is written for those who would like an introduction to reinforcement learning (RL). The aim is to provide an intuitive presentation of the ideas rather than concentrate on the deeper mathematics underlying the topic. RL is generally used to solve the so-called Markov decision problem (MDP). In other words, the problem that you are attempting to solve with RL should be an MDP or its variant. The theory of RL relies on dynamic programming (DP) and artificial intelligence (AI). We will begin with a quick description of MDPs. We will discuss what we mean by “complex” and “large-scale” MDPs. Then we will explain why RL is needed to solve complex and large-scale MDPs. The semi-Markov decision problem (SMDP) will also be covered.
The tutorial is meant to serve as an introduction to these topics and is based mostly on the book: “Simulation-based optimization: Parametric Optimization techniques and reinforcement learning” [4]. The book discusses this topic in greater detail in the context of simulators. There are at least two other textbooks that I would recommend you to read: (i) Neuro-dynamic programming [2] (lots of details on convergence analysis) and (ii) Reinforcement Learning: An Introduction [11] (lots of details on underlying AI concepts). A more recent tutorial on this topic is [8]. This tutorial has 2 sections: ? Section 2 discusses MDPs and SMDPs. ? Section 3 discusses RL. By the end of this tutorial, you should be able to ? Identify problem structures that can be set up as MDPs / SMDPs. ? Use some RL algorithms.