技术分享 | 强化学习,让机器像人类一样自我学习

news2025/1/17 17:57:42

如果说近年来有什么是各行各业共通的话题,那就一定是强化学习,这是一个让机器能够像人类一样通过与环境互动来学习和改进自己决策的领域。它不仅令人兴奋,而且具有革命性的潜力,可以改变我们生活和工作的方式。

随着计算能力的不断增强和数据的丰富性,强化学习正迅速发展,各大互联网企业也逐渐推出自己的大模型,让强化学习成为人工智能领域的一颗璀璨明珠。

图片

强化学习 (Reinforcement Learning ),简称 RL, 是⼀种机器学习⽅法,旨在训练智能体(或机器⼈)从环境中获得经验,通过试错的⽅式逐渐提⾼其决策能⼒,以实现特定的目标。强化学习涉及到智能体与环境之间不断的互动和反馈,智能体根据环境的反馈调整其行为策略,逐渐学习到最优的决策⽅案。强化学习在众多领域中都有广泛的应用,如自动驾驶、游戏策略、金融交易、机器⼈控制等。

强化学习背后的思想是:⼀个 agent(智能体/机器⼈)从  “与环境交互并从行动中获取奖励” 中学习 ⸺ 这类似于⼈的成长过程。

图片

  • agent:可以通过反复试验学习并做出决策的实体,它从周围环境中获得奖励和惩罚;

  • environment:虚拟的世界,用于 agent 通过与其交互来学习;

  • state :对 environment 的完整描述;

  • action :agent 执行的操作;

  • reward :: 分为激励和惩罚,是 RL 的基本因素,用于告诉 agent 它的 action 产生的结果是好还是坏。

图片

  • agent 从 environment 中获取第⼀个 state S0 ;

  • 基于 S0 , agent 采取第⼀个 action A0 ;

  • environment 给出⼀个新的 state SA1;

  • environment 给出 reward R1 ;

循环以上 state、action 和 reward 步骤。agent 的目的是最大化累积奖励。

图片

图片

RL 的目的是获取累积的奖励, 期望获取最大累积收益。

  • 基本公式

图片

等价于

图片

  •  Jerry & Tom 的故事

图片

这里 agent 是 Jerry。Jerry 想要获得最⼤的累积奖励就是要吃掉所有的奶酪, 但是越靠近 Tom 的地⽅危险就越⼤ ⸺ 即使那边有更多的奶酪,我们可能也不愿意先去冒这个风险,因为⼀旦被  Tom 抓住就⽆法再获取更多的奶酪, 从而⽆法达成  Jerry 的目标。所以再这里我们引⼊奖励系数 γ :

  • 危险越⼤ , 回报系数 γ 越小,Jerry 更关⼼短期奖励;

  • 危险越小, 回报系数 γ 越⼤ ,Jerry 更关⼼长期奖励;

因此我们改良了公式,即 :

图片

本公式是在基本公式的基础上增加了奖励的权重:在每⼀步中都会按照权重的时间指数形式对奖励重新计算。随着时间的增加,Jerry 离 Tom 越近未来奖励发生的可能性越小。

图片

  • 场景任务模型:

    这个模型中存在明确的开始点和结束点, 例如游戏:进⼊游戏是开始点, 游戏结束(被打死,或者玩到通关)是结束点。

  • 连续任务模型:

    在这个模型中⼀旦开始就会⼀直持续下去⸺ 除非主动退出, 例如投资股票, 需要不断的关注时长的变化。

图片

针对任务模型, 这里提出了两种解决思路:

图片

蒙特卡洛⽅法(Monte Carlo),是指在场景的结束时获取所有的奖励,并计算总体奖励。

图片

整体步骤如下:

  • 游戏开始作为场景的起点;

  • 游戏结束作为场景的终点;

  • 在终点我们会得到⼀个 stats、actions、rewords 和新 states 的列表;

  • 根据公式计算总奖励;

  • 根据上面的公式更新 V(st);

  • 开始新⼀轮的游戏;

随着运行次数增多,我们的 Jerry 会吃得越来越多。

图片

时间差学习⽅法(TD Temporal Difference Learning),TD 的⽅法与蒙特卡洛⽅法相反,它不会等待场景的结束在去计算,而是在每⼀步中评估未来预期最⼤奖励:它为当前经历的状态 S 评估价值 V;

TD的核⼼思想是评估,即通过将其更新为⼀ 步目标来更新先前的估计 V(st)。

图片

