强化学习讨论的问题是一个智能体(agent)怎么在一个复杂不确定的环境(environment)里面去极大化他能获得的奖励。
首先,我们可以把强化学习和监督学习做一个对比。
例如图片分类,监督学习(supervised learning),指的是我们有一大堆标注的数据,如飞机、汽车等等,这些图片都要满足独立同分布(i.i.d),意思就是他们之间是没有关联的。
然后我们训练一个分类器,为了分辨出这个图片是车辆或是飞机,我们需要将真实的标签给神经网络,去训练这个网络,当网络做出了一个错误的预测,就会直接告诉网络预测结果错误,将这个错误写成一个损失函数(loss),通过反向传播(bp)来训练网络
所以在监督学习过程中,有两个假设:
输入的数据(标注的数据)都是没有关系的,尽可能无关联。
我们告诉学习器(learner)正确的标签是什么,这样它可以通过正确的标签来修正自己的预测。
但是在强化学习中,这两点都不满足。例如Atari Breakout这个游戏
在游戏过程中,可以发现agent得到的观测不是独立同分布,上一帧和下一帧有非常强的连续性
另外,在玩游戏的时候,并没有立刻获得反馈,没有告诉你哪个动作是正确的,比如你现在把这个木板往右移,那么只会使得这个球往上或者往左上去一点,你并不会得到立刻的反馈。所以强化学习这么困难的原因是没有得到很好的反馈,然后你依然希望 agent 在这个环境里面学习。
强化学习和监督学习对比
强化学习输入的是序列数据,监督学习里面的样本都是独立的
学习器并没有被告知每一步正确的行为应该是什么,学习器需要自己去发现哪些行为可以得到更多的奖励,只能不停的尝试去发现最有利的动作。
Agent获得自己能力的过程中,其实是通过不断地试错探索。
探索(exploration)和利用(exploitation)是强化学习里面非常核心的问题。
探索:是指尝试一些新的行为,这些新的行为可能会得到更高的奖励,也能一无所获
利用:采用已知的可以获得最大奖励的行为,就重复执行这个动作就可以了,因为已经知道可以获得一定的奖励
所以,需要在探索和利用之间取得一个平衡。
强化学习特征:
强化学习有试错探索(trail-and-error exploration),需要通过探索环境来获取对环境的理解。
强化学习agent会从环境里面获得延迟的奖励
在强化学习的训练过程中,时间非常重要
Agent的行为会影响它随后得到的数据。