- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 【量化RL】使用PPO来进行ETF动量轮动(v0.1)
还是习惯了用CSDN的编辑方式,因为旁边可以看到写了啥。DQN-ETF强化学习-滚动-经验保存反复学习版AI强化学习ETF策略-DQN智能体-滚动训练简单etf动量轮动策略simple_etf_1这里为simple_etf_2的初始版本实验。因为还是初始的一个成功,这里先记录下流程。和前言1的对比如下:两者的滑点,交易时间,佣金设置相同下,etf也相同下:收益上,现在比之前策略要好,但是持有体验上效果应该不如之前的(在前面一部分的日期,还有优化空间),后面的体验倒是超过了。
2026-01-25 16:47:36
667
原创 【深度学习/强化学习】python+cuda+torch环境配置(最全)
由于不同的代码需要的环境不同,在conda环境下使用旧版本的python 会经常导致cuda或torch的版本不对齐,跑不通,这里进行总结。特别是换显卡的时候1.看自己显卡的架构 从而知道至少多少版本的cuda才可以用(-- 4)2.用nvidia-smi 看目前可以支持最高多少版本的cuda,如果达不到想要的高版本cuda,再更新驱动(-- 3)3.由第一步得到的cuda版本找到最低的torch版本是多少(-- 2)4.由torch版本得到最低的python版本(-- 1)
2025-12-06 09:00:00
129
原创 【强化学习】关于优化器部分解惑
之前写代码时,看到开源库代码有的用一个类定义一个网络,有的用一个类定义好几个网络;有的loss直接就反向传播了,有的loss相加后反向传播;有的一个优化器给一个网络的参数,有的用优化器里面放好几个网络参数。想知道效果有什么区别。这里实际实验下来结论为:与优化器的定义和选择有关与网络参数的定义和loss反向传播的方式无关注:在参数无共享的网络的前提下,如果有参数共享的网络,这里没做实验,猜测是有关系的,起码跟先后网络的更新顺序(ac同享有一层共享网络,ac先后更新顺序)应该会影响结果。
2025-11-29 08:30:00
1301
原创 PPO关于GAE(代码)部分的解惑
开源库中有大量对于此的写法,一般来说公式基本都是合理的,但是也会有犯迷糊的时候,即,到底为什么即可以这样写,又可以那样写参考链接:1.TD(λ)2.λ-return实则参考的链接均来自这本书。λ-return的公式来源于参考1.使用下一步next_value来进行估算2.结束计算(回合到头了)这两者的区别就是回合最后步(batch最后步)是否拿next_value 来估算adv1.一个使用了next_value来进行估算,adv = r+ γV(s+1)-V(s) (此γ为折扣率)
2025-11-22 07:00:00
885
原创 windows下离线迁移miniconda环境记录
本文介绍了一种在Windows和Linux系统下离线迁移Python环境的方法。核心步骤包括:1) 获取所需Python版本的Miniconda;2) 在有网环境下使用pip wheel命令下载依赖包至本地文件夹;3) 将Miniconda安装文件和wheel包拷贝到离线电脑;4) 在离线电脑上创建conda环境并安装wheel包。文章提供了wheel_pkg.py脚本来自动化下载和安装过程,并讨论了离线环境下Python版本限制问题。该方法适用于需要在内网或离线环境中部署相同Python开发环境的场景,但
2025-11-15 07:00:00
705
原创 docker简单使用记录
简单记录一下使用docker时用到的一些教程和记录。主要用的是docker-desktop,但是命令和linux无异。
2025-11-15 07:00:00
1545
原创 【强化学习/深度学习】2025年 个人电脑配置方案(装机方案)
简单记录下配置强化学习电脑需要注意的,和了解的。2024年618个人装机:硬盘可以改成 致钛tiplus7100 1tb 都可以当时差不多1.5w差不多,618下来1.3w左右,现在在同等价格下配置还能再高一点。
2025-07-13 22:26:58
6603
5
原创 【强化学习】TD-MPC论文解读
探究论文TD-MPC的原理。此论文的创新点主要是这样:基于数据驱动的模型预测控制(MPC)相较于无模型方法有两个关键优势:通过模型学习提高样本效率的潜力,以及随着规划计算预算的增加表现更佳。有模型的环境下可以使用的算法(有RL算法也有不是RL的算法):如下表的MPC,POLO,LOOP,PLaNet,Dreamer,MuZero,EfficientZero,需要的计算资源高。
2025-06-10 23:20:49
2236
原创 【游戏ai】从强化学习开始自学游戏ai-2 使用IPPO自博弈对抗pongv3环境
本学期的大作业,要求完成多智能体PPO的乒乓球对抗环境,这里我使用IPPO的方法来实现。【游戏ai】从强化学习开始自学游戏ai-1非侵入式玩像素小鸟的第一部分。想着这次做IPPO的自博弈,应该会好上手不少,但是实际情况,这个Pettingzoo里的环境,还是有些bug的,经过修改后,可以达到良好的效果。效果见:(欢迎star)
2025-05-01 00:00:00
1177
1
原创 【FreeRL】IPPO复现+MAPPO、HAPPO、MAT的离散不收敛的原因找到
距离第一次发布MAPPO的复现已经5个月了,在这学期大作业要实现关于MAPPO算法时,又拿出来看这个discrete不收敛的版本找了又近两个星期,有空的时候看一下到底算法哪里有问题,单个断点调试,结果发现还是没问题。
2025-04-17 17:12:22
1464
3
原创 【FreeRL】MAPPO的离散复现和鲁棒性调整(大更新)
对FreeRL库的一些更新记录:1.由读者私信,说想要实现MAPPO的离散形式,但是在我代码上改后还是不行,在其参考的代码库上MAPPO确实是实现了离散的形式,故探究其代码收敛原因然后稍加改动后实现了MAPPO的离散形式代码。也借机发现我原来实现MAPPO上的一些逻辑上的bug。
2025-03-23 10:52:29
1422
5
原创 【游戏ai】从强化学习开始自学游戏ai-1非侵入式玩像素小鸟
从接触强化学习起,就一直知道强化学习可以打游戏,什么alphago,打星际争霸,后来知道大部分环境是专门写的用来供强化学习做实验的,是可以直接从环境中读取一些关键信息,并不是像人一样,只把当前在游戏中看到的图片当做当前的状态(当然,现在已经有研究这种的agi了)于是这里想使用强化学习来非侵入式打游戏。这里的非侵入式就是不读取游戏里的内存状态,而是像人一样打游戏。当然这样游戏也就不会判断你在作弊了。ps:正好今天写博客三周年,纪念一下参考:1.
2025-02-27 17:27:55
1803
原创 【MORL】多目标强化学习复现(ENVELOPE)
按导师要求学习了一下多目标强化学习,我看的论文是论文题目:A Generalized Algorithm for Multi-Objective Reinforcement Learning and Policy Adaptation(一种用于多目标强化学习和策略适应的广义算法)复现代码:暂未上传复现结果:环境为gym的deep-sea-treasure-v0环境。
2025-02-12 17:32:34
2684
原创 【MARL】基于强化学习的红蓝双方对抗作战仿真
临近期末,要交一次python大作业,乘这次机会,将之前做的项目的一个类似于红蓝对战的小游戏,再次整理一下,做成作业上交。这里并不对报告形式做约束,按照环境,原理,实验效果,做一次小的总结。环境由同门@及个人共同打造。但是我对游戏规则进行了一些修改。游戏本身只是简单的模拟双方对抗的场景,一些复杂的考虑并没有包含在内。为了符合报告的形式,这里尽量不以我为主语,以本研究为主语。
2025-01-14 20:40:29
1991
原创 【MARL】MAT论文阅读笔记
正好有节课让我们调研最新的自己的方向的新论文,找到一篇自己觉得比较可行,效果看起来比较好的论文CommFormer,发现他又是基于之前的论文改进的,于是就查到了MAT和HAPPO以及MAPPO。好巧不巧,发现他们的代码几乎也是一体同源,后根据对论文里发表作者的大学查看,推测估计这几篇都是一个团队里的人发表的。由于时间有限(下周讲PPT),虽然都看懂了文章,但是对于代码的修改止步于MAT,复刻完MAT了但是应该还有漏洞,以至于现在的效果不太好,故这里先讲下MAT的论文。github代码。
2024-12-05 15:48:49
2352
1
原创 【FreeRL】MAPPO的简单复现
MAPPO的复现,也是复现了很久,主要的难点不在于算法很难,而是用到了很多tricks,以及调参。不知道为啥这个的离散环境的参数怎么调也调不出好的结果,故放弃,但是代码原型应该是对的。
2024-11-14 17:16:37
3827
17
原创 【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
1198
原创 【DDPG】DDPG的离散实现(含代码)
由于想用ddpg来应用到离散动作空间的环境,实现和ppo等其他算法的性能对比。故研究此问题。(欢迎star)
2024-10-17 19:12:16
1908
3
原创 【深度强化学习】DDPG+popart技巧(最详解)
本来是想根据论文和原代码复刻一遍MAPPO的,看完论文和代码后发现其运用到了很多收敛小技巧,这里在复刻第一个技巧popart时,遇到了很多困难,花了近两周时间才算是复刻成功。这里以RLz中的DDPG算法为基算法,加上popart技巧,来展示这个技巧如何添加到自己的其他RL算法中。修改多次后(其他眼色),最后达到蓝色的收敛效果,其中黑色为原ddpg不加popart的效果。后对DDPG进行了修改,在 代码实现 中展示环境为Pendulum-v1。
2024-10-07 11:10:52
1995
原创 【深度强化学习】DDPG实现的4个细节(OUNoise等)
这里为复现论文ddpg时,遇到的4个细节,及如何将它实现。参考复现代码:等等(其余相关参考会细节处体现)适用于:已经知道ddpg原理,但发现借用的代码不work时,来寻求更符合原论文代码的人群。FreeRL(欢迎star)ddpg在原论文是针对continue环境提出的,这里仅实现了continue形式的ddpg,后续有空会再补写一个离散域环境的ddpg。即使有了一个好的框架和算法,DDPG还是会对超参数比较敏感。比如sigma,batch_size。
2024-10-06 22:44:17
2620
原创 【FreeRL】Rainbow_DQN的实现和测试
将其中所有的trick都用上即为Rainbow_DQN。效果如下:(学习曲线)具体实现细节,代码中有较为详细的阐述。
2024-09-17 22:42:53
1358
原创 【FreeRL】我的深度学习库构建思想
目的是写出像TD3作者那样简单易懂的DRL代码, 由于参考了ElegentRL和Easy的库,from easy to elegent 故起名为freeRL,free也是希望写出的代码可以随意的,自由的从此代码移植到自己的代码上。
2024-09-12 23:06:49
1416
3
原创 【深度强化学习】常常使用的pytorch代码
最近又看了一遍《深度强化学习》,和TD3的代码,觉得市面上好多代码写的非常绚丽,但表达的意思,实际的操作确实同一个,再此总结一下这些常见的代码的含义。顺便自己构建一个比较简单易懂的强化学习算法供自己使用。暂时只搭建了部分,欢迎star参考了很多人写的代码,这里先不列举了。torch版本:2.3.1+cu121python版本:3.11.9设计深度强化学习库的思想。
2024-08-15 12:48:48
2046
2
原创 【MARL】MADDPG + attention 实现(+论文解读)
导师让在MADDPG上加一个注意力机制,试了很多种,下面的参考的论文的效果最好,先把其思路记录下来。之后有时间再试试自注意力机制。github和实际上的attention 不一样,论文里并不是直接加进去,而是巧妙利用了注意力机制里的一些特性,重新定义了Q函数,达到了神奇的效果。MADDPG论文中定义的Q 为QQiusa∣aiuioiQQiusa∣aiuioi))
2024-07-25 23:08:27
4908
12
原创 【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
2020
3
原创 【内网穿透】打洞笔记
租了一个云服务器,想用vscode的ssh远程连接,发现有必须要有公网才能进行连接,于是又租了一个月的公网,但还是想知道有没有办法不用租公网也能实现连接,于是在大佬的帮助下成功实现,这里记录一下打洞的笔记。云服务的镜像linux 版本:Ubuntu20.04。
2024-07-16 21:33:07
3474
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
1328
5
原创 【深度强化学习】如何使用多进程(multiprocessing、pipe)来加速训练
进程:相当于电脑多开了很多应用。线程:相当于一个应用里,比方说:一个网页浏览器里有一个线程负责渲染页面,另一个线程负责处理用户输入,还有一个线程负责下载文件。这些线程在同一个进程内协作,共同完成浏览器的功能。比方说上图的VScode是32进程,这里显示每个进程里有多少个线程,如上图第一个code进程有32个线程。任务管理器查看线程数、PID值等方法了解到此,我们可以了解到上述线程和平时电脑上所说的8核16线程中的线程所区分开,第二个线程说的可以看作逻辑核心数。实际效果:我这里开了4个进程。
2024-06-25 14:17:45
2381
原创 【深度强化学习】如何平衡cpu和gpu来加快训练速度(实录)
一般来说,对于ppo这种类在线策略的深度学习算法:1、对于原代码全是gpu训练的(上面例子),需要改三处,注意第三处,可改可不改第4处。2、全cpu训练的,前两处加的不变,第三处的修改有变化,:(这里也要特别注意,否则也会报同时用两个设备的错误)即:在模型训练时,把所有要计算的tensor张量加到gpu中。如下所示:顺口记法:对于在线的策略(无经验池的策略),大体框架改两处,对应设备改一处,否则会报错。强化学习是不是主要吃cpu而不怎么吃gpu?这个参考的结论基本对,这里做补充。
2024-05-31 14:28:15
6801
5
原创 【深度强化学习】关于同一设备上cpu和gpu计算结果不一致问题
1、在一般使用中,可以不必追求cpu和gpu计算的结果一致性,也也避免不了,且cpu和gpu导致的细小差别,在训练的效果上几乎没有区别。2、同时,在同一台设备上,我们尽量要求该程序的结果能复现,是为了更好修改超参数。(见:本文万能seed,适用于单机多卡)3、不必追求在不同的设备上能复现一致结果,最终的效果在相同的超参数和输入下,输出的结果也相差无几。4、cpu和gpu在设计时的目的也不同,有差异理所应当,这里本文只分析了在计算上和训练神经网络时的出现的差异,仅作参考。
2024-05-24 15:28:31
5314
4
原创 [通俗易懂]《动手学强化学习》学习笔记3-第5-13章
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)强化学习入门(第二版)读书笔记我做了一个思维导图很方便理解之后学习完会在这里一直更新。补充一下要下载的库#第5章#第7章这里仅记录下学习时遇到的问题,已经学了一个月了,只是忙于毕设没空来更新一下学习进度,发现踏入门槛后学习强化学习就轻松了,当然还有一些实验时学到的一些小细节,准备下个博客再更。
2024-05-16 11:49:04
1109
原创 [通俗易懂]《动手学强化学习》学习笔记2-第2、3、4章
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)强化学习入门(第二版)读书笔记我做了一个思维导图很方便理解之后学习完会在这里一直更新。这里2、3、4章作者讲的非常好,就是得多读几遍,这里只做下当时学习时没弄明白的笔记。其余代码多看两遍就理解了,和伪代码都对的上。
2024-04-10 21:42:01
913
1
原创 [通俗易懂]《动手学强化学习》学习笔记1-第1章 初探强化学习
参考:《动手学强化学习》作者:张伟楠,沈键,俞勇动手学强化学习 网页版动手学强化学习 github代码动手学强化学习 视频强化学习入门这一篇就够了!!!万字长文(讲的很好)我做出的决策:选择了强化学习作为研究方向。强化学习是人工智能的未来。未来智能系统需要能够在不接受持续监督的情况下自主学习,而强化学习正是其中的最佳代表之一。我们知道,机器学习分为无监督学习,(有)监督学习,强化学习,迁移学习和深度学习等。(各有说法)无监督学习分析数据流,发现模式并做出预测,无需任何其他指导。解决聚类问题。
2024-04-07 10:02:59
3016
1
原创 【从零开始】自建高质量免费ip代理池(截止2024.4.1最新版)
为了防止ip被封后还能爬取网页,最常见的方法就是自己构建一个ip代理池。本来用的是下面这个开源项目ip代理池,github开源项目就是这个开源项目上好多免费的ip网站做了更新,导致它能获取的可用的代理频率不高,且它只是做了获取工作,没有做任何的测试,导致获取的代理匿名性层次不齐。用它获取的ip,用来做目标url,一个循环20次,也不能每次都能拿到网页上的数据,于是得自己做一个高质量的ip获取池。不过它开源的代码上也是有不少可以借鉴的。
2024-04-02 22:51:20
45712
12
原创 【任务计划程序】打卡签到(自用)
【github action+python】完成定时任务并推送(学会自制)(这里的github上这个glados签到不能用了,glados上的部分功能也变了,这里代码也跟着变一下。总是忘记给glados签到,试用了一下电脑自带的任务计划程序,给我每天打卡。
2024-03-13 10:14:04
1250
原创 【center-loss 中心损失函数】 参数与应用
之前我们已经完全弄明白了中心损失函数里的代码是什么意思,并且怎么用的了,现在我们来运行它。【center-loss 中心损失函数】 原理及程序解释(完)这段主代码,还是先以小见大。首先,有很多点,以普通的拟合直线为例子,假设直线是用来做分类问题,一条直线分成两类,或者说是回归问题,则就是,每个点落在两类的例子是多少。(可以想象可以用来做很多事。我们是这样一步一步做的1、确立损失函数(作为评判好的模型的标准)。(损失函数有很多可选,具体使用具体分析)
2024-03-07 17:16:31
2321
minist_test.csv 和minist_train.csv和minist_train_100.csv和minist_te
2022-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