当前位置: 首页 > news >正文

CPT 强化学习(Cumulative Prospect Theory Reinforcement Learning)代码实现

✅ CPT 强化学习Cumulative Prospect Theory Reinforcement Learning代码实现以下提供实用、可运行的 Python 实现结合Cumulative Prospect Theory (CPT)与强化学习。1. 核心概念回顾在传统 RL 中目标是最大化期望回报Expected Return。在CPT-RL中目标是最大化 CPT 值考虑损失厌恶、概率扭曲、参照点让 Agent 表现出人类-like 的风险偏好风险规避/寻求。2. 完整代码实现简单版CPT-Q Learningimportgymnasiumasgymimportnumpyasnpfromcollectionsimportdefaultdictimportrandom# CPT 核心函数 defcpt_value(x,alpha0.88,beta0.88,lambda_loss2.25):价值函数 v(x)xnp.array(x)returnnp.where(x0,x**alpha,-lambda_loss*(-x)**beta)defcpt_probability_weight(p,gamma_gain0.61,gamma_loss0.69):概率权重函数 w(p)pnp.array(p)# 简单实现不同 gamma 用于收益和损失w_gainp**gamma_gain/(p**gamma_gain(1-p)**gamma_gain)**(1/gamma_gain)w_lossp**gamma_loss/(p**gamma_loss(1-p)**gamma_loss)**(1/gamma_loss)returnnp.where(p0,w_gain,w_loss)# 简化处理defestimate_cpt_value(rewards,alpha0.88,beta0.88,lambda_loss2.25,gamma_gain0.61,gamma_loss0.69,reference0.0):从多条 trajectory 的回报样本估计 CPT 值returnsnp.array(rewards)-reference sorted_returnsnp.sort(returns)nlen(sorted_returns)# 计算决策权重累积形式简化版probsnp.ones(n)/n weightscpt_probability_weight(probs)# 累积权重简化实现cum_weightsnp.cumsum(weights[::-1])[::-1]# 粗略近似valuescpt_value(sorted_returns)cpt_valnp.sum(cum_weights*values)/n# 归一化returncpt_val# CPT-Q Learning classCPTQAgent:def__init__(self,state_size,action_size,alpha0.1,gamma0.99,epsilon0.1,cpt_alpha0.88,cpt_lambda2.25):self.q_tabledefaultdict(lambda:np.zeros(action_size))self.alphaalpha# 学习率self.gammagamma# 折扣因子self.epsilonepsilon# 探索率self.action_sizeaction_size self.cpt_alphacpt_alpha self.cpt_lambdacpt_lambda self.memory[]# 存储 trajectory returns 用于 CPT 估计defchoose_action(self,state):ifrandom.uniform(0,1)self.epsilon:returnrandom.randint(0,self.action_size-1)returnnp.argmax(self.q_table[state])deflearn(self,state,action,reward,next_state,done):# 标准 Q-Learning 更新可替换为 CPT 目标old_valueself.q_table[state][action]next_maxnp.max(self.q_table[next_state])# 传统 TD Targettd_targetrewardself.gamma*next_max*(1-done)self.q_table[state][action]old_valueself.alpha*(td_target-old_value)ifdone:self.memory.append(reward)# 简化记录 episode 回报# 训练示例 deftrain_cpt_rl(env_nameCartPole-v1,episodes500):envgym.make(env_name)state_sizeenv.observation_space.shape[0]# 连续状态需离散化或用近似# 为简单起见这里使用离散环境示例如 FrozenLake# 推荐使用简单离散环境演示envgym.make(FrozenLake-v1,is_slipperyFalse)agentCPTQAgent(state_sizeenv.observation_space.n,action_sizeenv.action_space.n)rewards_history[]forepisodeinrange(episodes):state,_env.reset()total_reward0doneFalsewhilenotdone:actionagent.choose_action(state)next_state,reward,terminated,truncated,_env.step(action)doneterminatedortruncated agent.learn(state,action,reward,next_state,done)statenext_state total_rewardreward rewards_history.append(total_reward)ifepisode%1000:print(fEpisode{episode}, Total Reward:{total_reward})# 演示 CPT 值估计sample_returnsrewards_history[-50:]# 最近50个 episodecpt_valestimate_cpt_value(sample_returns)print(f\n最后50个episode的 CPT 值估计:{cpt_val:.4f})returnagent,rewards_historyif__name____main__:agent,historytrain_cpt_rl(episodes1000)3. 进阶Policy Gradient CPT概念代码defcpt_policy_gradient_loss(returns,baseline0.0):CPT 目标下的 Policy Gradient Lossadvantagesnp.array(returns)-baseline valuescpt_value(advantages)# 在实际 PG 中用 values 替代 advantages 进行梯度更新return-np.mean(values)# 最大化 CPT 值4. 使用建议与扩展离散 vs 连续上面代码适合离散环境如 FrozenLake、Taxi。连续环境如 CartPole建议结合 Actor-Critic CPT 价值估计。更精确的 CPT 估计参考 Prashanth et al. (2016) 的分位数方法或累积权重精确计算。框架推荐Stable-Baselines3 / CleanRL 自定义 Reward ShapingPyTorch/TensorFlow 实现 Policy Gradient 版本2024 论文有最新 PG 定理参数调优lambda_loss2.25→ 更强的损失厌恶gamma_gain 1→ 概率扭曲想让我继续提供完整 PyTorch Actor-Critic CPT 版本推荐生产级特定论文算法复现如 CPT-SPSA 或 Policy Gradient在 Gymnasium 连续控制任务上的实现与标准 RL 的对比实验代码
http://www.zskr.cn/news/1372279.html

