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

昆山新宇网站建设wordpress很卡

昆山新宇网站建设,wordpress很卡,php后台网站开发教程,桂城网站制作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.hkea.cn/news/14515991/

相关文章:

  • 做擦边球网站赚钱么WordPress偷模板
  • 南昌网站建设在哪里沈阳网站制作公司排名
  • 哪个网站做美食视频软件来画软件动画制作教程视频
  • wordpress 转移本地合肥seo推广公司哪家好
  • 门户网站建设哪家好九江集团网站建设
  • html5制作网站汕头网站推广seo
  • 做暖暖小视频网站影响网站收录的因素
  • 站长工具劲爆网站怎样优化seo
  • 上海建设牌电动三轮官方网站可以看的网站都有哪些
  • wordpress实名认证怎样网站优化公司
  • 新闻资讯网站php源码在哪个网站做视频可以赚钱
  • 建平台网站费用南昌网站建设方案优化
  • 低价网站建设机构生成图标网站
  • 网站更换logo昆明猫咪网站建设公司
  • 在线探测网站开发语言wordpress 百度统计插件
  • 白银市城县建设局网站在深圳如何注册自己的公司
  • 一个做任务的网站国外网站流量查询
  • 网站如何做优化推广做HH的网站
  • 亚马逊欧洲站宁波市网站集约化建设通知
  • 贞丰网站建设一句话介绍网站开发
  • 商城网站设计注意什么四川省建设厅网上查询
  • 临安做网站的公司有哪些做网站卖菜刀需要什么手续
  • 网站生成手机站怎么利用网站做cpa推广
  • 天津北辰做网站怎样做网站优化 知乎
  • 网站建设velpai企业信用公示信息系统(全国)官网
  • 杭州网站推广宣传WordPress鼠标点击特效
  • 网站免费正能量软件下载视频企业网站建设版本
  • dede 网站根目录网站带做收录排名
  • 一个企业网站做几个关键词新媒体营销图片
  • 南京企业网站设计公司500元wordpress单用户商城