上节聊完了这个强化学习从直观上的一些理解。以及它和其他的机器学习方法的一些异同点。这一节来唠唠强化学习中的一些基本的概念及其组成部分。主要就是一些概念,将其罗列出来,方便理解和观看。
强化学习中的基本概念
- Agent
Agent中文名称一般被称为智能体,或者称之为“玩家”,是整个强化学习算法的核心。整个的学习过程都在智能体内部,外部基于一些数据。是整个强化学习中最核心的部分。智能体通过action与环境交互,获得奖励反馈,进而学习调整动作以获取更大的奖励。
智能体除了需要获得更多的奖励之外,还有一个另外一个指标衡量其学习算法:学习时间。一个好的算法会用较短时间学会相同任务。对这个问题,在实践过程中,我们通常考虑的是训练样本的使用率(Sample Efficiency)。
- Policy Function
Policy Function中文叫策略函数,这个策略就是智能体的行为准则。就像每个人不同的处事风格,当两个人看到同一个问题,解决方法往往很难一模一样。在强化学习里,看到相同的状态,所采取的动作不同,背后的原因就是Policy
的不同。也有一些论文基于强化学习做用户个性化推荐,比如:淘宝。策略函数其实是一种映射,将环境的状态值s t s_{t}st映射到一个行动集合的概率分布或概率密度函数上。
- Value Function
Value Function中文叫值函数,描述地是当前状态的好坏,它会依赖于当前的Policy。举个例子来说,在斗地主的过程中拿到一手这样的牌:王炸、四个2、四个A这种,如果让一个正常水平的人对线的话,这手牌的值函数是比较大的,如果让我两岁的小外甥去打,这种Policy可能就太差了,导致这个值函数也会比较低。所以说它会依赖于当前的policy
。通常将值函数定义为v ( s ) v(s)v(s),它本身定义的是智能体所能拿到的期望奖励。最优值函数(the optimal value function)是所有值函数中值最大的那一个,最优策略(optimal policy)是能拿到最优值函数的那个策略。
- Model
Model
是用来感知环境是如何变化的,这里并不是真实的环境,而是在Agent
眼里面的环境,Model
就是用来判断环境变化的。强化学习算法大致可以分为两大类:基于模型的方法(Model-Based)和无模型方法(Model-Free)。
在Model-Based的方法里面,智能体会利用之前所学得的模型信息去完成一个任务;在Model-Free方法中,智能体仅仅依赖不断试错的一些经验数据进行学习。如果以人类为例的话,Model-Based方法就相当于知道整个世界的地图,你可以用地图做出出行的选择,而在无模型方法中,你需要不断地尝试,自己去构建这样的地图,当你探索了所有的地方之后,你才能知道哪条路是最短路径。
智能体如何与环境交互?
上文介绍了智能体需要与环境交互来获得更大的期望奖励,而奖励直接与控制效果挂钩,从而达到智能体做出先进的智能决策。那智能体是如何与环境交互获取数据的呢?
智能体在时间t tt采取动作A t A_{t}At,并将这个动作送到环境中去,环境将会从状态S t S_{t}St转移到下一个状态S t + 1 S_{t+1}St+1,基于上述过程环境还将给予一个奖励反馈R RR,如此往复。强化学习要做的就是使得整个序列所能获得的期望奖励最大。如下图所示:
举个例子解释一下:假设控制一个电机(马达),加大电流转速会增加。假设当前状态S t S_{t}St电机转速500(转/分),有一个智能体A AA,在时间t tt给了一个加大电流5安培的动作A t A_{t}At,电机的转速,也就是状态就会发生改变,转移到下一个状态S t + 1 S_{t+1}St+1:转速1000(转/分),如果此时的控制系统刚好要求电机转速是1000(转/分),那么就会得到一个+1的奖励。
环境有多少种呢?
强化学习现在也是被用于各种领域,什么天上飞的,水底游的,陆地上跑的都有,那这些东西总结起来可以归为几类呢?从不同的角度,主要可分为以下7类:
- Deterministic Environment
在确定性环境里面,基于当前状态给一个动作,他的输出是确定的。比如下围棋,落子这个动作一旦确定,那环境接下来的状态也都确定了。
- Stochastic Environment
环境带有随机性,比如受一些外部的扰动,导致环境的参数发生一些变化等等,这种控制对象就是不稳定的会发生一些跳变,或者突变。
- Fully Observable Environment
智能体能观测到环境的所有信息,称之为完全可观测环境。比如像围棋这种,能看到整个棋盘,以及所有时间序列的对手落子位置。
- Partially Observable Environment
部分可观测环境,即环境的信息有一部分是不可见的,比如说斗地主时对方手中的牌,以及星际争霸中的战争迷雾都属于部分可观测的,或者称作非完美信息。
- Discrete Environment
当你的动作选择是离散的时候,我们称这类环境叫做离散环境,像围棋这种。
- Continuous Environment
当动作选择是连续的时候,这类环境叫做连续环境,像上文中说的控制电机的例子,动作是电流的输出,输出电流是一个连续值。
- Episodic And Non-Episodic Environment
依据序列动作之间是否具有相关性,可以将环境分为Episodic和Non-Episodic两类。episodic也被称作non-sequentia environment,当前的action不会影响未来的action。Non-Episodic也被称作sequential environment,智能体所有的动作之间都是存在相互关联的,类似打牌的时候出牌顺序也是相互关联的。
这个类似的概念在Sutton那本书中也有类似的介绍,原文如下:
In the preceding section we described two kinds of reinforcement learning tasks, one in which the agent– environment interaction naturally breaks down into a sequence of separate episodes (episodic tasks), and one in which it does not (continuing tasks).
中文大概的意思就是:强化学习任务分为两类,一类是智能体与环境交互达到一定的次数之后自然终止,另一类是一个episodes的序列有无穷多个。并且定义一个episode终止时刻的状态:absorbing state,每次都将转移到本身这个状态。
- Single and multi-agent environment
Single and multi-agent environment
顾名思义,就是单个智能体的环境和具有多个智能体的环境。多智能体一般用于一些更加复杂的任务,一般这种场景的随机性、不确定性更高。
更具体的强化学习的实验环境介绍,为了保持整个强化学习系列看起来比较简洁,我将其单独列为了一篇文章:深度强化学习中实验环境-开源平台框架汇总。
强化学习应用场景
强化学习的目前应用场景有经典控制、游戏博弈、股票预测,电网优化,控制机器人等。具体一点的话,有教育行业,依据学生的行为风格,用强化学习制定个性化的学习策略。DeepMind公司也有将强化学习用于药物、医疗方面。其实还有好多好多,像推荐系统,自然语言处理,视频监控等方面都有涉及。
我的微信公众号名称:深度学习先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究深度学习、强化学习、机器博弈等相关内容!期待您的关注,欢迎一起学习交流进步!