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

如何找回网站后台密码如何创建一个论坛

如何找回网站后台密码,如何创建一个论坛,企业展厅设计图片,企业建设企业网站的好处0.简介 基于时序差分算法的强化学习算法除了Sarsa算法以外还有一种著名算法为Q-learning算法#xff0c;为离线策略算法#xff0c;与在线策略算法Sarsa算法相比#xff0c;其时序差分更新方式变为 Q(St,At)←Q(St,At)α[Rt1γmaxaQ(St1,a)−Q(St,At)] 对于 Sarsa 来说为离线策略算法与在线策略算法Sarsa算法相比其时序差分更新方式变为 Q(St,At)←Q(St,At)α[Rt1γmaxaQ(St1,a)−Q(St,At)] 对于 Sarsa 来说 1在状态 s 时就知道了要采取那个动作 a并且真的采取了这个动作2当前动作 a 和下一个动作 a 都是 根据 ϵ -贪婪策略选取的因此称为on-policy学习 对于 Q-Learning 1在状态s时只是计算了 在 s 时要采取哪个 a 可以得到更大的 Q 值并没有真的采取这个动作 a。2动作 a 的选取是根据当前 Q 网络以及 ϵ-贪婪策略即每一步都会根据当前的状况选择一个动作A目标Q值的计算是根据 Q 值最大的动作 a 计算得来因此为 off-policy 学习。 1.导入相关库 import matplotlib.pyplot as plt import numpy as np from tqdm import tqdm 2.悬崖漫步环境实现环节 class cliffwalking():def __init__(self,colnum,rownum,stepr,cliffr,initx,inity):self.colnumcolnumself.rownumrownumself.steprsteprself.cliffrcliffrself.initxinitxself.inityinityself.disasterlist(range((self.rownum-1)*self.colnum1,self.rownum*self.colnum-1))self.end[self.rownum*self.colnum-1]self.xself.initxself.yself.initydef step(self,action):change[[0,-1],[0,1],[-1,0],[1,0]]#change[0]上change[1]下change[2]左change[3]右坐标系原点(0,0)在左上角self.xmin(self.colnum-1,max(0,self.xchange[action][0]))self.ymin(self.rownum-1,max(0,self.ychange[action][1]))nextstateself.y*self.colnumself.xrewardself.steprdoneFalseif nextstate in self.disaster:rewardself.cliffrdoneTrueif nextstate in self.end:doneTruereturn nextstate,reward,donedef reset(self):self.xself.initxself.yself.inityreturn self.y*self.colnumself.x 3.Q-learning算法实现 class Qlearning(): Qlearning算法 def __init__(self,colnum,rownum,alpha,gamma,epsilon,actionnum4):self.colnumcolnumself.rownumrownumself.alphaalpha#学习率self.gammagamma#折扣因子self.epsilonepsilonself.actionnumactionnum#动作个数self.qtablenp.zeros([self.colnum*self.rownum,self.actionnum])def takeaction(self,state):if np.random.random()self.epsilon:actionnp.random.randint(0,self.actionnum)else:actionnp.argmax(self.qtable[state])return actiondef bestaction(self,state):qmaxnp.max(self.qtable[state])anp.where(self.qtable[state]qmax)return adef update(self,s0,a0,r,s1):tderrorrself.gamma*np.max(self.qtable[s1])-self.qtable[s0][a0]self.qtable[s0][a0]self.alpha*tderror 4.打印目标策略函数 def printtheagent(agent,env,actionmeaning):for i in range(env.rownum):for j in range(env.colnum):if (i*env.colnumj) in env.disaster:print(****,end )elif (i*env.colnumj) in env.end:print(EEEE,end )else:aagent.bestaction(i*env.colnumj)b[0 for _ in range(len(actionmeaning))]for m in range(len(actionmeaning)):b[m]1 if m in a else 0 pistrfor k in range(len(actionmeaning)):pistractionmeaning[k] if b[k]0 else oprint(%s%pistr,end )print() 5.相关参数设置 ncol12#悬崖漫步环境中的网格环境列数 nrow4#悬崖漫步环境中的网格环境行数 step_reward-1#每步的即时奖励 cliff_reward-100#悬崖的即时奖励 init_x0#智能体在环境中初始位置的横坐标 init_ynrow-1#智能体在环境中初始位置的纵坐标 alpha0.1#价值估计更新的步长 epsilon0.1#epsilon-贪婪算法的探索因子 gamma0.9#折扣衰减因子 num_episodes500#智能体在环境中运行的序列总数 tqdm_num10#进度条的数量 printreturnnum10#打印回报的数量 actionmeaning[↑,↓,←,→]#上下左右表示符6.程序主体部分实现 np.random.seed(5) returnlist[] envcliffwalking(colnumncol,rownumnrow,steprstep_reward,cliffrcliff_reward,initxinit_x,inityinit_y) agentQlearning(colnumncol,rownumnrow,alphaalpha,gammagamma,epsilonepsilon,actionnum4) for i in range(tqdm_num):with tqdm(totalint(num_episodes/tqdm_num)) as pbar:for episode in range(int(num_episodes/tqdm_num)):episodereturn0stateenv.reset()doneFalsewhile not done:actionagent.takeaction(state)nextstate,reward,doneenv.step(action)episodereturnrewardagent.update(state,action,reward,nextstate)statenextstatereturnlist.append(episodereturn)if (episode1)%printreturnnum0:pbar.set_postfix({episode:%d%(num_episodes/tqdm_num*iepisode1),return:%.3f%(np.mean(returnlist[-printreturnnum:]))})pbar.update(1) episodelistlist(range(len(returnlist))) plt.plot(episodelist,returnlist) plt.xlabel(Episodes) plt.ylabel(Returns) plt.title(Qlearning on{}.format(Cliff Walking)) plt.show() print(Qlearning算法最终收敛得到的策略为:) printtheagent(agentagent,envenv,actionmeaningactionmeaning) 7.结果展示 Iteration 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 428.50it/s, episode50, return-114.000]  Iteration 1: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 895.23it/s, episode100, return-72.500]  Iteration 2: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 1222.78it/s, episode150, return-66.100]  Iteration 3: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 1519.26it/s, episode200, return-40.000]  Iteration 4: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 1533.70it/s, episode250, return-26.600]  Iteration 5: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 1925.46it/s, episode300, return-38.000]  Iteration 6: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 2387.50it/s, episode350, return-47.000]  Iteration 7: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 2949.12it/s, episode400, return-25.500]  Iteration 8: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 3133.12it/s, episode450, return-34.000]  Iteration 9: 100%|███████████████████████████████████████████████████████████████████████████████████████████████| 50/50 [00:0000:00, 3133.44it/s, episode500, return-60.400] Qlearning算法最终收敛得到的策略为: ↑ooo o↓oo ooo→ o↓oo ooo→ ooo→ ooo→ ooo→ o↓oo ooo→ o↓oo o↓oo  o↓oo ooo→ ooo→ ooo→ ooo→ ooo→ o↓oo ooo→ o↓oo ooo→ ooo→ o↓oo ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ ooo→ o↓oo ↑ooo **** **** **** **** **** **** **** **** **** **** EEEE 8.总结 打印出的回报是行为策略在环境中交互得到的而不是Q-learning算法在学习的目标策略的真实回报目标策略打印出来如上所示发现其更偏向于走在悬崖边上这与Sarsa算法得到的比较保守的策略相比更优。 比较Sarsa算法与Q-learnig算法在训练中的回报曲线图可以发现在一个序列中Sarsa算法获得期望回报高于Q-learning算法原因是训练过程中智能体采取基于当前Q(s,a)函数的-贪婪策略来平衡探索与利用Q-learning算法由于沿着悬崖边走会以一定的概率探索“掉入悬崖”这一动作而Sarsa相对保守的路线使得智能体几乎不可能掉入悬崖。
http://www.w-s-a.com/news/913823/

