强化学习(一)简介

在这里插入图片描述

强化学习这一概念在历史上来源于行为心理学,来描述生物为了趋利避害而改变自己行为的学习过程。人类学习的过程其实就是为达到某种目的不断地与环境进行互动试错,比如婴儿学习走路。强化学习算法探索了一种从交互中学习的计算方法。

1、强化学习

强化学习算法的逻辑是,如何将接收的信息映射到行为从而获得最多的奖励。学习者只能通过不断尝试来发现哪些行为会产生最多的奖励,注意:当前的行为不仅会影响当前,还会影响未来,因此会影响所有随后的奖励。因此强化学习有两个重要的特征:试错搜索延迟奖励

强化学习不同于监督学习。监督学习是指从标记的训练数据来推断一个功能,当出现训练集中没有的情况时可以正常地行动。强化学习不同于无监督学习。无监督学习是在未标记的数据集中寻找隐藏的结构。强化学习是试图最大化奖励信号,因此,可以认为其是第三种机器学习范式。在所有形式的机器学习中,强化学习是最接近人类的学习方式。

2、典型案例

  • 象棋博弈中所谓的 “走一步,看十步”、“棋输一着,满盘皆输” 。
  • 小羚羊在出生半个小时后就可以奔跑。
  • 扫地机器人根据电池电量和过去返回充电点的经历来决定是继续收集垃圾还是返回充电点。

这些案例都涉及决策主体与其环境的互动,通过预测未来环境的状态,来正确地选择有远见的行动。另外,这些案例都涉及明确的目标,棋手知道自己是否赢了,小羚羊知道自己什么时候摔倒,扫地机器人知道电池电量什么时候耗尽。随着时间的推移,决策主体可以根据其经验来提高其相应的能力。

3、强化学习的要素

除了智能体(Agent)外,强化学习系统包括四个要素:策略(Policy),奖励(Reward),价值(Value)以及环境模型(Model)。

  • 策略(Policy)
    策略定义了智能体对于给定状态所作出的行为,换句话说,就是一个从环境中感知的状态到采取行动的映射。策略是强化学习系统的核心,因为可以通过策略来确定每个状态下的行为。

  • 奖励(Reward)
    奖励定义了强化学习问题的目标,在每个步长中,环境向智能体发送的标量即为奖励,智能体的唯一目标就是在长期运行中最大化所获得的总奖励,因此它能定义智能体表现的好坏,也可以认为奖励是影响策略的主要因素。

  • 价值(Value)
    奖励是对即时收益的衡量,而价值是对长期收益的衡量。简单来说,一个状态的价值是智能体从该状态开始,未来积累的奖励总量的期望值。例如,一种状态总是产生很低的即时奖励,却具有较高的价值,因为该状态的未来会伴随产生具有较高即时奖励的其他状态。这类似于,备考的过程很痛苦(较低的奖励),但考试会取得好的成绩(较高的价值)。
    没有奖励就没有价值,评估价值的唯一目的是为了获得更多的奖励,但是,当我们评估策略的好坏时,我们最关心的是价值,我们寻求能带来最高价值而不是最高的奖励的动作,因为从长远来看,这种动作可以带来最大化的奖励总和。不幸的是,奖励基本上是由环境直接给予的,而价值必须根据智能体在整个周期中的表现进行估计。事实上,几乎所有强化学习算法的最重要的组成部分就是有效估计价值的方法。

  • 环境模型(Model of the environment)
    环境模型是一种对环境的模拟,或者说,它允许对环境的行为进行推断。例如,给定一个状态和动作,模型可能会预测下一个状态和下一个奖励。但并非所有的强化学习系统都需要一个模型,因此有基于模型(Model-based)和不基于模型(Model-free)两种不同的方法,

4、限制和范围

强化学习在很大程度上依赖状态,因为状态作为策略和价值函数的输入,同时也作为环境模型的输入,它向智能体转达 “环境如何” 的感觉,状态可以视为智能体可以获得的关于环境的任何信息。

大多数强化学习方法都是围绕价值函数构建的,但是解决强化学习问题并不一定要这样做,例如遗传算法、遗传规划、模拟退火等求解方法和其他优化方法从不估计价值函数,我们称这些方法为进化方法,如果策略的空间足够小,或者说构造成好的策略比较容易找到,并且有足够的时间用于搜索,那么进化方法是有效的。此外,当智能体无法感知环境的完整状态时,进化方法具有优势。

强化学习方法可以在与环境互动的同时学习,这是进化方法不能做到的。在许多情况下,能够利用个体行为相互作用细节的方法可能比进化方法更有效。进化方法忽略了强化学习问题的许多有用的结构:① 它们所搜索的策略是从状态到动作的函数;② 它们不会注意个体在其生命周期经历了哪些状态,或采取了哪些动作。

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

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

相关文章

ftp安装与配置 云服务器 CentOS7

1、FTP的安装 #安装 yum install -y vsftpd#设置开机启动 systemctl enable vsftpd.service#启动 systemctl start vsftpd.service#停止 systemctl stop vsftpd.service#查看状态 systemctl status vsftpd.service 2、配置FTP #修改前先进行备份文件 cp /etc/vsftpd/vsftpd…

SAP PI之MessageMapping

下图是ESR配置中各种对象的关联关系,注意OperationMapping和MessageMapping的方向性 MsgMapping是两个MassageType之间的关系,用于ServiceInterface的OperationMapping中发送和接收方在Request和Response结构之间的映射,如果ServiceInterface…

