强化学习基础

强化学习的三种方法

  • 基于价值(value-based)
  • 基于策略(policy-based)
  • 基于模型(model-based)

基于价值:需要找的是每个状态的价值函数, 每次采取的行动,它会采取函数值最大的那个行动
基于策略:需要找的是每个状态下的动作分布,每次采取的行动,来自函数的最大动作概率

state-value function:::::::::::::::::::::: V(s) = E[Gt|St=s]
action-value function:::::::::::::::::::: Q(s,a) = E[Gt|St=s, At=a]

V(s) = 对a求和 p(a|s) Q(s,a)

一 强化学习表示

S(State) = 环境, 例如迷宫的每一格是一个state, st,表示环境每一步的状态
A(Actions) = 动作, 在每个状态下。有什么行动是允许的,例如迷宫中行走的方向{上,下,左,右},可表示为at
R(Rewards) = 奖励, 进入每个状态时,能带来正面或负面的价值。环境奖励rt
P(Policy) = 方案。由一个状态->行动的函数。
策略 π, Agent根据环境状态s,选择动作a的条件概率,可表示为:π (a∣s) = P (at=a ∣ st=s)
状态转移概率 Pss′a:当状态为s时,如果执行了a动作,则状态变为s’ 的概率
累积回报 G: Gt=rt+1+ γ rt+2 + …… +γn-1rt+n
状态价值函数 vπ ( s ) :累积回报的均值表示为我们的状态价值vπ ( s ) = Eπ(Gt|st=s)
状态-行为值函数 qπ ( s , a ) 对上述状态和行为对进行评估qπ ( s , a ) = Eπ(Gt|st=s, at=a)
(S,A,R)是使用者设定的,P是算法自动计算出来的

强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,
具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按某种概率转移到另一个状态;
同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。
综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。
————周志华《机器学习》

强化学习可以描述成一个MDP(马尔科夫决策过程),即M = {S,A,P,r,γ,τ},这其中:
S 是状态集;
A 是动作集;
P 是状态转移矩阵;
r :    S × A → [ − Rmax , Rmax ] 为实时环境奖励;
γ ∈ [0,1] 为折扣因子;
τ = ( s0 , a1 , s1, a2 , s2 , ⋯   , aT , sT)为一个轨迹序列,描述的是一次完整的交互过程(即一个Episode,这个词后面会经常用,相应的( s0 , a1 , s 1)就可以看作一个Step)。
R(τ):一次强化学习的收益, τ本身是一个随机变量,则R(τ)也是一个随机值,优化过程无法对随机值取最大,但我们可以对其期望取最大,即通过不断优化maxπ ∫ R (τ) Pπ(τ) d ⁡ τ,最终找到最优决策序列。

  • 无特定数据,只有奖励信号
  • 奖励信号不一定实时
  • 主要研究时间序列的数据,而不是独立同分布的数据
  • 当前行为影响后续数据

强化学习关键要素:agent(智能体),reward(奖励),action(行为),state(状态),environment(环境)。

  • agent:主要涉及到:策略(Policy),价值函数(Value Function)和模型(Model)。
    Policy,可以理解为行动指南,让agent执行什么动作,在数学上可以理解为从状态state到动作action的映射,可分为确定性策略(Deterministic policy)和随机性策略(Stochastic policy),前者是指在某特定状态下执行某个特定动作,后者是根据概率来执行某个动作。
    Value Function,对未来总Reward的一个预测。
    Model,一个对环境的认知框架,可以预测采取动作后的下一个状态是什么,很多情况下是没有模型的,agent只能通过与环境互动来提升策略。
  • state:可以细分为三种,Environment State,Agent State和Information State。
    Environment State是agent所处环境包含的信息,简单理解就是很多特征数据,也包含了无用的数据。
    Agent State是输入给agent的信息,也就是特征数据。
    Information State是一个概念,即当前状态包含了对未来预测所需要的有用信息,过去信息对未来预测不重要,该状态就满足马尔科夫性(Markov Property)。Environment State,Agent State都可以是Markov Property。
  • environment:可以分为完全可观测环境(Fully Observable Environment)和部分可观测环境(Partially Observable Environment)。Fully Observable Environment就是agent了解了整个环境,显然是一个理想情况。
    Partially Observable Environment是agent了解部分环境的情况,剩下的需要靠agent去探索。

