强化学习代码实战(2) --- 多臂赌博机

目录

前言

1.Python基础

2.Numpy基础

 3.多臂赌博机

参考文献


前言

      本文内容来自于南京大学郭宪老师在博文视点学院录制的视频,课程仅9元地址,配套书籍为深入浅出强化学习 编程实战 郭宪地址。

1.Python基础

1. print()

可以用该语句查看当前数据的情况,验证数据过程是否正确,也就是验证代码写的是否正确。

2. if...else...

 

3. for循环

4. while循环

5. 函数定义

6. 类

数据成员

函数成员

 

 子类初始化时要用super()(本质上还是对基类进行初始化)

 

2.Numpy基础

 3.多臂赌博机

      多臂赌博机希望可以得到摇动N次后得到到最高的回报,对于该赌博机,有回报模型(摇一次出多少币是确定的),但没有状态转移模型,所以是一个无模型问题。

       以下图为例,在多臂赌博机中,动作a=[0,1,2]分别代表对三个摇臂的动作,而每个摇臂对应不同回报,所以服从三个回报,状态s,在本例中较为简单,对某一个摇臂动作,然后返回初始状态,再继续对某一个摇臂动作,再返回初始状态......,循环往复。本例中的评估,基于行为值函数,本质上是对当前动作回报值的计算(期望,也就是摇N次对回报取平均值)。我们需要分别得到三个摇臂的q(q(a1),q(a2),q(a3))。

      进而我们看一下实现的过程,假设q[0],q[1],q[2]的期望(未知)分别是1,10,6(满足正态分布),初始化时我们对每一个摇臂进行一次实验,分别得到3,4,6个金币,根据贪婪策略(选回报最大动作,也就是摇臂3),连续执行十次,按照期望(正态分布)得到60金币,但如果选择摇臂2,十次后可得到100金币,所以这时贪婪策略就不太合适。所以出现了探索-利用平衡策略,利用就是用当前最好策略,探索就是有一定概率选择其他不那么好的动作。

 

     再看一下伪码和源码的对应关系。

     代码中可修改的内容。

用到的三种策略

\xi -greedy:简单理解,以摇臂赌博机为例,第一次探索q[0]=0.2,q[1]=0.3,q[2]=0.6,\varepsilon=0.1,此时有0.9的概率继续选择2的动作,有0.1的概率选择1的动作,这就增加的探索能力,假设选择了动作1,立即汇报为1.5,那么q[1]=0.9,成为最高的回报值,下次有0.9被选择的概率。(比较彼此回报时用的是平均回报)

 

ucbq_{ucb}分别计算不同动作的累计回报,假设谁大选谁,\frac{}{q}代表各自动作的平均回报值,假设动作3的平均回报是0.6为最大,但连续选择3次之后,第四次n(动作总次数)变为4,n_{a}为动作1,2,3各自的次数,那么此时对动作1,2而言n_{a}较小,n大,所以q_{ucb}对应的值会超过动作3,以此实现探索。

 bolzman:简单理解是利用概率方式,优先选回报最多的动作,但对回报低的动作也有概率选择。

 

参考文献

1.深入浅出强化学习 编程实战 郭宪

2. 博文视点学院

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

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

相关文章

基于食肉植物优化的BP神经网络(分类应用) - 附代码

基于食肉植物优化的BP神经网络(分类应用) - 附代码 文章目录 基于食肉植物优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.食肉植物优化BP神经网络3.1 BP神经网络参数设置3.2 食肉植物算法应用 4.测试结果…

MSP430F5529时钟系统配置

1、为什么要进行时钟管理?   时钟系统是一个数字器件的命脉,对于普通的51单片机来说,它的时钟来源只有外部晶振,然后每12个振荡周期完成一个基本操作,所以也叫做12T单片机,但对于当前高级一点的单片机来…

一文解读 SmartX 超融合虚拟化下的网络 I/O 虚拟化技术

随着技术的不断发展,不少行业应用都对网络性能和隔离性有着越来越高的要求。例如: 低延迟:一些期货行业用户选择在期货公司机房托管服务器并自行编写交易程序,以实现对市场波动的快速(微秒级)反应。尤其是在…

并查集讲解

并查集讲解 一、算法描述二、图示讲解三、代码示例四、例题练习 一、算法描述 并查集算法是一种用于处理不相交集合数据结构的算法。它经常被用来解决网络流问题、图的最小生成树问题等。在这篇博客中,我们将深入理解并查集算法,以及如何在实际编程中使…

