机器学习算法完整版见fenghaootong-github
强化学习原理(RL)
RL与有监督学习、无监督学习的比较:
有监督的学习是从一个已经标记的训练集中进行学习,训练集中每一个样本的特征可以视为是对该situation的描述,而其label可以视为是应该执行的正确的action,但是有监督的学习不能学习交互的情景,因为在交互的问题中获得期望行为的样例是非常不实际的,agent只能从自己的经历(experience)中进行学习,而experience中采取的行为并一定是最优的。这时利用RL就非常合适,因为RL不是利用正确的行为来指导,而是利用已有的训练信息来对行为进行评价。
因为RL利用的并不是采取正确行动的experience,从这一点来看和无监督的学习确实有点像,但是还是不一样的,无监督的学习的目的可以说是从一堆未标记样本中发现隐藏的结构,而RL的目的是最大化reward signal。
总的来说,RL与其他机器学习算法不同的地方在于:其中没有监督者,只有一个reward信号;反馈是延迟的,不是立即生成的;时间在RL中具有重要的意义;agent的行为会影响之后一系列的data。
没有教师信号,也没有label。只有reward,其实reward就相当于label。
- 反馈有延时,不是能立即返回。
- 相当于输入数据是序列数据。
- agent执行的动作会影响之后的数据。
强化学习的关键要素
- environment
- reward
- action
- state
从要完成的任务提取一个环境,从中抽象出状态(state) 、动作(action)、以及执行该动作所接受的瞬时奖赏(reward)。
Reward
reward通常都被记作RtRt,表示第t个time step的返回奖赏值。所有强化学习都是基于reward假设的。reward是一个scalar。
Action
action是来自于动作空间,agent对每次所处的state用以及上一状态的reward确定当前要执行什么action。执行action要达到最大化期望reward,直到最终算法收敛,所得的policy就是一系列action的sequential data。
state
就是指当前agent所处的状态。具体来讲,例如玩pong游戏,该游戏的状态就是当前time step下小球的位置。而Flappy bird状态就是当前小鸟在平面上的位置。
policy
policy就是只agent的行为,是从state到action的映射,分为确定策略和与随机策略,确定策略就是某一状态下的确定动作a=π(s)a=π(s), 随机策略以概率来描述,即某一状态下执行这一动作的概率:π(a|s)=P[At=a|St=s]π(a|s)=P[At=a|St=s]。
value function
因为强化学习今本上可以总结为通过最大化reward来得到一个最优策略。但是如果只是瞬时reward最大会导致每次都只会从动作空间选择reward最大的那个动作,这显然不是我们想要的,所以为了很好地刻画是包括未来的当前reward值最大(即使从当前时刻开始一直到状态达到目标的总reward最大)。因此就构造了值函数(value function)来描述这一变量。表达式如下:
Vπ(s)=E[Rt+1+γRt+2+γ2Rt+3+...|St=s]Vπ(s)=E[Rt+1+γRt+2+γ2Rt+3+...|St=s]
γγ是一个取值在[0,1]的数,就是为了减少未来的reward对当前动作的影响。然后就通过选取合适的policy使value function最大
model
model就是用来预测环境接下来会干什么,即在这一状态的情况下执行某一动作会达到什么样的状态,这一个动作会得到什么reward。所以描述一个模型就是用动作转移概率与动作状态reward。具体公式如下:
pass′=P[St+1=s′|St=s,At=a]pss′a=P[St+1=s′|St=s,At=a]
Ras=E[Rt+1|St=s,At=a]Rsa=E[Rt+1|St=s,At=a]
增强学习
实例
强化学习应用实例