什么时候可以用到强化学习?强化学习怎么用?

news2025/7/13 21:28:52

        我相信很多像我一样的初学者在学习强化学习的的过程会有一种困惑:强化学习内容搞懂了,算法流程也明白了,但是怎么用在自己的研究领域或者应用上呢?换句话说,什么样的情况可以用强化学习解决呢?

什么是强化学习?

        首先要搞明白强化学习的原理是什么,强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process, MDP),通俗的讲,马尔可夫过程就是智能体agent与环境environment序列化的交互,正常情况下,一个序列化的过程每一步都应该跟之前经历过的所有步相关,但是在实际应用中,这是非常繁琐的,所以根据马尔可夫性,我们仅需考虑当前状态的前一状态,按条件概率可以表示为:

                          

        正是有这个性质在,在实际操作上我们对强化学习模型就可以单步进行,而不需要考虑每一步前面的序列化操作轨迹。

        智能体agent需要不断地在环境中进行实验,通过环境给予的奖励reward来不断优化状态state行为agent之间的对应关系。来学习到每一个状态state的最优动作action

强化学习的特点

        强化学习是一种机器学习方法,但和机器学习中的监督学习和无监督学习都不太一样,监督学习通过给训练样本人工赋予标签的形式让模型学习如何向标签接近。而强化学习虽然不需要定义标签,但是需要人工定义奖励reward的形式,这么乍一看感觉强化学习和监督学习很相似,但千万不要搞混淆,强化学习定义的奖励reward是环境的反馈,这个反馈可以当作是模糊的,因为我们不能向监督学习那样直接告诉智能体每一步最正确的动作标签是什么,然后让智能体明确的按这个标签学。我们只能说告诉智能体这一步的奖励reward是多少,让智能体通过反复的尝试来找到最适合的也就是奖励最大的那一个动作。整体来看,也就是智能体通过与环境的互动学习到最佳的策略。

                          

                ​​​​​​​        ​​​​​​​  

        而无监督学习是从无标签的数据集中发现隐藏的结构,典型的例子就是聚类问题。但是强化学习的目标是最大化奖励而非寻找隐藏的数据集结构,尽管用无监督学习的方法寻找数据内在结构可以对强化学习任务起到帮助,但并未从根本上解决最大化奖励的问题。

什么时候可以用到强化学习?

首先,由强化学习的特点我们可以总结出:

1.强化学习是无标签的。

2.强化学习的交互过程是序列化的。

3.强化学习的奖励具有延迟的特点。

4.每一步的状态和后续步骤的状态有一定的关系。

由此我们可以归纳出强化学习的运用场合:

        我们需要先设计好整个模型问题的动作(action)价值(reward)环境(environment),让智能体也就是我们希望学习的模型,能够在与环境的交互中寻找到最优策略。且我们要保证这个模型在与环境的互动中是具有序列化性质的,不能说模型做这一步和下一步一点联系都没有。

        就比如说对一个图片分类问题,我们用标签就能很方便的完成这个任务。那如果要用强化学习的思想去做,虽然我们可以将分类的Loss当成我们的奖励reward,分类的具象类别作为动作空间。但因为我们识别第n张图片和识别第n+1张图片之间并没有因果关系,模型在前一步的任何动作和后一步都没有任何联系,那么显然强化学习是不适用的。

        再比如一个股票预测问题,我们将买入卖出作为我们的动作空间,将盈亏作为环境的奖励,将收益和时间线作为状态。那么很明显我们在第n个时间点的某个操作都可能会影响到下一个时间点的状态。我们让模型学习到每一个状态的最优动作,使得总的奖励期望最大。这就是强化学习可以适用的问题。

      最后,我们在做应用型研究的时候,可以将自身带入,思考这个应用是否需要像人类自身学习一样具有循循渐进的特性,是否需要时间这个"维度"。毕竟,人工智能的终极奥义就是强化学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36547.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于MxNet实现目标检测-CenterNet【附部分源码及模型】

文章目录前言目标检测发展史及意义一、数据集的准备1.标注工具的安装2.数据集的准备3.标注数据4.解释xml文件的内容二、网络结构的介绍三、代码实现0.工程目录结构如下1.导入库2.配置GPU/CPU环境3.数据加载器4.模型构建5.模型训练1.学习率设置2.优化器设置3.损失设置4.循环训练…

24.java- File类的常用方法:遍历目录里的文件

遍历目录 通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。 1.File 类的 list() File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。 String[] list() 该方法表示返回由 File 对象表示目录中所有文件和子目录名称…

Hive之内部表外部表和分区表分桶表

Hive系列 第七章 内部表外部表和分区表分桶表 7.1 内部表和外部表 7.1.1 内部表和外部表的区别 1、创建的时候外部表加上external 2、删除表的时候,内部表会删除元数据信息和真实数据信息,外部表只会删除描述信息7.1.2 内部表和外部表的应用场景 1、…

【JAVA高级】——Druid连接池和Apache的DBUtils使用

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