TD 不会等待场景的结束,而是在 (t+1) 时刻后都会使用得到的奖励值 Rt+1 来评估当前状态下的价值 V(St+1) ;而蒙特卡洛方法则需要经历多个周期才能得到理想的效果。

图片

探索 :探索是指获取环境中更多的信息;

开发 :是从已知的信息中获取最大的收益;

图片

我们时刻要记住 Jerry 的目标是最大化预期的累积收益。

在上面这个例子中, 如果只有开发,则 Jerry 周边就有无穷的小奶酪,那么 Jerry 仅会关注周围的小奶酪,而不会获取到远处的大奶酪;假如在这里加入一些探索,Jerry 就能获得更大的奖励。

所以我们需要指定一个规则, 用于对探索和开发的平衡。

图片

图片

使用基于价值的方法我们可以使用优化价值函数 V(s) ;它能告诉我们在 agent 每个状态下的最大未来预期回报。

图片

每个状态的价值是 agent 从该状态开始到未来期望累积的奖励总额。agent 利用价值函数来选择每一步的状态:它会选择最大价值的状态。

图片

直接优化策略函数 π(s) ,策略就是是在给定的时间定义的 agent 的行为。

图片

通过策略函数,我们可以得到状态和最佳操作的映射关系。即:

  • 确定性 :一个给定的状态总是返回相同的操作;

  • 随机性 :输出操作的分布概率。

图片

图片

基于模型的方法不同的环境有不同的模型, 所以需要针对每种环境建立一个模型。

  • Q-Learning: 采用传统的算法去产生 Q table; 

  • Deep Q-Learning: 采用神经网络产生 Q value;

图片

图片

强化学习是一个迭代的过程,通常需要不断地调整参数、改进策略以及增加训练经验,以使代理能够逐渐提高性能。这一能力使得强化学习在面对复杂、不确定且动态变化的环境时表现出色。

虽然过程可能会面临挑战,但也可以在许多领域中取得显著的成就,从自动化控制到游戏玩法优化,再到金融交易策略的制定。它代表了一种机器学习方法,能够使机器代理通过与环境的互动来自主学习并不断改进其决策和行为。

那么,当强化学习运用在 OS 中时,会触发什么样的惊喜呢?鼎道智联正在打造的 DingOS 就在探索这一能力,力争为用户带来更安全、绿色、便捷的操作体验,如果你也对此感兴趣,欢迎扫描下方二维码加入鼎道生态,和我们一起创造出更智能、更高效、更可持续的未来。

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

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

相关文章

perf与simpleperf

对事件进行采样,然后根据采样频率,评估各个函数的调用频率。可以用来分析CPU cache,CPU迁移,指令周期等各种硬件事件,他也可以对感兴趣的事件进行动态追踪。 效果: cat available_events | grep receive p…

YashanDB:潜心实干,数据库核心技术突破没有捷径可走

都说数据库是三大基础软件中的一块硬骨头,技术门槛高、研发周期长、工程要求高,市场长期被几大巨头所把持。 因此,实现突破一直是中国数据库产业的夙愿。自上个世纪80年代起,中国数据库产业走过艰辛坎坷的四十余载,终…

CocosCreator3.8研究笔记(九)CocosCreator 场景资源的理解

相信很多朋友都想知道, Cocos Creator 资源的定义? Cocos Creator 常见的资源包含哪些?Cocos Creator 资源的管理机制是什么样的? Cocos Creator 中所有继承自 Asset 的类型都统称资源 ,例如:Texture2D、Sp…

springboot项目实现helloworld

使用Spring官方源创建项目(推荐) 缺陷:镜像在国外下载速度有点慢 选择配置 选择版本 实现HelloWorld 删除部分不重要的文件 idea隐藏文件 使用云原生的方式创建项目(spring官方源) 访问地址:Spring Init…

基于Java+SpringBoot+Vue前后端分离科研项目验收管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决

https://blog.csdn.net/zxlyx/article/details/120397006 本文给出一个 TIME_WAIT 状态的 TCP 连接过多的问题的解决思路,非常典型,大家可以好好看看,以后遇到这个问题就不会束手无策了。 问题描述 模拟高并发的场景,会出现批量…

CS架构和BS架构的联系与区别(零基础理解)

文章目录 网络编程CS架构BS架构CS和BS的区别C/S架构优缺点B/S架构优缺点 网络编程 首先要了解CS架构和BS架构就需要了解一下什么是网络编程? 大家刚接触编程时,往往是在自己的电脑的编辑器上进行代码的编写,说简单的就是以前我们书写的代码就像单机版游戏一样,只能自己玩,不能…

