【机器学习高级】强化学习综述

文章目录

  • 一、说明
  • 二、强化学习是什么?
    • 2.1 与现代神经网络的相异
    • 2.2 强化学习属于行为学派
    • 2.3 强化学习数学支持
  • 三、强化学习有什么好处?
    • 3.1 在复杂环境中表现出色
    • 3.2 需要较少的人际互动
    • 3.3 针对长期目标进行优化
  • 四、强化学习有哪些用例?
    • 4.1 营销个性化
    • 4.2 优化挑战
    • 4.3 财务预测
  • 五、强化学习如何工作的?
    • 5.1 关键概念
    • 5.2 算法基础知识
  • 六、强化学习算法有哪些类型?
    • 6.1 基于模型的强化学习
    • 6.2 无模型强化学习
  • 七、强化学习与监督学习
  • 八、强化学习面临哪些挑战?
    • 8.1 实用性
    • 8.2 可解释性

关键词:Reinforcement Learning

一、说明

   强化学习是一种强大的方法,可以帮助人工智能 (AI) 系统在看不见的环境中实现最佳结果。他们从每个行动的反馈中学习,并自我发现实现最终结果的最佳处理路径。该算法还能够延迟满足。最好的整体策略可能需要短期的牺牲,因此他们发现的最佳方法可能包括一些惩罚或一路回溯。

二、强化学习是什么?

2.1 与现代神经网络的相异

   强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益[1]。强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。与监督学习不同的是,强化学习不需要带标签的输入输出对,同时也无需对非最优解的精确地纠正。其关注点在于寻找探索(对未知领域的)和利用(对已有知识的)的平衡[2],强化学习中的“探索-利用”的交换,在多臂老虎机问题和有限MDP中研究得最多。

2.2 强化学习属于行为学派

   其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。这个方法具有普适性,因此在其他许多领域都有研究,例如博弈论、控制论、运筹学、信息论、仿真优化、多智能体系统、群体智能、统计学以及遗传算法。在运筹学和控制理论研究的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。在最优控制理论中也有研究这个问题,虽然大部分的研究是关于最优解的存在和特性,并非是学习或者近似方面。在经济学和博弈论中,强化学习被用来解释在有限理性的条件下如何出现平衡。

2.3 强化学习数学支持

   在机器学习问题中,环境通常被抽象为马尔可夫决策过程(Markov decision processes,MDP),因为很多强化学习算法在这种假设下才能使用动态规划的方法[3]。传统的动态规划方法和强化学习算法的主要区别是,后者不需要关于MDP的知识,而且针对无法找到确切方法的大规模MDP。[4]

在这里插入图片描述

三、强化学习有什么好处?

   使用强化学习 (RL) 有很多好处。然而,这三个特点往往脱颖而出。

  • 在复杂环境中表现出色
  • 需要较少的人际互动
  • 针对长期目标进行优化
    总之,是小数据、大结论、总体优化的优秀模型,是人工智能高效率的模型。

3.1 在复杂环境中表现出色

   强化学习算法可用于具有许多规则和依赖性的复杂环境。在相同的环境中,即使人类对环境有更深入的了解,也可能无法确定最佳路径。相反,无模型强化学习算法可以快速适应不断变化的环境,并找到新的策略来优化结果。

3.2 需要较少的人际互动

   在传统的机器学习算法中,人类必须标记数据对来指导算法。当您使用 RL 算法时,这不是必需的。它自己学习。同时,它提供了整合人类反馈的机制,允许系统适应人类的偏好、专业知识和纠正。

3.3 针对长期目标进行优化

   强化学习本质上关注长期奖励最大化,这使得它适用于行动产生长期后果的场景。它特别适合现实世界中每一步都无法立即获得反馈的情况,因为它可以从延迟的奖励中学习。

   例如,有关能源消耗或存储的决策可能会产生长期后果。 RL 可用于优化长期能源效率和成本。通过适当的架构,强化学习代理还可以在相似但不相同的任务中推广他们学到的策略。

四、强化学习有哪些用例?

   强化学习(RL)可以应用于广泛的现实世界用例。接下来我们举一些例子。

4.1 营销个性化

   在推荐系统等应用中,强化学习可以根据个人用户的交互定制建议。这会带来更加个性化的体验。例如,应用程序可以根据某些人口统计信息向用户显示广告。通过每次广告交互,应用程序都会了解向用户显示哪些广告以优化产品销售。

