学习笔记--强化学习(1)

参考:https://blog.csdn.net/koulongxin123/article/details/122676149

1.什么是强化学习?

   (1)定义

       基于环境的反馈而行动,通过不断与环境的交互、试错,最终完成特定目的或者使得整体行动收益最大化(是一种通过与环境交互,学习最优的状态到行动的映射关系(即在某个状态下,采取所有行为的概率分布),以会的最大累计期望回报的学习方法)。强化学习不需要训练数据的label,但是它需要每一步行动环境给予的反馈,是奖励还是惩罚。反馈可以量化,基于反馈不断调整训练对象的行为。

(2)特点:

  1. 没有监督者,只有量化奖励信号
  2. 反馈延迟,只有进行到最后才知道当下的动作是好是坏
  3. 强化学习属于顺序决策,根据时间一步步决策行动,训练数据不符合独立同分布条件
  4. 每一步行动影响下一步状态,以及奖励

2.强化学习框架:智能体-环境

(1)智能体:强化学习系统

         可以感知环境的状态(State),并根据反馈的奖励(Reward)学习选择一个合适的动作(Action),来最大化长期总收益。对于推荐系统,智能体为推荐系统本身,它包括基于深度学习的推荐模型、探索(explore )策略,以及相关的数据存储(memory )。

智能体的组成

强化学习的智能体可能有一个或多个如下的组成成分:

策略函数(policy function):把输入的状态变成行为

价值函数(value function):对当前状态进行评估(对后续收益的影响)

简直函数是未来奖励的一个预测,用来评估状态的好坏(折扣因子:希望尽可能在短的时间里面得到尽可能多的奖励)

模型(model):表现智能体对环境的理解

类型

  1. 基于价值的智能体(value-based agent)

