强化学习
强化学习与监督学习
监督学习
1.输入的数据,标定的数据,它都是没有关联的,尽可能没有关联。因为如果有关联的话,这个网络是不好学习的。
2.我们告诉这个 learner 正确的标签是什么,这样它可以通过正确的标签来修正自己的这个预测。
强化学习
1.在游戏过程中,大家可以发现这个 agent 得到的观测不是个 i.i.d 的分布,上一帧下一帧其实有非常强的连续性。
2.另外一点,在玩游戏的过程中,你并没有立刻获得这个反馈。比如你现在把这个木板往右移,那么只会使得这个球往上或者往左上去一点,你并不会得到立刻的反馈。所以强化学习这么困难的原因是没有得到很好的反馈,然后你依然希望这个 agent 在这个环境里面学习。
对比下强化学习和监督学习。
1.首先强化学习输入的序列的数据并不是像 supervised learning 里面这些样本都是独立的。
2.另外一点是 learner 并没有被告诉你每一步正确的行为应该是什么。Learner 不得不自己去发现哪些行为可以使得它最后得到这个奖励,只能通过不停地尝试来发现最有利的 action。
3.这里还有一点是 agent 获得自己能力的过程中,其实是通过不断地试错(trial-and-error exploration)。Exploration 和 exploitation 是强化学习里面非常核心的一个问题。Exploration 是说你会去尝试一些新的行为,这些新的行为有可能会使你得到更高的奖励,也有可能使你一无所有。Exploitation 说的是你就是就采取你已知的可以获得最大奖励的行为,你就重复执行这个 action 就可以了,因为你已经知道可以获得一定的奖励。因此,我们需要在 exploration 和 exploitation 之间取得一个权衡,这也是在监督学习里面没有的情况。
4.在强化学习过程中,没有非常强的 supervisor,只有一个奖励信号(reward signal),就是环境会在很久以后告诉你之前你采取的行为到底是不是有效的。Agent 在这个强化学习里面学习的话就非常困难,因为你没有得到即时反馈。当你采取一个行为过后,如果是监督学习,你就立刻可以获得一个指引,就说你现在做出了一个错误的决定,那么正确的决定应该是谁。而在强化学习里面,环境可能会告诉你这个行为是错误的,但是它并没有告诉你正确的行为是什么。而且更困难的是,它可能是在一两分钟过后告诉你错误,它再告诉你之前的行为到底行不行。所以这也是强化学习和监督学习不同的地方。