4.2 优化挑战

   传统的优化方法通过基于特定标准评估和比较可能的解决方案来解决问题。相比之下,强化学习引入了从交互中学习的方法,以随着时间的推移找到最佳或接近最佳的解决方案。

   例如,云支出优化系统使用 RL 来适应不断变化的资源需求并选择最佳实例类型、数量和配置。它根据当前和可用的云基础设施、支出和利用率等因素做出决策。

4.3 财务预测

   金融市场的动态非常复杂,其统计特性会随着时间的推移而变化。强化学习算法可以通过考虑交易成本和适应市场变化来优化长期回报。

   例如,算法可以在测试操作并记录相关奖励之前观察股票市场的规则和模式。它动态地创建价值函数并制定利润最大化的策略。

五、强化学习如何工作的?

   强化学习(RL)算法的学习过程类似于行为心理学领域的动物和人类强化学习。例如,孩子可能会发现,当他们帮助兄弟姐妹或打扫卫生时,他们会得到父母的表扬,但当他们扔玩具或大喊大叫时,他们会收到负面反应。很快,孩子就会知道哪种活动组合会产生最终奖励。

   强化学习算法模仿类似的学习过程。它尝试不同的活动来学习相关的消极和积极价值观,以实现最终的奖励结果。

5.1 关键概念

   在强化学习中,有几个关键概念需要熟悉:

  • 代理(agent):是 ML 算法,或自治系统( autonomous system)
  • 环境(environment):是具有变量、边界值、规则和有效动作等属性的自适应问题空间。
  • 行动(action):是 RL 代理(agent)在环境中导航所采取的步骤
  • 状态( state):是给定时间点的环境( 变量、边界值、规则和有效动作)
  • 奖励(reward ):是采取行动的正值、负值或零值,换句话说,是奖励或惩罚。
  • 累积奖励cumulative reward:是所有奖励的总和或最终值

5.2 算法基础知识

   强化学习基于马尔可夫决策过程,这是一种使用离散时间步骤的决策数学模型。在每一步中,代理都会采取新的行动,从而产生新的环境状态。同样,当前状态归因于先前的一系列动作。

   通过在环境中移动时不断试错,代理会构建一组“如果-那么”规则或策略。这些策略可帮助代理决定下一步要采取什么行动以获得最佳累积奖励。代理还必须在进一步探索环境以了解新的状态行动奖励与从给定状态中选择已知的高奖励行动之间做出选择。这称为探索-利用权衡。

六、强化学习算法有哪些类型?

   强化学习 (RL) 中使用了多种算法,例如 Q 学习、策略梯度方法、蒙特卡洛方法和时间差分学习。深度强化学习是深度神经网络在强化学习中的应用。深度强化学习算法的一个例子是信任区域策略优化 (TRPO)。

   所有这些算法可以分为两大类。

6.1 基于模型的强化学习

   基于模型的强化学习通常用于环境定义明确且不变且现实环境测试困难的情况。

   代理首先构建环境的内部表示(模型)。它使用此过程来构建此模型:

   它在环境中采取行动并记录新的状态和奖励值,它将动作-状态转换与奖励值关联起来。
   模型完成后,代理会根据最佳累积奖励的概率来模拟动作序列。然后,它进一步为动作序列本身分配值。因此,代理在环境中制定不同的策略以实现所需的最终目标。

例子
   考虑一个机器人学习如何导航新建筑物以到达特定房间。最初,机器人自由探索并构建建筑物的内部模型(或地图)。例如,它可能会得知从主入口向前移动 10 米后遇到了电梯。一旦构建了地图,它就可以在建筑物中经常访问的不同位置之间构建一系列最短路径序列。

6.2 无模型强化学习

   当环境规模庞大、复杂且难以描述时,无模型强化学习是最佳选择。当环境未知且不断变化,且基于环境的测试不会带来重大不利影响时,无模型强化学习也是理想选择。

   代理不会构建环境及其动态的内部模型。相反,它会在环境中使用反复试验的方法。它会对状态-动作对以及状态-动作对的序列进行评分和记录,以制定策略。

