【说得好有奖】单片机查表时用RL或RLC移位乘2的问题!!根据这个程序帮我分析下

【说得好有奖】单片机查表时用RL或RLC移位乘2的问题!!根据这个程序帮我分析下,第1张

RL是循环左移 移除最高位进入最低位 最高位为0时无区别
还有a只有8位 912=122h 但是a只能放下ffh 所以最高位舍弃 变成22
严格意义上说 左移不等同于乘2 楼主再理解一下 不懂再把问题补充一下
设表格中有1024个数据项,每个数据为2个字节,表格总长度为2048个字节
你看 这里假设有1024个数据项 如果是超出部分无法查表的话 那么ffff-1024=efdbh 一共有这么多的数据不能查 显然题意不是这样的。

60H=3CH =60
因为RL是左移指令,第一次左移一位6的二进制是110,左移后是1100,
再次左移2位后是110000+1100=111100=3CH =十进制的60

在现代RL空间中绘制精确的,无所不包的算法分类法真的很难,因为算法的模块性没有用树结构很好地表示。此外,为了使某些东西适合页面并且在介绍文章中可以合理地消化,我们必须省略相当多的更高级的材料(探索,转移学习,元学习等)。也就是说,我们的目标是:

1 强调深度RL算法中最基本的设计选择,包括学习内容和学习方法,

2 揭示这些选择中的权衡,

3 并针对这些选择将一些突出的现代算法放入上下文中。

RL算法中最重要的分支点之一是 agent是否可以获得(或学习)环境模型的问题 。我们提到的环境模型,我们指的是一种预测状态转换和奖励的函数。

拥有模型的主要好处是, 它允许agent 通过提前思考,查看一系列可能的选择会发生什么,以及明确决定其选项 来进行规划 。然后, agent 可以将结果从提前计划中提取到学习策略中。这种方法的一个特别着名的例子是 AlphaZero 。当这种方法有效时,与没有模型的方法相比,它可以显着提高样本效率。

主要缺点是 agent通常无法获得环境的真实模型。 如果 agent 想要在这种情况下使用模型,它必须纯粹从经验中学习模型,这会产生一些挑战。最大的挑战是模型中的偏差可以被 agent 利用,从而导致 agent 在学习模型方面表现良好,但在真实环境中表现得次优(或非常可怕)。模型学习从根本上来说很难,所以即使是非常努力——愿意花费大量时间并对其进行计算——也无法获得回报。

使用模型的算法称为 基于模型 的方法,而不使用模型的算法称为 无模型 。虽然无模型方法放弃了使用模型的样本效率带来的潜在增益,但它们往往更容易实现和调整。截至撰写本简介(2018年9月)时,无模型方法比基于模型的方法更受欢迎,并且得到了更广泛的开发和测试。

RL算法中的另一个关键分支点是 要学习什么 的问题 。 通常可能的名单包括

1 策略,无论是随机的还是确定的,

2 动作值函数(Q函数),

3 值函数,

4 和/或环境模型。

使用无模型RL表示和训练agent有两种主要方法:

Policy Optimization - 策略优化  此系列中的方法将策略明确表示为 。它们直接通过性能指标 上的梯度上升来优化参数 ,或者通过最大化 的局部近似来间接地优化参数 。此优化几乎总是以 on-policy 的方式运行,这意味着每个更新仅使用根据最新版本的策略执行时收集的数据。

策略优化通常还涉及学习on-policy值函数 的近似值 ,用于确定如何更新策略。策略优化方法的几个例子是:

1  A2C / A3C ,执行梯度上升以直接最大化性能,

2 和 PPO ,其更新间接地最大化性能,通过最大化替代 目标函数 ,该函数给出保守估计 将由于更新而改变多少。

Q-Learning  该系列中的方法学习最优动作值函数 的近似值 。通常,它们使用基于Bellman方程的目标函数。此优化几乎总是以 off-policy 的方式运行,这意味着每次更新都可以使用在训练期间的任何时间点收集的数据,无论agent在获取数据时如何选择探索环境。通过 和 之间的连接获得相应的策略:Q-learning agent所采取的动作由下式给出:

                                                 

Q-learning方法的例子包括

1  DQN ,一个大规模推出DRL领域的经典之作,

2 和 C51 ,一种学习回报分布的变体,其期望值为 。

Trade-offs Between Policy Optimization and Q-Learning

策略优化方法的主要优势在于它们是原则性的,在这种意义上,你可以直接针对你想要的东西进行优化。这往往使它们稳定可靠。

相比之下,Q-learning方法仅通过训练 来满足自洽方程,间接优化agent性能。这种学习有很多失败模式,因此往往不太稳定  [1] 。但是,Q-learning方法的优势在于它们在工作时具有更高的样本效率,因为它们可以比策略优化技术更有效地重用数据。

Interpolating Between Policy Optimization and Q-Learning

政策优化和Q学习并不矛盾(在某些情况下,事实证明,他们是 等价的 ),并且存在一系列存在于两个极端之间的算法。处在这一范围内的算法能够在任何一方的优势和劣势之间进行谨慎的权衡。 例子包括

