ic商城网站建设有没有好玩的网页游戏

张小明 2026/1/1 12:38:08
ic商城网站建设,有没有好玩的网页游戏,新网站建设怎么样,电商网站开发岗位职责这里直接融合了first visit和every visit#xff0c;当选择every visit#xff0c;策略更新使用stochastic的epsilon greedy#xff1b;选择first visit#xff0c;策略更新使用greedy。理论基础#xff1a;需要说明#xff1a;1. 由于我发现agent大多数时候更倾向于呆在…这里直接融合了first visit和every visit当选择every visit策略更新使用stochastic的epsilon greedy选择first visit策略更新使用greedy。理论基础需要说明1. 由于我发现agent大多数时候更倾向于呆在原地因为走到终点的reward太小而走到forbidden或者boundary的reward又是很大的负数因此呆在原地是长远考虑。因此我增加了r_stay当模型决定留在原地就给一定的惩罚。在env.py中添加即可。同时注意测试时r_boundary和r_forbidden不应该设置的太小。2. 在env.py的step方法中需要调整可以允许agent进入forbidden区域。if not (0 ni self.size and 0 nj self.size): next_state self.state_id(i,j) else: next_state self.state_id(ni,nj)from collections import defaultdict import numpy as np from env import GridWorldEnv from utils import drow_policy class MonteCarloPolicyIteration(object): def __init__(self, env: GridWorldEnv, gamma0.9, samples1, modefirst visit): self.env env self.action_space_size self.env.num_actions # 上下左右原地 self.reward_space_size self.env.reward_space_size # 执行每个动作的reward self.state_space_size self.env.num_states self.reward_list self.env.reward_list self.gamma gamma self.samples samples self.mode mode self.policy np.ones((self.state_space_size, self.action_space_size)) / self.action_space_size self.state_value np.zeros((self.env.size, self.env.size)) self.qvalues np.zeros((self.state_space_size, self.action_space_size)) self.returns np.zeros((self.state_space_size, self.action_space_size)) # 必须初始化为0不是zeros_like self.nums np.zeros((self.state_space_size, self.action_space_size)) def solve(self, iterations20, epsilon0.1): :param iterations: 迭代的次数 :param epsilon: epsilon greedy[0,1] epsilon0greedy就选择best actionepsilon1:stochastic选择所有action的概率相同 for i in range(iterations): for _ in range(self.samples): # 随机选择一个非终点状态作为起始状态,确保所有的状态都能被充分访问 non_terminal_states [i for i in range(self.state_space_size) if i not in self.env.terminal] s np.random.choice(non_terminal_states) a np.random.choice(self.action_space_size, pself.policy[s]) # 按policy采样 episode self.generate_episodes(s, a) self.update_q_from_episode(episode) for s in range(self.state_space_size): if s in self.env.terminal: self.policy[s] np.eye(self.action_space_size)[4] else: best_a np.argmax(self.qvalues[s]) if self.modeevery visit: # 如果是first visit很多(s,t)可能被访问了很多次但是却只用它做了一次action value的估计 # epsilon greedy self.policy[s] epsilon / self.action_space_size # 给其他action小概率 self.policy[s, best_a] 1 - epsilon # 给最有可能的action大概率 elif self.modefirst visit: # 实际对应epsilon0的情况 self.policy[s]np.eye(self.action_space_size)[best_a] self.state_value np.sum(self.policy * self.qvalues, axis1).reshape(self.env.size, self.env.size) def generate_episodes(self, start_state, start_action, max_steps200): :param start_state: 当前状态的state_id :param start_action: 当前动作 :return: [(state_id, actionreward),(...)] episode [] state start_state action start_action for _ in range(max_steps): next_state, reward, done self.env.step(state, action) episode.append((state, action, reward)) if done: break state next_state action np.random.choice(self.action_space_size, pself.policy[state]) # 从[0,action_space_size)随机选一个每个action的概率为policy[state] return episode def update_q_from_episode(self, episode): G 0 visit set() for s, a, r in reversed(episode): # 如果直接使用reversed(episode)就会同时把tuple内部也反转了 G r self.gamma * G if self.mode first visit: if (s, a) not in visit: self.returns[s, a] G self.nums[s, a] 1 self.qvalues[s, a] self.returns[s, a] / self.nums[s, a] elif self.mode every visit: self.returns[s, a] G self.nums[s, a] 1 self.qvalues[s, a] self.returns[s, a] / self.nums[s, a] else: raise Exception(Invalid mode) if __name__ __main__: env GridWorldEnv( size5, forbidden[(1, 2),(3,3)], terminal[(4,4)], r_boundary-1, r_other-0.04, r_terminal1, r_forbidden-1, r_stay-0.1 ) vi MonteCarloPolicyIteration(envenv, gamma0.9, samples10, modeevery visit) vi.solve(iterations10000, epsilon0.3) # 只有modeevery visit才需要传入epsilon print(\n state value: ) print(vi.state_value) drow_policy(vi.policy, env)对于相同的配置iteration100、1000、10000时策略分别是可以发现iteration越大策略越优。由于stochastic因此相同的配置运行多次结果也很大概率不同大多数时候agent在进行一些exploration因此看起来策略并不是最好的。因此epsilon greedy实际上是牺牲了最优性换取了更多的explorationepsilon越小越接近最优greedyepsilon越大跑的时间也越长。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站没建设可以访问吗网站版权备案