例子
   考虑一辆需要在城市交通中行驶的自动驾驶汽车。道路、交通模式、行人行为以及无数其他因素都会使环境变得高度动态和复杂。人工智能团队在初始阶段在模拟环境中训练车辆。车辆根据其当前状态采取行动并获得奖励或惩罚。

   随着时间的推移,通过在不同的虚拟场景中行驶数百万英里,车辆可以了解哪些行为最适合每个州,而无需明确对整个交通动态进行建模。当引入现实世界时,车辆会使用学习到的策略,但会继续使用新数据对其进行完善。

   强化机器学习、监督机器学习和无监督机器学习有什么区别?
   虽然监督学习、无监督学习和强化学习(RL)都是人工智能领域的机器学习算法,但三者之间还是有区别的。

   了解监督学习和无监督学习 »

七、强化学习与监督学习

   在监督学习中,您定义输入和预期的相关输出。例如,您可以提供一组标记为狗或猫的图像,然后算法预计会将新的动物图像识别为狗或猫。

   监督学习算法学习输入和输出对之间的模式和关系。然后,它们根据新的输入数据预测结果。它需要监督者(通常是人类)用输出标记训练数据集中的每个数据记录。

   相比之下,强化学习有一个明确的最终目标,即期望结果,但没有监督者提前标记相关数据。在训练期间,它不会尝试将输入与已知输出进行映射,而是将输入与可能的结果进行映射。通过奖励期望的行为,您可以衡量最佳结果。

   强化学习与无监督学习比较:
   无监督学习算法在训练过程中接收没有指定输出的输入。他们使用统计手段发现数据中隐藏的模式和关系。例如,您可以提供一组文档,算法可以将它们分组到根据文本中的单词识别的类别中。您不会得到任何具体结果;它们落在一个范围内。

   相反,强化学习有一个预定的最终目标。虽然它采用探索性方法,但探索会不断得到验证和改进,以增加实现最终目标的可能性。它可以自学达到非常具体的结果。

八、强化学习面临哪些挑战?

   虽然强化学习 (RL) 应用程序有可能改变世界,但部署这些算法可能并不容易。

8.1 实用性

   尝试现实世界的奖励和惩罚系统可能不切实际。例如,在现实世界中测试无人机而不首先在模拟器中进行测试将导致大量飞机损坏。现实世界的环境经常发生显着变化,且警告有限。它会使算法在实践中更难发挥作用。

8.2 可解释性

   与任何科学领域一样,数据科学也着眼于结论性的研究和发现来建立标准和程序。数据科学家更喜欢知道如何得出具体结论以实现可证明性和可复制性。

   对于复杂的强化学习算法,采取特定步骤序列的原因可能很难确定。序列中的哪些操作会带来最佳的最终结果?这可能很难推断,从而导致实施方面的挑战。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

到底什么是数字?

来源:Bulletins from the Wolfram Physics Project 一、说明 数字这个概念是最普遍而又最难把控的概念。对数字概念的深度解读,决定人类社会方方面面的整体水平。而且,随着宇宙知识的认识,数字概念也似乎在膨胀中。 外星人乘坐星际…

Transformer,革命性的深度学习架构

Transformer 是一种革命性的深度学习架构,专门设计用于处理序列数据,特别是在自然语言处理(NLP)任务中表现卓越。它由 Vaswani 等人在 2017 年发表的论文《Attention is All You Need》中首次提出,打破了当时基于循环神经网络(RNN)和卷积神经网络(CNN)的序列建模常规,…

Tailwind CSS快速入门

文章目录 初识安装Tailwindcss试用安装快速书写技巧扩展好处Todo 初识 只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站 Tailwind CSS 是一个功能类优先的 CSS 框架,它通过提供大量的原子类(utility classes)…

【Android14 ShellTransitions】(二)创建Transition

这一节的内容在WMCore中,主要是创建Transition,初始化其状态为PENDING。 还是我们之前说的,我们以在Launcher界面点击App图标启动某个App为例,来分析Transition的一般流程。启动Activity的流程,在ActivityStarter.star…