HBase查询一张表的数据条数的方法

HBase查询一张表的数据条数的方法 文章目录HBase查询一张表的数据条数的方法0、写在前面1、HBase-Shell的count命令2、Scan操作获取数据条数3、执行Mapreduce任务4、Hive与HBase整合5、协处理器Coprocessor实现6、参考资料0、写在前面 Linux版本:Ubuntu Kylin 16.0…

国网云(华为组件)使用

一、国网云(华为组件)介绍 一、项目各项环境 各项环境的介绍 MRS-Hive:MRS支持在大数据存储量大,计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中。使用MRS集群仅做数据计算处理的存算分离模式。DWS(高斯200):云原生数据库Gauss DB(DWS)1:融合分析能力是云原…

分布式计算模型Mapreduce实践与原理剖析(二)

第二章 MapReduce核心组件实战 2.1 MapReduce中分区组件 需求:根据单词的长度给单词出现的次数的结果存储到不同文件中,以便于在快速查询 思路: 1、定义Mapper逻辑 2、定义Reducer逻辑 3、自定义分区Partitioner这个案例主要的逻辑在这个…

【kafka】一、kafka介绍

kafka概述 定义 kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域。 消息队列 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件…

java EE初阶 —进程与线程的区别

文章目录1.为什么会引入进程和线程的概念2.进程和线程的关系2.1 坤坤吃鸡演示进程和线程区别2.1.1 线程的安全问题2.1.2 线程的异常问题1.为什么会引入进程和线程的概念 引入进程这个概念,最主要的目的是为了解决并发编程这样的问题。 CPU 已经进入了多核心的时代&…

【Keil】编译选项设置 Warning 为 error

死亡是一座永恒的灯塔,不管你驶向何方,最终都会朝它转。一切都将逝去,只有死神永生。 – 刘慈欣-《三体》 前言 众所周知,一般而言,编译程序过程中的 warning 警告并不会影响可执行文件的生成,只有 error …

JVM 垃圾回收器分类

目录 Serial收集器 Parnew收集器 Parallel Scavenge CMS收集器 G1收集器 Serial收集器 基本概念:Serial收集器是最基本、发展历史最久的收集器,这个收集器是采用复制算法的单线程的收集器。 重点:其采用复制算法和单线程。 单线程的收集…

01_SpringBoot简介及项目搭建

文章目录SpringBoot简介及项目搭建0x01_SpringBoot简介Spring优缺点springboot启动器0x02_Spring boot项目搭建方式1启动类和启动器的区别0x03_Spring boot项目搭建方式20x04_Spring boot项目搭建方式3(最推荐)SpringBoot简介及项目搭建 欢迎关注公众号…

MYSQL 数据库企业级架构演变史

从初级架构到中级架构原来有这么多次的升级,并且每一次的进阶都有其优缺点,文末还有对高级结构的理解,欢迎大家在评论区各抒己见~ MySQL简介 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB公 司开发,…

【强化学习论文合集】AAAI-2021 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现…

九、【React基础】组件的生命周期

文章目录1、旧生命周期1.1、单组件生命周期1.1.1、生命周期1.1.1.1、初始化阶段:由 ReactDOM.render() 触发---初次渲染1.1.1.2、更新阶段:由组件内部 this.setSate() 或父组件重新render触发1.1.1.3、卸载组件:由 ReactDOM.unmountComponent…

流媒体传输 - RTP 荷载 H264

H264 码流结构 H264 码流是由很多 NAL Unit 组成,所有 NAL Unit 均存在一个八位数据的 NAL Unit Header ,这八位数据也充当此 RTP 有效负载格式的有效负载头。一个 NAL Unit Header 的语法如下: ---------------|0|1|2|3|4|5|6|7|--------|F|NRI| Type…

深分页Scroll

ES对from size是有限制的,from和size二者之和不能超过1W 原理: fromsize在ES查询数据的方式: 第一步现将用户指定的关键进行分词。 第二步将词汇去分词库中进行检索,得到多个文档的id。 第三步去各个分片中去拉取指定的数据。耗…

JUC总结-基础篇

juc是什么? JUC是java.util.concurrent包的简称,在Java5.0添加,目的就是为了更好的支持高并发任务。让开发者进行多线程编程时减少竞争条件和死锁的问题! juc脑图 juc总结 juc多数工具都是依赖volatile关键字保持可见性和禁止指…

ovs vxlan 时延和吞吐

设计云时到底要不要用vxlan,如果用vxlan到底要不要购买比较贵的smart nic做offload,采用软件vxlan还是硬件交换机vxlan,很难决策,这儿简单测试一下,给个参考,资源终究是有限的,成本还是有考虑的…

Flutter splash 屏幕

Flutter splash 屏幕 原文 https://medium.com/bedirhanssaglam/flutter-splash-screen-a8cafec52c8e 前言 启动画面通常被特别大的应用程序用来通知用户程序正在加载过程中。它们提供的反馈表明,一个漫长的过程正在进行中。有时,启动画面中的进度条会指…