设计模式思维导图

ProcessOn思维导图链接

睿趣科技:抖音小店申请流程

随着移动互联网的发展,越来越多的人开始尝试通过开设网店来创业。抖音作为国内最受欢迎的短视频平台之一,也推出了自己的电商功能——抖音小店。那么,如何申请抖音小店呢?下面就为大家详细介绍一下抖音小店的申请流程。 首先,打开…

基于springboot实现CSGO赛事管理系统【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现CSGO赛事管理系统演示 摘要 CSGO赛事管理系统是针对CSGO赛事管理方面必不可少的一个部分。在CSGO赛事管理的整个过程中,CSGO赛事管理系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类的管理系统也在不断改进。本课题所设计…

Redis的五种常用(基本)数据类型

目录 1、Redis简介 2、五种常用(基本)数据类型 2.1 String 数据结构 ⭐常用用法 举例(Linux版本) 2.2 List 数据结构 ⭐常用用法 举例(Linux版本) 2.3 Set 数据结构 ⭐常用用法 举例&#xf…

youyeetoo R1卡片电脑(rk3588s)

简介: youyeetoo R1 是风火轮科技专为AIOT市场设计的嵌入式主板(SBC),体积小但功能强大,搭载瑞芯微旗舰级RK3588s 八核64位处理器,8nm 制程,主频高达2.4GHz,集成ARM Mali-G610 MP4 GPU,内置6 To…

「必看」一分钟学会!Steam账号注册全攻略!

Steam账号注册详细教程,你值得拥有!💥 👋 Hello各位亲爱的小伙伴们!今天我要给大家带来的是一份超详细的Steam账号注册教程,让你轻松成为Steam世界的合法居民!🎉🎉 1️…

2023版 STM32实战11 SPI总线读写W25Q

SPI全称 英文全称:Serial peripheral Interface 串行外设接口 SPI特点 -1- 串行(逐bit传输) -2- 同步(共用时钟线) -3- 全双工(收发可同时进行) -4- 通信只能由主机发起(一主,多从机) 开发使用习惯和理解 -1- CS片选一般配置为软件控制 -2- 片选低电平有效,从…

开源博客项目Blog .NET Core源码学习(4:生成验证码)

开源博客项目Blog中的后台管理登录界面中支持输入验证码(如下图所示),本文学习并记录项目中验证码的生成及调用方式。   博客项目中调用VerifyCode类生成验证码,该类位于App.Framwork项目中,命名空间为App.Framwork…

基于Java的线上花店管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

Redis数据类型

Redis数据类型 文章目录 Redis数据类型0.基本命令(1)key操作命令(2)注意 1.字符串(String)(1)set key value(2)mset /mget(3)getrange/setrange(4…

I/O模型之非阻塞IO

简介 五种IO模型   阻塞IO   非阻塞IO   信号驱动IO   IO多路转接    异步IO 代码书写 非阻塞IO 再次理解IO 什么是IO?什么是高效的IO? 为了理解后面的一个问题,我们首先要再重新理解一下什么是IO 在之前的网络介绍中&#xff…

C算法:输入一个数n,输出1到n之间所有的质数

需求: 写一个函数,输入一个数n,输出1到n之间所有的质数。(注:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。) 输入样例: 10 …

又是一年1024程序员日

程序员节是每年的10月24日,这是一个特殊的节日,旨在庆祝和表彰程序员们对科技和社会的贡献。作为技术领域的从业者,程序员们在现代社会中扮演着重要的角色,他们致力于编写、测试和维护软件代码,为我们的生活带来了无数…

【原创】解决Kotlin无法使用@Slf4j注解的问题

前言 主要还是辟谣之前的网上的用法,当然也会给出最终的使用方法。这可是Kotlin,关Slf4j何事!? 辟谣内容:创建注解来解决这个问题 例如: Target(AnnotationTarget.CLASS) Retention(AnnotationRetentio…

【Excel】WPS单元格快速转换表格字母大小写

使用WPS Office打开表格,选择需要处理的单元格或单元格区域。 依次点击「会员专享」选项卡 —>「智能工具箱」。 再点击「格式」—>「大小写」,选择一种大小写转换方式即可。

Hadoop3教程(三十):(生产调优篇)纠删码

文章目录 (155)纠删码原理纠删码原理纠删码相关命令纠删码策略解释 (156)纠删码案例实操参考文献 (155)纠删码原理 纠删码原理 默认情况下,一个文件在HDFS里会保留3个副本,以此提高…