[桌面端应用开发] 从零搭建基于Caliburn的图书馆管理系统(C#合集)

图书馆系统要求: 你是一家新市图书馆的经理。 图书馆拥有大量藏书和不断增长的会员。 为了使图书馆管理更加容易,现在创建一个图书馆管理系统。 图书馆管理系统应具备以下功能: 1.图书管理:系统应该能够向图书馆添加新图书。 每本…

【Linux-驱动开发】

Linux-驱动开发 ■ Linux-应用程序对驱动程序的调用流程■ Linux-file_operations 结构体■ Linux-驱动模块的加载和卸载■ 1. 驱动编译进 Linux 内核中■ 2. 驱动编译成模块(Linux 下模块扩展名为.ko) ■ Linux-■ Linux-■ Linux-设备号■ Linux-设备号-分配■ 静态分配设备号…

【设计模式深度剖析】【2】【结构型】【装饰器模式】| 以去咖啡馆买咖啡为例 | 以穿衣服出门类比

👈️上一篇:代理模式 目 录 装饰器模式定义英文原话直译如何理解呢?4个角色类图1. 抽象构件(Component)角色2. 具体构件(Concrete Component)角色3. 装饰(Decorator)角色4. 具体装饰…

5分钟在 VSCode 中使用 PlantUML 绘图

去年,写过一篇在 VSCode 中使用 PlantUML 的博客,那时候我嫌弃本地安装麻烦,所以采用的是在本地运行 docker 容器的方法部署的 PlantUML 服务端。不过,现在来看这样还必须依赖在本地手动启动 docker 容器(如果有一个不…

7.类和对象

类和对象 当我们没有去了解过java的知识点中 不免产生一些问题: 什么是类?什么是对象? 记住一句话:在java当中 一切皆对象 类:是用来描述一个对象的 而对象是一个真正存在的实体 在Java这门纯面向对象的语言中 我们…

Nginx企业级负载均衡:技术详解系列(10)—— Nginx核心配置详解(HTTP配置块)

你好,我是赵兴晨,97年文科程序员。 今天咱们聊聊Nginx核心配置中的HTTP配置块,这个配置块在我们的日常使用中极为常见,它的重要性不言而喻。 HTTP配置块在Nginx的配置架构中占据着核心地位,它直接关系到服务器如何处…

panic: concurrent write to websocket connection【golang、websocket】

文章目录 异常信息原由代码错误点 解决办法 异常信息 panic: concurrent write to websocket connection原由 golang 编写 websocket go版本:1.19 使用了第三方框架: https://github.com/gorilla/websocket/tree/main 代码 server.go // Copyright …

蓝桥楼赛第30期-Python-第三天赛题 从参数中提取信息题解

楼赛 第30期 Python 模块大比拼 提取用户输入信息 介绍 正则表达式(英文为 Regular Expression,常简写为regex、regexp 或 RE),也叫规则表达式、正规表达式,是计算机科学的一个概念。 所谓“正则”,可以…

nssctf——web

[SWPUCTF 2021 新生赛]gift_F12 1.打开环境后,这里说要900多天会有flag,这是不可能的 2.f12查看源码,然后在html中查找flag (在最上方的栏目中,或者按ctrlf) [SWPUCTF 2021 新生赛]jicao 1.打开环境是一段…

数据结构(树)

1.树的概念和结构 树,顾名思义,它看起来像一棵树,是由n个结点组成的非线性的数据结构。 下面就是一颗树: 树的一些基本概念: 结点的度:一个结点含有的子树的个数称为该结点的度; 如上图&#…

Qt | QCalendarWidget 类(日历)

01、QCalendarWidget 类 1、QCalendarWidget 类是 QWidget 的直接子类,该类用于日历,见下图 02、QCalendarWidget 属性 ①、dateEditAcceptDelay:int 访问函数:int dateEditAcceptDelay()const; void setDateEditAcceptDelay(int) 获取和设置日期编辑器的延迟时间(以毫秒…

go routing 之 gorilla/mux

1. 背景 继续学习 go 2. 关于 routing 的学习 上一篇 go 用的库是:net/http ,这次我们使用官方的库 github.com/gorilla/mux 来实现 routing。 3. demo示例 package mainimport ("fmt""net/http""github.com/gorilla/mux&…

设计模式11——代理模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 代理模式(Proxy&am…

ATA-7020高压放大器原理介绍

高压放大器是一种电子设备,用于增加输入信号的幅度,使其输出具有更大的电压。它在各种领域中发挥着关键作用,尤其是在需要高电压信号的应用中,如声学、医学成像、科学研究等领域。 高压放大器工作原理介绍: 信号输入&a…

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知,大型语言模型在小样本上下文学习(ICL)方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口,为探索其执行 ICL 的能力提供了机会,并提供了更多演示示例。在这项工作中,我…

go mod模式下,import gitlab中的项目

背景 为了go项目能够尽可能复用代码,把一些公用的工具类,公用的方法等放到共用包里统一管理。把共用包放到gitlab的私有仓库中。 遇到的问题 通过https方式,执行go get报了错误。 通过ssh方式,执行go get报了错误。 修改配置&am…