一. 强化学习

1. 什么是强化学习问题?

强化学习 - 具体解读DQN
强化学习是机器学习领域的三大分支之一,深度学习+强化学习也被认为是通往通用AI的路途。
强化学习 - 具体解读DQN
强化学习问题能够描算法规划与剖析绘为agent从environment中获取调查的s算法的五个特性tate和获取reward,并产生action作用于environment。如上图描绘所示。用数学言语描绘便是Markov Decision Process(MDP)。

2. 强化学习的理论体系

(1) MDP

强化学习问题能够用MDP来描绘。在说MDP之前,需求先了解Markov Property和Markov Process。

i) Markov Property

强化学习 - 具体解读DQN
简言之,当时状况包括了以前悉数状况的信息,一旦当时状况信息已算法导论知,以前状况信息就算法工程师能够扔掉。
Markov Property除了包括有这一信息,还有便是状况搬运概率P架构师Rho
强化学习 - 具体解读DQN

ii) Markov Process

在说MDP之前要说的便是Markov Process了。
强化学习 - 具体解读DQN
架构图用什么软件做面是Markov Process的比如。架构是什么意思
强化学习 - 具体解读DQN
左面的图是Markov Process的实践表现深度学习。圆圈中代表不同的state,以及曲线上的状况搬运概率(state transition probability)。

咱们能够从这个描绘中随机的取样,以Class1Class 1为初始状况,上图右侧是部分sample的episodes(算法工程师和程序员差异即从初始状况到间断状况的途径架构是什么意思,包括悉数走过的中间状况)。

描绘了从Markov Process中sam算法工程师ple episodes后,对应的便是在sample时各个state之间的搬运概率。下图描绘的便是状况搬运概率。
强化学习 - 具体解读DQN

iii) Markov Decision Proce架构ss

说完了Markov架构规划 PropertyMarkov Process,现在应该说一下Markov D架构图模板ecision Process了。
强化学习 - 具体解读DQN
MDP中除了之前说的S,PS,P之外,还有A(action),R(reward),A(action),R(reward),gamma等信息,悉数的这些才构成了MDP的要素。

强化学习问题是通过找到最优的战略(对算法是什么应MDP的元素,也便是挑选最优的架构图用什么软件做statestate,在不同的state算法的时刻复杂度取决于state上挑选最优的actionaction)来使获得的rewardreward最大。

咱们将会逐渐的说明悉数要素后再回忆MDP的无缺架构

(2) R(reward)R(reward)

rewardreward的界说如下:
强化学习 - 具体解读DQN
为什么是从Rt+1R_{t+1}开始呢,是由于酬报函数的含义是在tt时刻,实算法的五个特性行一步actionaction后到下一状况的酬报值.
咱们能够经算法工程师和程序员差异过上面提到的那个比如, 把rewardreward的部分添加上, 来了解GtG_{t}式子的含义.
从图中能够看到, 只需从一个状况搬运到另机器学习一个状况的时分, 才会有奖赏值, 这个设置方法正是MDP的设置方法.
强化学习 - 具体解读DQN
为什架构师认证么需求有gamma ?
强化学习 - 具体解读DQNgamma越靠近0,标明越注重当时酬报,当=0gamma=0时,Gt=Rt+1G_{t}=R_{t+1}, 标明只以实施一架构师和程序员的差异actionaction后的rewardreward作为毕竟的rewa算法工程师rdreward, 此时体系只注重眼前的利益.
gamma越靠近1, 标明体系的眼光架构图更久远, 当=1gamma=1时, Gt架构图用什么软件做G_{t}代表从当时步一贯到方针全算法工程师和程序员差异部的奖赏值之和, 考虑到悉数的奖赏状况.

现在, 咱们现已有个rewardreward的核算公式, 只需遍历MDP结构的全算法工程师和程序员差异部结点, 就能够得到GtG_t的最大值, 也就能够得到相应的最优的战略. 但问题是, 关于小规模的问题, 这样核算没有问题, 可是大规模的问题, 只需当某个statestate开始, 已知到方针悉数算法的有穷性是指遍历结束, 才能够得到这个statestate架构师认证能获得的毕竟的rewardreward, 核算功率很低.

因此, 再引进一个概念, valuefunctionvalue function.

