前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原创 | 一文读懂强化学习

原创 | 一文读懂强化学习

作者头像
数据派THU
发布2022-12-16 12:50:22
3650
发布2022-12-16 12:50:22
举报
文章被收录于专栏:数据派THU数据派THU

作者:贾恩东 本文约2700字,建议阅读10+分钟强化学习并不是某一种特定的算法,而是一类算法的统称,本文会着重讲清楚这类算法最常规的设计思路和大致框架,使用非常容易理解的语言带你入门强化学习。

首先需要明确一个基本的问题:什么是强化学习?

强化学习是智能体在与环境的互动中为了达成目标而进行的学习过程。

举个超级玛丽游戏的例子,我们需要让智能体Agent,通过和环境Environment的互动中,进行学习,从而通关。

这里提到了强化学习中非常基础的三个元素Agent,Environment和Goal。

基本元素

1. Agent:这里智能体就是玛丽这个人物(或者是我们玩家),可以操作玛丽进行移动或者射击等行为Action;

2. Environment:环境就是游戏引擎,这个环境中包括了各种要素,比如敌人,金币,台阶,砖块,花朵蘑菇等等,这个环境会实时改变,而这种改变是学习之前智能体不能完全预见的,这个环境的每一时刻,都可以用一个状态变量State来描述;

3. Goal:目标就是玩家的目标,这里可以是用最快的速度通关,也可以是花费最少的生命代价通关,也可以是获得最多的金币通关。需要注意的是,这里的目标是最终的目标,而不是每一个时刻的目标,每一个时刻的目标可以称为Reward或者Return,和Goal完全不同,是两个概念,需要着重区分。当然Goal,即最终目标,也可以换算成每一个时刻的Reward做累积,但无论如何,这里的Goal是一个全过程、全局的量。

我们在介绍以上三个基本元素时,又提到了以下三个主要的元素State,Action,Reward。

主要元素

1. State: 状态。State是描述环境在某个时刻的变量,不同时刻的环境状态可能不同,请思考:下一个时刻的状态和什么有关?答案是:下一个时刻的状态和上一个时刻的状态有关,同时和上一个时刻的智能体动作Action有关。由于每一个时刻状态都是一个符合某种分布的随机变量,那么t 时刻的状态可以记作 S_t ;

2. Action:行动。Action是描述智能体和环境互动的要素。Action可以是有限种且离散的,比如超级玛丽中玩家的操作方式,上、下、左、右、大跳、小跳、射击一共七种。当然Action也可以是无限种且连续的,比如某些游戏中智能体的步幅、力度等。那么 t 时刻的智能体的行动实际上是一个符合某种分布的随机变量,可以记作 A_t ;

3. Reward: 奖励。奖励是智能体或者玩家当前时刻衡量对未来最终Goal的贡献,通俗来说,有点类似“小目标”。具体举例来说,玛丽拾取金币,Reward=1,玛丽通关,Reward=10000000,当然这种情况大概率发生在以通关为最终目标的学习过程中,需要注意的是,Reward是玩家根据行动后下一个时刻的状态来定义的,因此也可以说Reward是由状态State决定的。再举一个例子,围棋游戏中,某时刻智能体吃掉系统对手的棋子时,Reward可以为0,也可以为负,这是因为就整体战略上来说一时吃对面的子,未必导致最终会占领最大的地盘,存在弃小争大的可能,也就是说,在和环境的互动中,贪心策略往往不是最合理的,而reward往往可能具有延迟的性质。

将以上描述总结成一个过程,就是某时刻t ,Agent观察到Environment的状态 s_t ,从而采取行动Actiona_t ,而Environment针对Agent的行动,会更新状态为 s_{t+1},Agent获得奖励 r_t。这里之所以用小写字母是因为其并非随机变量,而是确定的观测值或者采样值了。这一过程用下图可以说明。

我们在描述智能体和环境的互动过程中时,又涉及了两个核心的问题:玩家如何行动?玩家如何评估当前状态的奖励?接下来需要介绍以下两个强化学习中核心的元素。

核心元素

