莫烦强化学习笔记整理(一)

莫烦强化学习笔记整理 (一)RL简介

  • 1、什么是强化学习
    • (1)简介
    • (2)RL、监督学习、无监督学习、半监督学习的对比
  • 2、RL分类方法汇总
    • (1)Modelfree 和 Modelbased
    • (2)基于概率 和 基于价值
    • (3)回合更新 和 单步更新
    • (4)在线学习 和 离线学习
  • 3、常用RL模块

(一)RL简介)

1、什么是强化学习

(1)简介

强化学习是一类算法,让计算机在不断的尝试中更新自己的行为准则,最后找到规律学会达到目的的方法,这就是一个完整的强化学习过程。

在强化学习中,一种行为的分数是十分重要的,所以强化学习具有分数导向性。这种分数导向性可以类比我们在监督学习中的正确标签。

(2)RL、监督学习、无监督学习、半监督学习的对比

监督学习(Supervised learning):

监督学习即具有特征(feature)和标签(label)的,即使数据是没有标签的,也可以通过学习特征和标签之间的关系,判断出标签——分类。

简言之:提供数据,预测标签。比如对动物猫和狗的图片进行预测,预测label为cat或者dog。

无监督学习(Unsupervised learning):

无监督学习没有标签,只有特征,在没有标签的训练数据集中,通过数据之间的内在联系和相似性将他们分成若干类——聚类。根据数据本身的特性,从数据中根据某种度量学习出一些特性。

简言之:给出数据,寻找隐藏的关系。

半监督学习(Semi-Supervised learning):

半监督学习使用的数据,一部分是标记过的,大部分未标记,和监督学习相比较,半监督学习的成本较低,但是又能达到较高的准确度,即综合利用有类标的和没有类标的数据,来生成合适的分类函数。

简言之:少部分标记,大部分未知。

强化学习(Reinforcement learning):

强化学习均使用未标记的数据,通过算法学习距离目标越来越近。

简言之:通过不断激励与惩罚,达到最终目的。

区别:

(1)监督学习有反馈,无监督学习无反馈,强化学习是执行多步之后才反馈。

(2)强化学习的目标与监督学习的目标不一样,即强化学习看重的是行为序列下的长期收益,而监督学习往往关注的是和标签或已知输出的误差。

(3)强化学习的奖惩概念是没有正确或错误之分的,而监督学习标签就是正确的,并且强化学习是一个学习+决策的过程,有和环境交互的能力(交互的结果以惩罚的形式返回),而监督学习不具备。

2、RL分类方法汇总

分类 算法
Modelfree Q learning, Sarsa, Policy Gradients
Modelbased model-based RL
基于概率 Policy Gradients
基于价值 Q learning, Sarsa
基于价值和概率结合 Actor-Critic
回合更新 Monte-carlo learning ,基础版的 policy gradients
单步更新 Qlearning, Sarsa, 升级版的 policy gradients
在线学习 Sarsa,Sarsa lambda
离线学习 Q learning,Deep-Q-Network

(1)Modelfree 和 Modelbased

Model-free:
不尝试去理解环境,环境给了什么就是什么。

Model-based:
理解环境并学会用一个模型来代表环境。

Model-free 中, 智能体只能 一步步等待真实世界的反馈, 再根据反馈采取下一步行动,而 Model-based的智能体可以通过想象预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的一种,并依据这种情况来采取下一步的策略,这也就是 围棋场上 AlphaGo 能够超越人类的原因。

(2)基于概率 和 基于价值

基于概率:
通过分析所处的环境, 直接输出下一步要采取的各种动作的概率, 然后根据概率采取行动, 每种动作都有可能被选中, 只是可能性不同。

基于价值:
输出所有动作的价值, 根据最高价值来选着动作。

相比基于概率的方法, 基于价值的决策部分更为确凿,选中的一定是价值高的那个。但是基于价值的方法只能选择间断不连续的动作,基于概率的方法可以用一个概率分布在连续动作中选取特定动作。

(3)回合更新 和 单步更新

回合更新:
游戏开始后, 要等待游戏结束时总结这一回合中的所有转折点, 再更新我们的行为准则。
单步更新:
游戏进行中每一步都在更新, 不用等待游戏的结束, 可以边玩边学习。

两者相比单步更新更有效率, 所以现在大多方法都是基于单步更新。

(4)在线学习 和 离线学习

在线学习:
本人边玩边学习
离线学习:
可以选择自己玩, 也可以通过看别人玩来学习别人的行为准则。

3、常用RL模块

强化学习很依赖学习环境,不同学习环境的强化学习,可能 RL 的代码就不同。
以下为常用模块:
Numpy, Pandas (必学):用于学习的数据处理
Matplotlib (可学):用来呈现误差曲线
Tkinter (可学):可以自己编写模拟环境
Tensorflow (可学):实现神经网络与强化学习结合
OpenAI gym (可学):提供了现成的模拟环境

你可能感兴趣的:(莫烦强化学习笔记,强化学习,机器学习,人工智能,python)