(3) ValueFunctionValue Function

强化学习 - 具体解读DQN
架构图用什么软件做界说来看, valuefunctionva架构师需求把握哪些常识lue function便是在St架构师需求把握哪些常识S_t状况下酬报的希望值.
从实践含义来了解,便是从StS_t状况开始,能获得总rewardreward的估计,领会出了这个状况的价值.
仍是以上面提到的比如来解说.
强化学习 - 具体解读DQN强化学习 - 具体解读DQN
关于C1C1状况的valu算法的有穷性是指efunctionvalue function,便是以C1C1为初始状况一贯到间断状况每个episode酬报值的平均值.

valuefunct算法的时刻复杂度是指什么ionvalue function替代GtG_t作为点评规范,来寻觅最优的战略,那么下面的问题便是求解valuefunctionvalue fu算法的有穷性是指nction,只需能解出valuefunct算法的五个特性ionva算法导论lue function的最大值,对应的episode便是算法的时刻复杂度取决于最优的战略.

(4) BellmanEqua算法导论tionBellman Equation

为了求解valuefunctionvalue function,咱们将valuefunctionvalue function翻开.
强化学习 - 具体解读DQN
毕竟的一个等式是由于希望表现在实践的MDP结构中,架构师和程序员的差异便是StS_tSt+1S_{t+1}不同的算法的时刻复杂度取决于概率乘以v(St+1)v(S_{t+1}).
强化学习 - 具体解读DQNBellmanEquationBellman Equation标明的是以迭代的方法求解valuefunctionvalue function.
为了求解BellmanEquationBellman Equation,咱们将其标明为矩阵的方法.
通过此段文字上面的图片的说明,就能够推出下面矩阵的标明方法.
强化学习 - 具体解读DQN
由于Be架构师认证llmanEquationBellman Equa架构图tion是线性方程,所以关于简略的MDP问题,能够直接求解.关于凌乱的MDP问题,可强化学习以通过迭代的方法架构求解.
强化学习 - 具体解读DQN

自此,现已说了MDP中的S,R,机器学习P,S,R,P,gamma,还有一个重要的元素没有说:A(action)A(action).

(5) ActionAction

sta机器学习testatea算法的五个特性ctionaction架构规划之间是输入输出的联络,给一个statestate,通过一个函数,输出一个动作或许动作的概率,这个函数便是要说的PolicyP架构图模板olicy.
一个环境中悉数可行的actionaction一般称为actionspacesaction spaces,分为disc架构图reteactionspacesdiscrete action spaces(例如Atari游戏的action)和cont深度学习inuous算法导论actionspacecontinuous action space(例如在实在的国际里控制机器人的动作).

(6) PolicyPolicy

Poli算法剖析的意图是cyPo深度学习licy的界说如下:
强化学习 - 具体解读DQN
算法的时刻复杂度取决于policypolicyagentagent用来算法挑选选用什么样的actionaction的规则,能够是确定性的战略(deterministicpol架构图用什么软件做icy)(deterministic policy),用at=(st)a_t=mu(s_t)来标明.
关于随机战略(stochasticpolicy)(stochastic policy),用at∽(⋅∣st)a_tbacksimpi(cdot|s_t)来标明.
在深度强化学习中,咱们会运用带参数的policypolicy,由于在Deep RL中,policypolicy的输出是根据一系列参数来的(比如神经网络的weights和b算法工程师ias),神经网络通过优化参数,来调整po架构师薪酬一月多少licyp强化学习olicy朝着更优的动作优化.
在Deep RL中,咱们用架构师和程序员的差异at=(st),at∽(⋅∣st)a_t=mu_theta(s_t),quad a_tbacksimpi_theta(cdot|s_t)分别来标明确定性战略和随机战略.

有了policypolicy往后,就有对应的actionaction输出,前面介绍了valuefunctionvalue function,用来标明某个状况的价值.有了policypolicy往后,能够架构师根据规则得到相应架构师认证的动作输出,咱们能够直接架构评定在某个情算法工程师和程序员差异况下某个动作的价值,这便是Action−ValueFunctionAction-Value Function.

(7) Action架构师薪酬一月多少−ValueFunctionAction-架构师薪酬一月多少Value Fun架构图用什么软件做cti机器学习on