1. Policy:策略。Policy可以被认为是一个函数,输入是状态 s 和行动a,输出是该行动在该状态下的实施概率。一般将该策略函数记作π。即 π(s,a)\rightarrow [0,1] 或 π(a|s)=P(A=a|S=s)。举例来说,还是拿超级玛丽游戏为例,当前状态是游戏画面,该策略函数可以根据该画面计算不同的玩家行动的实施采样概率,比如左:0.2,上:0.7,右:0.1,即该场景下玩家采取的行动有20%可能是向左,有70%的可能是向上,有10%的可能是向右,如下图所示。

从原则上来说,对于固定的状态State,玩家采取的行动Action不应该是确定的,而应该是一个随机变量,玩家学习的应该是这个随机变量的更合理的一个分布。

所以,整个过程应该是,玩家观测到环境的状态 s_1,从而根据策略函数 π 采样一个行动 a_1 ,环境会更新状态为 s_2 ,此时玩家获得奖励 r_1,然后玩家根据观测到的环境状态 s_2,继续根据策略函数π 采样下一个行动 a_2,...依此进行,直到环境告诉玩家终止。如下图所示。

那么如何判断一个策略的好坏呢,我们就需要引出下一个核心元素,价值。

2. Value:价值。Value是衡量当前时刻直到结束时所有累计Reward的总和,由于Reward是依赖于State和Action的,所以Reward也是随机变量,而Value是累计的Reward,所以我们用记号 U 表示。即 U_t=R_t+R_{t+1}+R_{t+2}+...+R_{n} 。但这没有考虑Reward的时间价值,明显现在的奖励比未来的奖励更重要(可以用存钱得利息来理解),因此更合理的定义应该是U_t=R_t+gamma R_{t+1}+{gamma}^2 R_{t+2}+...+{gamma}^{n-t} R_{n},这里gamma是折旧率。因此价值越大,意味着未来获得的奖励累计总和会越多,玩家会更倾向于这种结果。

因此我们可以提出下一个很关键的函数:Value Function 价值函数。

先喝口水,慢慢来说

Q:首先请问,当前的价值依赖于什么?

A:答:依赖于当前直到未来结束所有的奖励。那这些奖励分别又依赖于当前到未来结束的状态和行动。

因此,我们可以得到:价值由当前直到未来结束所有的环境状态和玩家行动来决定。但这难以计算。我们注意到,除了当前的状态和行动,未来的状态和行动也都是随机变量,实际上其分布也由当前的状态和行动决定,因此我们可以简单计算价值的期望!

即 E(U_t) 可以用 S_t 和 A_t来表示!这种关系就是行动价值函数 Action-Value Function!我们用 Q_{π} 表示。

Q_{π}(s_t,a_t)=E(U_t|S_t=s_t,A_t=a_t)

进一步的,我们固定状态,对所有行动求期望和,会得到状态价值函数 State-Value Function!我们用V_{π} 表示。

V_{π}(s_t)=E[Q_{π}(s_t,A)]

总结来说,给定一个策略函数 π ,行动价值函数 Q_{π}(s,a) 可以衡量智能体在状态 s 下实施行动 a的好坏。而状态价值函数V_{π}(s) 可以衡量智能体在状态 s 的当下形势好坏。因此,衡量一个策略函数的好坏可以用以下指标:

E_S[V_{π}(S)]

到这里我们就基本介绍完了。但可能有的读者还是觉得有点疑惑,那说了这么半天,智能体怎么和环境进行互动学习呢?

其实强化学习的基本框架已经介绍给大家了,大家可以自行考虑或者期待下一篇系列入门文章。

提示一下,智能体既可以学习策略函数 π 直接来和环境互动学习,也可以 学习行动价值函数 Q_{π},选择使得价值最大的路径来和环境互动学习,这就是两种不同的强化学习方法了,分别叫做Policy-Based 和Value-Based方法。

编辑:黄继彦

数据派研究部介绍

数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享实践项目规划,又各具特色:

算法模型组:积极组队参加kaggle等比赛,原创手把手教系列文章;

调研分析组:通过专访等方式调研大数据的应用,探索数据产品之美;

系统平台组:追踪大数据&人工智能系统平台技术前沿,对话专家;

自然语言处理组:重于实践,积极参加比赛及策划各类文本分析项目;

制造业大数据组:秉工业强国之梦,产学研政结合,挖掘数据价值;

数据可视化组:将信息与艺术融合,探索数据之美,学用可视化讲故事;

网络爬虫组:爬取网络信息,配合其他各组开发创意项目。

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派THUID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

未经许可的转载以及改编者,我们将依法追究其法律责任。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档