自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 轻量权限认证:jwt、shiro与sa-token对比与选型

本文介绍了JWT(JSON Web Token)的基本概念及其与Shiro框架的结合应用。JWT是一种无状态的令牌协议,包含Header、Payload和Signature三部分,用于安全认证但缺乏授权功能。Shiro则是一个全面的安全框架,提供认证、授权、会话管理等高级功能,但存在分布式场景下的状态管理问题。通过整合JWT的无状态特性和Shiro的安全功能,实现了高效认证。具体实现包括JwtToken类、JwtRealm验证配置、JwtFilter过滤器、ShiroConfig启动配置和AccessCon

2025-07-01 18:39:38 1221

原创 【已解决】pip安装gym==0.19.0报错

配置DRL环境时安装gym==0.19.0报错,原因是setuptools版本过高。解决方法:1)临时降级setuptools至59.5.0再安装gym;2)使用conda创建虚拟环境并安装指定版本gym(推荐)。环境依赖包括Python 3.8.0、PyTorch 1.10.0、NumPy 1.23.1等。

2025-06-10 14:21:15 624

原创 Spring Security 6 跨域配置CORS

在spring security 6.1版本后被弃用,新版本中如何实现跨域访问?

2024-12-21 11:48:53 960

原创 SpringBoot 3.4.0整合Mybatis-plus版本问题:Invalid bean definition with name ‘xxxMapper‘ defined in flle

SpringBoot对应Mybatis-plus版本关系,需要检查自己项目SpringBoot版本与MyBatis-plus依赖的版本是否兼容,如果不兼容,修改相应pom文件中MyBatis-Plus的依赖版本。,mybatis-plus也需要修改到相应版本。

2024-11-23 13:44:44 918

原创 深度强化学习(7)多智能体强化学习IPPO、MADDPG

多智能体的情形相比于单智能体更加复杂,因为每个智能体在和环境交互的同时也在和其他智能体进行直接或者间接的交互。Combat 是一个在二维的格子世界上进行的两个队伍的对战模拟游戏,每个智能体的动作集合为:向四周移动 1 格,攻击周围 3x3 格范围内其他敌对智能体,或者不采取任何行动。由于MPE 环境中的每个智能体的动作空间是离散的,而DDPG算法本身需要使智能体的动作对于其策略参数可导,因此引入Gumbel-Softmax的方法来得到离散分布的近似采样。

2024-09-28 16:21:52 3338 1

原创 导包报错:AttributeError: ‘EnvSpec‘ object has no attribute ‘_kwargs‘

运行后发现报错AttributeError: 'EnvSpec' object has no attribute '_kwargs'网上查询未果,感觉是gym的版本问题,于是卸载原有的0.25版本的gym,重新下载0.18的gym。起因是导入强化学习combat环境时Pycharm查找不到同一目录下的环境文件。在Pycharm中ma_gym仍然标红,但是再运行后不再报错。

2024-09-26 18:28:53 280

原创 深度强化学习(6)Actor-Critic & DDPG算法

在已有的方法中,REINFORCE、Actor-Critic都是在线策略算法,样本的效率低。深度Q网络(DQN)是一个基于值函数的方法,它只学习一个价值函数。REINFORCE是基于策略的方法,它学习的是一个策略函数,直接输出动作的概率分布。在上面的公式中,会发现现在有三个网络需要学习,增大了估计不准的风险。结合了DQN和REINFORCE,它既学习价值函数,又学习策略函数。定义策略网络,其输入是某个状态,输出则是该状态下的动作概率分布。定义价值网络,其输入是某个状态,输出则是状态的价值。

2024-09-23 16:32:51 3394

原创 深度强化学习(5)策略梯度定理 & REINFORCE算法

虽然DQN能够解决连续的状态的问题,但是却无法处理连续动作空间的动作决策。而在实际应用中,很多场景的动作都是连续的,如自动驾驶中,需要决策车辆的速度、加速度、油门刹车的角度等,在游戏AI中,需要决策角色的移动和攻击的方向、距离、预判敌人的位置等。:在每种状态下,执行的动作是随机的,可以按照概率值选择动作(如Softmax输出执行每个动作的概率)。下,执行所有动作时的立即回报的均值。

2024-09-17 16:06:29 1295 1

原创 深度强化学习(4)深度Q网络(DQN)

在车杆(CartPole)环境中,有一辆小车,智能体的任务是通过左右移动保持车上的杆竖直,若杆的倾斜度数过大,或者车子离初始位置左右的偏离程度过大,或者坚持时间到达200帧,则游戏结束。智能体的状态是一个维数为4的向量,每一维都是连续的,其动作是离散的,动作空间大小为2。在游戏中每坚持一帧,智能体能获得分数为1的奖励,坚持时间越长,则最后的分数越高,坚持200帧即可获得最高的分数。当使用Q函数时,策略完全取决于Q函数,给定一个状态,就穷举所有的动作然后采取Q值最大的动作。比其他动作的Q值都大。

2024-09-16 14:34:08 2762

原创 深度强化学习(3)时序差分学习 & Dyna-Q算法

基于模型的强化学习(model-based reinforcement learning),其中的模型即对环境的状态转移概率和奖励函数进行建模从而得到的环境模型。Dyna-Q就是一个基于模型的强化学习算法,它能够通过Q-planning基于模型生成模拟数据,然后利用模拟数据和真实数据改进策略。在线策略就表示行为策略和目标策略是同一个策略,反之离线策略表示行为策略和目标策略不是同一个策略。多步时序差分指的是使用n步的奖励,然后再用之后的状态价值估计。

2024-09-13 17:29:47 1186

原创 深度强化学习(2)马尔可夫决策过程

在随机过程中,马尔可夫性质(Markov property)指的是一个随机过程在给定现在状态及过去所有状态的情况下,其未来状态的条件概率分布仅依赖于当前状态。马尔可夫过程是一组具有马尔可夫性质的随机变量序列s1,...,sts_1,...,s_ts1​,...,st​,其中下一个时刻的状态st+1s_{t+1}st+1​只取决于当前状态sts_tst​。假设历史状态为ht={s1,s2,...,st}h_t=\{s_1,s_2,...,s_t\}ht​={s1​,s2​,...,st​},则马尔可夫过程满足

2024-09-11 17:04:55 1503 1

原创 深度强化学习(1)强化学习&多臂老虎机问题

(reinforcement learning, RL)讨论的是智能体(agent)如何在复杂、不确定的环境(environment)中最大化它能够获得的奖励。为了知道拉动哪一个拉杆能获得最高奖励,需要估计拉动这根拉杆的期望奖励。如果只拉动一次这个拉杆获得的奖励存在随机性,所以需要多次拉动一根拉杆,计算多次奖励的期望。由于奖励的概率分布是未知的,因此我们需要在“探索拉杆的获奖概率”和“根据经验选择获奖最多的拉杆“中进行权衡。根拉杆的老虎机,拉动每一根拉杆都对应一个关于奖励的概率分布。“便是多臂老虎机问题。

2024-09-11 16:54:03 1051

空空如也

空空如也

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

TA关注的人

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