青海省建设厅官方网站建设云wordpress 微博组件

web/2025/9/25 11:51:29/文章来源:
青海省建设厅官方网站建设云,wordpress 微博组件,wordpress免费企模板下载,wordpress大数据优化前言 这篇博客很久之前就想做了#xff0c;一直在拖是因为觉得自己对知识点理解还没有足够的透彻。但是每当去复盘基本概念的时候又很难理清逻辑#xff0c;所以觉得即便现在半吊子水平#xff0c;但是也想通过博客记录一下自己肤浅的学习心得#xff0c;权当是为自己巩固…前言 这篇博客很久之前就想做了一直在拖是因为觉得自己对知识点理解还没有足够的透彻。但是每当去复盘基本概念的时候又很难理清逻辑所以觉得即便现在半吊子水平但是也想通过博客记录一下自己肤浅的学习心得权当是为自己巩固和梳理一遍知识点。 这篇博客主要借鉴了UCB的Pieter Abbeel大佬在youtube上的教学视频的思路感兴趣的小伙伴可以移步这里 (国内的小伙伴可能需要借助一些魔法工具了hhh)这个系列视频非常简短只有六个视频但是包含了大量的概念和理论推导非常适合新手入门和了解这个领域的一些基本概念当你理清了这些基本概念再去看论文就可以识别出来别人论文中一些新奇的概念是否来自于那些古老而优雅的数学推导了。 强化学习的本质 基本的神经网络学习目标是 m a x ∑ i 0 ∞ P ( y i ∣ x i , θ ) max \sum^{\infty}_{i0}P(y_i|x_i, \theta) max∑i0∞​P(yi​∣xi​,θ)其中 x i x_i xi​是输入的sample y i y_i yi​是对应的输出NN的目标是学一个最优的参数 θ \theta θ使得输入最优地映射为输出。 而强化学习的目标则解释为让智能体学会去做出一系列最优的决策或者说让智能体学习到一个最优的策略这个策略可以获得最大的折扣回报的期望。 G o a l : m a x π E [ ∑ t 0 H γ t ⋅ R ( S t , A t , S t 1 ) ∣ π ] (1) Goal: \underset{\pi}{\mathrm{max}} E[\sum^{H}_{t0}\gamma^t \cdot R(S_t, A_t, S_{t1})|\pi] \tag{1} Goal:πmax​E[t0∑H​γt⋅R(St​,At​,St1​)∣π](1) 其中 γ \gamma γ是折扣率数值越大代表在计算折扣回报的时候越在意当前的动作对未来的影响。大写的 S , A S, A S,A分别代表状态集合和动作集合。 π \pi π代表策略函数。需要牢记上面的这个是期望折扣回报。 因为下面还要介绍一个概念叫做最优价值函数Optimal Value Function V ∗ V^* V∗我们会发现强化学习中的这些新概念都是具有递进关系的前面的那个期望折扣回报似乎是一个比较广泛的概念它并没有限定在什么样的初始状态下开始进行序列决策但是我们在进行游戏或者在进行某一项任务的时候总是有一个初始状态的所以对于我们来说研究如何使用一个最优的策略函数去最大化给定初始状态的期望折扣回报更有意义因此最优价值函数被定义为expected sum of discounted rewards when starting from state s s s and acting optimally: V ∗ ( s ) m a x π E [ ∑ t 0 H γ t ⋅ R ( S t , A t , S t 1 ) ∣ π , s 0 s ] (2) V^*(s)\underset{\pi}{\mathrm{max}} E[\sum^{H}_{t0}\gamma^t \cdot R(S_t, A_t, S_{t1})|\pi, s_0s] \tag{2} V∗(s)πmax​E[t0∑H​γt⋅R(St​,At​,St1​)∣π,s0​s](2) P.S.这个函数的自变量是只有初始状态 s s s。 m a x \mathrm{max} max是为了acting optimally。 Value Iteration/价值迭代 “现在假设我们的状态空间是有限的我们应该如何计算每种状态的最优价值函数呢” 这是原始频的讲解中在这里提出的一个问题但是在这之前我认为还缺少一个问题 我们为什么要算每种状态的最优价值函数呢? 那显然是因为计算最优价值函数对我们是有帮助的这个函数值代表的是某种状态下的期望折扣回报所以在我们进行游戏或者某项任务的时候如果提前知道了这个环境中哪个状态的期望折扣回报最大或者比较大那么我们在做动作的时候就可以倾向于让这些状态发生。比如下图的这种游戏 我们让机器人做动作去吃到右上角的钻石。机器人位于不同的方格就是不同的状态这个游戏中显然状态空间是有限的那么如果我们知道机器人位于每个方格时的最优价值函数那么我们就可以在做动作的时候让机器人尽量往数值大的方格上走。 最终得到的最优价值函数可以用这个表格的方式展现出来当我们处于不同的状态时接下来应该向哪里走就显而易见了。 接下来那我们就只需要看一下 如何计算每种状态的最优价值函数呢 第一个方法就是价值迭代法公式如下 V k 1 ( s ) m a x a ∑ s ′ P ( s ′ ∣ s , a ) ( R ( s , a , s ′ ) γ V k ( s ′ ) ) (3) V_{k1}(s)\underset{a}{\mathrm{max}}\sum_{s}P(s|s,a)(R(s,a,s)\gamma V_k(s)) \tag{3} Vk1​(s)amax​s′∑​P(s′∣s,a)(R(s,a,s′)γVk​(s′))(3) 这里的公式大家可能会发现跟前面的公式有所出入其实只是把期望给拆开了这个公式里的求和符号替换之前的 E E E之前的求和符号隐含在迭代 γ V k ( s ′ ) \gamma V_k(s) γVk​(s′)之中。函数 V V V的下标 k k k就代表走了多少个时间步。当 k 0 k0 k0的时候给定初始状态 s s s但是你一步也走不了自然是没有reward的所以 V 0 ( s ) 0 V_0(s)0 V0​(s)0。这样我们只要知道reward知道transition model也就是那个 P ( s ′ ∣ s , a ) P(s|s,a) P(s′∣s,a)我们就可以从 k 0 k0 k0开始逐渐去求 k → ∞ k \rightarrow \infty k→∞的时候价值函数的值最终会收敛到最优价值函数的值。 所以对于一个有限状态空间和动作的强化学习任务我们可以使用下面这个伪代码展示的流程去解 Start with V0(s)0 for all s.For k1,...,H:For all state s in S:Vk(s) - max Equation (3)phai_k(s) - argmax Equation (3)通过价值迭代我们可以获得最终的最优价值函数以及每个状态相应的最优动作。需要注意的是这里的 π ∗ ( s ) \pi^*(s) π∗(s)针对每个状态s都是一个固定的动作所以对于状态空间的探索是有限的。这种情况在探索小的状态空间的时候是没有问题的因为总共穷举出来的轨迹也是有限的。 对上面这句话的一个直觉的解释这里的轨迹就是从初始状态开始一直到最终游戏结束这个过程中智能体所做的所有动作经历的所有状态和所有的rewards合并到一起就是一条轨迹我们所说的智能体在学习其实是让它在每条轨迹中学习到新的信息一条轨迹对于智能体的训练来说是一个sample更多的sample自然可以让智能体探索到更广泛的空间学到的东西理论上也越多而不会仅仅局限于某一种环境中。 讲述到这里其实价值迭代还差一步就是 为什么这个价值迭代一定会converge? 首先我们知道: V ∗ ( s ) V^*(s) V∗(s)expected sum of rewards accumulated starting from state s s s, acting optimally for ∞ \infty ∞ steps. V H ( s ) V_H(s) VH​(s)expected sum of rewards accumulated starting from state s s s, acting optimally for H H H steps. 然后我们用下面的公式可以表示H之后收集的折扣奖励 r H 1 R ( s H 1 ) r H 2 R ( s H 2 ) . . . r H 1 R m a x r H 2 R m a x . . . r H 1 1 − r R m a x r^{H1}R(s_{H1})r^{H2}R(s_{H2})... r^{H1}R_{max}r^{H2}R_{max}...\frac{r_{H1}}{1-r} R_{max} rH1R(sH1​)rH2R(sH2​)...rH1Rmax​rH2Rmax​...1−rrH1​​Rmax​ 所以当 H → ∞ H \rightarrow \infty H→∞的时候上面这个式子趋近于0所以H之后时间步的累积折扣奖励趋近于0那么 V H ( s ) → V ∗ ( s ) V_H(s) \rightarrow V^*(s) VH​(s)→V∗(s)。 总结 价值迭代法用于小范围state的策略探索。 Q-Value Iteration 前面讲到的最优价值函数的自变量只有一个状态然后从这个状态开始acting optimally收集的折扣奖励作为最优价值。但是如果我们从状态s开始想尝试所有的动作而不仅仅是尝试最优的动作针对状态s作出的动作这里我们就要把针对状态s作出的动作a假设为所有可能的动作相当于我们对于每个状态不再只有一个最优价值函数而是在该状态下每个动作都有一个价值函数我们都可以求。 Q-value定义为expected utility starting from s, taking action a, and (thereafter) acting optimally. Q ∗ ( s , a ) ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ m a x a ′ Q ∗ ( s ′ , a ′ ) ] (4) Q^*(s,a)\sum_{s}P(s|s,a)[R(s,a,s)\gamma \underset{a}{\mathrm{max}}Q^*(s,a)] \tag{4} Q∗(s,a)s′∑​P(s′∣s,a)[R(s,a,s′)γa′max​Q∗(s′,a′)](4) 相比于Optimal Value FunctionQ-value可以通过相对更多的信息比如给定一个状态及其q价值那我们可以直接判断出那个动作下的q价值是最大的直接作出动作。但是从价值函数是看不出来当前状态做哪个动作是最大的你需要遍历所有的状态。 那么解决Q-value和证明其收敛性与之前的价值迭代是一样的这里不再给出具体的证明。 Q k 1 ∗ ( s , a ) ← ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ m a x a ′ Q k ∗ ( s ′ , a ′ ) ] (5) Q^*_{k1}(s,a) \leftarrow \sum_{s}P(s|s,a)[R(s,a,s)\gamma \underset{a}{\mathrm{max}}Q^*_k(s,a)] \tag{5} Qk1∗​(s,a)←s′∑​P(s′∣s,a)[R(s,a,s′)γa′max​Qk∗​(s′,a′)](5) 策略迭代法 前面说到价值迭代法在做游戏的时候想要从初始状态s产生一系列最优的动作的话需要遍历所有的状态求出其最优价值函数。 为了进一步简化价值迭代法我们又引入了q-value迭代法q-value中引入了针对当前状态s所作的动作a作为额外的自变量这样我们在给定状态s的时候就可以从q(s,a)中找到最大的那个动作a作为最优策略。 这两个方法本质上是相同的都是需要遍历所有的动作才能找到最大的那个价值所以policy iteration提出是为了用迭代去替代遍历。 Policy iteration分为policy evaluation和policy improvement两步。其中evaluation步骤我们用价值迭代得到当前策略下的价值函数去评估当前的policy质量policy evaluation V k π ( s ) ← ∑ s ′ P ( s ′ ∣ s , π ( s ) ) [ R ( s , π ( s ) , s ′ ) γ V k − 1 π ( s ′ ) ] (6) V^{\pi}_k(s) \leftarrow \sum_{s}P(s|s,\pi(s))[R(s,\pi(s),s)\gamma V^{\pi}_{k-1}(s)] \tag{6} Vkπ​(s)←s′∑​P(s′∣s,π(s))[R(s,π(s),s′)γVk−1π​(s′)](6) 直到其收敛。 通过这个不太准确的“最优价值函数”我们对policy进行更新 (policy improvement) π k 1 ( s ) ← a r g m a x a ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ V π k ( s ′ ) ] (7) \pi_{k1}(s) \leftarrow \underset{a}{\mathrm{argmax}} \sum_{s}P(s|s,a)[R(s,a,s)\gamma V^{\pi_k}(s)] \tag{7} πk1​(s)←aargmax​s′∑​P(s′∣s,a)[R(s,a,s′)γVπk​(s′)](7) 这个迭代是一定会收敛的因为只要我们的迭代次数足够多实际上每种策略我们都可以经历一遍也就是说最终肯定会有 π k 1 ( s ) π k s f o r a l l s t a t e s \pi_{k1}(s)\pi_k{s} for all state s πk1​(s)πk​sforallstates. 所以对于任意的s我们都可以有 V π k ( s ) m a x a ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ V π k ( s ′ ) ] (8) V^{\pi_k}(s) \underset{a}{\mathrm{max}}\sum_{s}P(s|s,a)[R(s,a,s)\gamma V^{\pi_k}(s)] \tag{8} Vπk​(s)amax​s′∑​P(s′∣s,a)[R(s,a,s′)γVπk​(s′)](8) 这就意味着收敛时的V正是最优价值函数。 总结 总结来说价值迭代是在迭代迭代最优价值函数的时候就对所有的动作轨迹进行尝试直接找到最准确的对于当前状态的最优价值函数。 而策略迭代则是每一次用不太准确的最优价值函数去更新策略一步一步的逼近真正的最优价值函数从而得到最优策略。 两者并没有本质的区别。 Model-free → \rightarrow → Q-learning 之前介绍的两种方法价值迭代和策略迭代都属于model-based的方法因为在他们的公式中都有 P ( s ′ ∣ s , a ) P(s|s,a) P(s′∣s,a)这一项这个转换模型在真实的任务中我们通常是未知的不可以求解的。 此外前面的两种方法还受限于小尺度的状态空间和动作空间。 因此我们现在多数用的还是model-free的方法。 回忆q-value的迭代中我们使用的是下面这个公式 Q k 1 ∗ ( s , a ) ← ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ m a x a ′ Q k ∗ ( s ′ , a ′ ) ] (9) Q^*_{k1}(s,a) \leftarrow \sum_{s}P(s|s,a)[R(s,a,s)\gamma \underset{a}{\mathrm{max}}Q^*_k(s,a)] \tag{9} Qk1∗​(s,a)←s′∑​P(s′∣s,a)[R(s,a,s′)γa′max​Qk∗​(s′,a′)](9) 也可以写作 Q k 1 ∗ ( s , a ) ← E s ′ − P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) γ m a x a ′ Q k ∗ ( s ′ , a ′ ) ] (10) Q^*_{k1}(s,a) \leftarrow E_{s-P(s|s,a)}[R(s,a,s)\gamma \underset{a}{\mathrm{max}}Q^*_k(s,a)] \tag{10} Qk1∗​(s,a)←Es′−P(s′∣s,a)​[R(s,a,s′)γa′max​Qk∗​(s′,a′)](10) 这是在求一个期望所以model-free的方法就是利用sample作为期望的估计以摆脱transition model的限制。 上面就是tabular的q-value的伪代码简单来讲就是对每个状态都随机sample一个动作(采用 δ \delta δ-greedy策略也就概率发生随机采样和选取当前q-value下最优的动作)。 这里视频作者乘其为off-policy learning我想就是这里的sample action是跟策略无关的sample作者提到该方法可以可靠地收敛到最优的q-value这个在理论上有原论文中两页纸的证明视频中并没有进行讲解我想暂时我也看不懂所以这边就当作结论线记下来。 此外我们注意这段伪代码中的这个target其实比较熟悉它其实就是我们之前提到过的用于更新价值网络的那个TD target更新后的q-value就是为了更接近这个target。 但是上面这种方法只是解决了转换模型的限制并没有适应更大的状态空间因为它还是记录了所有状态下不同动作的q-value所以它叫做tabular q-learning. 那么为了不用表格去存储q-value有研究提出了parameterized Q function: Q θ ( s , a ) Q_{\theta}(s,a) Qθ​(s,a)也就是用参数 θ \theta θ去存储所有的q值。 那么这里我们就从直接迭代优化q-value转变到了迭代优化参数 θ \theta θ但是注意的是这里的target我们仍然用的TD target t a r g e t ( s ′ ) R ( s , a , s ′ ) γ m a x a ′ Q θ k ( s ′ , a ′ ) (10) target(s)R(s,a,s)\gamma \underset{a}{\mathrm{max}}Q_{\theta_k}(s,a) \tag{10} target(s′)R(s,a,s′)γa′max​Qθk​​(s′,a′)(10) 参数更新 θ k 1 ← θ k − α ∇ θ [ 1 2 ( Q θ ( s , a ) − t a r g e t ( s ′ ) ) 2 ] ∣ θ θ k (11) \theta_{k1} \leftarrow \theta_{k}-\alpha \nabla_{\theta}[\frac{1}{2}(Q_{\theta}(s,a)-target(s))^2]|_{\theta\theta_k} \tag{11} θk1​←θk​−α∇θ​[21​(Qθ​(s,a)−target(s′))2]∣θθk​​(11) 上面这种方法其实就是DQN 这个图给了一个double DQN的伪代码其基本原理其实跟前面的tabular Q-learning是一样的只不过这里引入了经验回放和double Q network的机制。 经验回放 引入这个机制的原因其实我们可以通过对比之前tabular q-learning的伪代码的区别发现之前的tabular模式下每一次对Q-value的迭代是更新了所有的状态下的q值的。但是我们提出DQN就是为了解决大尺度状态空间下无法存储所有的Q-value的问题所以自然我们不可能让所有的状态都参与到Q网络的参数更新中。 所有我们在迭代的时候会存储一些之前遇到过的transitions就是图中的这个括号里的这些信息它包括了从一个状态采取了一个动作然后切换到了下一个状态以及得到的奖励是多少然后后面参数更新的时候使用一些之前的transitions。我们把之前经历的这些transitions称为经验。 还需要注意的一点是这里用的是随机采样的一些经验去更新而不是用前面连续几次的经验。这是因为连续的经验可能高度相关我们要打破经验之间的关联性避免数据过拟合某些经验当然这只是其中一个原因。还有一个原因是作者认为之前的经验也存在价值比如t3时候的经验对于t10的时候也是有价值的。 Double Q Network 而引入double q network的目的在论文中解释为为了避免q网络过渡估计的问题。 我们看上图的TD target的计算公式会发现其中的用的 Q − Q^{-} Q−网络是比 Q Q Q网络要“慢半拍”的。 因为如果某一条经验是有噪声的就是不太好的经验导致Q网络更新了那这个TD target中用Q网络得到的最优动作a显然是不太靠谱的所以用两个Q网络其中一个网络慢于另一个更新就可以一定程度上避免这种情况发生。 总结 关于q-learning比较有经典且代表性的算法就是DDQN。DDQN主要是学习一个Q网络它的输入是当前状态和动作输出是从当前状态开始采取动作a之后的每一步都是optimal action的情况下所获得的折扣回报的期望这个也是q-value的意义。网络的成本函数是缩小q-value和TD target之间的距离。 那么在训练结束后我们就得到了最终的q function那么在给定状态s之后我们就可以计算那个q(s,a)是最大的从而找到针对当前状态的最优动作。 策略梯度算法 DQN通常被认为具有较高的数据效率但是训练不够稳定并且最终确定动作用得是 a r g m a x \mathrm{argmax} argmax这只能操作与离散的动作对于连续的动作求极值很难。 因此研究人员想用一个简单的网络针对当下的状态直接输出动作这个网络就叫做策略网络。 所以这个网络的输入就是当前状态输出就是动作概率分布。 接下来我们来明确这个网络的成本函数 假设让 τ \tau τ代表一个state-action序列 s 0 , u 0 , . . . , s H , u H s_0, u_0, ..., s_H, u_H s0​,u0​,...,sH​,uH​ R ( τ ) ∑ t 0 H R ( s t , u t ) R(\tau)\sum^{H}_{t0}R(s_t, u_t) R(τ)∑t0H​R(st​,ut​)这个代表这个序列的奖励总和我们称之为一条轨迹的奖励总和。 然后我们引入策略网络的目标函数 U ( θ ) E ( ∑ t 0 H R ( s t , u t ) ; π θ ) U(\theta)E(\sum^{H}_{t0}R(s_t, u_t); \pi_{\theta}) U(θ)E(∑t0H​R(st​,ut​);πθ​) 其中 π θ \pi_{\theta} πθ​代表策略网络比如 u 0 π θ ( s 0 ) u_0\pi_{\theta}(s_0) u0​πθ​(s0​)给定一个状态 s 0 s_0 s0​产生一个动作 u 0 u_0 u0​。 所以上面这个公式的含义就是在当前的策略网络参数下所有可能出现的轨迹的奖励总和的期望也可以写成下面这个形式 U ( θ ) ∑ τ P ( τ ; θ ) R ( τ ) U(\theta)\sum_{\tau}P(\tau;\theta)R(\tau) U(θ)∑τ​P(τ;θ)R(τ)其中 P ( τ ; θ ) P(\tau;\theta) P(τ;θ)就是在当前的策略网络下出现轨迹 τ \tau τ的概率。所以策略网络反映的动作概率分布产生的最优轨迹概率越高则我们的目标函数就会越大所以我们期望更新参数 θ \theta θ以最大化目标函数。 采用梯度算法更新参数 从最后的这个求梯度的公式来看显然遍历所有的轨迹是不现实的因此通常的做法是采用经验估计的方法去近似这个梯度如下图所示也就是随机挑选m条轨迹求平均。 因为我们是最大化目标函数 U ( θ ) U(\theta) U(θ)所以使用梯度上升。那么这里的奖励R如果是大于0的就相当于我们在提升一条带有好的奖励的轨迹如果reward是小于0的那么相当于把负的reward的轨迹的概率给降低。这是对这个策略梯度公式的直觉上的理解。 进一步的我们把梯度公式中的log部分拆开 会发现最终梯度的计算跟transition model没有关系因为我们是对参数求导而transition model与策略网络的参数无关所以它的导数是0. 至此我们明白了策略梯度算法为何属于model-free的方法。 error correct in the paper “Deep Progressive Reinforcement Learning for Skeleton-based Action Recognition” 这里我们把这个梯度带回我们目标函数的梯度公式中会发现会发现这个策略梯度公式跟上次汇报提到的策略梯度的形式很像如下图是上次汇报中提到的那篇文章所用的策略梯度公式我们忽略符号上的不一致会发现差别其实只是在这篇论文中他在做经验估计的时候只用了一条轨迹而我们前面推导的策略梯度是用了多条随机轨迹去做策略梯度的经验估计所以它这里的公式12其实有一点问题加号应该改成减号正如它文字中所说的它定义的loss function是带了负号的策略梯度所以在参数更新公式中应该是梯度下降这样才与通常策略梯度算法中的梯度上升是匹配的 Baseline substraction and actor-critic 总结一下策略网络以给定状态为输入输出一个动作概率分布训练的目标是找的一组参数 θ \theta θ让这组参数下可以获得的不同轨迹的奖励总和的期望最大就是让这组参数下最优轨迹的概率最大。而前面介绍的策略梯度理论上已经可以用来更新网络参数使其实现预定的目标。但是后面还有了actor-critic的结构也就是在策略网络的基础上引入了一个价值网络。 所以这一小节我会推导从naive的策略梯度如何到了actor-critic这里通过了一系列比较有意思的数学推导得到了最终的结果但是在视频中并没有进行严格的推导所以我这里也是讲解比较intuition层面的推导逻辑。 前面的这个策略梯度有两个问题这个梯度是sample了一条轨迹或者几条轨迹算出来的而不是一个期望所以会引入noise导致这样计算的梯度方差可能比较大也就是说它计算的不准。 第二个问题是前面我们在intuition的层面上对策略梯度进行的解释是增加reward大于0的轨迹的概率减小reward小于0的轨迹的概率。这样就引入一个问题很有可能某些任务上我的reward是没有负值的所以这样的策略梯度对于好的轨迹的提升或者对于坏的轨迹的抑制作用就不是很明显。所以能不能我对轨迹的奖励设置一个baseline然后我去增加大于这个baseline的轨迹的概率然后抑制小于这个baseline的轨迹的概率所以如下图所示我们可以得到了新的策略梯度。对于第一个问题从直觉上理解我们让原始的reward减去了一个baseline b相当于减小了奖励的大小一定程度上限制了梯度的方差。当然这里应该有更严格的数学证明但是视频中暂时没有讲。 后面还有一步操作是移除与当前动作 u t u_t ut​无关的奖励项这进一步缩小了奖励值所以进一步降低了梯度估计的方差。 然后我们发现下面这个公式的第一项有点像Q-value差了个折扣率那我们就加上折扣率让它就边为q-value这样括号里的值又减小了一些那梯度估计的方差也可以变小一些。至于括号里的第二项就更加明显了这个就是value function价值函数。 总结一下从基本的策略梯度到actor-critic主要经历了baseline的引入引入baseline是为了让平均线以上的轨迹出现的概率更高同时抑制平均线一下的轨迹出现概率避免出现奖励值只有大于0的情况下基本的策略梯度会对所有轨迹都进行概率提升导致优秀的轨迹出现的不明显。此外引入baseline还可以降低sample-based的策略梯度估计的方差。 引入baseline那么我们就要对baseline进行估计这里的baseline不能与动作有关所以baseline仅依赖与状态 s t s_t st​所以我们用价值函数充当baseline然后把策略梯度括号里的这第一项进一步的用Q-value替代。所以我们需要一个额外的价值网络去估计价值函数所以整个的带有价值网络的网络更新流程可以简述为下图。图中主要表示了价值网络的参数我们是通过TD target进行更新的后面这一项是为了让更新前后的参数不要相差特别多。而策略网络的参数我们就通过前面推导的策略梯度进行更新。 TRPO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发项目经验描述建设景区网站的目的

