一、简介
在本章中,我们将学习将深度神经网络与强化学习相结合的效果。如果你关注AI新闻,那么你可能会听说一些没有任何特定编程就AI无法完成的工作:
1)了解如何从原始图像像素播放atari
2)了解如何击败围棋冠军(巨大的分支因子)
3)机器人学习如何走路
所有这些成就都落在“强化学习”保护伞上,更具体的说就是“深度强化学习”。基本上,所有这些成就的实现不是由于新算法,而是由于更多数据和更强大的资源(GPU,FPGA,ASIC)。例子:
1)Atari:旧的Q学习算法,但使用CNN作为函数近似器(自1988年以来,人们一直在谈论带有函数近似器的标准RL)
2)AlphaGo:使用标准蒙特卡洛树搜索(MCTS)的策略梯度。
如今,“策略梯度”是攻击强化学习(RL)问题的首选选择。以前是DQN(深度Q学习)。 Policy Gradients的优点之一是因为可以端到端地学习它。
二、深度强化学习
我们将使用pong游戏从政策梯度开始研究:
在这里,我们必须采取可能的行动(上/下),我们的目标是使球传过对手桨。 我们的输入将是从210x160x3图像预处理的80x80x1图像。 如果您赢得了对手,我们的游戏环境(openAI体育馆)将给予+1奖励;如果您输给对手,则将给予-1奖励;否则,将给予0奖励。
在这里,每个节点都是特定的游戏状态,每个边缘都是可能的过渡,每个边缘都可以提供奖励。 我们的目标是找到一种策略(从状态到操作的映射),该策略将使我们对每个州采取最佳措施。 整个问题是我们不知道该图,否则整个事情将只是一个反射代理,有时我们也无法将所有这些信息都存储在内存中。
预处理:
在此pong示例中,我们对原始210x160x3(RGB)图像进行了一些操作,将其简化为80x80的灰度。 这样做是为了简化神经网络的大小。
开始:
结束:
另外,为了给网络一些时间概念,需要计算当前图像和前一个图像之间的差异。 (在DQN论文上,它使用了具有6个图像样本的卷积神经网络)。
政策网络:
基本思想是使用机器学习模型,该模型将从玩游戏中学习良好的策略并获得奖励。 因此增加了机器学习部分。 我们将定义一个策略网络(例如:2层神经网络)。 这个简单的神经网络将接收整个图像并输出上升的可能性。
在计算上升的可能性之后,我们从均匀分布中采样一个动作(上/下):
政策梯度:
监督学习和强化学习之间的区别是我们没有正确的标签来计算误差然后进行反向传播。 这就是政策梯度思想的来龙去脉。 想象下面的例子:
在培训期间,我们的政策网络给出了30%(0.3)的“上”概率,因此我们的“下降”概率为100-30 = 70%(0.7)。 在我们从该分布采样的动作中,选择了“ DOWN”动作。 现在,我们要做的是选择单位梯度“ 1”,然后等待可能的奖励(0,+ 1,-1)。 这会将我们的渐变调制为3个可能的值:
1)零:我们的权重将保持不变
2)正面:使网络将来更有可能重复执行此操作
3)负面因素:使网络在将来不太可能重复执行此操作
因此,这就是政策梯度的魔力,我们选择单位梯度并根据收益进行调整。 在选择了很多好的/坏的动作并得到了适当的奖励之后,策略网络映射就会制定“合理/最佳”策略。