相关文章:

  • 免费发布信息网站大全666做p2p网站费用
  • 北京 网站建设咨询顾问公司网络公司有几家
  • 设计类网站如何用ps做网站首页
  • 品牌网站建设的关键事项设计网有哪些
  • 网站没收录徐州建设工程审图中心网站
  • 网站建设记账做什么科目erp系统有哪些软件
  • 泰拳图片做网站用哪里有做空包网站的
  • 查外链网站重庆做网站微信的公司
  • 有没有外包活的网站如何做网站快捷键的元素
  • 公司网站赏析网站制作2019趋势
  • 企业进行网站建设的方式有( )推广引流违法吗
  • 按营销型网站要求重做网站 费用点金网站建设
  • 深圳做网站互联网服务
  • 网站sem托管wordpress安装无法连接数据库
  • 深圳网站建设开发公司哪家好微信小程序商家入口
  • 江门站排名优化建立什么网站赚钱
  • 科普文章在那个网站做招聘网站代做
  • 监控设备东莞网站建设游戏网站域名
  • 对商家而言网站建设的好处网址导航怎么彻底删除
  • app设计网站模板企业展厅策划设计公司有哪些
  • wordpress销售主题手机网站关键词优化
  • 怎么查一个网站是什么程序做的三亚城乡建设局网站
  • 深圳分销网站设计公司做网站一般需要多久
  • 企业网站设计代码丹东seo排名公司
  • 企业网站建设定制开发服务网站建设说课ppt
  • 大连市城乡建设局网站网站免费网站入口
  • 做暧网站网站备案ps
  • 知名网站建设公司电话长子网站建设
  • 网站建设的意义与目的建立什么船籍港
  • 广州注册公司营业执照网站建设代码优化