最近有一个音频转文本的需求,了解到了OpenAI的whisper模型可以实现。 Whisper 是 OpenAI 提供的一个通用语音识别模型,支持多语言的音频转文本功能,并具有较高的准确性。它的主要用途包括自动语音识别 (ASR)、语言翻译(将音频直接…

做物流的网站都有什么风险什么网站是最全的

一、前言 作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,本文将介绍如何在Ubuntu 22.04上部署MQTT服务器。我们本次选择开源版,使用离线安装方式部署。…

浏览器正能量网站免费软件网站开发能作为无形资产吗

Static 静态局部变量 结果: a作为静态局部变量,第一次进入该函数的时候,进行第一次变量的初始化,在程序整个运行期间都不释放。(因为下一次调用还继续使用上次调用结束的数值) 但是其作用域为局部作用域&…

网址和网站的区别网页小游戏制作

C语言——回调函数 宗旨:技术的学习是有限的,分享的精神是无限的。 如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这就是回调函数。 void func(void (*f)(void*), void *p) 提供…

松原网站建设哪家专业网站开发入无形资产摊销几年

一,什么是缓存穿透、雪崩、击穿? 1、缓存穿透: 是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后…

公司建设网站费用怎么记账网站安全建设工作总结

导读:原文《省级智慧农业大数据平台项目规划建设方案[195页Word]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 1 农业大数据平台项目概述 1.1 建设背景 1.2 农业大数据带了的新的挑战 1.2.1 数据挖掘搜集复杂…

境外建网站电影网站做静态是不是好一些

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。 1.下载Kafka并安装 1)下载Apache版本的Kafka。 …