Higress云原生网关监控告警体系构建实战 【免费下载链接】higress Next-generation Cloud Native Gateway | 下一代云原生网关 项目地址: https://gitcode.com/GitHub_Trending/hi/higress 在微服务架构日益普及的今天,API网关作为流量入口,其稳定…

张小明 2025/12/28 21:19:39 网站建设

摄影手机网站模板怎样查找企业联系方式

Scratch和Python是少儿编程的常见选择,均有助于培养孩子的逻辑思维和解决问题能力,但也存在诸多差异。针对如何选择与学习的困惑,本文将详细解析,助您理清思路。一、Scratch与Python的深度对比维度ScratchPython交互方式鼠标拖拽彩…

张小明 2025/12/31 12:42:02 网站建设

个人简介网站源码比较好的网站建设平台

第二章 VMware vSphere 平台与组件介绍与核心功能 2.1 vmware vsphere介绍图2-1-1 vsphere物理拓扑模型 VMware vSphere由虚拟化服务器、虚拟存储、IP 网络、管理服务器和桌面客户端组成。首先是管理端,我们在有多台服务器的时候要把这些服务器集中管理,…

张小明 2025/12/31 17:01:43 网站建设

响应式网站设计教程中国自助主做网站有哪些

🍲 开篇寒风呼啸的冬日傍晚,推开家门,一股浓郁的肉香混着白菜的清甜扑面而来。锅里咕嘟咕嘟冒着热气,粉条吸满了汤汁,晶莹剔透……这就是北方人记忆里最温暖的味道——猪肉白菜炖粉条。一道看似简单的家常菜&#xff0…

张小明 2025/12/31 22:05:08 网站建设

商城网站建设教程杭州网络推广

第一章:为什么顶尖团队都在重构Open-AutoGLM近年来,多个头部AI研发团队不约而同地对开源项目 Open-AutoGLM 进行深度重构。这一现象背后,是对自动化大语言模型微调流程的更高追求——在保证可扩展性的同时,提升任务适配效率与工程…

张小明 2026/1/1 7:46:32 网站建设

中国建设银行员工学习网站德阳网站建设平台

百度ERNIE 4.5震撼发布:21B参数模型引领多模态AI技术突破,开源生态加速产业落地 【免费下载链接】ERNIE-4.5-21B-A3B-Paddle 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-21B-A3B-Paddle 百度最新一代大语言模型ERNIE 4.5近日…

张小明 2025/12/31 18:57:24 网站建设