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

网站空间去哪买信誉好的顺德网站建设

网站空间去哪买,信誉好的顺德网站建设,网站建设的优势何江,创建自己的网站怎么弄文章目录 强化学习介绍强化学习和监督学习比较监督学习强化学习 强化学习的数学和过程表达动作空间序列决策策略#xff08;policy#xff09;价值函数#xff08;value function#xff09;模型#xff08;model#xff09; 强化学习和启发式算法比较强化学习步骤代码走… 文章目录 强化学习介绍强化学习和监督学习比较监督学习强化学习 强化学习的数学和过程表达动作空间序列决策策略policy价值函数value function模型model 强化学习和启发式算法比较强化学习步骤代码走查总结 标准强化学习和深度强化学习标准强化学习深度强化学习 写在前面最近在了解马尔科夫决策学习了很多启发式算法对它的过程和原理大概有了一些了解和掌握然而在看到一篇关于强化学习的文章时搜索了相关知识发现强化学习的概念和启发式算法很像所以这里尽可能通俗、清晰地区分一下强化学习、深度强化学习、监督学习、启发式算法。由于之前对深度学习有了一些研究所以本文的重点是结合其他方法的异同深入了解强化学习文章的结构和路线就是我的思考路线。 强化学习介绍 强化学习reinforcement learningRL 讨论的问题是智能体agent怎么在复杂、不确定的环境environment中最大化它能获得的奖励。强化学习由两部分组成智能体和环境。在强化学习过程中智能体与环境一直在交互。智能体在环境中获取某个状态后它会利用该状态输出一个动作 action这个动作也称为决策decision。然后这个动作会在环境中被执行环境会根据智能体采取的动作输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。 “强化学习研究的问题是智能体与环境交互的问题”如下图左边的智能体右边的环境进行交互。智能体把它的动作输出给环境环境取得这个动作后会进行下一步把下一步的观测与这个动作带来的奖励返还给智能体。这样的交互会产生很多观测智能体的目的是从这些观测之中学到能最大化奖励的策略。 很早之前看过的一个博主发布的关于使用强化学习玩贪吃蛇游戏的视频印象特别深也算是给我打开了强化学习的大门链接我用30天写了一个完美的贪吃蛇AI 博主通过不断地添加奖励和惩罚方式训练贪吃蛇。 刚开始的奖惩机制是吃到果子1、撞到墙或身体-1贪吃蛇为了避免撞墙不停地转圈圈up“这是由于稀疏奖励问题就是它拿到奖励的概率太低AI如果乱走撞墙的可能性比吃到果子的概率大多了”针对此问题添加了步长限制在560步之内未吃到果子就扣分蛇刚开始的吃果子表现很好但是在蛇身长度变长之后由于撞墙的概率很大还是存在转圈圈的问题。添加规则“计算蛇头与果子的举例接近果子加分、远离果子扣分”分数比吃果子和撞墙的分值小很多从而引导AI朝着果子走同时具有允许绕路的长线思维同时将原来的固定奖励改成动态的“蛇越长吃到果子的奖励越多输掉游戏的扣分越少”…… 强化学习和监督学习比较 监督学习 通常假设样本空间中全体样本服从一个未知分布我们获得的每个样本都是独立地从这个分布上采样获得的即独立同分布(independent and identically distributed简称 i.i.d.)。输入的数据标注的数据都应是没有关联的。因为如果输入的数据有关联学习器learner是不好学习的。需要告诉学习器正确的标签是什么这样它可以通过正确的标签来修正自己的预测。 强化学习 强化学习得到的观测observation不是独立同分布的上一帧与下一帧间有非常强的连续性。 以雅达利Atari游戏 Breakout 为例这是一个打砖块的游戏控制木板左右移动从而把球反弹到上面来消除砖块。智能体得到的数据是相关的时间序列数据不满足独立同分布。另外我们并没有立刻获得反馈游戏没有告诉我们哪个动作是正确动作。比如现在把木板往右移这只会使得球往上或者往左一点儿我们并不会得到即时的反馈。因此强化学习之所以困难是因为智能体不能得到即时的反馈然而我们依然希望智能体在这个环境中学习。 强化学习的训练数据就是一个玩游戏的过程。我们从第 1 步开始采取一个动作比如我们把木板往右移接到球。第 2 步我们又做出动作得到的训练数据是一个玩游戏的序列。比如现在是在第 3 步我们把这个序列放进网络希望网络可以输出一个动作即在当前的状态应该输出往右移或者往左移。这里有个问题我们没有标签来说明现在这个动作是正确还是错误的必须等到游戏结束才可能知道这个游戏可能 10s 后才结束。现在这个动作到底对最后游戏是否能赢有无帮助我们其实是不清楚的。这里我们就面临延迟奖励delayed reward的问题延迟奖励使得训练网络非常困难。 智能体获得自己能力的过程其实是不断地试错探索trial-and-error exploration的过程。探索 exploration和利用exploitation是强化学习里面非常核心的问题。其中探索指尝试一些新的动作 这些新的动作有可能会使我们得到更多的奖励也有可能使我们“一无所有”利用指采取已知的可以获得最多奖励的动作重复执行这个动作因为我们知道这样做可以获得一定的奖励。因此我们需要在探索和利用之间进行权衡这也是在监督学习里面没有的情况。 到这里我有个问题我们通过训练得到的是一种决策方式吗 贪吃蛇的例子将强化学习和卷积神经网络结合起来看起来更像是深度强化学习通过训练得到一种通用决策。 上述的雅达利游戏也是似乎是训练出来了一个聪明的玩家从而能够在所有的弹球游戏中都有很好的表现。 那么标准强化学习究竟是在作什么工作 而且得到的玩家以及他的通用决策究竟是如何训练和表示的呢强化学习的数学和过程表达 动作空间 不同的环境允许不同种类的动作。在给定的环境中有效动作的集合经常被称为动作空间action space。贪吃蛇的环境有离散动作空间discrete action space在这个动作空间里智能体的动作数量是有限的。在其他环境可能有连续动作空间continuous action space在连续动作空间中动作是实值的向量。 例如走迷宫机器人如果只有往东、往南、往西、往北这4种移动方式则其动作空间为离散动作空 间如果机器人可以向 360°中的任意角度进行移动则其动作空间为连续动作空间。 序列决策 在一个强化学习环境里面智能体的目的就是选取一系列的动作来最大化奖励所以这些选取的动作 必须有长期的影响。但在这个过程里面智能体的奖励其实是被延迟了的就是我们现在选取的某一步动作可能要等到很久后才知道这一步到底产生了什么样的影响。 比如在贪吃蛇游戏中我们在游戏结束时才能得到最后的得分过程中采取的“向前”、“向左”、“向右”的动作并不会直接决定最后的总分。 在于环境交互的过程中智能体会获得很多观测针对每一个观测智能体会采取一个动作也会得到一个奖励。 比如贪吃蛇每次吃到果子都会加分或每距离果子更近一步就会加分就是每个观测采取动作得到的奖励。所以强化学习里面有一个重要的课题就是近期奖励和远期奖励的权衡trade-off研究怎么让智能体取得更多的远期奖励。 ps: 下图是我在参考文章的图基础上改的 状态是对世界的完整描述不会隐藏世界的信息。观测是对状态的部分描述可能会遗漏一些信息。在深度强化学习中我们几乎总是用实值的向量、矩阵或者更高阶的张量来表示状态和观测。例如我们可以用RGB像素值的矩阵来表示一个视觉的观测可以用机器人关节的角度和速度来表示一个机器人的状态。 历史是观测、动作、奖励的序列 H t o 1 , a 1 , r 1 , . . . , o t , a t , r t H_{t}o_{1}, a_{1}, r_{1}, ..., o_{t}, a_{t}, r_{t} Ht​o1​,a1​,r1​,...,ot​,at​,rt​其中 o o o、 a a a、 r r r分别对应观测、动作、奖励。智能体在采取当前动作的时候会依赖于它之前得到的历史所以可以把整个游戏的状态看成关于这个历史的函数 S t f ( H t ) S_{t}f(H_{t}) St​f(Ht​)关于环境状态更新的函数 S t e f e ( H t ) S_{t}^{e}f^{e}(H_{t}) Ste​fe(Ht​)表示当前环境的状态智能体内部存在一个函数 S t a f a ( H t ) S_{t}^{a}f^{a}(H_{t}) Sta​fa(Ht​)表示智能体所认识的当前环境的状态 当智能体能够观察到环境的所有状态时我们称这个环境是完全可观测的fully observed。在这种情况下强化学习通常被建模成一个马尔可夫决策过程Markov decision processMDP的问题。即在马尔可夫决策过程中 o t S t e S t a o_{t}S_{t}^{e}S_{t}^{a} ot​Ste​Sta​。 但是有一种情况是智能体得到的观测并不能包含环境运作的所有状态因为在强化学习的设定里面 环境的状态才是真正的所有状态。比如智能体在玩black jack21点游戏它能看到的其实只有牌面上的牌。当智能体只能看到部分的状态我们就称这个环境是部分可观测的partially observed。在这种情况下强化学习通常被建模成部分可观测马尔可夫决策过程partially observable Markov decision process, POMDP的问题。部分可观测马尔可夫决策过程依然具有马尔可夫性质。部分可观测马尔可夫决策过程可以用一个七元组描述 ( S , A , T , R , Ω , O , γ ) (S,A,T,R,Ω,O,γ) (S,A,T,R,Ω,O,γ)。其中 S S S表示状态空间为隐变量 A A A为动作空间 T ( s ′ ∣ s , a ) T(s′∣s,a) T(s′∣s,a)为状态转移概率 R R R为奖励函数 Ω ( o ∣ s , a ) Ω(o∣s,a) Ω(o∣s,a)为观测概率 O O O为观测空间 γ γ γ为折扣系数。 策略policy 策略是智能体的动作模型决定了智能体的动作。它其实是一个函数用于把输入的状态变成动作。 策略 π \pi π表示智能体在每个状态下选择行为的概率分布 π ( a ∣ s ) P [ a t a ∣ s t s ] \pi(a|s)P[a_{t}a|s_{t}s] π(a∣s)P[at​a∣st​s] 策略可分为两种随机性策略和确定性策略。 随机性策略stochastic policy 输入一个状态 s s s输出一个概率。这个概率是智能体所有动作的概率然后对这个概率分布进行采样可得到智能体将采取的动作。比如可能是有0.7的概率往左0.3的概率往右那么通过采样就可以得到智能体将采取的动作。确定性策略deterministic policy 就是智能体直接采取最有可能的动作。 通常情况下强化学习一般使用随机性策略随机性策略有很多优点。比如在学习时可以通过引入一定的随机性来更好地探索环境随机性策略的动作具有多样性这一点在多个智能体博弈时非常重要。采用确定性策略的智能体总是对同样的状态采取相同的动作这会导致它的策略很容易被对手预测。 价值函数value function 智能体的目标是找到最优策略 π ∗ \pi^* π∗ 使得从任意状态 s s s开始行动时累积的期望回报 G t G_{t} Gt​最大。 对于无折扣的情况总回报为 G t R t 1 R t 2 R t 3 . . . ∑ k 0 ∞ R t k 1 G_{t}R_{t1}R_{t2}R_{t3}...\sum_{k0}^{\infty}R_{tk1} Gt​Rt1​Rt2​Rt3​...∑k0∞​Rtk1​对于有折扣的情况使用折扣因子 γ γ γ其中 0 ≤ γ ≤ 1 0≤γ≤1 0≤γ≤1来表示未来奖励的重要性总回报为 G t R t 1 γ R t 2 γ 2 R t 3 . . . ∑ k 0 ∞ γ k R t k 1 G_{t}R_{t1}γR_{t2}γ^{2}R_{t3}...\sum_{k0}^{\infty}γ^{k}R_{tk1} Gt​Rt1​γRt2​γ2Rt3​...∑k0∞​γkRtk1​ 这里 γ γ γ控制了未来奖励对当前回报的影响程度。当 γ γ γ越接近1越重视长期奖励当 γ γ γ越接近0则更加关注短期奖励。 价值函数的值是对未来奖励的预测用它来评估状态的好坏。价值函数有两种主要形式 状态价值函数State Value Function表示在状态 s s s下按照某一策略 π \pi π行动时未来回报的期望值 V π ( s ) ≈ E π [ G t ∣ s t s ] E π [ ∑ k 0 ∞ γ k R t k 1 ∣ s t s ] V_{π}(s)≈\mathbb{E}_\pi[G_{t}|s_{t}s]\mathbb{E}_{\pi}\left[\sum_{k0}^{\infty}γ^{k}R_{tk1}|s_{t}s\right] Vπ​(s)≈Eπ​[Gt​∣st​s]Eπ​[k0∑∞​γkRtk1​∣st​s]动作价值函数Action Value Function表示在状态 s s s下采取动作 a a a并且随后按照某一策略 π \pi π行动时未来回报的期望值 Q π ( s , a ) ≈ E π [ G t ∣ s t s , a t a ] E π [ ∑ k 0 ∞ γ k R t k 1 ∣ s t s , a t a ] Q_{π}(s, a)≈\mathbb{E}_\pi[G_{t}|s_{t}s, a_{t}a]\mathbb{E}_{\pi}\left[\sum_{k0}^{\infty}γ^{k}R_{tk1}|s_{t}s, a_{t}a\right] Qπ​(s,a)≈Eπ​[Gt​∣st​s,at​a]Eπ​[k0∑∞​γkRtk1​∣st​s,at​a] 利用Q函数可以通过比较不同的 π \pi π和 a a a对应的 Q Q Q值知道进入某个状态后要采取的最优动作。 V π ( s ) V_{π}(s) Vπ​(s)可以被视为在当前状态下所有可能动作的 Q π ( s , a ) Q_{π}(s, a) Qπ​(s,a)的加权平均。 贝尔曼期望方程Bellman Expectation Equation 将价值函数表示为当前奖励与未来状态的价值之间的关系即状态s下的价值等于当前行动得到的即时奖励加上下一未来状态的折扣价值。 模型model 模型表示智能体对环境的状态进行理解它决定了环境中世界的运行方式。下一步的状态取决于当前的状态以及当前采取的动作它由状态转移概率和奖励函数两个部分组成。我的理解是模型指的就是强化学习的学习过程由奖励函数和状态转移概率来表示智能体是如何进行学习的 状态转移概率 p s s ′ a p ( s t 1 s ′ ∣ s t s , a t a ) p^{a}_{ss}p(s_{t1}s|s_{t}s, a_{t}a) pss′a​p(st1​s′∣st​s,at​a)奖励函数 R ( s , a ) E [ r t 1 ∣ s t s , a t a ] R(s,a)\mathbb{E}[r_{t1}|s_{t}s, a_{t}a] R(s,a)E[rt1​∣st​s,at​a] 价值函数是对某个决策状态下的行动价值进行估计的函数它反映了在特定状态下采取某个动作的潜在汇报。而奖励函数是为了引导学习过程给智能体在特定状态下采取某个动作提供立即的评估。奖励函数通常是通过人工定义的而价值函数则可以通过学习得到。 强化学习和启发式算法比较 强化学习步骤 对数学表达有了进一步认识之后下面来解决“强化学习学到的是什么”的问题。 为什么会有这个疑惑因为神经网络最重要的就是每个隐藏层的表达式通过学习更新权重和偏置参数到表现较好的值。学习的结果就是得到一个确定的无未知数的表达式输入不同的数据到网络经“表达式”处理最终输出结果。 那么强化学习对应的“表达式”是什么它更新的未知数又是什么上述提到的概念是被如何使用的强化学习模型通过以下步骤工作 环境状态智能体在时刻 t t t的环境状态表示为 s t s_{t} st​。选择行为智能体根据当前状态 s t s_{t} st​选择一个行为 a t a_{t} at​。获得奖赏智能体执行行为 a t a_{t} at​后获得即时奖赏 r t r_{t} rt​。状态转移智能体转移到下一个状态 s t 1 s_{t1} st1​。策略更新根据获得的奖赏和状态转移更新策略 π \pi π使得未来的奖赏最大化。 其实我们最后学习到的“固定表达式”就是策略存储了经学习后每个状态对应每个动作的概率。 举个走迷宫的例子如下图要求智能体从起点start开始然后到达终点goal的位置。每走一步我们就会得到 -1 的奖励。我们可以采取的动作是往上、下、左、右走。用智能体所在的位置来描述当前状态因为迷宫游戏的特点就是不需要关注前面路径的顺序在某一个格子中总是有一个到达终点的最好选择类似动态规划问题。 可以用不同的强化学习方法来解这个环境。 如果我们采取 基于策略的强化学习policy-based RL 方法当学习好了这个环境后在每一个状态都会得到一个最佳的动作。比如我们现在在起点位置我们知道最佳动作是往右走在第二格的时候得到的最佳动作是往上走第三格是往右走…通过最佳的策略我们可以最快地到达终点。 如果换成 基于价值的强化学习value-based RL 方法利用价值函数作为导向会得到另外一种表征每一个状态会返回一个价值。比如我们在起点位置的时候价值是-16表示我们最快可以 16步到达终点。因为每走一步会减1所以这里的价值是-16。当我们快接近终点的时候这个数字变得越来越大。在拐角的时候比如现在在第二格价值是-15智能体会看上、下两格它看到上面格子的价值变大了变成 -14 了下面格子的价值是 -16那么智能体就会采取一个往上走的动作。 我以前一直因为觉得保存每个状态的数据量太太太太太太大了存储成本很高所以下意识以为将这些庞大的排列组合结果都存下来应该是不可能的所以对于强化学习的结果一直不太理解。 实际上神经网络的参数量也是非常庞大的。所以没什么需要担心的。强化学习学习到的策略可以通过多种方式进行存储主要包括使用经验缓存池experience buffer和利用数据结构如list、deque、dataset和dict进行数据管理。‌ ‌- On-policy方法‌中通常使用list来存储数据。例如在每个episode中将状态、动作和奖励分别存储在列表中训练时从列表中随机采样数据进行训练‌。 ‌- Off-policy方法‌可以使用经验缓存池experience buffer这种方法通过将多个episodes的经验存储在一个大的buffer中使得数据可以被重复利用从而提高学习效率和稳定性‌。 “episodes”回合、情节指的是智能体与环境之间的一系列交互从初始状态开始到终止状态结束。一个episode通常包含以下特点 起始点每个episode都是从一个初始状态开始这个状态可以是随机选择的也可以是固定的。序列动作智能体在每个状态下选择一个动作然后环境根据这个动作和当前状态给出反馈。反馈智能体执行动作后环境会提供一个反馈包括立即奖励instant reward和新的状态。终止条件一个episode会在达到某个终止条件时结束。这个条件可以是达到一个特定的状态比如目标状态或者在episode中执行了一定数量的动作。累积奖励在episode过程中智能体的目的是最大化累积奖励即从初始状态到终止状态过程中获得的所有奖励之和。经验学习智能体在每个episode中通过与环境的交互学习更新其策略或价值函数以便在未来的episode中表现得更好。 On-policy方法 指的是智能体Agent在学习过程中只使用当前策略生成的数据来更新策略。换句话说智能体在生成数据即选择动作和观察结果时使用的策略与评估或改进策略时使用的策略是同一个。这种方法的优点是简单直观因为它直接针对当前的策略进行优化但缺点是可能较慢地探索到最优策略因为它完全依赖于当前策略的行为。特点 数据一致性只使用当前策略生成的数据。探索与利用需要在探索尝试新动作和利用重复已知的好动作之间平衡。代表性算法SARSAState-Action-Reward-State-Action是典型的On-policy算法。 Off-policy方法 指的是智能体在学习过程中可以使用与当前策略不同的策略生成的数据来更新策略。这意味着智能体可以利用过去的行为策略behavior policy生成的数据来改进目标策略target policy。这种方法的优点是可以更有效地利用数据因为它允许智能体从不同的策略中学习从而可能更快地收敛到最优策略。缺点是可能需要更复杂的算法来处理数据的偏差问题。特点 数据灵活性可以使用不同策略生成的数据。目标策略与行为策略分离目标策略是智能体想要学习的策略而行为策略是智能体实际遵循的策略。代表性算法Q-learning和Deep Q-NetworksDQN是典型的Off-policy算法。 代码走查 即便已经了解了上述概念还是非常抽象。比如我是如何更新策略的在我某一次的episode结束之后我发现向上走更好如何更新策略函数以“冰冻湖”Frozen Lake问题为例智能体需要从起点出发避开冰洞hole到达目标goal。使用Q学习Q-Learning算法解决。注意这里的问题和代码均由AI生成只是为了便于理解过程我忽略了是否存在代码错误。 问题描述 环境是一个4×4的网格每个格子可以是“起始”、“目标”、“冰洞”或“冰面”。智能体每次可以向上、下、左、右移动。如果智能体掉入冰洞它会得到-1的奖励并回到起始的位置如果智能体到达目标它会得到1的奖励并结束游戏。智能体每次移动都会得到-0.01的惩罚以鼓励更短的路径。 import gym # gym库用于强化学习 import numpy as np import random# 创建冰冻湖环境 env gym.make(FrozenLake-v0)# 初始化Q表所有值设置为0 Q np.zeros([env.observation_space.n, env.action_space.n])Q表包含了智能体在给定状态下采取不同行动的预期回报值。Q表的每一行代表一个状态每一列代表在该状态下可以采取的一个行动表格中的每个单元格Q[s,a]代表在状态s下采取行动a的Q值行动值函数。 # 设置学习参数 learning_rate 0.8 # 学习率决定了新信息的权重新信息对现有估计的影响程度 discount_factor 0.95 # 折扣因子用于计算未来奖励的现值 epsilon 0.1 # 探索率决定了智能体随机探索的概率# 训练过程 episodes 2000 # 训练的回合数 for i in range(episodes):state env.reset() # 重置环境获取初始状态done False # 标志位表示回合是否结束total_reward 0 # 当前回合的总奖励while not done:# epsilon-greedy策略选择行动if random.uniform(0, 1) epsilon:action env.action_space.sample() # 探索随机选择一个行动else:action np.argmax(Q[state, :]) # 利用选择Q值最大的行动# 执行行动观察下一个状态和奖励next_state, reward, done, _ env.step(action)这里没有定义next_state、reward、done的计算方式需要按照问题描述中的规则新建类重写step方法。# 更新Q表Q[state, action] (1 - learning_rate) * Q[state, action] learning_rate * (reward discount_factor * np.max(Q[next_state, :]))上式表示为:Q[s,a](1-α)*Q[s,a]α*(rγ*max(Q[s,*]))Q[s,a]α*(rγ*max(Q[s,*])-Q[s,a])即原始Q表的基础上加上新信息的影响。新信息的影响又根据当前的即时奖励未来可能获得的最大Q值的影响-现有的总Q值。state next_state # 更新状态total_reward reward # 累加奖励if i % 100 0:print(fEpisode {i}: Total Reward {total_reward}) # 每100个回合打印一次# 测试训练好的策略 test_episodes 100 # 测试的回合数 wins 0 # 获胜次数 for _ in range(test_episodes):state env.reset() # 重置环境done Falsewhile not done:action np.argmax(Q[state, :]) # 使用训练好的策略state, reward, done, _ env.step(action) # 执行行动if reward 1:wins 1 # 如果获胜增加获胜次数print(fWinning percentage after training {wins/test_episodes * 100}%) # 打印训练后的获胜百分比 更新策略部分的代码截取如下 # 更新Q表Q[state, action] (1 - learning_rate) * Q[state, action] learning_rate * (reward discount_factor * np.max(Q[next_state, :]))上式表示为:Q[s,a](1-α)*Q[s,a]α*(rγ*max(Q[s,*]))Q[s,a]α*(rγ*max(Q[s,*])-Q[s,a])即原始Q表的基础上加上新信息的影响。新信息的影响又根据当前的即时奖励未来可能获得的最大Q值的影响-现有的总Q值。从代码可以看出策略是如何综合历史表现和新的学习。上述Q-Learning更新规则的依据有 即时奖励 r r r这是智能体在当前时间步获得的奖励反映了采取当前行动的直接后果。最大未来奖励的估计 m a x ( Q ( s ’ , ∗ ) ) max(Q(s’, *)) max(Q(s’,∗))这是基于下一个状态 s ’ s’ s’对所有可能行动的Q值取最大值。这个值代表了在下一个状态采取最优行动所能获得的期望回报。折扣因子 γ γ γ因为未来的奖励是不确定的所以我们需要通过折扣因子来减少未来奖励对当前决策的影响。 γ γ γ接近1表示智能体更看重长期奖励而 γ γ γ接近0则表示更看重短期奖励。学习率 α α α学习率决定了我们如何平衡旧Q值和新获得的信息。 α α α接近1表示我们更相信新的信息而 α α α接近0则表示我们更相信旧的Q值。 总结 根据上述学习可以看出强化学习是机器学习的一个子领域可以通过训练得到一个“通用方法”在多次训练之后使得面对相同的问题能够直接找到最好的策略。而启发式算法在每次运用的时候都要执行算法的迭代过程从而找到当前最优的结果。 启发式算法 启发式算法Heuristic Algorithm是基于直观或经验构造的算法旨在在可接受的花费下给出待解决组合优化问题的可行解但无法保证最优解。启发式算法通常依赖于特定的规则适用于有明确规则的问题但在处理动态优化问题时效果较差‌。 具体区别 问题建模‌强化学习通过智能体与环境的交互学习最优策略而启发式算法依赖于特定的规则。反馈信号‌强化学习通过长期的奖励信号进行优化而启发式算法通常依赖于短期的反馈信号。探索与开发‌强化学习在探索和开发之间找到平衡通过试错学习最优策略而启发式算法更多地依赖于预设的规则进行探索和开发‌。‌适用场景‌强化学习适用于高维、复杂的状态和动作空间而启发式算法更适用于有明确规则的问题‌。实际应用场景强化学习‌适用于需要长期优化和自适应的场景如自动驾驶、机器人控制等。‌启发式算法‌适用于有明确规则和短期优化的场景如最短路径问题、调度问题等‌。 标准强化学习和深度强化学习 由于时间限制以及资源有限我凭借自己的理解解释一下二者的区别还是以Q-Learning为例。 标准强化学习 策略可以用Q表查询 Q [ s , a ] Q[s,a] Q[s,a]存储了每个状态和动作对应的Q值。在学习的过程中最终得到一个这样的图。 某一时刻需要做出决策使用Q表 深度强化学习 深度强化学习就是把当前状态输入神经网络策略网络然后输出得到当前最优策略。学习过程就是训练神经网络参数的过程。其实策略网络的表达可以省略但是这里为了更好地理解这个过程我还是认真模拟了一下。仍以上面的某一时刻举例假设输入的是5×5的矩阵0表示无路、-1表示非当前位置1表示当前位置。 选择下一步的动作时将状态输入策略网络 省略最后的SoftMax操作输出得到移动到每个位置的概率存储在形状为[1, 25]的矩阵中。由于太久没有看深度学习了不知道这里步骤有没有搞错的地方。假设计算得到的矩阵为 那么下一步的移动方案是向右一步。 【个人理解欢迎指正】 参考来源 我用30天写了一个完美的贪吃蛇AI 强化学习深入学习一价值函数和贝尔曼方程 什么是强化学习 什么是深度强化学习DRL【知多少】 劝退强化学习/劝退一波研一入学想搞强化学习的同学/RL 关于我的强化学习模型不收敛这件事 她的强化学习模型终于收敛了
http://www.dnsts.com.cn/news/39681.html

