强化学习是关于序列决策的一种工具。
基础:监督学习和强化学习之间的区别在于,监督学习是提供指导性的反馈(loss)来解决问题,而强化学习是提供评估性反馈(该决策好不好,目标的达成程度)解决问题。
应用场景中:一个控制温度的系统,指导性反馈没卵用,那么基于不同场地、时间来告诉系统该如何温度?采用评估性反馈,我们可以获得特定时间特定地点在历史中的电量,温度,或者过热过冷的机器数等反馈数据
强化学习的前身:马尔科夫决策
时间段分成:过去,现在,未来,假设设定状态s具有马尔科夫数据,那么就意味着s的未来状态独立于过去状态。举个例子,一只气球在空中飘着,已知当前位置和风速,那么它在下一阶段的位置可由当前值计算得到。这种状态具备马尔科夫属性。
强化学习通常建模为一种马尔科夫决策过程即MDP(一种有向图,具有节点和边的状态,可描述状态之前的转化)
在此图中不理解的状态时,决策者有两种选择,学习和不学习。不学习时有100%可能性返回不理解状态。选择学习时,有20%可能性到不理解状态,有80%可能理解状态。
强化学习目标是学习如何采取下一步动作,将更多时间花在更有价值的状态中。为了一个有价值的状态,需要更多的MDP信息。
一个更接近强化学习的MDP:
在这个MDP中增加了奖励机制。每次转到下一个状态时会有奖励(正奖励和负奖励)。现在我们要思考如何得到最大奖励
由于上述MDP较为简单,主要往高奖励区域移动就能达到最大。
形式化强化学习问题
领域术语:components: agent(智能体) & environment(环境)。智能体是被间接控制的,存在于环境中。智能体在给定的状态下选择对它有显著影响的动作。智能体不能完全控制环境的动态,而环境会接受这些动作,返回新的状态和奖励。
在时间t,智能体当前状态为s_t, 下一步动作a_t,然后环境会返回一个新的状态s_t+1 和一个奖励t_t+1. 奖励处于时间t+1 是因为它是由环境在t+1状态s_t+1时给出的。所以保持一致。
接下来进一步学习状态值(state value)函数和动作值(action value)函数。以及解决强化学习问题的贝尔曼方程。
理解强化学习:贝尔曼方程
奖励和回报:强化学习中智能体需要学习最大化累计未来奖励。描述累计未来奖励的量称为汇报return. 用R表示。在时间t上汇报为Rt, 等于从k in( k = 0 => inf) 对r_t+k_1 求和。
这个序列可能无穷,即可能得到无穷大的return. 则无意义。所以奖励的序列有限,方程才有意义。总是有终点的任务呗称为阵发性(episodic)。eg, 拖拉机纸牌游戏。游戏最终会结束。
相比较累计未来奖励作为return , 更常用的是未来累计折现奖励 future cumulative discounted reward:
gamma in (0,1).
这样定义的return好处在于
1. 这种定义可用于无穷序列的汇报,越早的奖励具有越大的权重,越关心当前的奖励
2. 选择不同的gamma值可代表不同的注意机制。当gamma等于1时,对所有奖励同样的的关心。当gamma等于0时,表示只对当前即将发生的奖励关心。只采取当前最大汇报的动作,不会考虑该动作对未来的英雄
策略
强化学习的策略可以写作pi(s,a), 描述了一种动作的方式,策略函数的输入为状态和动作, 返回值为在输入状态下采取输入动作的概率。
所以对于给定的状态,该状态下所有动作a的策略函数之和为1。
还是上一张图片
简单的设定一个等概率的策略函数,将动作eat & don’t eat设定相同=1/2。
强化学习的目标是学习一个最优的策略pi*, 该函数能选择动作来获得最大的汇报。
价值函数
为了学习最优策略,使用价值函数。强化学习中有两种价值函数:状态价值函数V(s)和动作价值函数Q(s,a)
明天继续写~,回家