开封建网站的公司外包公司怎么找业务

张小明 2025/12/30 21:47:31
开封建网站的公司,外包公司怎么找业务,邢台信息港官网,永久免费的网站哪个好引言#xff1a;从智能体理论到初步实践 在强化学习#xff08;Reinforcement Learning, RL#xff09;的广阔领域中#xff0c;智能体#xff08;Agent#xff09; 通过与环境#xff08;Environment#xff09; 的持续交互来学习最优策略#xff0c;这一核心思想构成…引言从智能体理论到初步实践在强化学习Reinforcement Learning, RL的广阔领域中智能体Agent通过与环境Environment的持续交互来学习最优策略这一核心思想构成了现代人工智能的基石之一。从理论到实践众多算法应运而生其中Q-Learning作为经典的、无模型的、离线的表格型强化学习算法因其思想简洁、效果显著而成为初学者入门和实践的绝佳选择。它完美地体现了RL中“在试错中学习”的精髓。本文将深入剖析Q-Learning算法的核心原理并带领大家进行一场从零开始的手动编程实践。我们选择的实验环境是OpenAI Gym中的经典玩具问题——FrozenLake。通过本篇内容你不仅将理解Q-Learning背后的数学逻辑更能亲手编写代码见证一个智能体从“懵懂无知”到“驾轻就熟”的学习全过程。一、实验舞台FrozenLake环境详解在深入算法之前我们必须充分了解智能体将要学习的“舞台”。FrozenLake是一个网格世界环境它生动地模拟了一个在结冰湖面上寻宝的挑战。整个地图是一个4x4的网格默认版本每个格子代表一种状态S起点Start安全。F冰面Frozen安全但可能打滑。H冰洞Hole危险落入即失败。G目标Goal宝藏所在成功到达即获得奖励并结束回合。智能体的目标是从起点S出发避开所有冰洞H最终抵达目标点G。动作空间智能体在每个状态格子下可以采取4种动作0-向左(Left)1-向下(Down)2-向右(Right)3-向上(Up)。环境动力学关键难点随机性打滑由于湖面冰滑智能体发出的动作指令并不总是被完美执行。在F冰面上只有约33%的概率会按预期方向移动其余概率会随机滑向相邻的其他方向。这一特性引入了环境的不确定性极大地增加了学习难度。稀疏奖励只有在成功到达G时智能体才会获得1的奖励落入H或其它任何移动都获得0奖励。这种稀疏奖励信号对学习算法提出了挑战。状态表示16个格子从上到下、从左到右依次编号为0到15。例如左上角起点是状态0右下角目标在4x4中是状态15。理解了这个环境的挑战性我们就能明白一个能在此环境中学到成功策略的算法其能力是经得起考验的。二、Q-Learning算法原理深度剖析Q-Learning的核心是学习一个名为Q函数动作价值函数的表格。Q(s, a)代表了在状态s下采取动作a并且在此之后一直遵循最优策略所能获得的累积期望回报。2.1 核心思想时间差分TD与最优贝尔曼方程Q-Learning属于时间差分学习。它不需要知道环境的完整模型即无模型通过与环境交互的样本s, a, r, s’来更新Q值。其更新遵循的是最优贝尔曼方程Bellman Optimality EquationQ(s, a) ← Q(s, a) α * [ r γ * max_{a} Q(s, a) - Q(s, a) ]让我们拆解这个至关重要的公式Q(s, a)在状态s下选择动作a的当前估计值。α(学习率 Learning Rate)取值范围(0, 1]。它控制了新信息覆盖旧信息的程度。α1表示完全用新估计替换旧值α接近0表示基本不更新。r(即时奖励)执行动作a后环境反馈的即时奖励。γ(折扣因子 Discount Factor)取值范围[0, 1]。它衡量未来奖励的当前价值。γ0表示智能体只关心眼前奖励γ1表示未来奖励与眼前奖励同等重要。max_{a} Q(s, a)这是Q-Learning的“灵魂”所在。它代表在新状态s下所有可能动作中最大的Q值。注意我们并没有真正在s执行那个带来最大Q值的动作a而只是用它来估计未来的最优回报。r γ * max_{a} Q(s, a)这被称为“TD目标”。它是对Q(s, a)的一个更好的估计。TD目标 - Q(s, a)这被称为“TD误差”。它衡量了当前估计与更好估计之间的差距。我们的更新就是不断地缩小这个误差。2.2 “离线策略Off-policy”的本质Q-Learning被归类为离线策略算法这是其关键特性。行为策略Behavior Policy智能体实际与环境交互时采用的策略通常是为了探索而设计的如ε-greedy策略。目标策略Target Policy我们正在学习并希望最终收敛到的策略是完全贪婪的策略即总是选择当前Q值最大的动作。在更新公式中max操作符直接对应了目标策略是贪婪的。然而产生转移样本(s,a,r,s)的行为策略却是带有探索的ε-greedy。Q-Learning巧妙地将“探索”和“利用”分离开用探索性的行为策略去收集数据但用这些数据来更新一个贪婪的目标策略。这种分离使其能够更积极地学习最优值而不被探索行为所束缚。2.3 探索与利用的平衡ε-Greedy策略在训练过程中为了学习到准确的Q值表智能体必须探索Exploration未知的状态-动作对同时也需要利用Exploitation当前已知的较好动作。我们采用最经典的ε-greedy策略来实现这一平衡以概率ε如0.1随机选择一个动作探索。以概率1-ε选择当前状态s下Q值最大的动作利用。在训练初期ε可以设置得大一些以鼓励探索随着学习进行可以逐渐衰减ε增加利用的比例。三、手动实现Q-Learning攻克FrozenLake现在让我们将理论转化为代码。我们将不使用任何现成的RL库仅依靠NumPy和Gym完成所有实现。3.1 环境初始化与参数设置importgymimportnumpyasnpimportmatplotlib.pyplotasplt# 创建环境envgym.make(FrozenLake-v1,is_slipperyTrue)# is_slipperyTrue 开启打滑特性env.reset()# 超参数设置alpha0.1# 学习率gamma0.99# 折扣因子接近1以重视长期回报epsilon0.1# 探索概率total_episodes20000# 训练回合数# 初始化Q表状态数 x 动作数state_space_sizeenv.observation_space.n# 16action_space_sizeenv.action_space.n# 4Q_tablenp.zeros((state_space_size,action_space_size))# 用于记录每回合的回报总奖励episode_rewards[]3.2 核心训练循环实现Q-Learning更新这是整个算法的核心我们将严格遵循前面推导的公式。forepisodeinrange(total_episodes):state,_env.reset()# 重置环境获取初始状态terminatedFalse# 回合是否终止到达G或HtruncatedFalse# 回合是否被截断步数超限total_reward0whilenot(terminatedortruncated):# 1. 使用 ε-greedy 策略选择动作ifnp.random.random()epsilon:actionenv.action_space.sample()# 探索随机动作else:actionnp.argmax(Q_table[state,:])# 利用选择Q值最大的动作# 2. 执行动作与环境交互next_state,reward,terminated,truncated,_env.step(action)total_rewardreward# 3. Q-Learning 核心更新# 计算当前状态的当前Q值current_qQ_table[state,action]# 计算 TD 目标即时奖励 折扣因子 * 下一状态的最大Q值# 注意如果回合已终止(next_state是终止状态)则没有未来的Q值ifterminatedortruncated:td_targetrewardelse:td_targetrewardgamma*np.max(Q_table[next_state,:])# 4. 应用更新公式 Q(s,a) Q(s,a) α * (TD目标 - Q(s,a))Q_table[state,action]current_qalpha*(td_target-current_q)# 5. 转移到下一个状态statenext_state episode_rewards.append(total_reward)# 可选每1000回合打印一次平均成功率if(episode1)%10000:avg_rewardnp.mean(episode_rewards[-1000:])success_rateavg_reward# 因为奖励稀疏成功1失败0平均奖励即成功率print(fEpisode{episode1}, 最近1000回合平均成功率:{success_rate:.3f})3.3 策略评估与可视化训练完成后我们可以查看学习到的Q表并可视化学习曲线。# 打印学习到的最优策略根据Q表print(\n学习到的策略状态 - 最优动作)policynp.argmax(Q_table,axis1)# 对每个状态取Q值最大的动作索引action_symbols[,v,,^]# 分别对应 左下右上forsinrange(state_space_size):ifsin[5,7,11,12]ors15:# 这些是洞(H)和目标(G)没有动作print(fState{s:2d}: ◎,end )else:print(fState{s:2d}:{action_symbols[policy[s]]},end )if(s1)%40:print()# 每4个状态换行符合4x4网格# 绘制学习曲线移动平均成功率defmoving_average(data,window_size100):returnnp.convolve(data,np.ones(window_size)/window_size,modevalid)plt.figure(figsize(10,6))plt.plot(moving_average(episode_rewards,500),label500-Episode Moving Avg Success Rate,colorblue,linewidth2)plt.xlabel(Episode)plt.ylabel(Success Rate)plt.title(Q-Learning on FrozenLake-v1: Learning Progress)plt.legend()plt.grid(True,alpha0.3)plt.show()# 最后用学习到的策略实际运行一个回合看看效果state,_env.reset()terminatedFalsetruncatedFalsesteps0print(\n 运行最终策略 )whilenot(terminatedortruncated)andsteps20:actionnp.argmax(Q_table[state,:])# 贪婪策略state,reward,terminated,truncated,_env.step(action)steps1print(fStep{steps}: Action{action_symbols[action]}, New State{state}, Reward{reward})ifterminatedandreward1:print(成功到达目标)elifterminated:print(掉入冰洞...)env.close()四、结果分析与讨论运行上述代码你将观察到智能体的学习过程。通常在数千到一万个回合的训练后移动平均成功率会从接近0随机策略稳步上升至70%-85%。这意味着智能体已经学会了在充满随机打滑的冰面上有较高概率找到通往宝藏的安全路径。深入探讨几个关键点Q表的解读训练结束后查看Q表你会发现在靠近冰洞的状态所有动作的Q值都较低甚至是负值如果初始化是负数的话因为走向那里可能导致失败。而在安全的路径上指向目标方向的动作会拥有最高的Q值。超参数的影响学习率α过大会导致学习不稳定振荡过小则学习速度极慢。通常从0.1开始调整。折扣因子γ在FrozenLake中因为奖励稀疏且仅在最后获得一个较高的γ如0.99有助于将最终的成功奖励传递回路径上的早期状态。如果γ0智能体将完全学不到东西因为除了最后一步所有即时奖励都是0。探索率ε固定的ε如0.1是常见选择。也可以使用衰减策略如ε max(0.01, 0.1 * (0.995**episode))让智能体在后期更多地进行利用。与Sarsa的对比同为表格型TD算法Sarsa是“在线策略”的。它的更新公式为Q(s,a) ← Q(s,a) α * [ r γ * Q(s, a) - Q(s, a) ]注意这里的a是在s状态实际将要执行的动作同样由ε-greedy策略产生。Sarsa学习到的是遵循ε-greedy行为策略的价值因此更“保守”在像FrozenLake这种危险环境中学到的策略通常会更加远离悬崖/冰洞但可能效率稍低。而Q-Learning由于直接估计最优价值学到的策略更“乐观”和高效但在训练过程中因为使用了max操作可能会高估Q值这就是著名的“最大化偏差”问题后续的Double Q-Learning旨在解决它。五、总结与展望通过本次手动实现我们深入完成了理论层面理解了Q-Learning基于最优贝尔曼方程的TD更新原理掌握了其“离线策略”的本质以及如何通过ε-greedy平衡探索与利用。实践层面从零开始用Python编码实现了完整的Q-Learning算法在经典的FrozenLake环境中成功训练出了一个具有较高成功率的智能体。Q-Learning是通往更深层次强化学习世界的桥梁。虽然它受限于“表格法”在状态空间巨大或连续时如自动驾驶、机器人控制、复杂游戏会遭遇“维数灾难”而无法应用但其核心思想——通过时间差分和值函数迭代来学习最优策略——是深度Q网络DQN乃至整个值函数近似方法的直接源头。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站维护费怎么做会计分录方维服务公司服务范围

