强化学习——简单解释

news2024/9/25 19:25:35

一、说明

        最近 OpenAI 上关于 Q-star 的热议激起了我温习强化学习知识的兴趣。这是为强化学习 (RL) 新手提供的复习内容。

二、强化学习的定义

        强化学习是人类和其他动物用来学习的学习类型。即,通过阅读房间来学习。(从反馈中学习)。让我解释。

        作为一个幼儿,你正在积极地探索你的环境,在这个探索过程中,你采取一些行动,例如,你尝试站起来,你尝试爬行,行走,接触火,吞下泥土,(在那个年龄,我们尝试吞下一切)。我们微笑并做出可爱的鬼脸,这给我们带来了父母的拥抱和微笑的回报。我们可能会大喊大叫、发脾气,这会让我们的父母生气,甚至会导致我们暂停、延迟玩游戏。因此,我们通过我们的行动收到的反馈来学习。这就是你教你的狗行为举止的方式。通过奖励来强化其良好行为,并通过“Nooooo”来阻止不良行为。

        

来源: https: //www.wikihow.com/Teach-Your-Dog-to-Speak

        强化学习 (RL) 是机器学习 (ML) 的一种,涉及从环境收到的反馈进行学习,而不是从标记数据(如监督学习)或数据的固有属性(如无监督学习)中学习。