显示的学习价值函数,隐式的学习策略。它维护一个价值表格或价值函数,并以此选取价值最大的动作。(常用算法:Q-Learning   、Sarsa

A.基于策略的智能体(policy-based agent)

直接学习策略。当学习好环境以后,在每个状态都会得到一个最佳行为。(常用算法:策略梯度算法)

B.有模型智能体(model-based agent)

根据环境经验,对环境进行建模构建一个虚拟世界,同时在虚拟世界和现实世界学习。

要求:能对环境建模。即能预测下一步的状态和奖励

C.免模型智能体(model-free agent)

不对环境进行建模,直接与真实环境交互来学习最优策略。

目前,大部分深度强化学习都采用免模型学习。

(2)环境:与智能体交互的外部

环境会接收智能体执行的一系列动作,对这一系列动作进行评价并转换为一种可量化的信号反馈给智能体。

  1. 动作:智能体的行为表征
  2. 动作空间:(在给定的环境中,有效动作的集合)

分类:

(1)离散动作空间(discrete action space):智能体的动作数量是有限的

(2)连续动作空间(continuos action space):在连续空间中,动作是实值的向量

  1. 状态:智能体从环境获取的信息
  2. 奖励

      奖励信号定义了强化学习问题的目标,在每个时间步骤内,环境向强化学习发出的标量值即为奖励,它能定义智能体表现好坏,类似人类感受到快乐或是痛苦。因此我们可以体会到奖励信号是影响策略的主要因素。我们将奖励的特点总结为以下三点:

  1. 奖励是一个标量的反馈信号
  2. 它能表征在某一步智能体的表现如何
  3. 智能体的任务就是使得一个时段内积累的总奖励值最大

   3.策略:智能体根据状态进行下一步动作的函数

  • 定义

是一个函数,把输入的状态变成行为。

  • 分类

随机性策略(stochastic policy)

π函数π ( a∣s ) = P ( A t = a∣S t = s ) ,表示在状态s下输出动作为a的概率。然后通过采样得到一个动作。

确定性策略(deterministic policy)

采取最有可能的动作,即a ∗= arg maxa π ( a∣s )

问题:比较随机性策略和确定性策略的优缺点

强化学习一般使用随机性策略,因为

  1. 随机性能更好的探索环境
  2. 随机性策略的动作具有多样性(不是唯一确定的)
  3. 确定性策略对相同环境做出相同的动作,这会导致很容易被预测
  1. 状态转移概率:智能体做出动作后进入下一状态的概率

3.学习与规划

A.学习(learning)

由于环境初始时是未知的,智能体需要不断与环境交互,逐渐改进策略

B.规划(planning)

获得学习好的模型后,智能体不需要实时与环境交互就能知道未来环境。可以根据当前状态,根据模型寻找最优策略。

C.解决思路

先学习环境如何工作,建立模型。再利用模型进行规划。

4.探索和利用

探索:通过试错来理解采取的某个行为能否得到好的奖励。

利用:直接采取已知的可以得到很好奖励的行为。

(探索:看某个行为的奖励,利用:选取已知可以取得最好奖励的行为)

探索和利用窘境(exploration-exploitation dilemma):探索(即估计摇臂的优劣)和利用(即选择当前最优摇臂) 这两者是矛盾的,因为尝试次数(即总投币数)有限,加强了一方则会自然削弱另一方

                    

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

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

相关文章

YOLOv9改进策略:注意力机制 | SimAM(无参Attention),效果秒杀CBAM、SE

💡💡💡本文改进内容:SimAM是一种轻量级的自注意力机制,其网络结构与Transformer类似,但是在计算注意力权重时使用的是线性层而不是点积 yolov9-c-CoordAtt summary: 972 layers, 51024476 parameters, 510…

L4 级自动驾驶汽车发展综述

摘要:为了减小交通事故概率、降低运营成本、提高运营效率,实现安全、环保的出行,自动驾驶 技术的发展已成为大势所趋,而搭配有L4 级自动驾驶系统的车辆是将车辆驾驶全部交给系统。据此,介绍了自动驾驶汽车的主流技术解决方案;分析了国内外L4 级自动驾驶汽车的已发布车型、…

学点Java打小工_Day4_Homework

1 统计数字 1 int[] scores{0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,1,2,3,9}; 求出上面数组中0-9分别出现的次数 (双重for循环) Testpublic void solveProblem1() {int[] scores {0,0,1,2,3,5,4,5,2,8,7,6,9,5,4,8,3,1,0,2,4,8,7,9,5,2,…

JavaWeb笔记 --- 三、MyBatis

三、MyBatis 概述 MyBatis是一个持久层框架,用于简化JDBC Mapper代理开发 在resources配置文件包中创建多级目录用 / MyBatis核心配置文件 enviroments:配置数据库连接环境信息。 可以配置多个enviroment,通过default属性切换不同的envir…

大衍数列-蓝桥杯?-Lua 中文代码解题第2题

大衍数列-蓝桥杯?-Lua 中文代码解题第2题 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。 它的前几项是:0、2、4、8、12、18、24、32、40、50 … 其规律是:对偶数项,是序号平方再除…

数据可视化-ECharts Html项目实战(1)

在之前的文章中,我们学习了如何安装Visual Studio Code并下载插件,想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 安装 Visual Studio…

MATLAB环境下基于稀疏方法的基线校正

以光谱信号为例进行说明,光谱信号中基线的存在会降低样品定性和定量分析的准确性,因此在光谱分析前对光谱进行基线校正具有重要意义。光谱数据在采集过程中易受温度、湿度等环境因素影响,发生基线偏移现象。该现象不仅会导致纯谱的谱峰发生形…

CSS3技巧38:3D 翻转数字效果

博主其它CSS3 3D的文章: CSS3干货4:CSS中3D运用_css 3d-CSDN博客 CSS3干货5:CSS中3D运用-2_中3d-2-CSDN博客 CSS3干货6:CSS中3D运用-3_css3d 使用-CSDN博客 最近工作上烦心的事情太多,只有周末才能让我冷静一下 cod…

AI毕业论文降重GPTS,避免AI检测,高效完成论文

视频演示 AI毕业论文降重GPTS,避免AI检测,高效完成论文! 开发目的 “毕业论文降重”GPTS应用,作用为:重新表述学术论文,降低相似性评分,避免AI检测。 使用地址 地址:毕业论文降重…

回答自己一年前的一个问题,python如何动态拼接sql

首先谈谈应用场景吧,前提是针对查询接口做接口自动化,接口校验的脚本中,一般以响应报文作为预期值,通过sql查出的数据库值作为实际值,二者对比通过则认为接口输出正确。而sql从何而来呢,对于查询接口一般是…

【MySQL高级篇】08-事务篇

第13章:事务基础知识 #09-事务的基础知识#1.事务的完成过程 #步骤1:开启事务 #步骤2:一系列的DML操作 #.... #步骤3:事务结束的状态:提交的状态(COMMIT) 、 中止的状态(ROLLBACK)#2. 显式事务#2.1 如何开启? 使用关键…

npm下载慢换国内镜像地址

1 设置淘宝镜像地址 npm config set registry http://registry.npm.taobao.org 2 查看当前下载地址 npm config get registry 3 其它镜像地址列表: 1. 官方镜像:https://registry.npmjs.org/ 2. 淘宝镜像:https://registry.npm.taobao.o…

Linux 基础-查看和设置环境变量

一,查看环境变量 在 Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell 以及其他程序来设定,其是保存在变量 PATH 中。环境变量是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型…

图解缓存淘汰算法 LRU、LFU | 最近最少使用、最不经常使用算法 | go语言实现

写在前面 无论是什么系统,在研发的过程中不可避免的会使用到缓存,而缓存一般来说我们不会永久存储,但是缓存的内容是有限的,那么我们如何在有限的内存空间中,尽可能的保留有效的缓存信息呢? 那么我们就可以…

VS2022实现简单控件的缩放

private float X;//当前窗体的宽度private float Y;//当前窗体的高度public Form1(){InitializeComponent();}// 将控件的宽,高,左边距,顶边距和字体大小暂存到tag属性中private void setTag(Control cons){foreach (Control con in cons.Con…

C语言之归并排序

目录 一 简介 二 代码实现 三 时空复杂度 A.时间复杂度: B.空间复杂度: C.总结: 一 简介 归并排序(Merge Sort)是一种基于分治策略的高效排序算法,其基本思想是将一个大问题分解为若干个规模较小且相…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:RowSplit)

将子组件横向布局,并在每个子组件之间插入一根纵向的分割线。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 RowSplit通过分割线限制子组件的宽度。初始化…

数据可视化-ECharts Html项目实战(2)

在之前的文章中,我们学习了如何创建简单的折线图,条形图,柱形图并实现动态触发,最大最小平均值。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下…

11.进程的同步与互斥

11.进程的同步与互斥 计数信号量及其初始化 和王道里面学的PV操作一摸一样,带个count变量,带个阻塞队列 //D:\code\x86\code\start\start\source\kernel\include\ipc\sem.h #ifndef OS_SEM_H #define OS_SEM_H#include "tools/list.h"/*** 进程同步用的计数信号量*…

linux源配置:ubuntu、centos

1、ubuntu源配置 1)先查电脑版本型号: lsb_release -c2)再编辑源更新,源要与上面型号对应 参考:https://midoq.github.io/2022/05/30/Ubuntu20-04%E6%9B%B4%E6%8D%A2%E5%9B%BD%E5%86%85%E9%95%9C%E5%83%8F%E6%BA%90/ /etc/apt/…