成都网站快速优化排名网站建设总结材料

《VB》对口高考模拟试题1一、选择题。(每个1分,共30分)1、某一VB工程含F1、F2两个窗体,执行“F1.Show: F2.Hide”语句后,F1、F2窗体显示的结果为()。A、都显示B、都不显示C、仅显示F1窗体D、仅显示F2窗体2、删除列表框…

网站开发公司 苏州太仓市娄城高新建设有限公司网站

常见的状态码及其原因: 状态码说 明详 情100继续请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分101切换协议请求者已要求服务器切换协议,服务器已确认并准备切换200成功服务器已成功处理了请求201已创建请求成功并且服务器创建了新…

如何用ps制作网站wordpress中国打开404

1 ellipse 元素的基本属性和用法 ellipse 元素用于创建椭圆形状。它具有一系列的基本属性,允许自定义椭圆的外观和位置。以下是一些 ellipse 元素的基本属性和用法: (1)基本属性 cx 和 cy:这两个属性定义了椭圆中心…

网站不显示内容装饰工程公司取名推荐

文章目录 基本设计理念mysql的基本API基本的demo示例自增的处理架构设计代码DataRecord接口DataRecord代码TABLE A数据结构类DBAdaptermysql Adapterbusiness层在java这种web领域的后台语言里,操作数据库的框架已经炉火纯青,非常的成熟,包括了关系型数据库和非关系型等。 关…