VSRS4.0 安装与配置

0 引言 介绍:VSRS的定义参阅官方论文,项目引入VSRS来解决目前亟需解决的问题(基于两视点的虚拟视点合成)。 1 下载VSRS 1.1 通过TortoiseSVN下载最新版VSRS VSRS can be accessed from SVN server server: https://svn.multimedia.edu.pl/vsrs user:…

PyTorch基础知识(1)— PyTorch框架介绍和安装步骤

前言:Hello大家好,我是小哥谈。PyTorch是一个开源的深度学习框架,它基于Python语言,并提供了高级的神经网络接口,可以用于构建和训练各种深度学习模型。它的设计理念是灵活性和易用性,并且提供了动态图的特…

C++入门介绍之“栈”

1.1栈的定义 栈(stack)是一种只能在一端进行插入或删除的线性表 下面是一些基础概念 栈顶(top) : 表中允许进行插入、删除操作的线性表栈底(bottom):表的另一端空栈 :栈中没有数据元素进栈/入栈&#xf…

如何统计网站的访问量

本文介绍的是使用redis的HyperLoglog实现uv的统计功能。 背景 首先我们先明确一下uv这个名词代表的实际意义。uv代表的是通过网页访问浏览的人数,和文章的阅读量差不多,但是需要注意的是,一个人即使是多次访问,也只算一次。 所…

开发一个android应用需要哪些库?

目录 开发应用常用库 沉浸式体验 下拉刷新 数据库 网络访问 升级 开发应用常用库 随着手机普及,应用无处不在,我们生活也离不开应用了。 那么,如果你想从零开始做一个应用,我们一般会经过哪些阶段,用到哪些库呢…

揭秘外卖平台的附近公里设计

背景 相信大家都有点外卖的时候去按照附近公里排序的习惯,那附近的公里是怎么设计的呢?今天shigen带你一起揭秘。 分析 我们先明确一下需求,每个商家都有一个地址对吧,我们也有一个地址,我们点餐的时候,…

【Spring 事务和事务传播机制】

目录 1 事务概述 1.1 为什么需要事务 1.2 事务的特性 1.3 Spring 中事务的实现 2 Spring 声明式事务 2.1 Transactional 2.2 Transactional 的作用范围 2.3 Transactional 的各种参数 2.3.1 ioslation 2.4 事务发生了异常,也不回滚的情况 异常被捕获时 3 事务的传…

运维Shell脚本小试牛刀(七):在函数文脚本件中调用另外一个脚本文件中函数|函数递归调用|函数后台执行

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试…

手写Spring:第8章-初始化和销毁方法

文章目录 一、目标:初始化和销毁方法二、设计:初始化和销毁方法三、实现:初始化和销毁方法3.1 工程结构3.2 Spring应用上下文和Bean对象扩展初始化和销毁类图3.3 定义初始化和销毁方法的接口3.3.1 定义初始化接口3.3.2 定义销毁接口3.3.3 定义…

【 OpenGauss源码学习 —— 列存储(analyze)(三)】

列存储(analyze) acquire_sample_rows 函数RelationGetNumberOfBlocks 函数BlockSampler_Init 函数anl_init_selection_state 函数BlockSampler_GetBlock 函数ReadBufferExtendedPageGetMaxOffsetNumber 函数HeapTupleSatisfiesVacuum 函数heapCopyTuple…

微软8月系统更新引发问题:虚拟内存分页文件出现错误

微软的八月系统更新引发了一系列问题,其中包括“UNSUPPORTED_PROCESSOR”蓝屏错误和文件管理器故障。尽管微软已经修复了前者,但据国外科技媒体Windows Latest报道,仍有用户反馈在非微星设备上出现“fault in nonpaged area”蓝屏错误。 如果…

信息技术 安全技术 信息安全管理测量

声明 本文是学习信息技术 安全技术 信息安全管理 测量. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 为了评估按照GB/T 22080-2008规定实施的信息安全管理体系(Information Security Management System,简称ISMS&#…

STM32移植FAT文件系统

所谓“移植”,就是打通FAT源码和物理设备之间的软件接口。 FAT源码早就被公益组织给写好了,直接下载源码。但是FAT作为顶层应用程序,它需要面对的底层物理设备是不确定的,那么底层的物理设备驱动程序就需要程序员来自己写。物理设…