本笔记来自于台大李宏毅机器学习课程–Reinforcement Learning
前面写过CNN入门与集成学习,这些均属于监督学习的范畴,而强化学习与监督学习是有很大区别的
其中监督学习是有特征(feature)和标签(label)的,即便是没有标签的,机器也是可以通过特征和标签之间的关系,判断出标签。举例子理解:高考试题是在考试前就有标准答案的,在学习和做题的过程中,可以对照答案,分析问题找出方法。在高考题没有给出答案的时候,也是可以根据平时学习到的知识给出正确的解决,这就是监督学习。一句话概括:给定数据,预测标签。
强化学习是使用未标记的数据,但是可以通过一些方法知道你是离正确答案越来越近还是越来越远(奖惩函数)。可以把奖惩函数看作正确答案的一个延迟、稀疏的形式。可以得到一个延迟的反馈,并且只有提示你是离答案越来越近还是越来越远。
一、通俗理解强化学习
如下所示,地球是环境(environment),机器(agent)用感测器去接收外接讯息。
外边感知到了一杯水,它(agent)感知到讯息接着采取行动,假如它把水打翻了(action)。因他的改变而外界有所改变,一摊水洒在地上(environment)。
接着外界(地球)给她了一个回馈(reward):你刚刚的动作是不好的(Don’t do that),所以机器人得到一个负面回馈。
接着,机器人感测到地上有一滩水后,便采取行动——把地上水擦净,改变了外界的状态。
接着地球给了个回馈:干得好兄弟!这是一个正面的奖励,接着这个反馈机器人也接收起来了:我这个动作是好的。
这里比喻机器的学习过程就是找到一个函数,函数的输入是外界(observation),而机器学习得目标就是要把这个函数(reward)最大化。
另外举特别火的阿尔法狗(AlphaGo)的例子,首先观测棋局(左),AlphaGo下了一手。外部环境接收到了讯息,反馈给AlphaGo。
人类下了第一手,阿法狗观测棋盘,然后不断循环刚刚的步骤。整个下棋过程奖励是0,直到棋局结束,才会产生1(赢)或0(输)的奖励
虽然这个过程中一直没有reward告诉AlphaGo每一步是不是正确的(可以对最终获胜有帮助),但它通过不断与人或机器进行对局下棋,不断调整它看到的observation和采取的action之间的关系,让它得到的reawrd被最大化,即尽量取胜。
二、强化学习的几种算法
1.基于actor的Policy Gradient
这种算法将agent要采取的actor当做一个神经网络(NN),即将agent的观测observation以向量或矩阵的形式输入神经网络,神经网络的输出是每一个要采取的动作(action)的值或者可能性(probability)。
给定动作 π \pi π(s)来进行学习,假设刚开始观测到的为 s 1 s_{1} s1 s 2 s_{2} s2 … s T s_{T} sT,采取的action分别为 a 1