深圳公司开发网站互联网怎么做

由于工作原因,需要每隔半小时刷新一些网页,并查看上面的数据是否有更新。这件事能否自动化进行呢?查找了下Java相关的资料,蹦出一个关键词:HttpClient。 HttpClient是常用Http客户端库,相关的资料也不少&am…

厦门做企业网站比较好的公司网站 数据库 sql 导入数据库

目录 一、简答题 1.GeoDatabase数据模型结构类型与四种关系。 2.组件式GIS的基本思想是什么? 3.请简述创建空间书签的实现逻辑。 4.请问与地理要素编辑相关的类有哪些?(列举至少五个类) 5.利用ArcGIS Engine提供的栅格运算工…

目字形布局结构的网站浦东建设环评网站

文章目录 前言相关代码整理 测试实践文件目录包管理BUILD文件以及cyberfile.xml文件源程序BUILD运行结果其他参考CameraOutput channels启动camera驱动启动camera video compression驱动 前言 本文是对Cyber RT的学习记录,文章可能存在不严谨、不完善、有缺漏的部分&#xff0…

怎么做动态的实时更新的网站网站开发发展前景

CXF功能就比较强了。CXF支持soap1.2。CXF和Spring整合的非常密切。它的配置文件基本就是Spring的配置文件了。CXF是要部署在服务器才能用的。CXF得放到Web容器里面去发布。CXF就可以整合咱们的Web容器。 cxf-2.4.0解压出来之后 apache-cxf-2.4.2是核心包,apache-cxf-2.4.4-src是…