《SRE Google 运维解密》笔记

指导思想 介绍 Google 生产环境介绍 borg 是 k8s 的前身。 拥抱风险 服务质量 现在的 SLO 没有更细粒度的划分到季度 如果划分到季度,需要用这个数据来限制什么或者进行什么活动? L1S 链路的 SLA 的签署工作已经做了很多 对于 SLA 的达成情况数据没有…

代码随想录算法训练营第七天|哈希表理论基础,454.四数相加II ,383. 赎金信 ,15. 三数之和 ,18. 四数之和

刷题建议 刷题建议与debug 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。写博客,将自己的感悟沉淀下来,不然会忘大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题&#xff0c…

AWS EC2的SSM配置(AWS云中的跳板机)

问题 开发人员需要访问AWS云中私有子网的数据库服务等,都需要通过EC2进行SSH隧道代理。这里假设本地已经有一款稳定优秀的SSH客户端工具,并且假设已经会熟练使用SSH的隧道代理。 1.创建EC2 搜索找到EC2服务,如下图: 点击“启动…

Docker 配置国内镜像源加速

1. 国内镜像源总览 名称路径中国官方镜像https://registry.docker-cn.com网易163镜像http://hub-mirror.c.163.com中科大镜像https://docker.mirrors.ustc.edu.cn阿里云镜像https://[xxx].mirror.aliyuncs.com 2. 阿里云镜像源 地址:https://cr.console.aliyun.c…

【开源】基于JAVA+Vue+SpringBoot的校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

PLSQL启动报错:Initialization error,不能初始化

出现场景:我这里原来有个旧版的PLSQL,想用新版的又装了个新版,启动的时候报错 解决办法 1.核对程序位数 第一个提示明显看到是和程序位数相关的,不管是32位还是64位要做到向匹配 2.设置oci.dll 第二个提示可以看到是和oci.dll…

jenkins环境搭建

jenkins环境搭建 1.环境说明2.环境准备1.jdk安装2.安装Git3.安装sshpass4.安装Maven 3.安装Jenkins(war包方式安装)1.安装2.镜像加速 4.官网提供的yum方式安装5.访问 1.环境说明 keyvalue环境centos7jdk版本11git2.43.0maven3.9.6jenkins最新版本http://mirrors.jenkins-ci.or…

(收藏)数据治理:一文讲透数据安全

数据治理:一文讲透数据安全 数据安全是数据治理的核心内容之一,随着数据治理的深入,我不断的碰到数据安全中的金发姑娘问题(指安全和效率的平衡)。 DAMA说,降低风险和促进业务增长是数据安全活动的主要…

【从零开始学习Java重要集合】深入解读ThreadLocal类

目录 前言: ThreadLocal: ThreadLocal的内部结构: ThreadLocal的常用方法: 1.set方法: 2.get方法: 3.setInitialValue方法 remove方法(): ThreadLocalMap&…

第十二章 Java内存模型与线程(一)

文章目录 12.3 Java内存模型12.3.1 主内存与工作内存12.3.2 内存间交互操作小结12.3.3 对于volatile型变量的特殊规则12.3.5 原子性、可见性与有序性12.3.6 先行发生原则 12.3 Java内存模型 12.3.1 主内存与工作内存 1.Java 内存模型规定了所有的变量都存储在主内存&#xff…

Java反转单链表

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ //核心思想,利用cur和Curnex…

驱动树莓派直流电机(二)——python

一、安装spyder 我喜欢用spyder编写python 有两种方法安装spyder,第一种(版本更新),但是我更细化第二种,简单 方法一:在ubuntu PC端输入如下代码 wait~~~~~~~~~~~ 安装的慢就用下面这个代码 或者设置切…

脱离于ASP.NET 和Visual Studio编辑Razor脚本

Razor Pad是一个编辑Razor脚本的工具,脱离于ASP.NET 和Visual Studio。 github地址:https://github.com/RazorPad/RazorPad 如果在编译源码时出现:签名时出错: 未能对 bin\Debug\app.publish\RazorPad.exe 签名。SignTool Error: No certifi…

JFinal学生信息管理系统

JFinal学生信息管理系统 项目地址:mendianyu/StudentManage: JFinal学生信息管理系统 (github.com) 环境介绍: IDE:IDEA 2021.2.3 jdk:1.8 maven:3.6.3 项目介绍:JFinal框架实现的学生信息管理系统,完成简单的学生信…

一文解析低代码平台

一、低代码概念 低代码开发平台是一种无需编码或者只需要少量代码即可快速生成应用程序的开发平台,通过可视化进行应用程序开发的方法,让不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程…

【QT】多层QTreeWidget与QStackedWidget的关联操作

通过点击多层QTreeWidget来控制QStackedWidget中的page页面切换 treeWidget设计 treeWidget设计&#xff1a; // treeWidget设计ui->treeWidget->clear();ui->treeWidget->setColumnCount(1);//第一层QStringList l;l<<"管理系统";QTreeWid…

JavaScript基础(26)_dom增删改练习

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>DOM增删改练习</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>table {borde…

分布式事务:构建无障碍的云原生应用的完美解决方案

目录 一、前言 二、分布式事务概述 2.1 什么是分布式事务 2.2 分布式事务的挑战 2.3 分布式事务的分类 三、传统解决方案分析 3.1 两阶段提交协议&#xff08;2PC&#xff09; 3.2 三阶段提交协议&#xff08;3PC&#xff09; 3.3 补偿事务 3.4 其他传统解决方案 四…