强化学习算法按照agent分类,可以分为下面几类:
关注最优策略(Policy based)
关注最优奖励总和(Value based)
关注每一步的最优行动(Action based)
根据状态转移概率p(或状态转移矩阵P)是否已知,强化学习可以分为两个大类,即Model-Based(基于模型,p已知)和Model-Free(无模型,p未知)

二 基于价值的方法

基于价值 (Value-Based)这种方法,目标是优化价值函数V(s)。
价值函数会告诉我们,智能体在每个状态里得出的未来奖励最大预期 (maximum expected future reward) 。
一个状态下的函数值,是智能体可以预期的未来奖励积累总值,从当前状态开始算。
智能体要用这个价值函数来决定,每一步要选择哪个行动。它会采取函数值最大的那个行动。
在这里插入图片描述

Bellman方程

该方程表示动作价值函数,即在某一个状态下,计算出每种动作所对应的value(或者说预期的reward)。
St表示t时刻具体的状态值
Rt表示t时刻所获得的奖励
Gt表示t时刻总的回报奖励,因为当前时刻做的某一个决定,未来不同时刻都会有不同形式的奖励。
(或者也可以这么理解:Gt代表的是当前时刻某一个动作所带来的的奖励,而v(s)就表示在当前时刻的一个奖励期望,即综合考虑所能采取的所有动作之后我们所能获得的奖励,我们把v(s)称为value function)
这个公式就是Bellman方程的基本形态。从公式上看,当前状态的价值和下一步的价值以及当前的反馈Reward有关。它表明价值函数(Value Function)是可以通过迭代来进行计算的!!!
在这里插入图片描述

三 基于策略的方法

这种方式,会直接优化策略函数π(s),抛弃价值函数。
策略就是评判智能体在特定时间点的表现。把每一个状态和它所对应的最佳行动建立联系。
策略分为两种,
· 确定性策略:某一个特定状态下的策略,永远都会给出同样的行动。
· 随机性策略:策略给出的是多种行动的可能性分布。
在这里插入图片描述
从图中我们可以看到,策略直接指出了每一步的最佳行动

  • 基于策略的方法往往比基于值的方法收敛到更好的解决方案。原因是,解决方案是梯度推出来的,而梯度总是指向微分函数的最陡峭方向。当运用误差函数并采用梯度下降法时,每一步都做都会让误差函数的值最小化。但是,如果几个动作间的差异比较小,基于值的方法产生的结果差异更大,无法保证收敛。
  • 值函数需要明确定义的环境,在该环境下动作会产生确定的结果。如果学习过程是随机的,那么在采取相同动作时,可能有不同的结果(观测),这样值函数就没法使用了。基于策略的方法不需要采取相同的动作来探索环境。
  • 在高维空间内,基于策略的方法的计算成本更低,计算的更快。这是因为基于值的方法要求我们为每一种可能的动作计算一个价值。如果空间中的动作太多了,值函数就不会收敛于一个解决方案。基于策略的方法不同,因为本质上只是让我们执行动作并且调整梯度。

动作价值函数

Bellman方程是价值函数,它直接估计的是某个状态下所有动作的价值期望,但是如果我们能够知道某个状态下每个动作的价值岂不是更好?这样我们可以选择价值最大的那个动作去执行,所以就有了动作价值函数(action-value function),它的表达形式其实是类似的:
在这里插入图片描述
上面公式中的pai表示动作选择策略(例如以0.1的概率随机选择action,以0.9的概率按照Q网络选择value值最大的action)
其实我们最初的目的是找到当前状态下应该执行哪个action,但是如果我们求解出最优的 ,其实也就等价于找到了这个action,这种求解方法也叫value-based方法。

其实还有policy-based(直接计算策略函数) 和 model-based(估计模型,即计算出状态转移函数,进而求解出整个MDP(马尔科夫过程)过程) 方法,下面主要以介绍value-based为主。

最优的动作价值函数为:
在这里插入图片描述
Q*(s,a)表示的是在t时刻的动作价值最优值
而仔细看看上面的等式可以发现,我们还需要求解出下一个状态S’所对应的动作价值最优解。
我们还在计算当前的Q值,怎么能有下个状态的Q值呢?
所以,在实际运用时,我们会使用之前的Q值,也就是说每次我们会根据新得到的reward和原来的Q值来更新现在的Q值,
具体的可以看看下面的算法介绍。