EmotiVoice 开源项目依赖项管理与工程化实践 在智能语音助手、虚拟偶像和AIGC内容创作日益普及的今天,用户对语音合成系统的要求早已超越“能说话”的基础功能。人们期待的是富有情感、自然流畅、具备个性化音色的声音体验。然而,传统文本转语音&#x…

张小明 2025/12/30 19:10:12 网站建设

地方网站建设商务网站建设项目的技术可行性

SkyReels-V2无限长度视频生成模型安全态势评估与防护架构 【免费下载链接】SkyReels-V2 SkyReels-V2: Infinite-length Film Generative model 项目地址: https://gitcode.com/GitHub_Trending/sk/SkyReels-V2 项目安全态势概览 SkyReels-V2作为基于Diffusion Forcing架…

张小明 2025/12/30 17:42:30 网站建设

wordpress工业产品企业网站主题企业解决方案工作组

软件安装与使用指南:Briscola及Automatix 1. Briscola游戏安装与配置 1.1 获取Briscola 在开始安装Briscola之前,需要先获取它。可以通过访问项目主页 www.rigacci.org/comp/software 以传统方式下载,不过这里使用 wget 命令来获取: wget http://www.rigacci.org/…

张小明 2025/12/27 11:48:06 网站建设

上海短视频seo优化网站十堰建设局网站

第一章:Open-AutoGLM 硬件适配调试经验在部署 Open-AutoGLM 模型过程中,硬件适配是决定推理性能与稳定性的重要环节。不同架构的 GPU、内存带宽以及驱动版本均可能影响模型加载与执行效率。以下为实际调试中积累的关键经验。环境准备与依赖安装 确保系统…

张小明 2025/12/30 17:10:16 网站建设

网站建设设计的流程长沙企业网站建设优度

基于NAM流程的APQP全过程解析与实践 在智能电动汽车加速迭代的今天,一款新车型从立项到量产的时间窗口已压缩至24个月以内。面对如此紧张的节奏,任何一次设计返工或供应链断点都可能让项目脱轨。某主机厂曾因一个外饰件供应商未在G6节点前完成DFMEA闭环&…

张小明 2025/12/28 18:19:09 网站建设