三、强化学习框架

        强化学习框架涉及多个方面。让我们一一看看:

        强化学习框架的重要元素来源:强化学习:简介,Richard Sutton 和 Andrew G. Barto

        代理人——行动者或决策者

        在强化学习中,学习者被称为“代理”。代理可以是一个软件,也可以是软件和硬件的组合,例如机器人。学习任务中可能有一个或多个代理。

        环境——周围环境或代理人的世界

        代理驻留在“环境”中并在其中导航。“环境”是指与代理交互的外部系统或周围环境。

        来源:抱脸深度强化学习课程

        环境状况

        在任何时候,代理都可以查看完整的配置或其环境的状态。(例如,游戏特定阶段的完整棋盘的快照)。

        在某些强化学习任务中,代理无法看到其环境的整个配置,只能看到其中的一部分(例如,在超级马里奥游戏中,代理(即玩家)无法看到整个环境,只能看到其中的一部分在特定时间。)在这种情况下,我们说智能体看到了来自环境的观察结果。

        报酬

        奖励是智能体在采取行动后从环境收到的反馈。奖励是一个数字。代理的目标是积累最大的累积奖励。

        价值

        价值是智能体从处于特定环境状态并采取特定行动时获得的累积长期奖励。因此,强化学习代理的目标是最大化其价值。

        折扣未来奖励

        对于我们人类来说,有即时的满足感,也有长期的价值。同样,对于 RL 代理来说,它在环境状态下采取行动后会立即收到奖励。并且它期望通过未来采取的行动获得累积的未来奖励(其行动的长期后果(业力,你看)。

        RL 中的折扣因子(Gamma , γ)平衡即时奖励与未来奖励。它通过确定未来奖励的权重来帮助智能体决定在任何状态下采取哪些行动。

        状态转移概率

        状态转换概率是当智能体采取特定动作时从环境的一种状态转移到另一种状态的概率。在这里,我们需要谈谈强化学习中的确定性和随机环境。

        确定性环境是指代理在特定状态下只能采取一个预先确定的操作,并且该操作会将您引导到预先确定的下一个状态。例如,如果你当前的状态是你在学校,那么唯一可能的行动就是学习。

        随机环境是代理可以选择采取多种可能行动之一的环境。每个动作都有一个代理执行的相关概率。例如,你在学校,你有 90% 的概率可以学习,你有 5% 的概率可以做运动,你有 5% 的概率可以和朋友聊天。在随机环境中,状态之间的转换存在不确定性或随机性。

        表示为P ( s '∣ s , a ) 的状态转换概率是在智能体当前处于状态s采取动作a 的情况下转换到状态 ' s ' 的概率。该概率函数捕获特定 RL 任务中代理环境的动态。

        马尔可夫性质

        在强化学习中,我们假设状态表现出马尔可夫性质。马尔可夫性质意味着系统的未来状态仅取决于当前状态和操作,而不取决于之前的事件顺序。这使得对状态转换建模变得更加容易。

        状态值函数 (V(s))

        状态价值函数V ( s ) 计算代理可以从给定状态s并采取后续行动中获得的预期累积奖励(回报或价值)。即,它衡量代理的状态价值。

        动作值函数 (Q(s, a))

        动作价值函数Q ( s , a ) 计算智能体从处于状态s、采取动作a,然后遵循特定的动作序列(策略)可以获得的预期累积奖励(回报或价值) 。它衡量在给定状态下采取特定行动的质量。

价值函数和行动价值函数帮助智能体决定进入什么状态以及采取什么行动来最大化其整体奖励。

四、笔记 

        成功的代理人是实现其目标的代理人。代理的目标是最大化其长期奖励(价值/回报)。为了实现其目标,智能体需要学习在其环境中的每个连续状态下采取最佳行动(一系列最佳/最佳行动)。最佳的行动序列是最大化累积奖励的行动序列。因此,RL 的重点是让智能体了解每一步要采取什么行动来实现其目标。关于每一步要采取什么行动的知识称为策略。

        政策

        策略(π)定义了代理用来决定在不同状态下采取哪些操作的策略或规则。它本质上是从状态到动作的映射。有两种类型的政策:

  • 确定性策略 ( π ( s )→ a ):在确定性策略中,对于每个状态,该策略精确指定要采取的一个操作。
  • 随机策略 ( π ( a ∣ s )):在随机策略中,对于每个状态,该策略定义了许多可能操作的概率分布。

        状态价值函数和行动价值函数经常用于 Q-learning 和 SARSA 等算法中,而策略在 RL 中的策略梯度方法和行动者批评方法中发挥着核心作用。

        代理必须在其环境中学习自身的最优策略。即,它需要学习在不同环境状态下的多个时间步长采取的最佳行动顺序。

        “学习”是指学习如何就在环境中采取什么行动做出正确的决策顺序。这种学习是通过从环境收到的反馈与环境交互来实现的。

        从命中和尝试开始,智能体采取行动,如果行动好,智能体会收到奖励形式的反馈,如果行动不好,智能体会受到环境的惩罚。代理的目标是最大化其累积奖励。这很像一个幼儿通过跌倒和爬起来来学习走路。或者一只狗从父母的对待或责骂中学习表现良好。

        其中心思想是让代理探索其环境,从其行为的后果中学习,并调整其行为以实现特定目标。

        因此,代理可以从随机策略开始,随机采取任何可能的动作,然后根据获得的奖励的比较,下次调整其策略。迭代细化一直持续到智能体学会了最佳的动作序列,从而在其环境中获得最大的奖励。(政策优化)。

        解决强化学习问题的两种方法是基于策略的方法和基于价值的方法。

        在基于策略的方法中,代理学习针对每种环境状态的一组可能操作的概率分布。在基于价值的方法中,代理学习一个价值函数,该函数将状态映射到该状态的期望值,然后根据贪婪策略采取行动(进入最高价值的状态)。

        政策迭代

        策略迭代是一种用于寻找最优策略的迭代方法。关键思想是交替执行两个步骤:政策评估和政策改进。

        政策评估

  • 在策略评估步骤中,评估当前策略以估计其值(),即当前策略下每个状态的预期回报。此步骤涉及迭代更新状态值,直到它们收敛到准确表示当前政策下每个状态的预期回报的稳定值。

        政策改进:

  • 在策略改进步骤中,策略被更新为相对于当前价值函数更加贪婪。考虑到在策略评估步骤中获得的估计值,选择每个状态的操作以最大化预期回报。然后将更新后的策略用于下一轮策略评估,并重复该过程。

        策略迭代将持续进行,直到策略在策略改进步骤中不再发生变化。至此,国家价值观和政策已经收敛到最优值。

五、基于模型和无模型的强化学习

        有两种不同的方法来学习代理的最佳策略,具体取决于代理是否具有环境模型。

        基于模型的强化学习

        在基于模型的强化学习中,代理构建环境的内部模型(马尔可夫决策过程,MDP)。该模型包括有关环境中可用状态、代理可能采取的操作、状态转换概率、奖励函数、未来奖励的折扣因子的信息。代理使用其学习的模型来模拟未来可能的场景,并根据这些模拟来计划其行动。代理通过根据其内部模型选择预计会产生有利结果的行动来做出决策。模型中的不准确可能会导致性能不佳。

        无模型强化学习:

        在无模型强化学习中,代理直接与环境交互,无需显式构建模型。代理不是学习环境的动态,而是通过反复试验来学习策略(策略)或价值函数(预期累积奖励)。

        无模型强化学习的关键步骤包括:

  • 探索:智能体通过采取行动来探索环境并观察结果。
  • 策略或价值函数学习:代理学习将行为与期望的结果关联起来,而无需显式地对环境进行建模。这可能涉及 Q 学习、SARSA 或策略梯度方法等技术。
  • 适应:代理根据观察到的奖励调整其策略,不断改进其决策。

        无模型强化学习在处理复杂和未知的环境方面更加灵活,但可能需要更多的探索才能发现有效的策略。

        这些方法之间的选择通常取决于问题的特征以及环境的准确模型的可用性。

        时间差分学习(TD Learning)

        时间差分(TD)学习用于训练智能体在动态环境中做出决策。它是一种无模型强化学习,代理可以从其经验中学习,而不需要环境模型。TD 学习涉及根据未来奖励的预测值和观察值之间的差异来更新价值估计。

        预测值是学习算法对某些状态或状态-动作对估计的值( Vs)或Qsa ))。真正的价值是通过与环境的相互作用获得的。在某个状态采取行动后,代理会收到奖励并转换到新状态。观察到的奖励和结果状态构成了真实值。学习算法通过将预测与实际结果进行比较来调整其预测,旨在随着时间的推移减少差异并改进决策。

        时间差异误差是预测值与真实值之间的差异,用于迭代更新预测值。更新基于当前时间步的预测值与观察到的奖励和下一时间步的预测值的组合之间的差异。

        例如,在 TD(0) 学习中,状态值函数V ( st ​) 的更新公式可能如下所示:V ( st ​)← V ( st ​)+ α [ Rt +1​+ γV ( st +1​)− V ( st ​)] 这里,α是学习率,Rt +1​是观察到的奖励,γ是折扣因子,V ( st +1​) 是下一个状态的预测值。