强化学习 - 具体解读DQN
通过BellmanEquationBellman深度学习 Equatio算法剖析的意图是n, q(s,a)q_pi(s,a)相同能够运用迭代的式子来标明.
强化学习 - 具体解读DQN
咱们再来回忆算法是什么valuefunctionvalue function的原始表达式和迭代表达式.
强化学习 - 具体解读DQN强化学习 - 具体解读DQN
现在架构师薪酬一月多少有了valu架构图模板efunctionvalue funct算法的时刻复杂度是指什么ionaction−valuefunctionaction-val架构师薪酬一月多少ue functio架构师n,还不足以得出最优的战略,所以需求找到最优的policypolicy算法.

(8) OptimalValueFunctionOptimal Value Function

强化学习 - 具体解读DQN
怎样通过最优的valuefunctionvalue function架构图模板action−valuefunctionaction-value function找到最优的policypolicy呢?
强化学习 - 具体解读DQN
在某个战略下的value function和action-value function的值是最大的,那么这个战略便是算法导论最优的战略.
强化学习 - 具体解读DQN
所以只需求解出最优的va架构师需求把握哪些常识lue function或许action-v算法的时刻复杂度取决于alue function,就能够得到最优的policy.
为了求解optimal value function and optimal action-value function,咱们需求先标明出这两者的数学表达式,一般有下面几种标明方法:
强化学习 - 具体解读DQN强化学习 - 具体解读DQN强化学习 - 具体解读DQN强化学习 - 具体解读DQN
有了optimal算法剖析的意图是 value function的表达式,咱们就能够运用optimal value f算法规划与剖析unction and optimal action-value function 来求解出optimal policy.

(9) OptimalPolicyOptimal Po架构师薪酬一月多少licy

强化学习 - 具体解读DQN
有许多种迭代的算法来求解optimal value function.咱们说一下Value Iteration和Policy Iteration,这是两个首要的思维,Q-learning也是根据Value Iteration来做的.

i) Dynamic Progra架构师认证mm深度学习ing

提到迭代求解,会运用到动态规划(Dynamic Programming),什么是Dynamic P机器学习rogramming?
强化学习 - 具体解读DQN
简言之,动态规划便是问题能够描绘为动态的序列或以时刻次第组织起来的,就能够把凌乱的问题分解为一个个小问题来处理.
前面所说架构图模板的Bellman Equation的方法,把本来需求求解悉数的Rew架构师认证ard的进程,机器学习转换为求算法工程师和程序员差异下一步的Reward和下一状况的价值,即算法规划与剖析下面的式子化简的方法,终算法规划与剖析究每次迭代,就能够求出每个状况的Value.这是Dynamic Programming用在MDP的规划中的pred架构图用什么软件做iction(猜想)作用.下面求解最优Policy的时分还会看到Dynamic Pro架构是什么意思gramming在control方面的作用.
强化学习 - 具体解读DQN强化学习 - 具体解读DQN强化学习 - 具体解读DQN
上图总结了DP(Dynamic Programming,下文以DP替代架构规划)在规划方面的两个作用:prediction & control.上面求value function运用的DP的prediction,下面求optima算法是什么l policy,就会用到DP的control作用.

ii) Policy Iteration

强化学习 - 具体解读DQN
Polic架构师需求把握哪些常识y Iteration的意图是迭代核算value function,找到最优的value function,然后得到optimal policy.
咱们用另一种方法来标明value function.
强化学习 - 具体解读DQN
value func算法工程师和程序员差异tion的标明都是根据Bellman Equ算法导论ation改动得来的.
Policy Iteration架构一般分为两步:Pol架构图icy evaluation & Policy improvement.
Pol算法工程师icy evaluation的意图是更新value function,在当时的战略下不断优化value function.算法导论
Policy improvement的意图是更新优化战略,运用greedy算法在当时的value function中找到最大的value.
强化学习 - 具体解读DQN
具体的算法流程如下:
强化学习 - 具体解读DQN

iii) Value Itera算法的时刻复杂度取决于tion

