莫烦强化学习视频笔记:第一节 1.2 强化学习方法汇总

目录

1. 无模型的强化学习方法(Model-Free)和基于模型的强化学习方法(Model-Based)区分

 2. 基于概率的方法和基于价值的方法

 3. 单步更新和回合更新

4.离线学习和在线学习


1. 无模型的强化学习方法(Model-Free)和基于模型的强化学习方法(Model-Based)区分

首先是通过是否需要理解环境(环境给我们什么就是什么),能够分为无模型的强化学习方法基于模型的强化学习方法
假设这里有一个机器人和一个星球X。
无模型的强化学习方法(Model-Free): 这里的模型就表示环境。理解了环境也就表示学会了一种模型来代表环境。不需要理解环境,机器人对星球X一无所知,机器人也不知道星球X对于他们的行为对做出怎样的反馈。举个例子,机器人决定扔了一颗原子弹要真实的世界(星球X),结果把自己也炸死了。
基于模型的强化学习方法(Model-Based) : 机器人通过过往的经验先理解真实的世界是如何的,建立一个模型模拟真实世界的反馈(这里如何获得的模型暂不讨论,只是有个大概的概念)。机器人既可以在真实世界玩耍,也可以在虚拟环境玩耍,然后原子弹无需扔到真实世界,在模型世界中肆意妄为也不会炸死自己。

 两种分类如下:

  • 不理解环境(Model-Free): 可用的方法有Q学习(Q-Learning)、Sarsa学习和策略梯度(Policy Gradients),这些方法都是从环境中得到反馈来学习。在真实世界中,机器人按部就班地等待现实世界给予的反馈,然后再采取下一步行动。
  • 理解环境(Model-Based): 相比于无模型的方法多了建模的工序,模型即“虚拟环境”,方法同上。另外,无模型方法只能按部就班的与环境交互获得反馈,但是基于模型的方法多了“想象力”,可以在模拟环境中获得所有可能的结果,根据最好的结果来选择策略。该方法能通过想象预判接下来可能发生的所有情况,然后根据这些想象中的情况选择最好的那种,并根据这种情况采取下一步策略。这也是为什么Alpha-Go能取胜的原因。

 2. 基于概率的方法和基于价值的方法

另外一种分类方法是基于概率的方法和基于价值的方法:

  • 基于概率的方法: 是强化学习中最直接的方式。通过感受环境(交互)或者说通过感官分析所处的环境,输出的是各个动作的概率,比如游戏中的“上下左右”为4个动作。然后根据概率选择行动,所有动作都有可能被选中,只是概率(可能性)不同。虽然某些动作的概率很高,但是也不一定被选中,小概率事件也有可能发生。方法有策略梯度(Policy Gradients)
  • 基于价值的方法: 通过感受环境(交互),输出的是各个动作的价值,通过价值的高低来选择动作,这样选择的动作是最直接的,百分百选中最高价值的动作。决策的过程更铁定、毫不留情。方法有Q学习(Q-Learning)、Sarsa学习

 需要注意的是,基于价值的方法对连续的动作是无能为力的,但基于概率的方法仍然可以通过概率分布得到某个动作的概率。但上述两种都是可以对非连续的动作进行决策的。

 还可以结合基于概率的和基于价值的方法创造出更好的方法:Actor-Critic方法。Actor可以基于概率做出动作,而Critic会根据动作给出价值,由此加快了学习过程。

 3. 单步更新回合更新

第三种分类是单步更新(Temporal-Difference update)回合更新(Monte-Carlo update),这里想象我们在玩一个游戏:

  • 单步更新: 游戏开始后,每一步都进行一次准则更新,边进行游戏边学习。方法有Q-learning(Q学习)Sarsa(Sarsa学习)升级版的 policy gradients(策略梯度)
  • 回合更新: 游戏开始后,直到结束,才总结所有动作节点,进行准则更新。方法有 Monte-carlo learning(蒙特卡洛学习) 和基础版的 policy gradients

 单步更新相比于回合更新效率更高,大部分都是单步更新,比如有的强化学习问题不属于回合问题。

4.离线学习在线学习

最后是离线学习在线学习
这里我认为视频中的说法可能不准确,离线、在线学习和On\Off-Policy之间没有必然联系,是两个不同的概念。在David Silver的视频(B站讲解视频,含资料下载)中可以有更加深刻的了解:
 
同策略(On-Policy): 采样策略与更新策略相同(后面才会提到“策略”,这里是选择动作的概率),如Sarsa学习中(s-a-R-s’-a’),智能体与环境交互采样与用来更新Q表的(具体来说是“估计”)策略相同。
异策略(Off-Policy): 采样策略与更新策略不同(后面才会提到“策略”,这里是选择动作的概率),如Q学习中,智能体与环境交互采样与用来更新Q表的策略不同,后者是纯贪婪。
在线学习:本人在场,并且一定是本人边玩边学习。直接与环境交互并同时利用其数据进行更新。方法有Sarsa和Sarsa(\lambda)。
离线学习:可以选择自己玩,也可以选择看着别人玩。通过看着别人玩来学习别人的行为准则。离线学习同样是从过往经验中学习,但是这些过往经历没必要一定是自己的,任何人的过往经历都可以学习。我也不必边玩边学习,我可以储存白天玩耍时的记忆,等到晚上再通过离线学习学习白天的记忆。方法有Q-learning和DQN。如DQN,是从一些已有的经验中抽取,一组数据训练完成后才更新,而不是直接交互和更新。这是模仿了人脑的记忆单元——海马体。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。关于通过UDP传输音视频,我了解一些相关的知识,下面是一些学习笔记: 1. gstreamer是一个流媒体框架,用于创建、处理和播放多媒体流。它支持多种音视频格式,可以通过插件扩展功能。 2. 通过gstreamer可以使用UDP协议传输音视频数据。UDP协议是一种无连接的协议,不保证数据传输的可靠性和顺序性,但是传输效率高。 3. 首先需要创建一个gstreamer的pipeline,包括音视频源、编码器、UDP发送端等组件。例如: ``` gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5000 ``` 这个pipeline的作用是从test.mp4文件读取音视频流,解码后使用x264编码器进行压缩,然后使用rtph264pay将数据打包成RTP数据包,最后通过udpsink发送到指定的IP地址和端口。 4. 接收端需要创建一个gstreamer的pipeline,包括UDP接收端、解包器、解码器等组件。例如: ``` gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink ``` 这个pipeline的作用是从UDP端口5000接收音视频数据,使用rtpjitterbuffer解决网络抖动问题,使用rtph264depay将RTP数据包解包成原始的H.264数据流,然后使用avdec_h264解码器进行解码,最后使用autovideosink播放视频。 5. 在实际使用过程中,还需要考虑数据的带宽限制、网络延迟等问题,以保证音视频传输的效果。 希望这些笔记能对你有帮助。如果你还有其他问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值