On-policy vs. Off-policy

  • on-policy: 生成样本的policy(value function)跟网络更新参数时使用的policy(value function)相同。典型为SARAS算法,基于当前的policy直接执行一次动作选择,然后用这个样本更新当前的policy,因此生成样本的policy和学习时的policy相同,算法为on-policy算法。
  • off-policy : 生成样本的policy(value function)跟网络更新参数时使用的policy(value function)不同。典型为Q-learning算法,计算下一状态的预期收益时使用了max操作,直接选择最优动作,而当前policy并不一定能选择到最优动作,因此这里生成样本的policy和学习时的policy不同,为off-policy算法。

On-policy意味着强化学习,例如决定行为的策略(policy)和要学习的策略。相反,Off-Policy的方法不同于您所使用的策略和您所学习的策略。
On-policy强化学习是一种积累了大量经验的学习,但如果更新了策略,这些经验将无法用于学习。因此,从数据效率的角度来看,Off-Policy是一个不错的选择。

2.1 Q-learning

在这里插入图片描述

  • 初始化环境状态S
  • 将当前环境状态S输入到Q网络(即策略网络,保存了action和value对应关系的table),然后输出当前状态的动作A
  • 更新Q网络
    Qtarget = R + γ maxaQ(s’, a)表示Q真实值,简单理解就是我在S状态下采取了action,从环境中获得了R的奖励,然后对下一时刻的Q值应该也是有影响的,这个影响因子就是γ。另外这次是是一个递归的表达式,所以也可以看出离当前时刻越远,我所采取动作的影响力就越低。
    Qtarget - Q(S, A)就是常说的TD(temporal difference) error,这个error在后面的DQN中会作为损失函数。
  • 更新当前状态为S’
  • 返回第二步重复执行,直到满足限定条件

在这里插入图片描述

基本Q-learning

Q学习(Q-learning)是一种无模型(model-free)学习。
这个算法核心就是两个矩阵:Q表和R表。
Q表包含了用于实现策略的环境累积知识,R表每一行代表一个状态,每一列代表这一行状态向另一行状态迁移的奖励。
不知道大家有没有感觉,Q表就是地图,R表就是世界……
用这种算法,agent的每个action都能看到R表发现这个iteration能采取的动作,但是依然是短视的。
这就是Q表存在的理由。Q表是agent在探索过程中不断画完整的地图,所以它也就是机器要学习的东西。

基本Q学习用到了epsilon-greedy算法。
我们对Q学习的目标是,由于经过了大量iteration,Q表的质量会越来越好,最后agent直接用Q表就行。
为了实现这个目标,我们希望Q算法利用Q表的信息少于探索的信息(不然就没有信息进入Q表)。
这就是著名的**探索 (Exploration) v.s. 利用(Exploitation)**折中问题。由于我们用epsilon控制这个权衡,所以叫做epsilon-greedy。
这里有一个非常好的比喻,假如你是餐馆经营者,要让客户吃菜:

  • Exploration的代价是要不停的拿用户去试菜,影响客户的体验,但有助于更加准确的估计每道菜好吃的概率
  • Exploitation会基于目前的估计拿出“最好的”菜来服务客户,但目前的估计可能是不准的(因为试吃的人还不够多)

epsilon-greedy算法用参数epsilon确定什么时候探索,什么时候利用:
算法认为,每当客人到来时:

  • 以epsilon的概率选择探索 (Exploration) ,从N道菜中随机选择(概率为 )一个让客人试吃,根据客人的反馈更新菜的做的好吃的概率 { }
  • 以1-epsilon的概率选择利用 (Exploitation),从N道菜{ }中选择好吃的概率最高的菜推荐给用户

深度Q-learning

深度Q学习(Deep Q-Learning,DQL)近似处理Q表的值,而不尝试手动填充Q表。
换句话说,DQL希望寻找到无限逼近最优解的次优解。
也可以理解为,DQL(DQN)就是自动学习Q表。
DQL依然要用到epsilon-greedy算法,这是用来权衡探索和利用的。
不同的是,DQL希望将“达到目标”和“采取动作”间的损失最小化,而这可以用梯度下降完成。
从DNN角度来看就是这幅图:
在这里插入图片描述

2.2 Sarsa

在这里插入图片描述
和Q-learning的区别
其实可以看到Q-learning和Sarsa的最大区别就是对Q网络的更新策略,Sarsa使用的是使用下次状态所采取的的动作所对应的Q值来更新Q值,而Q-learning使用下次状态S2的最大Q值用于更新。
感性的理解就是Sarsa会探索更多的可能性,而Q-learning会铁定心地选择最大可能性的选择。因此,Q-learning虽然具有学习到全局最优的能力,但是其收敛慢;而Sarsa虽然学习效果不如Q-learning,但是其收敛快,直观简单。因此,对于不同的问题,我们需要有所斟酌。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

