1、强化学习的基础理解:
强化学习中的状态随机性有两个来源:动作的执行是根据策略函数随机抽取的、下一个状态是根据策略函数随机抽样的。
总回报是所有步骤的奖励之和,希望强化学习具有前瞻性,所以提出了折扣回报。然而未来的奖励总是不确定的,为了削弱未来奖励的重要性,因此使用参数lambda,使其未来的奖励具有衰减性。
强化学习的核心在于根据当前观察到的环境状态能够给出正确的动作选择,而动作的选择收到两个因素的影响:一个是算法中对于可执行动作的价值估计,另一个是抽样动作的策略函数。因此大多的强化学习算法会针对这两个不同方向做出优化,针对第一种的典型算法是DQN(Deep Q Network),而第二种的典型思想是PG(Policy Gradient)。
DQN个人理解:
在强化学习中有一个重要的概念是:Action Value Function——动作价值函数,常记作Q,该函数的作用是在给定状态St下,所有动作at的打分的函数。选取分值最高的动作执行。
强化学习是通过训练得到动作价值函数Q,通过Q(S,a)来指导智能体完成任务。
而在DQN算法中,基础思想来自Q_Learning,只不过qlearning中是通过q_table来完成动作的选择,但是当动作数量巨大时,检索表格将会变得异常困难。
于是DQN提出了用一个神经网络来拟合逼近动作价值函数Q,通过不断的训练得到一个价值函数能够给出动作的分数。
但是为了打破相关性,DQN中设计了两个方法,经验回流和固定的神经网络。
经验回流:在神经网络的训练过程中,将以往已经完成训练的数据随机抽取再次训练,随机抽取这种做法打乱了经历之间的相关性,也使得神经网络更新更具效率。
固定的神经网络:指的是在DQN中有两个神经网络,q_eval(估计网络)和q_taget(现实网络),估计网络是实时更新参数的网络,从记忆数据表中取得的历史数据都会更新估计网络的参数,用估计网络来估计当前状态执行动作后的奖励值Qt。
而现实网络用的是旧的参数,每隔固定的次数时,会将估计网络的新参数赋值给现实网络,从而实现参数更新,但是现实网络的参数不会训练更新。现实网络的作用是用来估计执行动作at之后下一状态St+1的动作最大Q值。
估计网络计算得到的Q值与奖励值相加之后得到执行动作之后的真实分数。用来与估计网络得到的估计值相减,得到损失函数,梯度下降更新参数。
DQN伪代码:
DQN数学基础是TD算法。
TD算法中每一次循环的步骤:
1、观测到系统的状态St和已经执行的动作at;
2、通过估计网络来估计执行动作at的价值qt;该网络输入是环境St,输出是对动作at的打分。
3、用反向传播对神经网络(估计网络)中的参数求导,得到梯度;
4、根据已经执行了动作at,可以得到系统新的状态St+1和执行动作后的奖励值r;
5、根据现实网络得到的下一状态动作最大化的价值值Q,再加上奖励r。得到动作at的真实价值yt;
6、loss=qt-yt,做梯度下降,更新参数。完成一次对估计网络的更新。
标签:函数,动作,神经网络,网络,汇报,估计,DQN,强化,2.24 From: https://www.cnblogs.com/flying23/p/17151800.html