六、Q-学习

        Q-learning 是一种无模型 RL 算法,用于为给定的有限马尔可夫决策过程 (MDP) 寻找最优策略(为智能体提供最大奖励的策略)。Q-learning 首先估计在特定状态下采取特定行动的质量,并根据观察到的奖励更新这些估计。该算法是离策略的,这意味着它在遵循另一个(探索性)策略的同时学习单独的策略(Q 函数)。

        Q-learning的更新规则为:

        Q ( s , a )← Q ( s , a )+ α [ R + γ max ​Q ( s ′, a )− Q ( s , a )]

        这里,Q ( s , a ) 是在状态s下采取动作a的估计质量,R是观察到的奖励,γ是折扣因子,s ' 是下一个状态,α是学习率。

        深度 Q 学习(深度 Q 网络 (DQN))

        深度 Q 网络将 Q 学习与深度神经网络(深度 Q 学习)相结合,使算法能够处理具有大量状态的 RL 环境,例如图像。DQN 使用神经网络来近似 Q 函数。DQN 使用经验重放,其中过去的经验存储在重放缓冲区中,并在训练期间随机采样以打破数据中的相关性。

        DQN中的损失函数定义为:

        损失=E[( Q ( s , a )−( R + γ max a ′​ Q ( s ′, a ′)))2]

        网络经过训练,可以通过调整其参数来最小化这种损失。

        Q*(Q 星)

        Q*旨在找到最优动作价值函数Q*(s, a),它表示在状态“s”下采取动作“a”然后遵循最优策略可以获得的最大预期累积奖励。

        SARSA(状态-行动-奖励-行动-状态)

        SARSA 是另一种无模型强化学习算法。与 Q-learning 不同,SARSA 是一种在策略算法,这意味着它可以学习当前正在使用的策略的价值。

        SARSA的更新规则是:

        Q ( s , a )← Q ( s , a )+ α [ R + γQ ( s ' , a ' )− Q ( s , a )]

        这里,Q ( s , a ) 是在状态s下采取动作a的估计质量,R是观察到的奖励,s ' 是下一个状态,a ' 是下一个动作,γ是折扣因子,α是学习率。

        策略梯度法

        策略梯度方法是一类直接学习策略的强化学习算法。与旨在估计价值函数(状态值或行动值)的基于价值的方法不同,策略梯度方法直接参数化策略并更新其参数以最大化预期累积奖励。

        在策略梯度方法中,策略由一组由神经网络表示的可学习参数参数化。该策略将状态作为输入并输出动作的概率分布。随着时间的推移,对参数进行调整以提高策略的性能。

        目标函数是需要最大化的奖励总和的期望值。

        计算相对于策略参数的预期累积奖励的梯度。该梯度用于更新策略参数,以增加导致更高奖励的行动的可能性。策略优化是通过梯度上升来执行的,即更新策略参数以朝着增加预期回报的配置移动。

        为了防止过早收敛到次优策略并鼓励探索更多样化的行动空间,在目标函数中添加了与策略分布的负熵成比例的项。它被称为熵正则化。

