- 博客(50)
- 资源 (3)
- 收藏
- 关注
原创 《边做边学深度强化学习:PyTorch程序设计实践》——6.2DDQN
重新实现函数update_target_q_function,在其中执行Brain类的函数update_target_q_network,在Environment类的试验(episode)结束时,执行Agent类的函数update_target_q_function。Dueling Network是一种在动作价值函数输出层之前增加一层,用于输出状态价值V(s)和优势函数A(s,a) = Q(s,a)-V(s)的方法,学习状态价值V(s)时,能独立于动作而学习状态价值V(s),具有提高学习性能的优点。
2024-01-26 00:00:00 1167 1
原创 《边做边学深度强化学习:PyTorch程序设计实践》——6.3Dueling Network
实际上,adv的大小是[minibatch的大小×动作类型的数量],val的大小是[minibatch的大小×1]。因此,在求val时,使用expand调整它的大小,使其成为[minibatch的大小×动作的数量]。在Net类的初始化函数中,与DDQN类似地构建输入层fc1和第一个隐藏层fc2,在最后创建与Advantage有关的层fc3_adv和与状态价值有关的层fc3_v。组成的部分,和该动作确定的部分。相关的网络连接参数,学习所需的实验轮数比DQN更少,随着动作选择的增加,优势更加明显。
2024-01-26 00:00:00 1549
原创 《边做边学深度强化学习:PyTorch程序设计实践》——5深度强化学习DQN
在表格表示的Q学习中,行号表示智能体的状态,列号对应智能体的动作,表格存储的时动作价值Q(s,a),这种表示的问题是,随着状态变量类型数量增加,每个变量被精细的离散化的话,表格中的行数会变得很大,如果以图像作为状态,每个像素对应于状态变量,50像素的方哥具有2500多个状态变量,用表格表示的强化学习解决大量状态的任务是不显示的。第3章解释的表格表示的Q学习中,Brain类有一个表,但这里有一个神经网络,使用函数replay和函数decision_action。基本上与第3章中的Q学习相同,这里有一点变化。
2024-01-25 01:30:00 948
原创 《边做边学深度强化学习:PyTorch程序设计实践》——2.2迷宫和智能体的实现
最近在看一本书《边做边学深度强化学习:PyTorch程序设计实践》小川雄太郎,写的挺好的,将书中的代码敲了一下。
2024-01-25 00:00:00 2076
原创 《边做边学深度强化学习:PyTorch程序设计实践》——2.3.2策略迭代法和价值迭代法
2.2节中使用的是随机迭代。让智能体学习向目标前进的方式主要有两种方式:策略迭代,更快到达目标的策略所执行的动作最重要;价值迭代:从目标反向计算在目标前一步、前两步的位置,一步一步引导智能体,给状态也附加价值(优先级)本节中对参数到策略的转换函数进行修改,用softmax函数。是学习速率,如果太小,学习就很慢,太大就无法正常学习,是一个参数,用于确定在状态sj下采取aj的概率。是负数也可以求出策略,指数函数只输出正值。是反温度,反温度越小,行为越随机。是实现目标所采取的总步数。
2024-01-25 00:00:00 878
原创 《边做边学深度强化学习:PyTorch程序设计实践》——2.4~2.5Sarsa的实现
贪婪法:采取Q值最大的动作,在没有正确求得Q值时这种方法,会导致根据随机生成的动作价值的初始值确定动作,可能无法很好地学习,比如S0位置每次向右移动,因此,我们以一定的概率。价值迭代法受限需要定义价值,生活中价值的确定需要货币的概念,比如钻石换成多少人民币。在行为经济学里,人们倾向对未来价值打超过必要的折扣,人类的时间折扣率受到大脑纹状体区域何血清素的影响。结合利率何复利效应,考虑未来的总奖励时,也将折扣率考虑进来,使用累计折扣奖励表示。由于学习过程尚未求得正确的动作价值函数,该等式不成立,等式两边的差。
2024-01-25 00:00:00 948
原创 《边做边学深度强化学习:PyTorch程序设计实践》——2.6.1Q learning
来更新动作价值函数Q,因此Sarsa算法的特征之一是Q更新依赖于求取。下动作价值函数中的最大值来进行更新,由于Sarsa使用下一个动作。贪婪法产生的随机性不用于更新公式,Q的收敛优于Sarsa。和Sarsa不同的就是动作价值函数的更新公式不同。Sarsa更新时需要求取下一步动作。的策略,策略依赖型特征。用于更新,Q学习使用状态。
2024-01-25 00:00:00 1042
原创 《边做边学深度强化学习:PyTorch程序设计实践》——3.2~3.4倒立摆CartPole
gym.make是启动一个openai环境游戏的指令,执行时,首先env.reset()初始化环境,返回初始状态,将其存储在变量obeservation之中,env.step(action)是将游戏环境推进一步的指令,action=0对应于将小车推向左侧,1对应于推向右侧,输出5个变量,reward是即时奖励,小车在[-2.4,2.4]范围内且杆未超过20.9°则奖励为1,否则为0。done是一个变量,结束为True,info包含调试等所需的信息。
2024-01-25 00:00:00 499
原创 《边做边学深度强化学习:PyTorch程序设计实践》——4使用pytorch进行深度学习
这个模型可以理解为神经元和神经元在称为突触的部分功能性连接,“高尔基理论”认为神经元在突触处时物理上直接连接的,二“卡哈尔理论”认为两者在突触上没有物理连接,是间接连接的,比如乙酰胆碱、多巴胺和GABA的神经递质,神经递质的传递时称为“激发”的信息传递。那么h1的输入之和就是3×1+2×3+1×(-5)=4类似地,h2的输入之和为3×2+2×(-4)+1×(-6)=-8在隐藏层中,此输入的总和由ReLU转换,因此h1的输出为4,h2的输出为0。y2的输出是:2×3+0×7=6所以输出y是(-2,6)。
2024-01-25 00:00:00 1065
原创 课程16:Dueling-Network解决捕鱼者游戏
同时强化学习游戏领域用的比较多,其他方向看起来都没太大成果,对于博主设置的捕鱼游戏来说,利用keras进行深度强化学习,平均奖励在-100左右(吃到食物25,移动-1,碰到敌人-300)甚至不如。利用q table效果好,可能是nbsteps=100000,步骤数太大加上奖励固定,碰到敌人惩罚太高,以至于没有学到很好的规律,对于强化学习来讲,奖励的设置非常重要。,进行了修改,自己写对应方向强化学习代码的时候也可以参考keras库,比较简单。
2024-01-09 21:22:24 348
原创 课程14:捕食者游戏进阶——按照gym标准书写
EPISODES = 30000 # 局数SHOW_EVERY = 3000 # 定义每隔多少局展示一次图像# 智能体的类,有其 位置信息 和 动作函数def __init__(self,size): # 随机初始化位置坐标return f'# 智能体的类,有其 位置信息 和 动作函数 class Cube : def __init__(self , size) : # 随机初始化位置坐标 self . size = size。
2024-01-09 10:51:30 424
原创 课程13:简单的捕食者游戏(Q leaning)
SIZE = 10 #区域大小EPISODES = 30000 #局数SHOW_EVERY = 3000 #定义每隔多少局展示一次图像FOOD_REWARD = 25 #agent获得食物的奖励ENEMY_PENALITY = 300 #遇上对手的惩罚MOVE_PENALITY = 1 #遇上敌人的惩罚epsilon = 0.6 #抽取的概率,epsilon-greedy,强化学习随机是必须的,才能让对手猜不到你在干什么,但这个概率逐步变小。
2024-01-08 23:14:41 440
原创 代码学习:When Learning Joins Edge: Real-time Proportional Computation Offloading via Deep Reinforcement
学习文章原文如下:https://ieeexplore.ieee.org/document/8975787/共两个文件,主文件run_this.py,强化学习DQN模块RL_brain.py。
2023-12-25 11:38:56 553 1
原创 利用tensorflow2环境跑tensorflow1代码
tf.disable_v2_behavior(): 禁用TensorFlow的v2行为,这意味着代码将使用TensorFlow的旧版本(v1)的行为,而不是新版本(v2)的行为。设置环境变量KMP_DUPLICATE_LIB_OK为TRUE,用于避免在使用Intel MKL库时出现的一些问题,允许库重复加载。import tensorflow.compat.v1 as tf: 导入TensorFlow的v1版本,并将其命名为tf。
2023-12-11 21:37:36 591
原创 07.1-面向对象基础
Python2中类分为:经典类 和 新式类语法class 类名():代码......注意:类名要满足标识符命名规则,同时遵循大驼峰命名习惯。体验print('我会洗衣服')拓展:经典类不由任意内置类型派生出的类,称之为经典类class 类名:代码......地瓜的属性被烤的时间地瓜的状态添加的调料地瓜的方法被烤用户根据意愿设定每次烤地瓜的时间判断地瓜被烤的总时间是在哪个区间,修改地瓜状态添加调料用户根据意愿设定添加的调料将用户添加的调料存储显示对象信息。
2023-11-05 00:25:28 63
原创 04.5-数据序列——集合
创建集合有数据集合s1 = {数据1, 数据2, ...}无数据集合s1 = set()常见操作增加数据add()update()删除数据remove()discard()
2023-11-05 00:23:04 51
原创 07.2-面向对象-继承
在Python中,可以为实例属性和方法设置私有权限,即设置某个实例属性或实例方法不继承给子类。故事:daqiu把技术传承给徒弟的同时,不想把自己的钱(2000000个亿)继承给徒弟,这个时候就要为钱这个实例属性设置私有权限。设置私有权限的方法:在属性名和方法名 前面 加上两个下划线 __。self.kongfu = '[古法煎饼果子配方]'print(f'运用。
2023-11-05 00:22:34 38
原创 08.1-异常
在Python中,抛出自定义异常的语法为raise 异常类对象。需求:密码长度不足,则报异常(用户输入密码,如果输入的长度不足3位,则报错,即抛出自定义异常,并捕获该异常)。# 自定义异常类,继承Exception# 设置抛出异常的描述信息return f'你输入的长度是。
2023-11-05 00:22:18 31
原创 08.2-模块_包
语法# 模块定义别名import 模块名 as 别名# 功能定义别名from 模块名 import 功能 as 别名体验# 模块别名# 功能别名sl(2)新建一个Python文件,命名为,并定义testA函数。导入模块方法import 模块名 from 模块名 import 目标 from 模块名 import *导入包import 包名.模块名from 包名 import *:允许导入的模块或功能列表。
2023-11-05 00:21:04 37
原创 09 面向对象版学员管理系统
存储数据所用的列表需求:用户输入学员姓名、性别、手机号,将学员添加到系统。步骤用户输入姓名、性别、手机号创建该学员对象将该学员对象添加到列表代码# 添加学员函数内部需要创建学员对象,故先导入student模块......# 2.2 添加学员# 1. 用户输入姓名、性别、手机号name = input('请输入您的姓名:')gender = input('请输入您的性别:')tel = input('请输入您的手机号:')# 2. 创建学员对象:先导入学员模块,再创建对象。
2023-11-05 00:20:52 50
原创 06 文件操作
文件操作步骤打开文件对象 = open(目标文件, 访问模式)操作读文件对象.read()文件对象.readlines()文件对象.readline()写文件对象.write()seek()关闭文件对象.close()主访问模式w:写,文件不存在则新建该文件r:读,文件不存在则报错a:追加文件和文件夹操作重命名:os.rename()获取当前目录:os.getcwd()获取目录列表:os.listdir()
2023-11-05 00:20:32 37
原创 05.1-函数一
需求:用户到ATM机取钱:函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。2.2 调用函数2.3 快速体验需求:复现ATM取钱功能。确定“选择功能”界面内容封装"选择功能"调用函数在需要显示“选择功能”函数的位置调用函数。三.函数的参数作用思考:完成需求如下:一个函数完成两个数1和2的加法运算,如何书写程序?思考:上述add_num1函数只能完成数字1和2的加法运算,如果想要这个函数变得更灵活,可以计算任何用户
2023-11-05 00:19:41 36
原创 07.3-面向对象-其他
面向对象三大特性封装继承多态类属性归属于类对象的属性,所有对象共有的属性实例属性类方法@classmethod def xx() : 代码静态方法@staticmethod def xx() : 代码。
2023-11-05 00:18:39 35
原创 04.4-数据序列——字典
定义字典dict2 = {}常见操作增/改字典序列[key] = 值查找字典序列[key]keys()values()items()
2023-11-04 14:38:22 33
原创 04.3-数据序列——元组
元组特点:定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型。# 多个数据元组# 单个数据元组t2 = (10,)注意:如果定义的元组只有一个数据,那么这个数据后面也好添加逗号,否则数据类型为唯一的这个数据的数据类型t2 = (10,)t3 = (20)定义元组t2 = (10,)常用操作方法index()len()
2023-11-04 14:36:49 44
原创 04.2-数据序列——列表
列表的格式[数据1, 数据2, 数据3]常用操作方法index()len()append()pop()remove()列表嵌套name_list = [['小明', '小红', '小绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李四', '王五']]
2023-11-04 14:30:48 51
原创 04.1-数据序列——字符串
下标计算机为数据序列中每个元素分配的从0开始的编号切片序列名[开始位置下标:结束位置下标:步长]常用操作方法find()index()
2023-11-04 14:12:19 43
原创 03-流程控制之循环
思考:假如我有个女朋友,有一天我们闹矛盾生气了,女朋友说:道歉,说100遍“媳妇儿,我错了”。这个时候程序员会怎么做?答:100遍print('媳妇儿,我错了')思考:复制粘贴100次吗?答:重复执行100次一样的代码,程序中循环即可循环的作用:让代码更高效的重复执行。循环的作用:控制代码重复执行while语法while 条件:条件成立重复执行的代码1条件成立重复执行的代码2......while循环嵌套语法while 条件1:条件1成立执行的代码......
2023-11-04 14:05:30 36
原创 02-流程控制之条件语句
if语句语法if 条件 : 条件成立执行的代码if…else…if 条件 : 条件成立执行的代码 else : 条件不成立执行的代码多重判断if 条件1:条件1成立执行的代码elif 条件2:条件2成立执行的代码else:以上条件都不成立执行的代码if嵌套if 条件1:条件1成立执行的代码if 条件2:条件2成立执行的代码....
2023-11-04 13:54:53 30 1
原创 01.9-Python基础入门——运算符
算数运算的优先级()高于**高于//高于赋值运算符复合赋值运算符+=-=优先级先算复合赋值运算符右侧的表达式再算复合赋值运算的算数运算最后算赋值运算比较运算符判断相等: ==大于等于: >=小于等于:<=不等于:!逻辑运算符与: and或:or非:not。
2023-11-04 13:51:22 33 1
原创 01.7-Python基础入门——输入
输入功能input(‘提示文字’)输入的特点一般将input接收的数据存储到变量input接收的任何数据默认都是字符串数据类型。
2023-11-04 13:48:48 37 1
原创 01.6-Python基础入门——输出
格式化符号%s:格式化输出字符串%d:格式化输出整数%f:格式化输出浮点数f-字符串f’{表达式}’转义字符\n:换行\t:制表符print结束符print('内容', end="")
2023-11-04 13:46:54 36 1
原创 01.5-Python基础入门——变量
变量名 = 值变量名自定义,要满足标识符命名规则。定义变量的语法变量名 = 值标识符由数字、字母、下划线组成不能数字开头不能使用内置关键字严格区分大小写数据类型整型:int浮点型:float字符串:str布尔型:bool元组:tuple集合:set字典:dict。
2023-11-04 13:45:18 44 1
原创 01.4-Python基础入门——注释
注释的作用用人类熟悉的语言对代码进行解释说明,方便后期维护。注释的分类单行:# 注释内容,快捷键ctrl+/""" 注释内容 """或''' 注释内容 '''解释器不执行注释内容。
2023-11-04 13:39:06 51 1
原创 01.3-Python基础入门——PyCharm
PyCharm新建文件项目管理空白位置 — 右键 – New – PythonFile运行文件代码内部 — 右键 – Run修改代码文字格式。
2023-11-04 13:37:04 40 1
原创 01.1-Python基础入门——简介
Python是时下最流行、最火爆的编程语言之一,具体原因如下:简单、易学,适应人群广泛免费、开源应用领域广泛备注:以下知名框架均是Python语言开发。Google开源机器学习框架:TensorFlow开源社区主推学习框架:Scikit-learn百度开源深度学习框架:PaddlePython发展历史:https://baike.baidu.com/item/Python/407313?fr=aladdinPython优点:学习成本低开源适应人群广泛应用领域广泛。
2023-11-04 13:25:26 51 1
无人机辅助移动边缘计算的计算卸载优化:一种深度确定性策略梯度方法
2023-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人