网站开发教学广园路建设公司网站

讨论成员:罗凯旋、罗林杰、吴伟锋、黎文衷 第二阶段总体是做到了四则运算的demo,,包括APP进入动画,以及界面的基本效果设计,还有能进行综合计算(选择题,可以 自动生成简单,容易,困难…

云南建设厅网站首页wordpress ssr

文章目录 css3新增属性box-shadowborder-radius设置椭圆 position: sticky;渐变背景线性渐变可重复的渐变背景 径向渐变可重复的渐变背景 过渡分属性 动画关键帧与transition的关系demo 变形平移使用 旋转使用 其他使用立体效果perspective元素位于3D空间还是平面中 缩放变形的…

网站设计对网站建设有哪些意义?济南公司快速建站

Leetcode 2939. Maximum Xor Product 1. 解题思路2. 代码实现3. 代码优化: 题目链接:2939. Maximum Xor Product 1. 解题思路 这一题思路上来说我们就是逐位进行考虑。 对于xor操作,显然我们只有以下两种情况: 00或者11&…

有没有做那个的视频网站做直播网站需要学什么

文章目录 1.类与类加载器2.类加载器加载规则3.JVM 中内置的三个重要类加载器为什么 获取到 ClassLoader 为null就是 BootstrapClassLoader 加载的呢? 4.自定义类加载器什么时候需要自定义类加载器代码示例 5.双亲委派模式类与类加载器双亲委派模型双亲委派模型的执行…

移动网站技术建设部网站 自住房

java备忘录Java 8 java.util.Optional<T>是scala.Option[T]和Data.Maybe在Haskell中的较差表亲。 但这并不意味着它没有用。 如果您不熟悉此概念&#xff0c;请将Optional想象为可能包含或不包含某些值的容器。 就像Java中的所有引用都可以指向某个对象或为null &#xf…