相关文章:

  • 网站开发要写代码吗seo教程:外链优化方法和原理介绍
  • 电子商务营销网站建设简述网站建设过程步骤
  • 域名购买后如何建设网站应用商店正版下载安装
  • 网站建设东营免费申请域名的方法和流程
  • 网站设计模板代码新乡手机网站建设
  • 山东省建筑住房和城乡建设厅网站国外网站模板网站建设
  • 厦门品牌网站建设免费推广论坛
  • 电子商务的网站开发的工作内容可以做空股票的网站
  • 如何解决网站访问拥挤客栈网站建设代码
  • 成都商报官方网站怎么开公众号
  • 做华为网站的还有哪些功能吗首页制作教程
  • 百度网站排名优化软件永嘉网站制作系统
  • 如何使用好单库选品库做网站正规的网站制作与推广
  • 自贡网站建设公司龙岗商城网站建设教程
  • 苏州建网站的公建设银行投诉网站
  • 北京网站定制建设沙井营销型网站建设
  • 平面设计常用网站seo搜索引擎优化求职简历
  • 大兴模板网站建设邯郸百度推广公司
  • 详情页在线设计网站企业seo网络推广
  • 做我的世界背景图的网站设计方案网站
  • 营销型网站和普通网站的区别成都网络营销公司哪家好
  • 长沙建站公司效果宝石网站建设
  • 关键词搜不到我的网站tp框架做的图片网站
  • 网站加入我们页面网站页面是自己做还是使用模板
  • 做注册任务的网站有哪些门户网站包括哪些
  • wordpress制作网站步骤制作自己网站有什么用
  • 做html网站快速提高关键词排名的软件
  • 游戏推广工作好做吗泉州seo优化排名公司
  • 学做网站培训上海诸暨有哪些制作网站公司
  • 烟台专业网站制作公司wordpress 分类置顶