0基础小白十分钟入门人工智能强化学习(附有实战源码)

news2024/9/22 19:25:30

强化学习概述
1.1 强化学习的学习任务目标
强化学习(Reinforcement Learning, RL),用官话讲,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。

在我个人的理解,就是我们使用特定的训练方法去训练一个‘智慧生物’,让它能去实现一系列的功能。通过奖励(有好有坏)反馈给这个‘智慧生物’,让他向着奖励越来越高的方向去靠拢,从而达到我们所期望赋予他的能力。比如拿到高分的超级玛丽亚,让他不踩到怪物又能吃到蘑菇。比如飞机大战游戏中躲避敌人子弹又消灭敌人的飞机,甚至自动驾驶(可以在虚拟环境中训练)也有强化学习的应用。

1.2 强化学习的不同分类依据和具体分类方法
强化学习有许多纬度的分类标准,下面按照比较常见的分类方式进行分类。

1.2.1
根据agent是否理解其所处的环境,即是否知道所依赖的马尔科夫决策过程的状态转移概率及对应回报,可以将强化学习方法分为:无模型的强化学习(Model-Free RL)和基于模型的强化学习(Model-Based RL)。

简单来说,Model-Free RL的agent 没有跟环境进行交互,环境的所有信息都有了,经典的Sarsa、Q-Learning算法就是Model-Free的。Model-Based RL的agent没有环境的信息,需要跟环境进行交互,采集到很多的轨迹数据,agent 从轨迹中获取信息来改进策略,从而获得更多的奖励。Dyna-Q算法就是Model-Based RL的算法。

1.2.2

根据agent选取动作的策略不同,可以将强化学习方法分为:基于概率的强化学习(Policy-Based RL)和基于价值的强化学习(Value-Based RL)。

举个例子,在经典的AC算法模型中,由Actor神经网络和Critic网络组成,Actor用于选择一个动作,而Critic通过对Actor选择的动作进行‘评分’,用于评价Actor这个网络的好坏。在这里Actor是Policy-Based RL的,因为他是基于动作的概率去选择接下来下一个动作。而Critic是Value-Based RL的。

1.2.3

根据策略或价值函数的更新频率,可以将强化学习方法分为:回合更新强化学习(Monte-Carlo Update RL, MC)和单步更新强化学习(Temporal-Difference Update RL, TD)。

简单点说,就是TD可以在最终结果出来之前进行更新,这种更新又叫做在线学习,而MC必须等最终状态到达才行,叫做离线学习。

1.2.4

根据agent是否直接与环境互动进行学习(更新策略或价值函数),可以将强化学习方法分为:在线学习(On-Policy RL)和离线学习(Off-Policy RL)。

他们的分类标准就是目前agent所学习的样本是不是用当前的策略采集到的。举个例子,如果是Off-Policy RL,当前的Actor网络能使用老的Actor网络所产生的动作和奖励序列进行更新,文章的主角PPO算法中便使用到了重要性采样的概念,能用其他策略产生样本去更新当前的策略,提高非常多的效率。

1.3 强化学习代表性开源实验环境
OpenAI Gym and Universe

最出名的莫过于Gym和Universe了。OpenAI Gym用于评估和比较强化学习算法的好坏。它的接口支持在任何框架下的算法,像TensorFlow, Theano, Keras这些都可以。

入门实战项目

项目介绍:使用的是PPO算法和小车上山的环境进行试验.
在这个环境中,小车的目的是登上右侧的山坡,训练的目的就是让小车能尽可能在少的时间通过左右移动发力登上右侧山顶.
在这里插入图片描述

在该环境下训练效果如下,在接近600轮次时已经收敛了.

在这里插入图片描述

源码及环境搭配,使用方法为付费内容:https://mbd.pub/o/bread/Y56Ym5xp

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

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

相关文章

Mybatis-Plus 乐观锁与代码生成器

目录 乐观锁 问题引入 乐观锁实现思路 实现步骤 代码生成器 代码生成器分析 代码生成器实现 乐观锁 问题引入 业务并发现象带来的问题:秒杀 假如有100个商品或者票在出售,为了能保证每个商品或者票只能被一个人购买,如何保证不会出现超买或者重复…

记一次nginx崩溃事件

一、事件描述 2023年春节复工第一天,项目组同事反馈说业务系统中图像处理代理Nginx服务于1月23日发生崩溃,完成了重启操作,检查nginx的日志有如下报错: 2023/01/23 11:07:07 [crit] 3237#3237: *2253009 pwritev() "/var/c…

网络编程-----(Socket编程TCP)

在咱们的TCP API中,也是主要是涉及到两个类: 1)ServerSocket:主要是给TCP服务器来进行使用的; 2)Socket:我们既需要给客户端来进行使用,也需要给服务器来进行使用; 这样就是说我们是不需要使用专门的类来进行表示传输的包&#x…

Java学习之抽象模板模式

目录 一、基本介绍 二、模板设计模式能解决的问题 三、最佳实践 一、AA类 二、BB类 三、main方法实现 四、提取相同语句 五、建立继承关系 父类-Template 子类-AA类 子类-BB类 六、运行中的动态绑定机制 一、基本介绍 抽象类体现的就是一种模板模式的设计&#xff…

