Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 551 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
551
Dung lượng
3,59 MB
Nội dung
Reinforcement Learning: An Introduction Richard S Sutton and Andrew G Barto MIT Press, Cambridge, MA, 1998 A Bradford Book Endorsements Code Solutions Figures Errata Course Slides This introductory textbook on reinforcement learning is targeted toward engineers and scientists in artificial intelligence, operations research, neural networks, and control systems, and we hope it will also be of interest to psychologists and neuroscientists If you would like to order a copy of the book, or if you are qualified instructor and would like to see an examination copy, please see the MIT Press home page for this book Or you might be interested in the reviews at amazon.com There is also a Japanese translation available The table of contents of the book is given below, with associated HTML The HTML version has a number of presentation problems, and its text is slightly different from the real book, but it may be useful for some purposes ● Preface Part I: The Problem ● Introduction ❍ 1.1 Reinforcement Learning ❍ 1.2 Examples ❍ 1.3 Elements of Reinforcement Learning ❍ ❍ ❍ ❍ ● ● 1.4 An Extended Example: Tic-Tac-Toe 1.5 Summary 1.6 History of Reinforcement Learning 1.7 Bibliographical Remarks Evaluative Feedback ❍ 2.1 An n-armed Bandit Problem ❍ 2.2 Action-Value Methods ❍ 2.3 Softmax Action Selection ❍ 2.4 Evaluation versus Instruction ❍ 2.5 Incremental Implementation ❍ 2.6 Tracking a Nonstationary Problem ❍ 2.7 Optimistic Initial Values ❍ 2.8 Reinforcement Comparison ❍ 2.9 Pursuit Methods ❍ 2.10 Associative Search ❍ 2.11 Conclusion ❍ 2.12 Bibliographical and Historical Remarks The Reinforcement Learning Problem ❍ 3.1 The Agent-Environment Interface ❍ 3.2 Goals and Rewards ❍ 3.3 Returns ❍ 3.4 A Unified Notation for Episodic and Continual Tasks ❍ 3.5 The Markov Property ❍ 3.6 Markov Decision Processes ❍ 3.7 Value Functions ❍ 3.8 Optimal Value Functions ❍ 3.9 Optimality and Approximation ❍ 3.10 Summary ❍ 3.11 Bibliographical and Historical Remarks Part II: Elementary Methods ● Dynamic Programming ❍ 4.1 Policy Evaluation ❍ 4.2 Policy Improvement ❍ 4.3 Policy Iteration ❍ 4.4 Value Iteration ❍ ❍ ❍ ❍ ❍ ● ● 4.5 Asynchronous Dynamic Programming 4.6 Generalized Policy Iteration 4.7 Efficiency of Dynamic Programming 4.8 Summary 4.9 Historical and Bibliographical Remarks Monte Carlo Methods ❍ 5.1 Monte Carlo Policy Evaluation ❍ 5.2 Monte Carlo Estimation of Action Values ❍ 5.3 Monte Carlo Control ❍ 5.4 On-Policy Monte Carlo Control ❍ 5.5 Evaluating One Policy While Following Another ❍ 5.6 Off-Policy Monte Carlo Control ❍ 5.7 Incremental Implementation ❍ 5.8 Summary ❍ 5.9 Historical and Bibliographical Remarks Temporal Difference Learning ❍ 6.1 TD Prediction ❍ 6.2 Advantages of TD Prediction Methods ❍ 6.3 Optimality of TD(0) ❍ 6.4 Sarsa: On-Policy TD Control ❍ 6.5 Q-learning: Off-Policy TD Control ❍ 6.6 Actor-Critic Methods (*) ❍ 6.7 R-Learning for Undiscounted Continual Tasks (*) ❍ 6.8 Games, After States, and other Special Cases ❍ 6.9 Conclusions ❍ 6.10 Historical and Bibliographical Remarks Part III: A Unified View ● Eligibility Traces ❍ 7.1 n-step TD Prediction ❍ 7.2 The Forward View of TD() ❍ 7.3 The Backward View of TD() ❍ 7.4 Equivalence of the Forward and Backward Views ❍ 7.5 Sarsa() ❍ 7.6 Q() ❍ 7.7 Eligibility Traces for Actor-Critic Methods (*) ❍ ❍ ❍ ❍ ❍ ● ● ● ● 7.8 Replacing Traces 7.9 Implementation Issues 7.10 Variable (*) 7.11 Conclusions 7.12 Bibliographical and Historical Remarks Generalization and Function Approximation ❍ 8.1 Value Prediction with Function Approximation ❍ 8.2 Gradient-Descent Methods ❍ 8.3 Linear Methods ■ 8.3.1 Coarse Coding ■ 8.3.2 Tile Coding ■ 8.3.3 Radial Basis Functions ■ 8.3.4 Kanerva Coding ❍ 8.4 Control with Function Approximation ❍ 8.5 Off-Policy Bootstrapping ❍ 8.6 Should We Bootstrap? ❍ 8.7 Summary ❍ 8.8 Bibliographical and Historical Remarks Planning and Learning ❍ 9.1 Models and Planning ❍ 9.2 Integrating Planning, Acting, and Learning ❍ 9.3 When the Model is Wrong ❍ 9.4 Prioritized Sweeping ❍ 9.5 Full vs Sample Backups ❍ 9.6 Trajectory Sampling ❍ 9.7 Heuristic Search ❍ 9.8 Summary ❍ 9.9 Historical and Bibliographical Remarks 10 Dimensions ❍ 10.1 The Unified View ❍ 10.2 Other Frontier Dimensions 11 Case Studies ❍ 11.1 TD-Gammon ❍ 11.2 Samuel's Checkers Player ❍ 11.3 The Acrobot ❍ ❍ ❍ ● ● 11.4 Elevator Dispatching 11.5 Dynamic Channel Allocation 11.6 Job-Shop Scheduling References Summary of Notation Endorsements for: Reinforcement Learning: An Introduction by Richard S Sutton and Andrew G Barto "This is a highly intuitive and accessible introduction to the recent major developments in reinforcement learning, written by two of the field's pioneering contributors" Dimitri P Bertsekas and John N Tsitsiklis, Professors, Department of Electrical Enginneering and Computer Science, Massachusetts Institute of Technology "This book not only provides an introduction to learning theory but also serves as a tremendous sourve of ideas for further development and applications in the real world" Toshio Fukuda, Nagoya University, Japan; President, IEEE Robotics and Automation Society "Reinforcement learning has always been important in the understanding of the driving forces behind biological systems, but in the past two decades it has become increasingly important, owing to the development of mathematical algorithms Barto and Sutton were the prime movers in leading the development of these algorithms and have described them with wonderful clarity in this new text I predict it will be the standard text." Dana Ballard, Professor of Computer Science, University of Rochester "The widely acclaimed work of Sutton and Barto on reinforcement learning applies some essentials of animal learning, in clever ways, to artificial learning systems This is a very readable and comprehensive account of the background, algorithms, applications, and future directions of this pioneering and far-reaching work." Wolfram Schultz, University of Fribourg, Switzerland Code for: Reinforcement Learning: An Introduction by Richard S Sutton and Andrew G Barto Below are links to a variety of software related to examples and exercises in the book, organized by chapters (some files appear in multiple places) See particularly the Mountain Car code Most of the rest of the code is written in Common Lisp and requires utility routines available here For the graphics, you will need the the packages for G and in some cases my graphing tool Even if you can not run this code, it still may clarify some of the details of the experiments However, there is no guarantee that the examples in the book were run using exactly the software given This code also has not been extensively tested or documented and is being made available "as is" If you have corrections, extensions, additions or improvements of any kind, please send them to me at rich@richsutton.com for inclusion here ● ● ● ● ● ● Chapter 1: Introduction ❍ Tic-Tac-Toe Example (Lisp) In C Chapter 2: Evaluative Feedback ❍ 10-armed Testbed Example, Figure 2.1 (Lisp) ❍ Testbed with Softmax Action Selection, Exercise 2.2 (Lisp) ❍ Bandits A and B, Figure 2.3 (Lisp) ❍ Testbed with Constant Alpha, cf Exercise 2.7 (Lisp) ❍ Optimistic Initial Values Example, Figure 2.4 (Lisp) ❍ Code Pertaining to Reinforcement Comparison: File1, File2, File3 (Lisp) ❍ Pursuit Methods Example, Figure 2.6 (Lisp) Chapter 3: The Reinforcement Learning Problem ❍ Pole-Balancing Example, Figure 3.2 (C) ❍ Gridworld Example 3.8, Code for Figures 3.5 and 3.8 (Lisp) Chapter 4: Dynamic Programming ❍ Policy Evaluation, Gridworld Example 4.1, Figure 4.2 (Lisp) ❍ Policy Iteration, Jack's Car Rental Example, Figure 4.4 (Lisp) ❍ Value Iteration, Gambler's Problem Example, Figure 4.6 (Lisp) Chapter 5: Monte Carlo Methods ❍ Monte Carlo Policy Evaluation, Blackjack Example 5.1, Figure 5.2 (Lisp) ❍ Monte Carlo ES, Blackjack Example 5.3, Figure 5.5 (Lisp) Chapter 6: Temporal-Difference Learning ❍ TD Prediction in Random Walk, Example 6.2, Figures 6.5 and 6.6 (Lisp) TD Prediction in Random Walk with Batch Training, Example 6.3, Figure 6.8 (Lisp) ❍ TD Prediction in Random Walk (MatLab by Jim Stone) ❍ R-learning on Access-Control Queuing Task, Example 6.7, Figure 6.17 (Lisp), (C version) Chapter 7: Eligibility Traces ❍ N-step TD on the Random Walk, Example 7.1, Figure 7.2: online and offline (Lisp) In C ❍ lambda-return Algorithm on the Random Walk, Example 7.2, Figure 7.6 (Lisp) ❍ Online TD(lambda) on the Random Walk, Example 7.3, Figure 7.9 (Lisp) Chapter 8: Generalization and Function Approximation ❍ Coarseness of Coarse Coding, Example 8.1, Figure 8.4 (Lisp) ❍ Tile Coding, a.k.a CMACs ❍ Linear Sarsa(lambda) on the Mountain-Car, a la Example 8.2 ❍ Baird's Counterexample, Example 8.3, Figures 8.12 and 8.13 (Lisp) Chapter 9: Planning and Learning ❍ Trajectory Sampling Experiment, Figure 9.14 (Lisp) Chapter 10: Dimensions of Reinforcement Learning Chapter 11: Case Studies ❍ Acrobot (Lisp, environment only) ❍ Java Demo of RL Dynamic Channel Assignment ❍ ● ● ● ● ● For other RL software see the Reinforcement Learning Repository at Michigan State University and here ;-*- Mode: Lisp; Package: (rss-utilities :use (common-lisp ccl) :nicknames (:ut)) -*(defpackage :rss-utilities (:use :common-lisp :ccl) (:nicknames :ut)) (in-package :ut) (defun center-view (view) "Centers the view in its container, or on the screen if it has no container; reduces view-size if needed to fit on screen." (let* ((container (view-container view)) (max-v (if container (point-v (view-size container)) (- *screen-height* *menubar-bottom*))) (max-h (if container (point-h (view-size container)) *screen-width*)) (v-size (min max-v (point-v (view-size view)))) (h-size (min max-h (point-h (view-size view))))) (set-view-size view h-size v-size) (set-view-position view (/ (- max-h h-size) 2) (+ *menubar-bottom* (/ (- max-v v-size) 2))))) (export 'center-view) (defmacro square (x) `(if (> (abs ,x) 1e10) 1e20 (* ,x ,x))) (export 'square) (defun with-probability (p &optional (state *random-state*)) (> p (random 1.0 state))) (export 'with-probability) (defun with-prob (p x y &optional (random-state *random-state*)) (if (< (random 1.0 random-state) p) x y)) (export 'with-prob) (defun random-exponential (tau &optional (state *random-state*)) (- (* tau (log (- (random 1.0 state)))))) (export 'random-exponential) (defun random-normal (&optional (random-state cl::*random-state*)) (do ((u 0.0) (v 0.0)) ((progn (setq u (random 1.0 random-state) ; U is bounded (0 1) v (* 2.0 (sqrt 2.0) (exp -0.5) ; V is bounded (-MAX MAX) (- (random 1.0 random-state) 0.5))) (