900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 强化学习(RL)算法

强化学习(RL)算法

时间:2019-05-31 06:21:50

相关推荐

强化学习(RL)算法

​​​​​目录

文章目录

前言

一、什么是强化学习?

二、强化学习的基本元素

1.环境Environment

2.主体Agent

3.状态State

4.行动Action

5.收益Reward

三,RL算法的特点

1,试错学习

2,延迟回报

四,RL算法的分类

1,基于值的算法

1),状态价值函数V(s).

2)行为价值函数

2,基于策略的算法

Policy Gradient

3.Actor-Critic 框架

Based Actor-Critic

总结

前言

由于目前正跟着老师学习深度学习。为了能更好的梳理知识点,也为了与大家分享一下我对深度学习的理解,所以有了写文章的想法。

一、什么是强化学习?

强化学习:Reinforcement learning。它是机器学习的一个领域,不同于机器学习的是,强化学习更强调与环境交互,然后通过计算最大收益获得对应的最优的动作进行行动。强化学习还有一个特点,它是一个序列预测问题,也就是他是为了找出最优的一系列动作。而且因为每一个state需要在前一个action做出后才能得到,所以时间在强化学习中有很重要的意义。每一个action也会影响后边的决策

二、强化学习的基本元素

在强化学习中,环境(environment),主体(agent),状态(state),行动(action)和收益(reward)是我们经常会遇到,且必须掌握的概念。为了方便大家更好的理解它们,下边我以一款我自己写的小游戏为例来解释他们。

1.环境Environment

环境是一个外部系统,也就是我们所能看到的那个系统。用游戏来说就是屏幕(除去人物)。

2.主体Agent

主体是我们自己添加到环境中的系统。它是用来与环境交互,感知到环境的状态,然后基于这个状态做出一定的行动,从而改变环境的状态。在游戏中,他就是人物可莉,可莉经过目前屏幕的状态,做出一个动作(上下左右移动,甚至扔出炸弹),从而改变屏幕的状态。

3.状态State

状态是当前环境的一个时间切片。可以理解为,在时间维度上,环境就是由无数个不同时刻的状态组成的。在游戏中,它就是一张照片。如以上截图就为一个状态。

4.行动Action

行动是指主体做出的动作。在游戏中就是可莉上下左右移动或者扔炸弹。

5.收益Reward

收益是指环境对于主体当前的动作或者状态的一个奖励。它可以是全局收益,也可以是局部收益。全局收益就是整个流程下来的累计收益。局部收益就是在一定的范围内的收益。在游戏中,全局收益就是整局游戏结束时给的总分或者提示游戏结束(over 或 win),局部收益就是每一关通过时所获得的分数。

三,RL算法的特点

强化学习的特点主要有试错学习,延迟回报。

1,试错学习

与其他机器学习不同,强化学习没有监督者,他只有一个回报。没有人指引它应该怎么去学习,所以他只能不断与环境交互,不断做出动作,在巨大的试错基础上来获得最佳的策略(policy)

2,延迟回报

强化学习的反映是延迟的,因为他的指导信息很少,而且很多都是最后才给我们。比如在游戏中,我们可能不会实时给你得分,而是等游戏结束后才给你一个分数。

注:强化学习是一个序列预测问题,也就是他是为了找出最优的一系列动作。而且因为每一个state需要在前一个action做出后才能得到,所以时间在强化学习中有很重要的意义。每一个action也会影响后边的决策

四,RL算法的分类

强化学习的算法主要分为两大类:基于值的算法(Value-Based)基于策略的算法(Policy-Based)。我首先分别介绍一下基于值和基于策略的经典算法,然后介绍一个将基于值和基于策略的算法的优点结合起来的框架——Actor-Critic(AC)框架。在AC框架下进一步介绍目前学术界用得最多的几种强化学习算法。

1,基于值的算法

即通过价值选行为。基于值的算法主要需要用到,状态价值函数V(s)(State Value Function)和行为价值函数Q(s,a)(Quality of State-Action functuon).

1),状态价值函数V(s).

它的输入为一个状态,输出是一个预期的回报。公式如下:

其中π表示Agent选择Action的policy的概率分布,G0|S0=sG0|S0=s表示从状态s开始到G0状态整个序列。整个函数意思是,从状态s出发,使用策略π所带来的累积奖赏。也就是从s状态到游戏结束时能获得的分数

公式也可表示为:

其中,Rt表示t时刻的预期收益,γ表示折扣因子,且与当前状态越贴近的状态,其γ越大。

2)行为价值函数

行为价值函数,输入为(状态,动作),输出为该状态下使用该动作所获得的预期收益。公式为:

也就是这个函数实现的是,预测我们从状态s开始,并在s状态时使用动作a的情况下,到游戏结束时,我们能获得的预期收益。(也即是固定了s状态的动作a)

我们不难发现以上两个函数存在着这样的关系:

2,基于策略的算法

在基于策略的算法中,我们构建一个策略网络(Policy Network)PN:S→A,输入一个状态直接输出对应的Action,然后直接对这个策略网络进行更新,从而直接对策略选择建模。也就是:

它可以直接输出一个确定的动作,也可以输出动作的概率分布。并且对于|A|→∞,PN能够直接预测出Action。

Policy Gradient

它是基于策略的算法中最基础的一种算法。通过对收益期望求梯度,从而对Policy Network的参数进行更新。

它首先定义一个收益期望函数J(θ):

然后对其进行求导:

最终我们得到了一个漂亮的▽θJ(θ)的表达式,期望里面包括两个部分∑Tt=1▽θlogπθ(at|st)表示的是获取当前Trace的概率的梯度,∑t=1Tr(st,at)表示的是当前路径的总的回报。因为回报是一个总的回报,只能在一个轮次之后才能得到,所以Policy Gradient算法只能针对每一轮次更新,无法针对每个step更新。

3.Actor-Critic 框架

Based Actor-Critic

总结

以上的内容,只是对强化学习进行粗略的介绍。在接下来的文章中,我会对不同的算法进行详细的解读,并以实例辅助帮助大家理解。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。