1、强化学习概貌
强化学习是机器学习中的一个子分支,基本上完全模拟了婴儿学习认知世界的过程,在state执行了一定的action之后开始给予一定的reward,计算机总是尝试获取高分,在不断的尝试之后state会从历史的经验里面找到能获得最高分的action。
强化学习具有分数导向性,这个分数导向性和监督学习中的标签类似
2、强化学习分类
2.1算法级别分类
分类主要还是通过他们的算法进行分类,这句话说错了,因为强化学习就是一种算法
2.2理解环境和不理解环境
将算法处理的情景分为两类:理解环境和不理解环境
modle-free的常见算法是Q learning\Sarsa\Policy Gradients,实际上觉得Deep Q Network也应该属于module free一类,实际上
Q-learning、policy gradients、sanra这些也会使用。
modle base会根据想象获取最优值
2.3基于概率和基于价值
不一定选择概率最高的,但基于价值的选择算法更加爱铁定,一定会选择价值最高的。
基于价值的选择解决离散的问题是无能为力的,但是基于概率的是可以实现的。
2.4单步更新和回合更新
再来说说方法, Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题.
2.5在线和离线学习
在线学习一定是自己去学习,离线学习可以自己玩也可以学习别人的经验
最典型的在线学习就是 Sarsa 了, 还有一种优化 Sarsa 的算法, 叫做 Sarsa lambda, 最典型的离线学习就是 Q learning, 后来人也根据离线学习的属性, 开发了更强大的算法, 比如让计算机学会玩电动的 Deep-Q-Network.
3、其余知识
tensorflow\carr\caffe他都属于是深度学习的一些典型的模块,但是强化学习他实际上没有这些模块。
1、numpy、pandas数据处理
2、Tkinter或者gym来模拟程序
3、Matplotlib
4、Tensorflow,神经网络和强化学习结合