强化学习入门及资料

来源:互联网 发布:linux网吧视频服务器 编辑:程序博客网 时间:2024/05/17 08:18

转载自:http://blog.csdn.net/Julialove102123/article/category/6958569

强化学习是一种非监督学习的机器学习方法,对比监督学习,强化学习最开始并没有标好的标签,而是通过一次次在环境中尝试,获取数据和标签,然后通过学习自己总结出来的经验;
一些比较有名的算法, 比如有通过行为的价值来选取特定行为的方法, 包括使用表格学习的 q learning, sarsa, 使用神经网络学习的 deep Q network, Sarsa,还有直接输出行为的 policy gradients, 又或者了解所处的环境, 想象出一个虚拟的环境并从虚拟的环境中学习的Model based RL 等等.我们可以将所有强化学习的方法分为理不理解所处环境,如果我们不尝试去理解环境, 环境给了我们什么就是什么. 我们就把这种方法叫做 model-free, 这里的 model 就是用模型来表示环境, 那理解了环境也就是学会了用一个模型来代表环境, 所以这种就是 model-based 方法;

Model-free的方法有很多, 像 Qlearning, Sarsa, Policy Gradients 都是从环境中得到反馈然后从中学习. 
Model-based RL 只是多了一道程序, 为真实世界建模, 也可以说他们都是 model-free 的强化学习, 只是 model-based 多出了一个虚拟环境, 我们不仅可以像 model-free 那样在现实中而且还能在虚拟中学习, 学习的方式也都是 model-free 中那些方式, 最终 model-based 还有一个杀手锏就是想象力.
基于概率是强化学习中最直接的一种, 他能通过感官分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 所以每种动作都有可能被选中, 只是可能性不同.  比如:policy gradients,
基于价值的方法输出则是所有动作的价值, 我们会根据最高价值来选择动作, 相比基于概率的方法, 基于价值的决策部分更为铁定, 毫不留情, 就选价值最高的, 而基于概率的, 即使某个动作的概率最高, 但是还是不一定会选到他.比如:q learning, sarsa 等. 对于选取连续的动作, 基于价值的方法是无能为力的.

强化学习还能用另外一种方式分类, 回合更新和单步更新, 想象强化学习就是在玩游戏, 游戏回合有开始和结束. 
回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. Monte-carlo learning 和基础版的 policy gradients 等都是回合更新制,
单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样我们就能边玩边学习了.Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 单步更新更有效率, 所以现在大多方法都是基于单步更新. 

在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习,最典型的在线学习就是 sarsa 了, 还有一种优化 sarsa 的算法,叫做 sarsa lambda;
离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者我也不必要边玩边学习, 我可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆. 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.


学习资料 转载自:http://blog.csdn.net/songrotek/article/details/50572935


最重要:https://adeshpande3.github.io/adeshpande3.github.io/Deep-Learning-Research-Review-Week-2-Reinforcement-Learning?

相关博客:http://blog.csdn.net/dark_scope/article/details/8252969
专栏:http://blog.csdn.net/column/details/deeprl.html
增强学习课程 David Silver (有视频和ppt):http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html


最好的增强学习教材:
Reinforcement Learning: An Introduction
https://webdocs.cs.ualberta.ca/~sutton/book/the-book.html

深度学习课程 (有视频有ppt有作业)
https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/


 深度增强学习的讲座都是David Silver的:

ICLR 2015 part 1 https://www.youtube.com/watch?v=EX1CIVVkWdE
ICLR 2015 part 2 https://www.youtube.com/watch?v=zXa6UFLQCtg
UAI 2015 https://www.youtube.com/watch?v=qLaDWKd61Ig
RLDM 2015 http://videolectures.net/rldm2015_silver_reinforcement_learning/

其他课程:
增强学习
Michael Littman:https://www.udacity.com/course/reinforcement-learning–ud600

AI(包含增强学习,使用Pacman实验)
Pieter Abbeel:https://www.edx.org/course/artificial-intelligence-uc-berkeleyx-cs188-1x-0#.VKuKQmTF_og
Deep reinforcement Learning:
Pieter Abbeelhttp://rll.berkeley.edu/deeprlcourse/

高级机器人技术(Advanced Robotics):
Pieter Abbeel:http://www.cs.berkeley.edu/~pabbeel/cs287-fa15/

机器学习 Machine Learning
Andrew Ng

https://www.coursera.org/learn/machine-learning/
http://cs229.stanford.edu/


最新机器人专题课程Penn(2016年开课):
https://www.coursera.org/specializations/robotics

2 论文资料
https://github.com/junhyukoh/deep-reinforcement-learning-papers
https://github.com/muupan/deep-reinforcement-learning-papers
这两个人收集的基本涵盖了当前deep reinforcement learning 的论文资料。目前确实不多。

3 大牛情况:
DeepMind:http://www.deepmind.com/publications.html
Pieter Abbeel 团队:http://www.eecs.berkeley.edu/~pabbeel/
Satinder Singh:http://web.eecs.umich.edu/~baveja/
CMU 进展:http://www.cs.cmu.edu/~lerrelp/
Prefered Networks: (日本创业公司,很强,某有代码)

4 会议情况
Deep Reinforcement Learning Workshop NIPS 2015
http://rll.berkeley.edu/deeprlworkshop/


强化学习博客教程http://www.cnblogs.com/jinxulin/p/3511298.html
http://rll.berkeley.edu/deeprlcourse/
CS 294: Deep Reinforcement Learning, Spring 2017
基于强化学习的无人车避障
https://medium.com/@harvitronix/reinforcement-learning-in-python-to-teach-an-rc-car-to-avoid-obstacles-part-3-a1d063ac962f#.4q1g3h4fv
强化学习无人车游戏
http://qingmang.me/articles/3448155692628560301
莫烦强化学习视频教程
https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/
强化学习无人车避障
https://medium.com/@harvitronix/using-reinforcement-learning-in-python-to-teach-a-virtual-car-to-avoid-obstacles-6e782cc7d4c6


原创粉丝点击