REINFORCE算法是一种经典的策略梯度方法,它使用似然比技巧来估计预期回报的梯度。它按照梯度乘以与观察到的奖励相关的因子的比例更新策略参数。

        演员批评家方法

        Actor-Critic 方法结合了策略梯度和基于价值的方法的元素。这些算法有一个演员,它学习选择动作的策略,还有一个批评家,它评估这些动作或状态的价值。该行为者利用批评者的评估来指导其政策更新,旨在随着时间的推移改进决策。

        Actor-Critic 方法的优点是观察到的回报(实际累积奖励)与批评者估计的值之间的差异。

        Actor-Critic方法中的目标函数是Actor的策略梯度和Critic的价值函数的组合。更新参与者以最大化预期累积奖励,更新批评者以最小化其估计与观察到的回报之间的均方误差。Actor 使用策略梯度方法进行更新,例如 REINFORCE。更新与参与者参数的预期回报梯度成正比,并按优势缩放。批评者使用时间差(TD)学习进行更新。

七、强化学习的应用

        强化学习的概念可以应用于解决游戏、机器人和自动化等各个领域的问题,从而提高 ChatGPT 等大型语言模型的性能。

        有一些特定的框架和算法用于实现和训练 RL 模型,例如 Q 学习、深度 Q 网络 (DQN)、策略梯度方法等。这些算法提供了计算机制,使代理能够从经验中学习并提高决策能力。

        这是对强化学习的过于简单化的介绍。强化学习有着巨大的应用。请查看参考资料中的详细学习资料。

  1. 强化学习:简介,Richard Sutton 和 Andrew G Barto,Sutton & Barto Book: Reinforcement Learning: AnIntroduction
  2. David Sliver 的强化学习课程Teaching - David Silver
  3. 斯坦福大学强化学习课程: https: //web.stanford.edu/class/cs234/
  4. 深度 RL 拥抱脸部课程:https://huggingface.co/learn/deep-rl-course/unit0/introduction
  5. Deep Deterministic Policy Gradient — Spinning Up documentation

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

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

相关文章

在线直线度测量仪在圆形轧钢中的重要性

在线直线度测量仪在圆形轧钢中的重要性 在现代轧钢生产中,在线直线度测量仪是一种非常重要的工具,它可以帮助工人和产线进行高精度的直线度和直径测量,从而保证产品质量的稳定性和精度。以下是详细介绍直线度测量仪的重要性和应用。 一、测…

高斯平滑处理

本文主要介绍了高斯滤波器的原理及其实现过程 高斯滤波器是一种线性滤波器,能够有效的抑制噪声,平滑图像。其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板…

06、pytest将多个测试放在一个类中

官方用例 # content of test_class.py # 实例1 class TestClass:def test_one(self):x "this"assert "h" in xdef test_two(self):x "hello"assert hasattr(x,"check")# content of test_class_demo.py # 每个测试都有唯一的类实例…

逻辑回归 使用Numpy实现逻辑回归

使用Numpy实现逻辑回归 sigmoid 函数 g ( z ) 1 ( 1 e − z ) g(z)\frac{1}{(1e^{−z} )} g(z)(1e−z)1​ # sigmoid 函数 def sigmod(z):return 1/(1np.exp(-z))线性计算与梯度下降 J ( θ ) − 1 m [ ∑ i 1 m y ( i ) l o g ⁡ ( h θ ( x ( i ) ) ) ( 1 − y ( i ) …

算符优先语法分析程序设计与实现

制作一个简单的C语言词法分析程序_用c语言编写词法分析程序-CSDN博客文章浏览阅读378次。C语言的程序中,有很单词多符号和保留字。一些单词符号还有对应的左线性文法。所以我们需要先做出一个单词字符表,给出对应的识别码,然后跟据对应的表格…

quickapp_快应用_生命周期