强化学习 - 具体解读DQN
value iteration是运用最优Bellman Equation得到的
强化学习 - 具体解读DQN
然后将其转化为迭代方法
强化学习 - 具体解读DQN
具体算法如下:
强化学习 - 具体解读DQN
value iteration和policy i架构图用什么软件做teration有什么差异呢?
从算法中能够看到,policy iteration的迭代规则是架构师和程序员的差异强化学习 - 具体解读DQN
在Policy Evaluation阶段,V(s)的更新作用是在当时(s)pi(s)下的核算值,在Policy Improvement阶段,运用核算的V(s)在当时状况的action space中更新架构师需求把握哪些常识优化(s)pi强化学习(s架构图模板),然后优化的(s)p算法的五个特性i(s)再在Evaluatio架构图模板n阶段更新V(s),所以其实是对(s)pi(s)进行优化,所所以Policy Iteration.

Value Iteration的迭代规则是一贯对V机器学习(s)进行更新,毕竟挑选出最优的(s)pi(s),所以value iteration比较policy iteration愈加直接.

3 强化学习的算法体系

强化学习 - 具体解读DQN

到此,强化学习的根柢架构现已介绍结束,下面介绍Q-learning和DQN.

二. Q-Learning

1 什么是Q-Leaning

Q-Learn架构师认证ing是选用value iteration的思维来做的,可是value iteration每次都会对Q值更新一遍,实践状况咱们无法遍历悉数的状况和动作,所以Q-Learnin算法剖析的意图是g提出了一种新的更新Q值的方法:
Q(St,At)←Q(St,At)+(Rt+1+max⁡aQ(St+1,a)−Q(St,强化学习At))Q(S_t,A_t)gets算法工程师 Q(S_t,A_t)+alpha算法工程师和程序员差异(R_{t+1}+lambdamaxlimits_aQ(S_{t+1},a)-Q(S_t,A_t))
架构师和程序员的差异Rt+1+max⁡aQ(St+1,a)R_{t+1}+lambdamaxlimits_aQ(S_{t+1},算法的有穷性是指a)界说为target Q value,Q-Learning并没有将ta算法规划与剖析rget q value直接赋给当时q值,而是选用渐进的方法挨近target q value,相似梯度下降的思维.
整个算法流程如下:
强化学习 - 具体解读DQN
算法中需求一个polic架构图用什么软件做y来生成动作,这个policy并不是由Q值的迭代来更新的policy,所以q-learning算算法工程师法也是off-policy的.那么这个policy选取的规则是怎样的?

  1. 随机选取(exploration).随机选取有利于扩展查找架构师认证的空间,或许会探究到更多的状况和动作,有利于愈加大局的更新q值.算法的时刻复杂度取决于比如在一个区域内有许架构图用什么软件做多餐馆,为了找架构师薪酬一月多少到最好算法的时刻复杂度是指什么吃的那家,随机选取的作用便是当你第一天觉着一家特别好吃的时分,可是往后你每天都去不同的一家,算法规划与剖析这样就会愈加全面的了解悉数餐馆的架构师薪酬一月多少状况,也便是算法工程师能够拿到相对大局最优的Q值.
  2. 贪婪选取(explo架构itation).根据当时的Q值挑选最优的动作,这个policy pi称为greedy policy,即(强化学习St+1)=强化学习argmax⁡aQ(St+1,a)pi(S_{t+1})=argmaxlimits_aQ(S_{t+1},a).

exploration有利于扩展查找空间,找到架构师需求把握哪些常识更好的Q值,可是难收敛;exploitation能够快速收敛,但有或许不是最优的Q值,所以两者折中,运算法规划与剖析−greedypoli架构图用什么软件做cyepsilon-greedy policy,通过调整epsilon的值来调整exploration和exploitation的份额算法规划与剖析.

2 分解Q-Learnin算法的时刻复杂度是指什么g的核算进程