【Git】概述

目录 1.1 是什么 介绍 历史时间轴 版本控制工具 1.2 能干嘛 作用 Git工作机制 代码托管中心 集中式版本控制系统 分布式版本控制系统 1.3 去哪下 命令行工具:Git for windows 操作系统中可视化工具:TortoiseGit(了解) GitHub网站 1.1 是什…

带你走进Java8新特性Stream流的小世界

目录 一. 什么是流(Stream) 1.1 流的定义 1.2 流的特点 1.3 操作流 1.4 创建流 二. 流的中间操作 2.1 流的筛选与切片 2.1.1 filter 2.1.2 limit 2.1.3 skip 2.1.4 distinct 2.2 流的映射 2.2.1 map 2.2.2 flatMap 2.3 流的排序 2.3.1 s…

智公网:2023年教师编必背30考点

1、制度化教育阶段开始于:近代。 2、各国的学校教育系统基本形成于:19世纪末。 3、现在世界上大多数国家的义务教育年限在:9年或9年以上。 4、“不愤不启,不悱不发”启发教学法的最早倡导者是:孔子。 5、“建国君民…

【Spring】Spring 6 新特性一一HTTP Interface

简介 Spring 6 的第一个 GA 版本发布了,其中带来了一个新的特性——HTTP Interface。 这个新特性,可以让开发者将 HTTP 服务,定义成一个包含特定注解标记的方法的 Java 接口,然后通过对接口方法的调用,完成 HTTP 请求…

硬盘损坏数据恢复怎么操作?恢复数据的常用方法

硬盘一般固定在电脑里面的存储装置,里面保存着我们大量的数据。随着电脑的使用越加广泛,有时不免出现一些问题,比如硬盘在使用过程中出现数据错误,或者是硬盘的内部零件出现故障。出现这些问题,硬盘损坏数据恢复怎么操…

Redis实现UV统计 | 黑马点评

一、HyperLogLog 1、为什么用HyperLogLog 先介绍两个概念: UV:全称 Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人、1 天内同一个用户多次访问该网站,只记录 1 次。PV:全称 …

车载以太网 - SomeIP测试专栏 - 总纲

关于车载以太网中的SomeIP在网上也逐渐有越来越多的资料,讲的也是非常好;但是个人认为讲的泛,很难让初学者或者初入门者真正了解SomeIP到底是一个什么东西,以及它究竟在车载上有什么作用,本专栏会由浅入深的讲解SomeIP整个协议内容规范,并且对Tc8中SomeIP相关的协议测试用…

实习日记!

目录 http://localhost:5789实习第三天 接下来几天的target 实习第四天 Git的操作 实习第五天 12月5日-Mon 12月6日 12月9日 12月12日 12月15日 useState() hook 12月16日 useEffect() hook async 函数 异步编程 回调函数 12月17日 C#中的?&#x…

postgresql源码学习(54)—— HotStandby从库必须设置大于等于主库的参数

新的一篇本来计划研究lazy_scan_heap函数,但过于复杂还没研究出来… 下午做题遇到一个这样的问题,之前没太关注过,打算学习学习,避免主从配置踩坑。 题干搜一搜,没搜出啥有用的玩意…渣翻成英文搜一搜,搜出…

windows搭建go语言开发环境,IDEA安装go插件并运行Hello world代码

2023年1月27日1.Windows上安装Go语言开发包参考链接:http://c.biancheng.net/view/3992.html1.1.下载Go语言开发包可以在Go语言官网 (https://golang.google.cn/dl/) 下载Windows 系统下的Go语言开发包,如下图所示。这里我们下载的…

学习Docker就应该掌握的dockerfile语法与指令

在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile。Docker commitDocker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。docker commit 容…

Git场景分析

当前的开发环境如下,我们每个人都对这个项目已经开发一段时间,接下来我们要切换成团队开发模式。 也就是我们由一个团队来完成这个项目实战的内容。团队有组长和若干组员组成(组长就是开发中的项目经理)。 练习场景如下: 1.由组长&#xff0…

LeetCode[1202]交换字符串中的元素

难度:中等题目:给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] [a, b]表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs中任意一对索引处的字符。返回在…

java递归问题——汉诺塔

目录 🌲🌲什么是汉诺塔? 🐰 当只有1个圆盘的时候: 🐰 当只有2个圆盘的时候: 🐰 当只有3个圆盘的时候: 🌲🌲汉诺塔代码 🐰思路 &am…

电脑安全模式怎么进?3种方式教会你!

安全模式经常是电脑死机的时候,我们会选择的一种方式。因为安全模式可以帮助我们修复电脑系统里面的一些错误,电脑安全模式怎么进?其实很简单,主要有以下3种方式,你可以根据你的需要来选择其中一种! 操作环…

剑指 Offer 第7天(中午睡起来都十二点了,今天摆了吧)

目录 剑指 Offer 26. 树的子结构 剑指 Offer 27. 二叉树的镜像 剑指 Offer 28. 对称的二叉树 剑指 Offer 26. 树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点…