自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 强化学习A2C求最优策略的代码实现

摘要:本文介绍了Advantage Actor-Critic (A2C)算法及其与ADC算法的区别,包括添加baseline、使用价值网络(vnet)代替Q值网络等关键改进。通过GridWorld环境实现了一个QAC类,包含策略网络(pnet)和价值网络(qnet),采用TD误差进行价值更新和策略梯度更新。实验结果表明,该算法能有效学习环境中的最优策略,通过策略网络和价值网络两种方式均可获得合理的动作选择策略。

2025-12-18 15:39:47 252

原创 强化学习QAC求最优策略的代码实现

本文实现了一个基于QAC(Q Actor-Critic)算法的网格世界解决方案。QAC算法包含两个神经网络:策略网络(Actor)和价值网络(Critic)。策略网络用于生成动作概率分布,价值网络评估状态-动作对的Q值。算法通过TD误差更新价值网络,使用策略梯度方法更新策略网络。实验在5×5网格环境中进行,包含障碍物和终止状态。结果显示,通过策略网络和价值网络获取的策略可能不一致,因为基于Q值的贪心策略不一定最优。该实现展示了强化学习中Actor-Critic框架的基本原理及其在离散环境中的应用。

2025-12-17 21:37:01 243

原创 强化学习REINFORCE求最优策略的代码实现

摘要:本文实现了一个基于蒙特卡洛方法的策略梯度算法(REINFORCE)。关键点包括:1) 使用神经网络输出动作概率分布,通过softmax保证正数输出;2) 按概率分布选择动作而非贪心策略,以保持探索性;3) 采用梯度上升更新策略参数,损失函数取负;4) 逐步收集episode数据而非完整轨迹生成。算法实现包含状态解码、回报计算和策略更新三个主要步骤,在5×5网格环境中验证有效,能学习到最优策略。

2025-12-17 17:46:17 174

原创 强化学习DeepQLearning求最优策略的代码实现

摘要:本文实现了一个基于深度Q学习的网格世界导航算法。代码构建了一个包含两个隐藏层的神经网络,使用SGD优化器和MSE损失函数。通过环境交互生成训练数据,采用经验回放机制进行批量训练,并定期同步目标网络参数。算法在5x5网格环境中运行,设置了障碍物、边界惩罚和终点奖励。最终输出最优策略的可视化结果,展示了智能体在复杂环境中的决策能力。

2025-12-16 18:07:34 175

原创 强化学习Q-learning求最优策略的代码实现

摘要:本文介绍了强化学习中的on-policy和off-policy方法,其中on-policy要求行为策略与目标策略相同,而off-policy允许二者不同。实现了一个Q-learning算法,支持两种策略模式,通过网格世界环境进行验证。代码中behavior policy初始化为均匀分布以增强探索性,target policy则采用贪心策略。实验结果显示,通过足够多的采样(samples=1000),算法能有效学习到最优策略。该实现包含了Q值更新、ε-greedy策略改进等核心机制,适用于不同环境配置的

2025-12-14 22:27:04 163

原创 强化学习N-step Sarsa求最优策略的代码实现

本文介绍了Sarsa算法在网格世界环境中的实现要点。理论基础部分指出,超参数设置需要考虑Q表大小、样本数和学习率α的合理范围(0.05-0.2)。代码实现了Sarsa算法,通过ε-greedy策略更新Q值和策略,采用时间差分方法进行迭代学习。实验使用5x5网格环境,设置障碍物和终止状态,通过5000次采样训练。与普通Q-learning不同,Sarsa采用同策略(on-policy)学习,每次更新都基于当前策略选择动作。结果显示算法能有效学习最优策略,但需要注意保证足够采样次数使各状态被充分访问。

2025-12-14 18:11:18 210

原创 强化学习蒙特卡洛策略迭代方法求最优策略的代码实现(二)

摘要:本文提出了一种融合first-visit和every-visit的蒙特卡洛策略迭代方法。在every-visit模式下采用ε-greedy策略更新,first-visit模式下采用greedy更新。针对智能体倾向于原地不动的问题,在环境模型中添加了r_stay惩罚项,并调整了边界和禁区奖励设置。算法实现中,通过采样生成轨迹,根据选定模式更新Q值,最终输出状态值和最优策略。实验表明,随着迭代次数增加(100→1000→10000),策略效果逐步提升。由于采用随机探索机制,相同配置下多次运行结果可能存在差

2025-12-12 15:18:18 291

原创 强化学习蒙特卡洛策略迭代方法求最优策略的代码实现(一)

本文实现了一个基于蒙特卡洛方法的策略迭代算法(MonteCarloPolicyIteration),用于解决网格世界环境中的强化学习问题。算法通过从给定状态-动作对出发采样多个episode,计算平均回报来估计动作值函数。采用贪心策略进行策略改进,不支持随机策略。实验在5x5网格环境中进行,包含障碍物和终止状态。与策略迭代和价值迭代方法相比,该蒙特卡洛方法同样能收敛到最优策略。环境类进行了相应修改,包括状态编码、奖励设置和step方法实现,以支持算法需求。

2025-12-12 12:05:26 236

原创 强化学习策略迭代求最优策略的代码实现

本文实现了策略迭代算法(Policy Iteration)解决网格世界问题。算法包含策略评估和策略改进两个交替步骤:1)评估当前策略的价值函数;2)基于价值函数改进策略直至收敛。实验在5x5网格环境中进行,设置障碍物和终止状态。结果表明策略迭代收敛速度快于值迭代,两者价值函数差异微小。算法输出包括状态价值矩阵和最优策略可视化,验证了策略迭代在马尔可夫决策过程中的有效性。

2025-12-11 20:34:37 108

原创 强化学习值迭代求最优策略的代码实现