四 基于模型的方法

这种方法是对环境建模。这表示,我们要创建一个模型,来表示环境的行为。
问题是,每个环境都会需要一个不同的模型 (马里奥每走一步,都会有一个新环境) 。这也是这个方法在强化学习中并不太常用的原因。

动态规划(DP)、蒙特卡洛(MC)和时序差分(TD)等算法进行了总结,其中提到了在上述算法中,其实都需要精确的求出几乎每个状态价值或状态-行为值(类似于算法需要维护一张Q表)。那么这就带来了一个问题,如果要解决的强化学习问题状态价值特别多,或者本身就是个连续值。那么,这个Q表就会变得特别大,以至于程序无法维护(内存溢出或者查询更新效率奇低)。

既然Q表是离散形式的,我们能够直接想到的方法,就是构造一个函数对其进行拟合,那么就不需要去维护巨大的Q表,而是用这个函数来代替即可。从数学角度这一方法被称为函数逼近法,

具体又可以分为参数逼近和非参数逼近两种。

其中非参数逼近法是基于样本数据推测未知数据的一种方法,主要包括基于核函数的方法和基于高斯过程的方法,基本概念可参见这里:非参数估计

我们在这里重点介绍参数逼近法:
v^ (s;ω)≈vπ(s)
q^ ( s , a ; ω ) ≈ qπ( s , a )
用参数ω 来表示相关函数,在学习过程中通过不断更新参数,使得向真实的vπ(s)或qπ( s , a ) 逼近。
近似方法有很多,其中包括线性法、决策树、傅立叶变换、以及神经网络等。而深度神经网络由于其可拟合任意函数的特性,使得其成为现在应用最广泛的一种。
其中将时序差分中的off-policy方法Q-Learning,与深度神经网络相结合而产生的Deep Q-Learning(DQN)算法,及其相关改进方法(Double DQN,Prioritized Replay DQN,Dueling DQN等),已经成为了现在值函数逼近方法中最主流的方法。下面,我们从最基础的DQN方法开始介绍。
同时,想要提醒各位的是,从现在开始,我们的学习也从最基础的强化学习(RL),进入到了深度强化学习(DRL)的领域。

五 主要的强化学习技术