相关文章:

  • 3分钟掌握Heightmapper:免费创建专业3D地形高度图的终极指南
  • 抖音无水印视频解析工具:3分钟搭建你的个人视频素材库
  • 宁波靠谱手机维修店铺大揭秘,你知道几家? - 资讯纵览
  • 无感定位从根源规避失联风险 新一代定位技术护航矿井安全生产
  • 破解人卡分离难题,以无源无感技术化解矿山搜救困境
  • 江阴沙发翻新换皮换布面靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新换皮换布一站式服务 - 卓信营销
  • 第三次软工团队作业
  • 2026 年成都螺纹钢厂家及采购优选推荐 四川盛世钢联钢厂联营资源等你来抢 - 四川盛世钢联营销中心
  • 宜兴沙发翻新换皮换布面靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新换皮换布一站式服务 - 卓信营销
  • 卖电子元器件怎么找客户?下游工厂在哪里
  • 卖切削液怎么找客户?下游工厂在哪里
  • 如何利用专业级游戏资源逆向工具深度解析FromSoftware游戏文件格式
  • 《普通人打造AI小团队:通用智能体与企业级智能体搭建》第4、5、6章
  • alpha冲刺作业
  • BooruDatasetTagManager:如何用AI智能标注工具将图像数据集处理效率提升10倍
  • 高端私享闽域之旅|5 天 4 晚福州平潭泉州 VIP 定制游,开启惬意旅途 - 奔跑123
  • 乐清沙发翻新换皮换布面靠谱商家优选推荐|匠阁沙发翻新、御匠沙发翻新、锦修沙发翻新三大品牌、全品类沙发翻新换皮换布一站式服务 - 卓信营销
  • Kubernetes性能优化指南:提升集群运行效率
  • Legacy iOS Kit:终极指南:让旧款iPhone/iPad重获新生
  • 【LeetCode刷题日记】二叉搜索树 的中序遍历 + 前驱指针,一套模板解决530.最小绝对差|501.二叉搜索树中的众数
  • Nacos CVE-2021-29442:Spring Boot Actuator未授权访问漏洞深度解析
  • 借脑之术:一根记忆枝条,嫁接到另一棵树上 —— Memory Grafting 深度解读
  • 2026年宁波口碑好、专业、质量过硬且售后服务优质的手机维修店铺综合实力排行榜 - 资讯纵览
  • 2026年5月优秀的气动蝶阀/气动截止阀厂家推荐钢特阀门科技有限公司 - 品牌鉴赏师
  • 2026 年成都钢板厂家及采购优选推荐 四川盛世钢联钢厂联营资源等你来抢 - 四川盛世钢联营销中心
  • 驾照证件照怎么制作?2026驾驶证照片规范+手机制作教程 - 科技大爆炸
  • 栈以及队列的详细讲解
  • 2026年5月江门台山地区黄金回收白银铂金回收门店推荐TOP1 地址及联系方式 - 诚信金利回收
  • DeepSeek模型版本选择实战手册(2024最新版):从推理延迟、显存占用到LoRA兼容性全拆解
  • HashMap 源码解析 底层原理 面试如何回答