【深度学习】强化学习(一)强化学习定义

文章目录

  • 一、强化学习问题
    • 1、交互的对象
      • 1. 智能体(Agent)
      • 2. 环境(Environment)
    • 2、强化学习的基本要素
      • 1. 状态 𝑠
      • 2. 动作 𝑎
      • 3. 策略 𝜋(𝑎|𝑠)
      • 4. 状态转移概率 𝑝(𝑠′|𝑠, 𝑎)
      • 5. 即时奖励 𝑟(𝑠, 𝑎, 𝑠′)
    • 3、策略(Policy)
      • 1. 确定性策略(Deterministic Policy)
      • 2. 随机性策略(Stochastic Policy)
      • 3. 选择随机性策略的优点

一、强化学习问题

  强化学习的基本任务是通过智能体与环境的交互学习一个策略,使得智能体能够在不同的状态下做出最优的动作,以最大化累积奖励。这种学习过程涉及到智能体根据当前状态选择动作,环境根据智能体的动作转移状态,并提供即时奖励的循环过程。

1、交互的对象

  在强化学习中,有两个可以进行交互的对象:智能体环境:

1. 智能体(Agent)

  智能体是具有感知、学习和决策能力的实体。它能感知来自环境的状态(State),并根据学到的策略(Policy做出不同的动作,其目标是通过与环境的交互获得最大的累积奖励(Reward)

  • 感知外界环境的状态和奖励:

    • 智能体能够感知环境的状态,也就是获取关于环境当前情况的信息。
    • 智能体还可以接收来自环境的即时奖励,即环境对智能体当前行为的反馈。
  • 学习功能:

    • 智能体能够根据环境的反馈(奖励信号)来调整自己的策略。
    • 学习的目标通常是最大化累积奖励,使智能体能够在与环境的交互中表现得更加智能。
  • 决策功能:

    • 智能体通过决策来做出动作(即智能体对环境做出的响应),其目标是产生对环境有利的结果,即最大化奖励。

2. 环境(Environment)

  环境包括智能体外部的一切事物,是智能体所处的背景。环境的状态可能随着智能体的动作而改变,并且会提供奖励或惩罚,用于反馈智能体的行为。

  • 外部事物:

    • 环境是智能体外部的一切事物,包括所有与智能体进行交互的元素。
    • 可以是虚拟环境(例如计算机模拟的游戏场景)或真实环境(例如机器人在现实世界中的移动)。
  • 状态的改变:

    • 智能体的动作会影响环境的状态,导致环境发生变化。
    • 这种状态的变化反过来会影响智能体在未来做出的决策。
  • 奖励的反馈:

    • 智能体的动作不仅会改变环境的状态,还会导致环境给予智能体一个奖励信号。
    • 奖励信号是智能体学习过程中的关键反馈,用于调整智能体的行为。

  通过智能体与环境之间的这种相互作用,智能体通过学习和不断调整其决策策略,逐渐学会在给定环境中获得最大化奖励的有效行为,这就是强化学习的基本框架。
在这里插入图片描述

2、强化学习的基本要素

  强化学习涉及到智能体与环境的交互,其基本要素包括状态、动作、策略、状态转移概率和即时奖励。

1. 状态 𝑠

  • 定义: 状态是对环境的描述,可以是离散的或连续的,用来表示智能体所处的环境情境。

  • 状态空间: 状态的集合构成状态空间,通常表示为 𝒮。

    • 状态空间描述了所有可能的环境状态。

2. 动作 𝑎

  • 定义: 动作是对智能体行为的描述,可以是离散的或连续的。

    • 智能体通过选择动作来影响环境。
  • 动作空间: 动作的集合构成动作空间,通常表示为 𝒜。

    • 动作空间描述了所有可能的智能体行为。

3. 策略 𝜋(𝑎|𝑠)

  • 定义: 策略是一个函数,用来描述智能体在给定状态下选择不同动作的概率。
    • 即𝜋(𝑎|𝑠) 表示在状态 𝑠 下选择动作 𝑎 的概率。

4. 状态转移概率 𝑝(𝑠′|𝑠, 𝑎)

  • 定义: 状态转移概率描述了在智能体在状态 𝑠 下执行动作 𝑎 后,环境转移到下一个状态 𝑠′ 的概率。

5. 即时奖励 𝑟(𝑠, 𝑎, 𝑠′)

  • 定义: 即时奖励是一个标量函数,表示在智能体在状态 𝑠 执行动作 𝑎 后,环境反馈给智能体的奖励。
    • 这个奖励通常与下一个状态 𝑠′ 有关。

3、策略(Policy)

  策略(Policy)就是智能体如何根据环境状态 𝑠 来决定下一步的动作 𝑎(智能体在特定状态下选择动作的规则或分布)。

  策略是智能体学习和决策的核心,它决定了智能体在不同状态下应该采取什么样的行为,它可以是确定性的,也可以是随机性的。确定性策略(Deterministic Policy)直接指定智能体应该采取的具体动作,而随机性策略(Stochastic Policy)则考虑了动作的概率分布,增加了对不同动作的探索

1. 确定性策略(Deterministic Policy)

  • 定义: 确定性策略是指从状态空间到动作空间的映射函数,即给定某个状态,智能体会选择一个确定的动作。
  • 映射函数: 用符号 𝜋: 𝒮 → 𝒜 表示,表示策略将状态映射到唯一的动作。
  • 数学表示:
    确定性策略: π ( a ∣ s ) ≡ μ ( s ) \text{确定性策略:} \quad \pi(a|s) \equiv \mu(s) 确定性策略:π(as)μ(s)
    其中, μ ( s ) \mu(s) μ(s) 是一个确定性映射,将状态 s s s 映射到相应的动作 a a a

2. 随机性策略(Stochastic Policy)

  • 定义: 随机性策略表示在给定环境状态时,智能体选择某个动作的概率分布。
  • 随机性策略引入了随机性,即相同状态下可能选择不同的动作。
  • 数学表示: 用符号 𝜋(𝑎|𝑠) 表示,在状态 𝑠 下选择动作 𝑎 的概率
    随机性策略: π ( a ∣ s ) ≡ p ( a ∣ s ) \text{随机性策略:} \quad \pi(a|s) \equiv p(a|s) 随机性策略:π(as)p(as)
    其中, p ( a ∣ s ) p(a|s) p(as) 是在状态 s s s 下选择动作 a a a 的概率分布,且满足概率分布的性质:
    ∑ a ∈ A π ( a ∣ s ) = 1 \sum_{a \in \mathcal{A}} \pi(a|s) = 1 aAπ(as)=1
  • 随机性策略允许智能体在相同的状态下以不同的概率选择不同的动作,使得智能体在探索和利用之间能够找到平衡

3. 选择随机性策略的优点

  • 更好的探索性:
    • 引入一定的随机性有助于智能体更好地探索环境。
    • 在学习阶段,智能体可能通过尝试不同的动作来发现潜在的高奖励路径。
  • 多样性的动作:
    • 随机性策略使得智能体在相同的状态下选择多样的动作。
    • 这对于博弈等多智能体场景中非常重要,因为确定性策略可能会导致对手能够准确预测智能体的行为。
  • 避免易被预测:
    • 采用确定性策略的智能体对相同的状态会做出相同的动作,这使得其策略相对容易被对手预测。
    • 随机性策略的引入增加了对手对智能体行为的不确定性。

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

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

相关文章

人工智能企业引入S-SDLC,推动安全能力大跃升,保障AI技术体系深化落地

某人工智能公司是国际知名的上市企业,核心技术处于世界前沿水平。多年来,该企业在智慧教育、智慧医疗、智慧城市、智慧司法、金融科技、智能汽车、运营商、消费者等领域进行深度技术赋能,深入推进各个行业的智能化、数字化转型建设。 人工智能…

【开源】基于Vue+SpringBoot的智慧家政系统

项目编号: S 063 ,文末获取源码。 \color{red}{项目编号:S063,文末获取源码。} 项目编号:S063,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服…

简单实现Spring容器(一)

阶段1: 编写自己的Spring容器,实现扫描包,得到bean的class对象.思路: 使用 ElfSpringConfig.java 替代beans.xml文件作为配置文件,从中获取到: 1.扫描包,得到bean的class对象. 2.排除包下不是bean的 1.容器文件 ElfSpringApplicationContext.java 核心!!! package com.elf…

vuepress-----13、分割config

13、分割config config.js const headConfig require(./config/headConfig); const pluginsConfig require(./config/pluginsConfig); const themeConfig require(./config/themeConfig)module.exports {title: "小邵子",description: 小邵子的个人笔记,head: he…

Mybatis一级缓存与二级缓存

一、简介 数据库接收到sql语句后,需要词法/语法解析,优化sql语句,制定执行计划。多数情况下,相同的sql语句可能只是传入参数不同(如where条件后的值不同...)。 如果每次都需要经过上面的 词法/语法解析、语…

java基础之异常处理

1、概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 2、异常发生的原因 用户输入了非法数据。要打开的文件不存在。网络通信时连接中断,或者JVM内存溢出。 3、三种类型的异常 检查性异常:…

Unity UGUI TextMeshPro实现输入中文和表情包(Emoji)表情

目录 实现中文显示 准备工作 1、打开Window——TextMeshPro——FontAssetCreator 2、把字体文件放入SourceFont中 3、把CharacterSet改为Characters from File 4、把字体库文件放入Characters File 5、设置好参数点击Generate Font Atlas等待完成后保存 6、把生成后保存…

科普小知识-3D 打印是什么?

3D 打印是什么?作为近年来备受关注的前沿科技,3D 打印技术正在不断改变着制造业、医疗领域、艺术设计等多个领域的面貌。其又被称为增材制造,是一种通过电脑设计,逐层堆叠材料来创建三维物体的技术。 3D 打印的基本原理 3D 打印…

【Ajax】发送get请求获取接口数据

编写html实现通过Ajax发送get请求并获取数据 代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

LinuxBasicsForHackers笔记 -- 管理用户环境变量

查看和修改环境变量 env – 您可以通过从任何目录在终端中输入 env 来查看所有默认环境变量。环境变量的名称始终为大写&#xff0c;如 HOME、PATH、SHELL 等。 查看所有环境变量 set – 查看所有环境变量&#xff0c;包括 shell 变量、局部变量和 shell 函数&#xff08;例…

2. PyTorch——Tensor和Numpy

2.1Tensor和Numpy Tensor和Numpy数组之间具有很高的相似性&#xff0c;彼此之间的互操作也非常简单高效。需要注意的是&#xff0c;Numpy和Tensor共享内存。由于Numpy历史悠久&#xff0c;支持丰富的操作&#xff0c;所以当遇到Tensor不支持的操作时&#xff0c;可先转成Numpy…

conda配置不同版本的python及依赖库--conda conda conda

一、conda介绍 Conda 是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装多个不同版本的软件包及其依赖关系&#xff0c;并在它们之间轻松切换。 Conda 是为 Python 程序创建的&#xff0c;适用于 Linux&#xff0c;OS X 和Windows Conda可以构建不同的环境&#…

【计算机网络学习之路】HTTP响应报文Cookie原理

目录 HTTP响应报文格式 一. 状态行 状态码与状态码描述 二. 响应头 Cookie原理 一. 前因 二. Cookie的状态管理 结束语 HTTP响应报文格式 HTTP响应报文分为四部分 状态行&#xff1a;包含三部分&#xff1a;协议版本&#xff0c;状态码&#xff0c;状态码描述响应头&a…

企业计算机服务器中了mallox勒索病毒如何处理,Mallox勒索病毒解密

随着计算机技术的不断发展&#xff0c;越来越多的企业利用网络来提高工作效率&#xff0c;但随之而来的网络安全威胁也在不断增加&#xff0c;各种勒索病毒种类不断增加&#xff0c;给企业的数据安全带来严重的威胁&#xff0c;影响企业的生产业务开展。近期&#xff0c;云天数…

opencv的图像直方图处理

1 opencv的直方图 1.1 什么是直方图 直方图是对数据进行统计的一种方法&#xff0c;用于显示数据中各个数值或数值范围的分布情况。它将数据划分为一系列的区间&#xff08;也称为“箱子”或“bin”&#xff09;&#xff0c;然后统计每个区间中数据出现的频次&#xff08;或频…

Flink-源算子-读取数据的几种方式

Flink可以从各种来源获取数据&#xff0c;然后构建DataStream进行转换处理。一般将数据的输入来源称为数据源&#xff08;data source&#xff09;&#xff0c;而读取数据的算子就是源算子&#xff08;source operator&#xff09;。所以&#xff0c;source就是我们整个处理程序…

微服务2 Docker学习 P42-P60

Docker学习视频https://www.bilibili.com/video/BV1LQ4y127n4?p42&vd_source8665d6da33d4e2277ca40f03210fe53a 文档资料: 链接&#xff1a;https://pan.baidu.com/s/1P_Ag1BYiPaF52EI19A0YRw?pwdd03r 提取码&#xff1a;d03r Docker 其他笔记 服务器容器化-docker(全…

redis-学习笔记(list)

因为 list 可以头插头删, 尾插尾删, 所以其实更像 C 中的 deque (双端队列) ---- 知道就好, 别乱说, 具体底层编码是啥, 俺也不知道(没注意过) 可以通过组合, 把 list 当作队列 / 栈来用 list 的几种底层编码: ziplist(压缩列表) , linkedlist(链表) , quicklist ziplist 就是将…

12-07 周四 Pytorch 使用Visdom 进行可视化

简介 在完成了龙良曲的Pytroch视频课程之后&#xff0c;楼主对于pytroch有了进一步的理解&#xff0c;比如&#xff0c;比之前更加深刻的了解了BP神经网络的反向传播算法&#xff0c;梯度、损失、优化器这些名词更加熟悉。这个博客简要介绍一下在使用Pytorch进行数据可视化的一…

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架

1.安装ThinkPHP6框架 这里我们使用的是composer安装的安装方式&#xff0c;请确保电脑已经安装了composer&#xff0c;如未安装可查看Composer 安装与使用 | 菜鸟教程 composer create-project topthink/think tp 上面命令安装的是稳定版的&#xff0c;也是最新的稳定版&…