本文实现了一个通用的网格世界环境(GridWorldEnv)和价值迭代算法(value_iteration_algorithm)。环境支持确定性和随机性MDP,通过transition_prob参数控制动作执行概率分布。价值迭代算法通过动态规划求解最优策略,包含状态价值函数和策略更新过程。实验展示了在5x5网格中,包含障碍物和终点的场景下算法的运行结果,输出了状态价值矩阵和可视化策略(用箭头表示最优动作)。关键特性包括:1)同时支持确定性和随机性MDP;2)严格的概率分布校验;3)完整的状态转移和奖励模型构

2025-12-11 18:12:41 175

原创 创建DataSet和DataLoader

本文介绍了两种常见的数据集组织形式及其对应的PyTorch Dataset实现方法。第一种是分类数据集(如ImageNet),采用train/val/test二级目录结构,子目录为类别标签,实现类通过遍历图片路径并返回图片和对应标签。第二种是目标检测数据集(如TACO),采用train/val/test二级目录下images和labels三级目录结构,图片与标注文件同名匹配,实现类同时读取图片和对应的txt标注文件。两种方法都实现了基本的__getitem__和__len__接口,并展示了如何实例化和使用数

2025-12-08 17:51:05 245

原创 从java源文件打包模块和jre

hello.world是模块名,编译时生成的module-info.class会记录模块名,运行时,就是通过这个名字找到模块。requires记录当前这个模块hello.world需要引用的其他模块名,java.base可以被自动引入。只有模块被依赖,才能被使用。main.java中需要用到javax.xml.XMLConstants(java.xml模块的包),就必须在module-info.java中requires java.xml,如果没有则编译报错。

2025-10-24 00:18:59 363

原创 明明安装了JDK,配置了PATH,为什么命令行找不到javac

删除用户变量和系统变量中path下的C:\Program Files\Common Files\Oracle\Java\javapath。第二个路径才是你自己安装的 JDK 17,但永远不会被调用。检查环境变量,在path中找到了jdk的bin路径,追踪这个文件,确保文件没有损坏和缺失。查看系统变量,确实发现了另一个java.exe的地址,且在自己安装的jdk17上面。很明显,有两个路径都有java.exe和javac.exe。那就是配置不起效,导致命令行找不到java。调用第一个找到的可执行文件。

2025-10-23 22:44:41 337

原创 classpath到底能否含有bin文件

我设置classpath为bin/,不就可以找到class文件了吗?但在 JAR 包中,classpath 的“根”是 JAR 本身。如果 JAR 里是 bin/hong/Person.class。会固定把 JAR 根目录当作 classpath 根。,类加载器会去找 hong/Person.class。的写法通常用于类加载工具,不是标准用法),但这种写法不被常规 JVM 命令支持(它不会自动进入某个子目录(如。类加载器加载类时,会从。这里需要特别注意的是,原因:加载方式不一样。

2025-10-23 20:34:03 230

原创 数据处理的一般流程

1. 使用pandas或numpy。3. 了解每个特征的含义、数据类型(df.dtypes:int64、float32、object等)、取值类型(类别、数值、顺序、日期),可初步确定特征的处理方式(类别一般使用one-hot编码[pd.get_dummies(df, columns=, prefix= ,dtype= )],数值。

2025-10-18 22:44:49 890

原创 由键盘输入引发的os处理操作

本文探讨了键盘输入的全过程:1)进程不会因按键而创建,而是预先存在并阻塞等待输入;2)键盘按键触发硬件中断,扫描码经转换存入内核缓冲区;3)应用程序通过系统调用读取缓冲区数据。文章还解释了GUI应用的事件循环机制,将进程比作"打地鼠"的人,通过事件队列依次处理输入。整个过程涉及硬件中断、内核缓冲和应用读取三个关键环节,说明了用户输入如何从物理按键最终转化为应用程序可处理的数据。

2025-08-31 15:50:06 660

原创 从服务器上推送文件到github仓库

如果你的目录还没有初始化为 Git 仓库,首先进入该目录并初始化 Git 仓库。提交信息是描述你这次提交的内容,可以随意写,但通常会描述这次更改的目的或内容。这会将本地的代码上传到 GitHub 仓库的。你已经设置好 SSH 密钥,可以直接用。命令推送代码到 GitHub 了。添加一个新的 key。

2025-05-10 22:42:39 362

原创 有后效性和无后效性

题解中的详细说法是 “把状态定义得更细致、准确,例如:前天推送的第 124 题:状态定义只解决路径来自左右子树的其中一个子树”。我猜测博主的思路是 在返回某个节点的路径最大值时,返回的是 单边路径,那么就有了 状态限制,因为你不能两边都走,只能选一边返回。问题,因为我的第一思路是 从叶结点往上,遍历每个非叶节点,计算以每个非叶节点为根节点的子树中的最大路径和,在代码层面,写的是后序遍历的递推形式,也就是说遍历的时候是从上往下的,那么对于一个根元素来说,他的路径已经在回溯中被确定了。

2025-04-30 23:52:17 1848

原创 对mamba初始化和参数维度

这意味着delta并不需要像矩阵B,C一样与x有超强的相关性,他只要能表示足够的时间步长的变化即可,因此可以使用先低秩投影,再高维映射的方法,即d_inner -> d_rank -> d_inner,这样模型的参数量为d_inner*d_rank+d_rank*d_inner,由于d_rank<<d_inner,因此这个参数量比d_inner*d_inner小了太多。但是更新的是A_log,Aij>1,A_logij>0,真正作用与系统矩阵A'的是对A_log取负指数,那么A'<0。

2025-04-08 11:35:14 2203

原创 关于vector的使用说明

关于vector在实际运用中的一些说明

2024-03-02 18:39:40 1787 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除