假定agent在这样的一个房子里,留神房间4和房间5是相通的.房间5是agent的方针房间.
强化学习 - 具体解读DQN
咱们能够用下图来标明这个房间的连通联络,留神现在的图还不能叫markov process,由于没有状况搬运概率.
然后咱们给每一个动作赋予奖赏值Reward.由于房间5是方针房间,所以抵达房间架构是什么意思5的动作的reward为100,其他的reward都是0.
强化学习 - 具体解读DQN
在学习的进程中,agent随机选取一个方位,然后不断学习,到达房间5.
咱们假定agent从房间2开始,抵达房间5.
从房间2,agent能够到房间3,获得奖赏0,,然后到房间4,获得奖赏0,到房间5,获得奖赏100.可是从房间2不能直接到房间1.所以下面这个表总结了上图的可达房间算法的时刻复杂度取决于和对应的奖赏.State标明所架构师需求把握哪些常识在的房间,Action标明到某个房间的动作,比如矩阵的第一行第五列标明在房间0,抵达房间4,获得奖赏0. -1代表不能直接抵达这个房间.
强化学习 - 具体解读DQN
上节咱们提到Q-Lear算法ning的公式为:
Q(S_t,A_t)gets Q(S_t,A_t)+alpha (R_{s+1}+lambda max limits_a Q(S_{t+1},a)-Q(S_t,A_t))$$$a算法规划与剖析lpha$挑选了架构师认证当时Q值向target q值的渐进速度,假定让$alpha=1$,target q值将会悉数赋给当时q值,这也是q-learning算法架构师和程序员的差异的简化版架构规划别.咱们将运用这算法是什么个简化公式来标明下面算法规划与剖析的核算进程算法剖析的意图是.Q(S_t,A_t) gets R_{t+1}+lambda max limits_a Q(S_{t+1},a)$$
关于当时走房间的问题,整个Q-Learning的算法流程如下:

1.设置lambda参数,reward矩阵R
2.初始化Q矩阵为0
3.关于每一个算法导论episode(从开始到方针成为一个episo算法剖析的意图是de):
● 随机挑选架构师薪酬一月多少一个初始房间
● 从当时状况的悉数或许的action中挑选一个
● 核算算法导论简化公式
● 直到抵达goal,结束

1.咱们设置=0.8lambda=0.8,然后手动架构图模板核算Q-Learning的每个进程.设置初始房间架构师和程序员的差异为房间1.
2.将Q矩阵悉数初始化为0

强化学习 - 具体解读DQN强化学习 - 具体解读DQN
调查R矩阵,咱们能够看到从房间1能够通往房间3(reward=0)和房间5(reward=100),咱们挑选强化学习去往房间5.
抵达房间5后,能够看到有3个action能够挑选:去往房架构图间1,房间4和房间5.
现在来核算Q值.
Q(St,At)←Rt+1+max⁡aQ(St+1,a)Q(S_t,A_t) get架构规划s R_{t+1}+lambda max limits_a Q(S_{t+1},a)
Q架构图用什么软件做(1,5)=R(1,5)+0.8 * max[Q(5,1),Q(5,4),Q(5,5)]=100+0.8 * 0=100

现在房间机器学习5成为当时状况,由于现已抵达方针,所以一个episode结束,更新Q矩阵:
强化学习 - 具体解读DQN
下一个episode,咱们随机挑选房间3为咱们的初始状况,在房间3状况下,咱们有去往房间1,2算法是什么,4三种挑选,咱们随机挑选去往房间1.(在这里,咱们选用的是policy中的随机战略exploration,还有exploitation和−greedypolicyepsilon -greedy policy能够挑选).
抵达房间1后,咱们有去往3,算法导论5两种挑选架构规划,现在核算Q值:Q(St,At)←Rt+1+max⁡aQ(St+1,a)Q(S_t,A_t) gets R_{t+1}+lambda max强化学习 limits_a Q(S_{t+1},a)算法导论
Q(3,1)强化学习=R(3,1)+0.8 * max[Q(1,3),Q(1,5)] = 0 + 0.8 * 100 = 80
更新Q矩阵
强化学习 - 具体解读DQN
一贯继续这个进程,通过许多episode后,Q矩阵会抵达一个收敛值
强化学习 - 具体解读DQN
咱们对Q矩阵的数据都除以里边的最架构图用什么软件做大值500进行归一化操作
强化学习 - 具体解读DQN
现在我算法工程师们就能够把Q架构师矩阵的数据表现鄙人图中
强化学习 - 具体解读DQN
不管在哪个状况,挑选最大的Q值就会以最优的方法抵达房间5.

三. DQN

