首页 > 其他分享 >蒙特卡罗智能体

蒙特卡罗智能体

时间:2024-03-17 18:32:29浏览次数:24  
标签:episode 200.0 智能 seed weights 蒙特卡罗 treward Out

CartPole 问题不一定非要使用成熟的强化学习方法和一些神经网络来解决,本节介绍了基 于蒙特卡罗模拟的问题的简单解决方案,并使用了降维的特定策略。在这种情况下,定义 环境状态的 4 个参数通过线性组合被压缩为了单个实值参数。2 以下 Python 代码实现了这 个想法。 In [18]: np.random.seed(100) ➊ In [19]: weights = np.random.random(4) * 2 - 1 ➊ In [20]: weights ➊ Out[20]: array([ 0.0868, -0.4433, -0.151 , 0.6896]) In [21]: state = env.reset() ➋ In [22]: state ➋ Out[22]: array([-0.0347, -0.0103, 0.047 , -0.0315]) In [23]: s = np.dot(state, weights) ➌ s ➌ Out[23]: -0.02725361929630797 ➊ 固定种子值的随机权重。 ➋ 环境的初始状态。 ➌ 状态和权重的点积。 然后根据单个状态参数 s 的符号来定义策略。 In [24]: if s < 0: a = 0 else: a = 1 In [25]: a Out[25]: 0 接下来可以使用此策略玩一回合 CartPole 游戏。鉴于所应用的权重的随机性,通常结果并 不比上一节的随机动作策略的结果好。 In [26]: def run_episode(env, weights): state = env.reset() treward = 0 for _ in range(200): s = np.dot(state, weights) a = 0 if s < 0 else 1 state, reward, done, info = env.step(a) treward += reward 注 2: 例如,参见博客文章“Simple reinforcement learning methods to learn CartPole”。强化学习 | 209 if done: break return treward In [27]: run_episode(env, weights) Out[27]: 41.0 因此,可以应用蒙特卡罗模拟来测试大量不同的权重。下面的代码模拟了大量的权重,检 查它们是成功还是失败,然后选择产生成功的权重。 In [28]: def set_seeds(seed=100): random.seed(seed) np.random.seed(seed) env.seed(seed) In [29]: set_seeds() num_episodes = 1000 In [30]: besttreward = 0 for e in range(1, num_episodes + 1): weights = np.random.rand(4) * 2 - 1 ➊ treward = run_episode(env, weights) ➋ if treward > besttreward: ➌ besttreward = treward ➍ bestweights = weights ➎ if treward == 200: print(f'SUCCESS | episode={e}') break print(f'UPDATE | episode={e}') UPDATE | episode=1 UPDATE | episode=2 SUCCESS | episode=13 In [31]: weights Out[31]: array([-0.4282, 0.7048, 0.95 , 0.7697]) ➊ 随机权重。 ➋ 这些权重的总奖励。 ➌ 观察是否有改善。 ➍ 替换最佳总奖励。 ➎ 替换最佳权重。 如果连续 100 回合的平均总奖励为 195 或更高,则认为 CartPole 问题已被智能体解决,如 以下代码所示。 In [32]: res = [] for _ in range(100): treward = run_episode(env, weights) res.append(treward) res[:10]210 | 第 9 章 Out[32]: [200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0] In [33]: sum(res) / len(res) Out[33]: 200.0 这是一个用来与其他更复杂的方法做比较的强有力的基准。

标签:episode,200.0,智能,seed,weights,蒙特卡罗,treward,Out
From: https://blog.csdn.net/weixin_44731078/article/details/136786624

相关文章

  • 华为用“七特”定义未来家:以空间智能打开产业空间
    由去年大模型火爆开始,人工智能加速向人们生活、生产的方方面面渗透,AI的落地无疑是2024年最大的看点。在近几天的AWE2024上,我们看到AI无处不在,智能的产品、智能的场景,向人们展示着未来精彩的智慧生活。如果说以往的AWE是家电行业的晴雨表,那么今年的AWE更像是未来智能生活的风向标......
  • 合成数据生成的生成式人工智能:方法、挑战和未来
    GenerativeAIforSyntheticDataGeneration:Methods,ChallengesandtheFutureabstract摘要:1.synthetic:人造的2.scenarious:情况;事态;脚本3.availability:有效性4.comparably:可比较的;同等的5.compelling:令人信服的,迫使6.delve:钻研;探究7.mark:标志着最近对于从大......
  • 突破编程_C++_C++11新特性(智能指针与内存管理(1))
    1内存管理基础1.1什么是内存管理在C++中,内存管理是一个核心概念,它涉及到如何在程序执行过程中分配、使用和释放内存。由于C++允许程序员直接管理内存,因此内存管理在C++中显得尤为重要。合理的内存管理可以确保程序的正确运行,避免内存泄漏、野指针等问题,提高程序的......
  • 引领人工智能时代的应用安全
    当生成式人工智能开始展现其编程能力时,开发人员自然会求助于它来帮助他们高效地编写代码。但随着大量人工智能生成的代码首次进入代码库,安全领导者现在正面临着人工智能对整体安全态势的潜在影响。无论是人工智能被用来将恶意代码插入开源项目,还是人工智能相关攻击的兴起,人工......
  • 标题:智能语音助手技术文档
    标题:智能语音助手技术文档摘要:本文介绍了一种基于自然语言处理和机器学习技术的智能语音助手。该语音助手可以通过语音指令与用户进行交互,并实现各种功能,如语音搜索、日程安排、天气查询等,为用户提供了便捷的智能化服务。引言:智能语音助手是一种基于人工智能技术的新型......
  • 智能酒店管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图 项目介绍随着科技的进步和旅游业的繁荣,酒店行业正面临着前所未有的机遇与挑战。为了提高服务质量、运营效率以及顾客满意度,智能酒店管理系统应运而生。这种系统利用......
  • 枪支弹药智能管理系统
    华盛恒辉枪支弹药智能管理系统是一个综合运用多种先进技术的系统,主要用于实现枪支弹药管理的规范化、智能化、可控化和便捷化,从而有效预防和解决管理安全隐患。华盛恒辉五木恒润​这类系统通常包括智能枪弹柜、智能安全防护门、安防监控等终端设备以及智能......
  • 嵌入式毕业设计-基于单片机的智能红外遥控器的设计与实现
    项目介绍技术:C语言、单片机等摘要:本设计内容是实现一个智能遥控器,利用STC89C54单片机作为主控芯片,同时与无线发射和接收模块配合,然后通过硬件设计和软件编程最终实现系统功能。本设计首先对红外遥控技术的基本原理和设计方法进行了详细介绍,然后确定系统方案,紧接着分别对......
  • 【触想智能】嵌入式工控一体机在交通监控管理上的应用分析
    随着现代交通网络和技术的不断发展,高速公路的建设已经成为国家重点工程之一。然而,如何确保高速公路的安全驾驶则成为了一个长期亟待解决的问题。为了提高高速公路的交通管理效率,嵌入式工控一体机被广泛应用于高速公路的联合监控管理系统中。嵌入式工控一体机是一......
  • 【机器学习智能硬件开发全解】(五)—— 政安晨:嵌入式系统基本素养【总线、地址、指令集
    在智能硬件领域中,一个核心概念是嵌入式系统,整体结构可以分为以下几个主要组成部分:控制器:控制器是嵌入式系统的核心,负责处理和执行系统中的各种任务和功能。它通常由中央处理器(CPU)和相关的外围设备(如存储器、时钟、中断控制器等)组成。存储器:存储器用于存储系统的程序代码和......