深度学习和强化学习有什么区别?
0 1161
1
该提问暂无详细描述
收藏
2021-01-22 17:01 更新 🍊小桔子 •  2439
共 1 个回答
高赞 时间
0

你玩过《Flappy Bird》吗?这是一款通过强化学习实现自动化的游戏,让我们看看它是如何实现的: 从高层次上讲,强化学习是学习分析当前状态,并通过不断的互动来采取使未来回报最大化的行动。

首先,为《Flappy Bird》定义上述所有关键字:

状态:告诉鸟和烟斗在哪里的任何帧(如上图)都是一种状态。由于我们需要数值,因此只需要帧像素值的2D数组即可。该模型将学会避免“黄色”物料与“绿色”物料接触的情况。

行动:在任何给定的时间点,你可以点击屏幕或不执行任何操作,我们称之为TAP和NOT。因此,假设连续动作之间有1毫秒的间隔,则整个游戏可以定义为一系列动作: TAP-NOT-NOT-NOT-TAP-TAP-NOT-TAP-…等等

奖励:假设你逃避了10个管道,便赢得了比赛。因此,如果你获胜,将获得+1分;如果你输了,将获得-1分。

现在最重要的部分是:在当前状态下,决定要采取的措施。如果我们拥有训练数据,例如1000个“州”及其相应的“最佳行动”,那么我们就完成了。

我们可以训练任何监督学习模型来告诉我们在一个状态下该怎么做,但是我们没有这些数据,这就是强化部分的作用。我们最初会做出任意决定,但随着我们的前进,最终将基于奖励来鼓励或阻止过去的行动。

假设我们有一个神经网络,该神经网络将状态(像素值的2D数组)作为输入,并将TAP或NOT作为输出。我们随机初始化权重使得它做出任意决定,随后,使用这个愚蠢的神经网络玩了100场比赛。最后,我们将有100个: TAP-NOT-TAP-TAP = -1 TAP-NOT-NOT-TAP-NOT-TAP-….. = +1 NOT-TAP-NOT-TAP-TAP-NOT = -1 等等..

现在,假设每个游戏大约有20个动作,我们现在有20 * 100个动作,并且我们在这100场比赛中赢了10场,因此,我们有20 * 10获胜动作和20 * 90失败动作。

对于每一个失败的动作,我们都会更新权重(通过反向传播),以阻止那些对应状态的动作,从而在以后的游戏中,鉴于该状态,网络不太可能输出该动作。与此相反,我们鼓励获胜的行动,以便网络在给出该状态的情况下更有可能输出该行动。

你可能会说在失败的游戏中,最初的几步并不是在失去行动(因为我们一直存活到最后的失败行动),我们错误地让玩家感到沮丧。但这通常并不重要,当模型播放成千上万种此类游戏时,对于正确的操作,我们会看到更多的正面更新而不是负面的更新。

像这样玩100场比赛-更新权重-重复的过程,就是你的强化学习。决策者可以是一个深度神经网络,在这种情况下,学习部分是通过深度学习进行的。

总而言之: 深度学习:使用深度神经网络。 强化学习:尝试,犯错,学习,掌握。 深度强化学习:尝试,犯错,使用深度神经网络学习,掌握。

收藏
2021-01-22 18:10 更新 Lisa •  1796