主要的强化学习技术有蒙特卡洛学习((Monte-Carlo learning, MC)、
时间差分学习(temporal-difference learning, TD)、Q-learning、
策略梯度(policy gradient, PG)、
近端策略算法PPO
Actor-Critic(AC), A2C(advantage actor-critic), A3C(asynchronous advantage actor-critic) 。

5.1 蒙特卡洛学习((Monte-Carlo learning, MC)

蒙特卡罗方法也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。
我们在这里就是通过随机抽样的方法,以抽样的数字特征估算随机变量的数字特征
具体来说就是“把样本点的累积回报加起来求平均,来逼近状态价值或状态-行为值”:
vπ( s ) ≈ average( Gt ) 那么,在这个采样求平均的过程中,会遇到以下两个问题:
一是在一次完整状态过程中,同样一个状态可能会多次出现,那么这时的累积回报该如何使用?

这有两种解决方法,一是首次访问(first visit),即只用第一次出现的;二是每次访问(every visit),即每次出现的值都使用。
二是累积状态存储更新问题,我们上面的公式中有个average,意味着可能要存储所有状态,如何节省存储空间?
这个问题可用如下公式解决:
在这里插入图片描述

在 Monte-Carlo 预测中,通过采样学习状态值函数。 经过足够多的情节后,状态值函数将更接近正确答案。

我们将通过采样状态的经验获得的增益定义如下:

Gt =Rt+1 +γRt+2 +⋯+γn-1Rt+n

状态值可以再次表示为获取奖励如下:在这里插入图片描述
旧状态价值函数与新获得的奖励之间的差异称为误差。 α = 1/n 乘以这个误差

学习率 α, 蒙特卡洛预测中使用的总获得奖励 G
蒙特卡洛控制使用状态-动作值函数而不是状态值函数。
这样就可以选择状态-动作值函数值高的动作,以一定的概率进行探索。

在这里插入图片描述

5.2 时间差分学习(temporal-difference learning, TD)

Monte Carlo 预测中,状态值函数直到结束才能更新。 因此,存在难以进行实时进行学习的缺点。
时差预测 (TD) 允许您在每个时间步更新值函数。

在这里插入图片描述
在这里插入图片描述

时间差分预测更新价值函数如下:
在这里插入图片描述

与蒙特卡罗预测不同,我们在每个时间步 t更新价值函数。这样,在episode中,当前状态的值函数用下一个状态的值函数更新,所以 TD 可以说是使用bootstrap。事实上,即使在动态规划中,值函数也会在每个时间步进行更新。因此,可以说DP也使用了bootstrap。
bootstrap 是一种将当前状态的价值函数的值预测为下一个状态的价值函数的值的方法。

在 时间差分学习中,控制具有不同的名称,具体取决于它是在on-policy还是off-policy外。 On-policy 时间差分控制称为 state-action-reward-state-action (SARSA),off-policy 时间差分控制称为 Q-learning。

5.3 策略梯度(policy gradient, PG)

策略梯度可以看作是解决分类问题的强化学习。 就是决定在什么条件下哪个动作最好。 策略梯度用人工神经网络对任何状态下行为的概率值进行建模。

π ( a ∣ s ) ≈ πθ ( a ∣ s ) = P ( a ∣ s ; θ ) 与值函数逼近方法一样,用深度神经网络来拟合也是现在最普遍的方法,而这里的θ 代表的就是网络的权重。

在 Q-learning 中,您学习 Q 函数并采取具有高 Q 值的动作。 在策略梯度中,您学习一个动作的概率。 在策略梯度中,损失函数可以写成:
在这里插入图片描述
其中 Q(s,a)是考虑长期奖励在状态 s 中执行动作 a 的价值。 策略斜率可以通过多种方式定义损失函数。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在上面经典的策略梯度算法在实现时,可能会遇到一些问题,需要使用到以下一些小技巧。其中包括:
添加基线,以避免收益都是正的,无法实现对不好策略的剔除:
改变每个策略收益的计算方式,以体现其真正对收益的影响:
在这里插入图片描述
在这里插入图片描述

我们接下来将讨论的 Actor-Critic、A2C 和 A3C 可以看作是策略梯度方法的变体。

5.4 近端策略优化 PPO

上述经典的策略梯度(PG)算法,存在两个问题:
一是需要完整序列
二是一次采集的数据,不能够重复使用,学习效率极低还难以收敛

虽然基于策略的方法已经可以比较真实地进行建模,但是容易陷入局部最优。这是因为策略的设计的粒度太粗,缺乏精致的惩罚。

Important-sampling,重要性采样技术
从分布q(x)中进行抽样的数据来估计f(x), x~p(x)的期望.
在这里插入图片描述
p(x)/q(x)为重要性权重(IW:importance weight)
原有的按照p 采样的均值,就可以采用q 采样的均值来代替

近端策略优化(Proximal Policy Optimization,PPO)通过对目标函数 施加惩罚来解决这个问题。对于每个回合内的每个t,我们都算一下新策略和旧策略的KL散度,这样可以确保搜索参数的区域小,在比回合更小的粒度(iteration粒度)上调整策略。
这样,回合中的坏策略会在t级别受到惩罚(就是立刻受到惩罚),而不是过了一整个回合才受到惩罚。

这种策略本质是一种Actor-critic(参与者-批评者)模型,也就是有惩罚的参与者模型。很自然的就可以发现,策略就是actor,惩罚项就是critic。

Actor-Critic

状态价值:vπ ( s ) = Eπ(Gt|st=s)
动作价值函数 Qπ ( s , a )

在这里插入图片描述

策略网络相当于运动员Actor,价值网络相当于裁判Critic。
1)策略网络Actor:输出动作的概率

  • 他的作用是为了产生更好的动作,进而让状态价值最大化

基于Policy Gradient(Actor)策略梯度法

2)价值网络Critic
输入是两部分,状态s和动作a。输出是一个scalar,即一个值,代表这个动作的价值。衡量这个动作的好坏。

  • 他的作用是为了更好地评价一个 动作的质量,他的目标是能逼近上帝视角的评判,但我们获取不到上帝视角的评价,实际训练使用得到的reward作为目标,进而影响网络参数的更新。

基于Function Approximation(Critic)函数逼近法

两者可以共享一部分参数,也可以 完全独立。