生命周期 APP的生命周期页面组件的生命周期页面栈页面的生命周期onBackPressonMenuPress踩坑 onRefreshonConfigurationChanged页面滚动 自定义组件的生命周期父子组件初始化生命周期执行顺序 APP的生命周期 App的生命周期在app.ux 中定义的回调函数。 onCreate() {prompt.sh…

谈谈 .NET8 平台中对 LiteDB 的 CRUD 操作

哪个啥!纯 C# 编写的 LiteDB 你还不会操作? LiteDB 简介LiteDB 安装同步版 LiteDB异步版 LiteDB.Async LiteDB StudioLiteDB CRUD 操作举例LiteDB vs SQLite 对比1、谈谈 sqlite 和 litedb 的 ACID 事务支持?2、谈谈 sqlite 和 litedb 的稳定…

股票代码合法验证:python字符串str应用

从键盘输入六位股票代码字符串,判定合法并输出板块分类,否则输出“NO”。 (笔记模板由python脚本于2023年12月04日 19:19:07创建,本篇笔记适合熟悉python字符串和字典的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https:…

C语言小游戏:三子棋

目录 🌍前言 🚅目录设计 💎游戏逻辑设置 ⚔三子棋棋盘设计 ⚔三子棋运行逻辑 👀怎么设置人下棋 👀怎么设置电脑下棋 ✈如何判断输赢 ✍结语 🌍前言 Hello,csdn的各位小伙伴你们好啊!这次小赵给大…

密码学学习笔记(二十三):哈希函数的安全性质:抗碰撞性,抗第一原象性和抗第二原象性

在密码学中,哈希函数是一种将任意长度的数据映射到固定长度输出的函数,这个输出通常称为哈希值。理想的哈希函数需要具备几个重要的安全性质,以确保数据的完整性和验证数据的来源。这些性质包括抗碰撞性、抗第一原象性和抗第二原象性。 抗碰…

C#网络编程TCP程序设计(Socket类、TcpClient类和 TcpListener类)

目录 一、Socket类 1.Socket类的常用属性及说明 2.Socket类的常用方法及说明 二、TcpClient类 三、TcpListener类 四、示例 1.源码 2.生成效果 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在C#中,TCP程序设…

Fiddler的配置、原理和使用

一、Fiddler的工作原理 本地应用与服务器之间所有的请求(request)和响应(response),由fiddler进行转发,此时fiddler以代理服务器的方式存在。 由于所有的网络数据都要经过fiddler,因此&#xf…

6、原型模式(Prototype Pattern,不常用)

原型模式指通过调用原型实例的Clone方法或其他手段来创建对象。 原型模式属于创建型设计模式,它以当前对象为原型(蓝本)来创建另一个新的对象,而无须知道创建的细节。原型模式在Java中通常使用Clone技术实现,在JavaSc…

01_W5500简介

目录 W5500简介: 芯片特点: 全硬件TCPIP协议栈: 引脚分布: W5500简介: W5500是一款高性价比的以太网芯片,其全球独一无二的全硬件TCPIP协议栈专利技术,解决了嵌入式以太网的接入问题,简单易用&#xff…

HostHunter虚拟主机发现

HostHunter虚拟主机发现 1.HostHunter2.安装3.参数解释4.实例1.HostHunter HostHunter 一种工具,用于有效发现和提取提供大量目标 IPv4 或 IPv6 地址的主机名。HostHunter 利用简单的 OSINT 和主动协调技术将 IP 目标与虚拟主机名进行映射。这对于发现组织的真正攻击面特别有…

直观清晰的带你了解KMP算法(超详细)

KMP算法用来找某个字符串是否存在某个连续的真子串的 下面举一个例子让抽象的KMP算法更加直观,有助于理解 首先我们要了解KMP算法首先要找到一个next数组来表示主串中每一个字符的回退的下标(这个下标是对于真子串而言的,主串不需要回退&…

ubuntu安装tomcat并配置前端项目

1.1查找 # 先更新 sudo apt update # 查找 apt search jdk1.2安装 sudo apt install openjdk-8-jdk1.3验证 java -version 2.安装tomcat 下载链接:Apache Tomcat - Apache Tomcat 8 Software Downloadshttps://tomcat.apache.org/download-80.cgi下载这个&…

layui+ssm实现数据批量删除

layuissm实现数据的批量删除 //数据表格table.render({id: adminList,elem: #adminList,url: ctx "/admin/getAdminList", //数据接口cellMinWidth: 80,even: true,toolbar: #toolbarDemo,//头部工具栏limit: 10,//每页条数limits: [10, 20, 30, 40],defaultToolba…

JS生成登录验证码

采用js生成登录的验证码 采用的技术点有html&#xff0c;css&#xff0c;JS&#xff0c;jQuery HTML&#xff1a; <div class"box_b"><img src"./img/0775639c-c82c-4a29-937f-d2a3bae5151a.png" alt""><div class"regist…

4G基站BBU、RRU、核心网设备

目录 前言 基站 核心网 信号传输 前言 移动运营商在建设4G基站的时候&#xff0c;除了建设一座铁塔之外&#xff0c;更重要的是建设搭载铁塔之上的移动通信设备&#xff0c;这篇博客主要介绍BBU&#xff0c;RRU以及机房的核心网等设备。 基站 一个基站有BBU&#xff0c;…