1  DDPG 一种同时学习确定性策略和Q函数的算法,通过使用它们当中每一个来改进另一个,

2 和 SAC ,一种使用随机策略,熵正则化和一些其他技巧来稳定学习并在标准基准上得分高于DDPG的变体。

[1]  For more information about how and why Q-learning methods can fail, see 1) this classic paper by  Tsitsiklis and van Roy , 2) the (much more recent)  review by Szepesvari  (in section 432), and 3) chapter 11 of  Sutton and Barto , especially section 113 (on “the deadly triad” of function approximation, bootstrapping, and off-policy data, together causing instability in value-learning algorithms)
与无模型RL不同,基于模型的RL不存在少量易于定义的方法集群:使用模型有许多正交方法。我们举几个例子,但这个清单远非详尽无遗。 在每种情况下,可以给出或学习模型。

背景:纯粹的规划  最基本的方法从未明确地表示策略,而是使用纯 模型 技术(如 模型预测控制 (MPC))来选择 *** 作。在MPC中,每次agent观察环境时,它都会计算一个相对于模型最优的 规划 ,其中 规划 描述了在当前之后的某个固定时间窗口内采取的所有动作。 ( 规划 算法可以通过使用学习值函数来考虑超出视野的未来奖励。)然后,代理执行 规划 的第一个动作,并立即丢弃其余部分。它每次准备与环境交互时计算新 规划 ,以避免使用 规划 范围短于预期的 规划 中的动作。

    MBMF 的工作探讨了MPC与深度RL的一些标准基准任务的学习环境模型。

专家迭代  纯粹 规划 的直接后续涉及使用和学习策略 的明确表示。agent在模型中使用规划算法(如蒙特卡罗树搜索),通过从当前策略中抽样为该规划生成候选动作。规划算法产生的动作优于单独的策略产生的动作,因此它是相对于策略的“专家”。之后更新策略以生成更类似于规划算法输出的动作。

 该  ExIt 算法使用这种方法来训练深层神经网络玩Hex。

  AlphaZero  是这种方法的另一个例子。

无模型方法的数据增强  使用无模型RL算法来训练策略或Q函数,但是要么1)在更新agent时增加虚构的实际经验,要么2) 仅 使用虚拟经验来更新agent。

 请参阅 MBVE ,了解增加虚构实际体验的示例。

 请参阅 世界模型 ,了解使用纯粹的虚拟经验训练agent的例子,他们称之为“在梦中训练”。

将规划循环嵌入到策略中。 另一种方法是将规划程序直接嵌入到作为子程序的策略中——以便完整规划成为策略的辅助信息 ——同时使用任何标准的无模型算法训练策略的输出。关键概念是,在此框架中,策略可以学习如何以及何时使用规划。这使得模型偏差不再成为问题,因为如果模型在某些状态下不适合规划,则策略可以简单地学会忽略它。

 有关具有这种想象力的agent的例子,请参阅 I2A 。
[2]  A2C / A3C  (Asynchronous Advantage Actor-Critic): Mnih et al, 2016

[3]  PPO  (Proximal Policy Optimization): Schulman et al, 2017

[4]  TRPO  (Trust Region Policy Optimization): Schulman et al, 2015

[5]  DDPG  (Deep Deterministic Policy Gradient): Lillicrap et al, 2015

[6]  TD3  (Twin Delayed DDPG): Fujimoto et al, 2018

[7]  SAC  (Soft Actor-Critic): Haarnoja et al, 2018

[8]  DQN  (Deep Q-Networks): Mnih et al, 2013

[9]  C51  (Categorical 51-Atom DQN): Bellemare et al, 2017

[10]  QR-DQN  (Quantile Regression DQN): Dabney et al, 2017

[11]  HER  (Hindsight Experience Replay): Andrychowicz et al, 2017

[12]  World Models : Ha and Schmidhuber, 2018

[13]  I2A  (Imagination-Augmented Agents): Weber et al, 2017

[14]  MBMF  (Model-Based RL with Model-Free Fine-Tuning): Nagabandi et al, 2017

[15]  MBVE  (Model-Based Value Expansion): Feinberg et al, 2018

[16]  AlphaZero : Silver et al, 2017

这个程序我没看,但是我知道RL A在51单片机里面是把A里面的数据循环左移(A里面八位二进制数假如最高位为零的话,RL A就表示把A里面的数据乘以2)但不影响CY标志
tablel后面的一些十进制数字是用 定义数据字命令DW 定义的
命令格式:[标号:]DW[16位数表]
说明:该命令用于从指定地址开始,在程序存储器的连续单元中存放16位的数据字。存放时,数据字的高八位在前(低地址),低八位在后(高地址)。DB和DW定义的数据表,数的个数不得超过80。如数据的个数较多,可使用多个定义命令。在80C51程序设计应用中,常以DB来定义数据,以DW来定义地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13337209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-17
下一篇 2023-07-17

发表评论

登录后才能评论

评论列表(0条)

保存