优缺点

  • 1.优点:Actor-Critic是由Policy Gradients和Value-Based组成的,critic通过学习环境和奖惩的关系能看到所处的状态潜在的奖励,所以来指点actor使actor每一步都在更新,如果使用Policy Gradients,actor只能等到一个回合才能更新。
    因此:可以进行单步更新,比传统的Policy Gradient要快。
  • 2.缺点:
    (1)Actor— Critic涉及到两个神经网络,每次都在连续状态中更新参数,每次参数更新的前后都存在相关性,导致了神经网络只能片面的看待问题,甚至学不到东西,
    (2)Actor的行为取决于Critic的Value,但是因为Critic本来就很难收敛,和Actor一起更新的话就更难收敛了(为了解决收敛问题,后又提出了DDPG)

Actor-Critic算法的流程总结,评估点基于 TD 误差,Critic 使用神经网络来计算 TD 误差并更新网络参数,Actor 也使用神经网络来更新网络参数

  • 算法输入:迭代轮数 T,状态特征维度 n, 动作集 A, 步长 α,β,衰减因子 γ ,探索率 ϵ,Critic 网络结构和 Actor 网络结构。
  • 输出:Actor 网络参数 θ, Critic网络参数 w
  • 过程
      1. 随机初始化所有的状态和动作对应的价值 Q。
      2. for i from 1 to T,进行迭代。
       a) 初始化 S 为当前状态序列的第一个状态, 拿到其特征向量 ϕ(S)
       b) 在 Actor 网络中使用 ϕ(S) 作为输入,输出动作 A ,基于动作 A 得到新的状态 S′,反馈 R。
       c) 在 Critic 网络中分别使用 ϕ(S),ϕ(S‘′) 作为输入,得到Q值输出 V(S),V(S′)
       d) 计算 TD 误差 δ=R+γV(S′)−V(S)
       e) 使用均方差损失函数 ∑(R+γV(S′)−V(S,w))2 作 Critic 网络参数 w 的梯度更新
       f) 更新 Actor 网络参数 θ:θ=θ+α∇θlogπθ(St,A)δ
  • 对于 Actor 的分值函数 ∇θlogπθ(St,A) ,可以选择 softmax 或者高斯分值函数。
  • 上述 Actor-Critic 算法已经是一个很好的算法框架,但是离实际应用还比较远。主要原因是这里有两个神经网络,都需要梯度更新,而且互相依赖。但是了解这个算法过程后,其他基于 Actor-Critic 的算法就好理解了。
  • 目前改进的比较好的有两个经典算法,
    一个是 DDPG 算法,使用了双 Actor神经网络和双Critic 神经网络的方法来改善收敛性。这个方法我们在从 DQN 到 Nature DQN 的过程中已经用过一次了。
    另一个是 A3C 算法,使用了多线程的方式,一个主线程负责更新 Actor 和 Critic 的参数,多个辅线程负责分别和环境交互,得到梯度更新值,汇总更新主线程的参数。而所有的辅线程会定期从主线程更新网络参数。这些辅线程起到了类似 DQN 中经验回放的作用,但是效果更好。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度强化学习是结合了深度学习和强化学习的一种算法方法,它的发展历史可以追溯到强化学习和深度学习各自的起源。 强化学习是一种机器学习方法,旨在通过智能体与环境的交互来学习最优的行为策略。其基本思想是通过试错和奖励机制来引导智能体的学习过程。强化学习的发展历史可以追溯到20世纪50年代的动态规划方法,随后逐渐发展出了值函数和策略函数的方法,如Q-learning和SARSA等。然而,传统的强化学习方法在处理高维、复杂的问题时面临着维度灾难和计算复杂性的挑战。 深度学习是一种基于神经网络的机器学习方法,通过多层次的神经网络模型来学习数据的表示和特征提取。深度学习在图像识别、语音识别等领域取得了巨大成功。然而,传统的深度学习方法在处理序列决策问题时存在困难,因为它们缺乏对时间序列和延迟奖励的建模能力。 深度强化学习的发展可以追溯到2013年,当时DeepMind团队提出了一种基于深度神经网络的强化学习算法——深度Q网络(DQN)。DQN通过将强化学习和深度学习相结合,成功地解决了一些复杂的游戏问题。随后,深度强化学习得到了广泛的关注和研究。 在此基础上,深度强化学习的发展又涌现出了一系列的算法,如策略梯度方法、Actor-Critic方法、Proximal Policy Optimization(PPO)等。这些算法通过引入深度神经网络来近似值函数或策略函数,进一步提高了深度强化学习在处理复杂问题上的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值