直接从高维的数据输入例如视觉和语音来控制agents算法的五个特性一贯是强化学习领域的具有应战性的作业。在DQN出现从前,大多架构图数成功的R架构师薪酬一月多少L运用事例是结合线性value function或许policy representa架构师和程序员的差异tion通过手动规划特征来做到的,算法的功用很大程度上依赖于规划的特征的质量。

深度学习的成功让直接从原始数据中提取特征成为或许,所以DQN检验进行DL+RL。

算法的时刻复杂度是指什么化学习中运用深度学习有以下一些应战:
① 深度学习(监督学习)需求许多的有标签的练习数据,运用到强化学习中去时,只能运用Reward来作为标签,可是reward一般来说是稀少的、带有噪音并且是延时性的信号(一般是进行许多episode之后才给出reward)。
② 深度学习中标签数据和练习数据算法的五个特性的联络是实时的,可是强化学习的reward是延时性的。
③ 大多数强化学习的问题都假定运用的数据是独立同散布(i.i.d)的,可是强算法剖析的意图是化学习会遇到序列间高度相关的状况,同时强化学习会学习到新的动作,这关于深度学习是根据相同的动作散布来说是个应战。

DQN运用以下操作来战胜以上的困难架构师认证
① DQN运用的神经网络(监督学习)是用变种算法剖析的意图是Q-Learning算法来练习,运用随机梯度下降(SGD)来更新权重。
② 运用replay机制来消除数架构是什么意思据间的关联性,随机的在以前的transitions中取样。
③ 在Arcade Learning Environment中测验算法。

DQN的算法流程如下:
强化学习 - 具体解读DQN
公式3如下:
强化学习 - 具体解读DQN
为什么要用Q(s,a,)Q(s,a,theta)而不必Q(s,a)Q(s,a)呢?

在Q-Learning中,咱们运用算法工程师表格来标明Q(s架构图,a),可是这个在现实的许多问题上是简直不可行的,由于状况实算法的时刻复杂度取决于在是太多。运用表格的方法根柢存不下。

举Atari为比如。
强化学习 - 具体解读DQN

核算机玩Atari游戏的要求是输入原始图画数据,也便是210×160像素的图片,然架构师和程序员的差异后输出几个按键动作。总之便是和人类的要求相同,纯视觉输入,然后让核算机自己玩游戏。那么这种状况下,到底有多少种状况呢?有或许每一秒钟的状况都不相同。由于,从理论上看,假定每一个像素都有256种挑选,那么就有:
256^210×160^
这简直是天算法工程师文数字。所以,咱们是不或许通过表格来存储状况的。咱们有必要对状况的维度进算法规划与剖析行紧缩,处理方法便是 价值函数近似Value Function Approximation。1

价值函数近似Value Function Approximation 1
什么是价值函数近似呢?说起来很简略,便是用一个函数来标明Q(s,a)。即
Q(s,a)=f(s,a)Q(s,a)=f(s,a算法工程师)
f能够是任意类型的函数,比如线性函数:
Q(s,a)=1s+2a+bQ(s,a)=omega_1 s + omega_2 a + b
其间1,2,bomega_1,omega_2,b是函数f的参数。

咱们看到了没有,通过函数标明,咱们就能够无所谓s到底是多大的维度,反正毕竟都通过矩阵运算降维输出为单值的算法工程师Q。

这便是价值函数近似的根柢思路。

假定咱们就用omega来一致标明函数f架构师的参数,那么就有
Q(s,a)=f(s,a,w)Q(s,a) = f(s,a,w)架构图模板
为什么叫近似,由于架构师认证咱们并不知道Q值的实践散布状况,本质上便是用一个函数来近似Q值的散布,所架构图以,也能够说是
Q(s,算法工程师和程序员差异a)≈f(s,a,w)Q(s,a)approx f(s,a,算法的五个特性w)

DQN中,作者运架构图用什么软件做Q(s,a,;)≈Q∗(s,a)Q(s,a,;theta) approx Q^*(算法的五个特性s,a)来预估action-value function。

DQN愈加具体的强化学习介绍请参见原文paper:
P算法规划与剖析laying Atari with Deep Reinforcement Learning


  1. zhuanlan.zhi算法的五个特性hu.com/p/2142172算法的五个特性9↩