于是,我们成功地将一个经典的规划算法和经典的卷积神经网络建立了联系。我们可以将一个规划算法,在神经网络中表达成卷积神经网络的形式。 价值迭代网络
现在我们可以将规划算法 value iteration 作为一个模块嵌入到之前我们提及的网络结构中。我们称之为 value iteration network,简称 VIN。 回到之前的四个问题。对于第一个问题,我们知道,value iteration 算法的计算依赖于每个状态可以得到回报,和状态之间的转移。而这些我们都可以利用一些现有的神经网络结构从输入图像中进行直接提取。 对于第二个问题,我们已经知道 value iteration 算法可以表示成卷积神经网络的形式进行计算。 对于第三个问题:我们知道 value iteration 模块已经包含了我们所需要的长远规划信息。我们只需要用另一个神经网络将这些规划结果作为额外的信息传递给反应式网络最后输出层即可。此外我们还注意到,做决策时我们往往只需要规划模块中一小部分状态的 value 值即可。所以这里我们还可以利用上注意力机制 attention 来更好的做出决策。
最后,对于第四个问题,注意到 value iteration network 中的每一个部分从形式上都是传统神经网络中的某个常见模块。因此我们可以用 backpropogation 对于整个网络进行端对端的训练!而由于有个 value iteration 模块,整个网络也就有了学习规划和进行长期规划的能力。 实验结果 实验 我们的实验中,我们考虑两个主要问题:1. 我们的网络到底能不能学会规划?2. 这样的网络能不能更好的泛化? 迷宫问题
我们先从迷宫问题着手。我们生成了 5000 个随机地图,不同的起始终点位置以及他们之间的最短路径。我们在训练中使用监督学习。神经网络需要在给定地图和终点,以及机器人当前的位置,做出正确的决策。我们将我们的 vin 网络和其他当前最好的反应式网络进行对比。 由于是监督学习。我们直接比较网络在最短路径上每一个位置做出的决策是否正确。从这张图上我们可以看到,从预测正确率上来看,似乎所有的网络的在测试集上的预测正确率都差不多。 但注意到,在这个任务中我们并不关心单独某个正确率。我们关心的是整个任务的成功率!也就是机器人是否能够从起点开始做出连续的正确决策并到达终点。这里我们可以发现,反应式网络由于缺乏长远规划的能力,随着地图大小的增加,其成功率大幅下降,而 VIN 则始终保持着不错的成功率。这是因为,这些反应式网络通过学习记住了训练集中的某些特定场景,而随着地图增大,测试集中大量出现训练集中没有出现的场景,这就导致了这些网络的失败,而 vin 则真正学会了如何进行重新规划。 这是一个 vin 在测试集上的输出。绿色为最短路,红色为 vin 的输出结果。注意到虽然没有跟从最短路,但 vin 依然做出了有效的决策,避开了所有障碍并达到了终点。 感知 & 控制
对于 vin 最重要的一点是,由于 vin 仅仅是一个特定形式的神经网络,他可以作为一个部分轻松的和其他神经网络结构组合。比如,我们这里将 VIN 应用到了真实的超高分辨率的图线应用中。这个图片是火星地表的一副俯拍图。任务的目标是让火星机器人在火星地表上绕开危险的沟壑,并前进到指定位置。我们只需要在 vin 中增加一些图像处理层,就可以直接将 vin 应用到这个任务中了。图中蓝色是最短路,紫色路线就是 vin 的输出,利用 vin 提供的路线通过 nasa 的数据计算,机器人可以成功的到达目的地。 在另一个实验中,我们考虑联系空间的控制问题。在这个任务中,我们需要通过施加额外的力来控制一个有质量的小钢球绕开障碍物到达目的地。注意到 vin 处理的都是离散的状态,而这里状态都是连续的。因此我们将输入图片离散化成一些低分辨率的图片并输入 vin 中,并向之前迷宫问题一样进行规划。最后反应式网络的输出层则合并了连续的输入低层次信息以及 vin 网络提供的更高层次离散信息进行综合决策。 (责任编辑:本港台直播) |