- 博客(73)
- 资源 (1)
- 收藏
- 关注
原创 【FreeRL】MAPPO的离散复现和鲁棒性调整(大更新)
对FreeRL库的一些更新记录:1.由读者私信,说想要实现MAPPO的离散形式,但是在我代码上改后还是不行,在其参考的代码库上MAPPO确实是实现了离散的形式,故探究其代码收敛原因然后稍加改动后实现了MAPPO的离散形式代码。也借机发现我原来实现MAPPO上的一些逻辑上的bug。
2025-03-23 10:52:29
1013
原创 【游戏ai】从强化学习开始自学游戏ai-1非侵入式玩像素小鸟
从接触强化学习起,就一直知道强化学习可以打游戏,什么alphago,打星际争霸,后来知道大部分环境是专门写的用来供强化学习做实验的,是可以直接从环境中读取一些关键信息,并不是像人一样,只把当前在游戏中看到的图片当做当前的状态(当然,现在已经有研究这种的agi了)于是这里想使用强化学习来非侵入式打游戏。这里的非侵入式就是不读取游戏里的内存状态,而是像人一样打游戏。当然这样游戏也就不会判断你在作弊了。ps:正好今天写博客三周年,纪念一下参考:1.
2025-02-27 17:27:55
1024
原创 【MORL】多目标强化学习复现(ENVELOPE)
按导师要求学习了一下多目标强化学习,我看的论文是论文题目:A Generalized Algorithm for Multi-Objective Reinforcement Learning and Policy Adaptation(一种用于多目标强化学习和策略适应的广义算法)复现代码:暂未上传复现结果:环境为gym的deep-sea-treasure-v0环境。
2025-02-12 17:32:34
974
原创 【MARL】基于强化学习的红蓝双方对抗作战仿真
临近期末,要交一次python大作业,乘这次机会,将之前做的项目的一个类似于红蓝对战的小游戏,再次整理一下,做成作业上交。这里并不对报告形式做约束,按照环境,原理,实验效果,做一次小的总结。环境由同门@及个人共同打造。但是我对游戏规则进行了一些修改。游戏本身只是简单的模拟双方对抗的场景,一些复杂的考虑并没有包含在内。为了符合报告的形式,这里尽量不以我为主语,以本研究为主语。
2025-01-14 20:40:29
922
原创 【MARL】MAT论文阅读笔记
正好有节课让我们调研最新的自己的方向的新论文,找到一篇自己觉得比较可行,效果看起来比较好的论文CommFormer,发现他又是基于之前的论文改进的,于是就查到了MAT和HAPPO以及MAPPO。好巧不巧,发现他们的代码几乎也是一体同源,后根据对论文里发表作者的大学查看,推测估计这几篇都是一个团队里的人发表的。由于时间有限(下周讲PPT),虽然都看懂了文章,但是对于代码的修改止步于MAT,复刻完MAT了但是应该还有漏洞,以至于现在的效果不太好,故这里先讲下MAT的论文。github代码。
2024-12-05 15:48:49
1496
1
原创 【FreeRL】MAPPO的简单复现
MAPPO的复现,也是复现了很久,主要的难点不在于算法很难,而是用到了很多tricks,以及调参。不知道为啥这个的离散环境的参数怎么调也调不出好的结果,故放弃,但是代码原型应该是对的。
2024-11-14 17:16:37
1781
7
原创 【FreeRL】PPO的复刻和7个trick实现
主要是对PPO论文里的PPO复刻,和实现时遇到的障碍记录。影响PPO算法性能的10个关键技巧(附PPO算法简洁Pytorch实现)(其中有3个trick原论文中有提及,所以直接集成在原代码里了。下述环境均为环境为 Pendulum-v1v_target = adv + v(t) #正确v_target = reward + gamma * (1.0 - done) * v(t+1) #错误 一点不收敛紫色为上面错误的写法。
2024-10-19 17:19:50
850
原创 【DDPG】DDPG的离散实现(含代码)
由于想用ddpg来应用到离散动作空间的环境,实现和ppo等其他算法的性能对比。故研究此问题。(欢迎star)
2024-10-17 19:12:16
1308
1
原创 【深度强化学习】DDPG+popart技巧(最详解)
本来是想根据论文和原代码复刻一遍MAPPO的,看完论文和代码后发现其运用到了很多收敛小技巧,这里在复刻第一个技巧popart时,遇到了很多困难,花了近两周时间才算是复刻成功。这里以RLz中的DDPG算法为基算法,加上popart技巧,来展示这个技巧如何添加到自己的其他RL算法中。修改多次后(其他眼色),最后达到蓝色的收敛效果,其中黑色为原ddpg不加popart的效果。后对DDPG进行了修改,在 代码实现 中展示环境为Pendulum-v1。
2024-10-07 11:10:52
1109
原创 【深度强化学习】DDPG实现的4个细节(OUNoise等)
这里为复现论文ddpg时,遇到的4个细节,及如何将它实现。参考复现代码:等等(其余相关参考会细节处体现)适用于:已经知道ddpg原理,但发现借用的代码不work时,来寻求更符合原论文代码的人群。FreeRL(欢迎star)ddpg在原论文是针对continue环境提出的,这里仅实现了continue形式的ddpg,后续有空会再补写一个离散域环境的ddpg。即使有了一个好的框架和算法,DDPG还是会对超参数比较敏感。比如sigma,batch_size。
2024-10-06 22:44:17
1449
原创 【FreeRL】Rainbow_DQN的实现和测试
将其中所有的trick都用上即为Rainbow_DQN。效果如下:(学习曲线)具体实现细节,代码中有较为详细的阐述。
2024-09-17 22:42:53
950
原创 【FreeRL】我的深度学习库构建思想
目的是写出像TD3作者那样简单易懂的DRL代码, 由于参考了ElegentRL和Easy的库,from easy to elegent 故起名为freeRL,free也是希望写出的代码可以随意的,自由的从此代码移植到自己的代码上。
2024-09-12 23:06:49
1050
3
原创 【深度强化学习】常常使用的pytorch代码
最近又看了一遍《深度强化学习》,和TD3的代码,觉得市面上好多代码写的非常绚丽,但表达的意思,实际的操作确实同一个,再此总结一下这些常见的代码的含义。顺便自己构建一个比较简单易懂的强化学习算法供自己使用。暂时只搭建了部分,欢迎star参考了很多人写的代码,这里先不列举了。torch版本:2.3.1+cu121python版本:3.11.9设计深度强化学习库的思想。
2024-08-15 12:48:48
1637
2
原创 【MARL】MADDPG + attention 实现(+论文解读)
导师让在MADDPG上加一个注意力机制,试了很多种,下面的参考的论文的效果最好,先把其思路记录下来。之后有时间再试试自注意力机制。github和实际上的attention 不一样,论文里并不是直接加进去,而是巧妙利用了注意力机制里的一些特性,重新定义了Q函数,达到了神奇的效果。MADDPG论文中定义的Q 为QQiusa∣aiuioiQQiusa∣aiuioi))
2024-07-25 23:08:27
2914
10
原创 【rocketmq】rocket5.2.0安装以及和python和c++通信实现
记录一下rocket5.2.0安装以及和python和c++通信的踩坑史。由于只是简单实现,c++部分的实现可能并不完美。linux:ubuntu20.04 2核2g 有公网iprocketmq:5.2.0 (发现一定要看官网的说明,大多博客都是安装的4.x版本的)c++ :g++4.9.3 调用的库rocket版本:rocketmq-client-cpp-2.2.0python:3.11.5 调用的库rocket版本:rocketmq-client-cpp-2.0.0。
2024-07-17 12:54:28
1325
3
原创 【内网穿透】打洞笔记
租了一个云服务器,想用vscode的ssh远程连接,发现有必须要有公网才能进行连接,于是又租了一个月的公网,但还是想知道有没有办法不用租公网也能实现连接,于是在大佬的帮助下成功实现,这里记录一下打洞的笔记。云服务的镜像linux 版本:Ubuntu20.04。
2024-07-16 21:33:07
2203
2
原创 【深度强化学习】关于混合动作空间转化为连续域空间的一点思考与实现
根据导师的文章,得到的想法,论文如下:论文链接:《Deep Reinforcement Learning for SmartHome Energy Management》现在我有一个环境,3v3坦克环境,此时坦克有两个动作,一个动作为行动(360度都能走),一个动作是射击(360度都能射击)。一开始的想法是0:行动,1:射击,两者都是0-360度的范围(0-2*pi)这就变成的一个离散域,一个连续域的情况一个是[0,1]离散域,一个是0-2*pi连续域的混合域。我们知道,在单个智能体的环境下,[0,
2024-06-29 16:45:09
829
5
原创 【深度强化学习】如何使用多进程(multiprocessing、pipe)来加速训练
进程:相当于电脑多开了很多应用。线程:相当于一个应用里,比方说:一个网页浏览器里有一个线程负责渲染页面,另一个线程负责处理用户输入,还有一个线程负责下载文件。这些线程在同一个进程内协作,共同完成浏览器的功能。比方说上图的VScode是32进程,这里显示每个进程里有多少个线程,如上图第一个code进程有32个线程。任务管理器查看线程数、PID值等方法了解到此,我们可以了解到上述线程和平时电脑上所说的8核16线程中的线程所区分开,第二个线程说的可以看作逻辑核心数。实际效果:我这里开了4个进程。
2024-06-25 14:17:45
1739
原创 【深度强化学习】如何平衡cpu和gpu来加快训练速度(实录)
一般来说,对于ppo这种类在线策略的深度学习算法:1、对于原代码全是gpu训练的(上面例子),需要改三处,注意第三处,可改可不改第4处。2、全cpu训练的,前两处加的不变,第三处的修改有变化,:(这里也要特别注意,否则也会报同时用两个设备的错误)即:在模型训练时,把所有要计算的tensor张量加到gpu中。如下所示:顺口记法:对于在线的策略(无经验池的策略),大体框架改两处,对应设备改一处,否则会报错。强化学习是不是主要吃cpu而不怎么吃gpu?这个参考的结论基本对,这里做补充。
2024-05-31 14:28:15
4461
5
原创 【深度强化学习】关于同一设备上cpu和gpu计算结果不一致问题
1、在一般使用中,可以不必追求cpu和gpu计算的结果一致性,也也避免不了,且cpu和gpu导致的细小差别,在训练的效果上几乎没有区别。2、同时,在同一台设备上,我们尽量要求该程序的结果能复现,是为了更好修改超参数。(见:本文万能seed,适用于单机多卡)3、不必追求在不同的设备上能复现一致结果,最终的效果在相同的超参数和输入下,输出的结果也相差无几。4、cpu和gpu在设计时的目的也不同,有差异理所应当,这里本文只分析了在计算上和训练神经网络时的出现的差异,仅作参考。
2024-05-24 15:28:31
3299
4
原创 [通俗易懂]《动手学强化学习》学习笔记3-第5-13章
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)强化学习入门(第二版)读书笔记我做了一个思维导图很方便理解之后学习完会在这里一直更新。补充一下要下载的库#第5章#第7章这里仅记录下学习时遇到的问题,已经学了一个月了,只是忙于毕设没空来更新一下学习进度,发现踏入门槛后学习强化学习就轻松了,当然还有一些实验时学到的一些小细节,准备下个博客再更。
2024-05-16 11:49:04
930
原创 [通俗易懂]《动手学强化学习》学习笔记2-第2、3、4章
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)强化学习入门(第二版)读书笔记我做了一个思维导图很方便理解之后学习完会在这里一直更新。这里2、3、4章作者讲的非常好,就是得多读几遍,这里只做下当时学习时没弄明白的笔记。其余代码多看两遍就理解了,和伪代码都对的上。
2024-04-10 21:42:01
717
原创 [通俗易懂]《动手学强化学习》学习笔记1-第1章 初探强化学习
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)我做出的决策:选择了强化学习作为研究方向。强化学习是人工智能的未来。未来智能系统需要能够在不接受持续监督的情况下自主学习,而强化学习正是其中的最佳代表之一。我们知道,机器学习分为无监督学习,(有)监督学习,强化学习,迁移学习和深度学习等。(各有说法)无监督学习分析数据流,发现模式并做出预测,无需任何其他指导。解决聚类问题。
2024-04-07 10:02:59
2140
1
原创 【从零开始】自建高质量免费ip代理池(截止2024.4.1最新版)
为了防止ip被封后还能爬取网页,最常见的方法就是自己构建一个ip代理池。本来用的是下面这个开源项目ip代理池,github开源项目就是这个开源项目上好多免费的ip网站做了更新,导致它能获取的可用的代理频率不高,且它只是做了获取工作,没有做任何的测试,导致获取的代理匿名性层次不齐。用它获取的ip,用来做目标url,一个循环20次,也不能每次都能拿到网页上的数据,于是得自己做一个高质量的ip获取池。不过它开源的代码上也是有不少可以借鉴的。
2024-04-02 22:51:20
40341
12
原创 【任务计划程序】打卡签到(自用)
【github action+python】完成定时任务并推送(学会自制)(这里的github上这个glados签到不能用了,glados上的部分功能也变了,这里代码也跟着变一下。总是忘记给glados签到,试用了一下电脑自带的任务计划程序,给我每天打卡。
2024-03-13 10:14:04
863
原创 【center-loss 中心损失函数】 参数与应用
之前我们已经完全弄明白了中心损失函数里的代码是什么意思,并且怎么用的了,现在我们来运行它。【center-loss 中心损失函数】 原理及程序解释(完)这段主代码,还是先以小见大。首先,有很多点,以普通的拟合直线为例子,假设直线是用来做分类问题,一条直线分成两类,或者说是回归问题,则就是,每个点落在两类的例子是多少。(可以想象可以用来做很多事。我们是这样一步一步做的1、确立损失函数(作为评判好的模型的标准)。(损失函数有很多可选,具体使用具体分析)
2024-03-07 17:16:31
2068
原创 【点云】生成有凹凸的平面
尝试用一些数据生成有凹凸面的点云。我们姑且把z轴当成有凹凸的缺陷,x轴和y轴共同组成一个平面。可能在在使用邻近搜索中,用的方法不太好,用的是在球内的点搜索,或许换个方法就可以了。–2024.2.17。
2024-02-17 15:08:36
1376
2
原创 【最详解】如何进行点云的凹凸缺陷检测(opene3D)(完成度80%)
读前须知首先我们得确保你已经完全知晓相关的基本的数学知识,其中包括用最小二乘法拟合曲二次曲面,以及曲面的曲率详细求解。若还是没弄清楚,则详细请看下面链接。【点云、图像】学习中 常见的数学知识及其中的关系与python实战[更新中](建议从一个标题上从上往下看,比较循序渐进)补充:曲率:反映曲面在某一点处的弯曲程度,它与该点及其邻近点的位置和法向量有关。爆肝5万字❤️Open3D 点云数据处理基础(Python版)学习东西都不是一蹴而就的,果然还是得一步一步脚踏实地地学才学的明白。
2024-02-08 00:41:23
6405
原创 [干净配置]win11新机必看,anconda和vscode的python环境配置
重装了下系统,将win10升到win11了,之前的文件也有些乱,记录下这次从装完系统到环境配置完的全过程。实际上用了anconda来管理包和python environment manager 来查看包。使用很舒服。
2024-01-04 23:49:10
2979
原创 【零基础】学python数据结构与算法笔记15-欧几里得、RSA
学习python数据结构与算法,学习常用的算法,b站学习链接RSA是非对称加密。传统密码是别人不知道加密方法,比方说说以前罗马皇帝发明了个加密算法,把字符都往后移三位,abc 发成def以前的传统密码可以通过暴力枚举来求出来,而现在密码是加密算法是公开的,但没有密钥是解不出这个密文的。Bob给Alice发密文,钥匙有两份,公钥大家都知道,是公开的,私钥是只有收件人才有的,只有它才可以破译知道密文是什么,窃密者不知道密文是什么。
2023-01-19 15:34:49
1008
原创 【零基础】学python数据结构与算法笔记14-动态规划
学习python数据结构与算法,学习常用的算法,b站学习链接动态规划在基因测序、基因比对、hmm 有应用场景。从斐波那契数列看动态规划练习: 使用递归和非递归的方法来求解斐波那契数列。这种非递归求斐波那契数,可以看成是一个动态规划思想,每次都会把重复子问题的答案存起来。学习了动态规划算法。
2023-01-19 14:07:19
1820
2
原创 【零基础】学python数据结构与算法笔记13-贪心算法
学习python数据结构与算法,学习常用的算法,b站学习链接这些问题求解的都是最优解,最多,最大问题而这些不能解决的,比方说0-1背包问题,我们下次讲动态规划来实现。学习了贪心算法的4个例子。
2023-01-17 15:09:47
1036
原创 【零基础】学python数据结构与算法笔记12-AVL树
学习python数据结构与算法,学习常用的算法,b站学习链接二叉搜索树拓展应用B树(B-Tree):B树是一颗自平衡的多路搜索树。常用于数据库的索引。哈希表也可以用做数据库的索引。还有一种在此之上的改进叫B+树(B+Tree)大同小异这个是3叉的B树,中间存两个数据17,35。比17小的存左边,17-35存右边,比17大的存右边。分成了三个块,查找时更块。学习了AVL树,数据结构到此告一段落。
2023-01-15 22:15:45
648
1
minist_test.csv 和minist_train.csv和minist_train_100.csv和minist_te
2022-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人