深层神经网络
在过去的几年里,我们视觉领域的研究者们所使用的测试数据集,无论在质量上还是数量上,都实现了飞跃。这些进步在很大程度得益于众包,使数据集达到了百万张已标记图像的规模。其中一个最具挑战性的测试数据集ImageNet,目前已包含几百万张由数万种不同图像分类标签标注的图片。
多年来ImageNet测试数据集识别工作进展较缓的局面终于在2012年被Krizhevsky等人的成果所打破。他们向我们展示了GPU通用计算是如何通过一些看似细微的算法改进,从而更加深层地训练卷积神经网络(convolutional neural networks)。最终, ImageNet中1000个图像分类测试的准确性的得到了显著的提升,并获得了大众媒体的广泛关注,甚至导致很多相关的初创公司被大笔收购。从那以后,“深度学习”成为了计算机视觉领域一个非常热门的话题,而近期发表的文章也延伸到了对物体定位、脸部识别和人体姿势估计等方法的探讨。
展望未来
深层卷积网络毫无疑问是相当强大的,但它可以解决计算机视觉领域的一切问题吗?我们确信在未来的几年中,它仍会备受关注并继续推动着这个领域的研究;但同时我们也相信未来还会有其他一个或两个新的突破性改变。谁也说不准会有哪些突破,但我们可以和大家分享一些我们认为很有可能实现的突破点:
图像表述(Representations):以上的网络模型只完成了对图像内容的简单表述的预测,并没有深入理解例如图像中各物体的位置、物体之间如何相互联系以及某一特定物体在实际生活中的状态(例如我们无法仅仅根据一个人头发较为光泽和他们手里拿着吹风机,就很有把握地推断这个人的头发是湿的)。针对这类问题,微软CoCo等新型测试数据集对那些包含多个对象、无法聚焦到其中某一个的抽象图像,提供更细化的分类标注,从而帮助计算机更好的理解图片含义。
运行效率(Efficiency):尽管对测试图片的深层网络评估过程可以通过并行计算来加速,但当前的神经网络的每一个训练样例都要遍历网络中的所有节点来输出结果,并没有运用我们在上一篇中提到的条件计算的概念。此外,即使配备高速的GPU,训练整个神经网络也要花费数天甚至数周的时间,极大限制了整个实验的周期。
结构化学习(Structure learning):深层卷积网络基本是由精心的手工设计实现的,历经多年的研究后具有很强的刚性结构。例如,当其中一层或几层发生变化就会影响模型整体的预测。除了简单粗暴地输入特定参数来最优化网络的形态,我们希望未来可以实现直接从数据中层面增加网络结构的灵活性。
近年来,我们在后面两个方面的研究已经有了一些阶段性的进展。尤其是在决策丛林模型(decision jungles)的研究方面取得了令人可喜的成果:根部相连接的决策有向无环图。你可以把一个决策有向无环图看做一个子节点相通的决策树,因此一个子节点可以存在多个父节点。相较于传统的决策树模型,我们不但证明了这种模型在内存消耗上降低了一个数量级,同时它还能大大提高模型的泛化能力。有向无环图乍一看很像神经网络,但是有两个重要的不同点:第一,其结构可以通过模型的参数进行修改;第二,有向无环图保留了决策树中高效的逻辑运算,即一个测试样例只沿着有向无环图的一条路径传递,而不是像神经网络一样遍历所有节点。目前,我们正在积极尝试结合其他深度学习的形式,譬如Stacking 和Entanglement ,使得决策丛林模型能够真正有效地替代深层神经网络。
如果你对运用决策丛林模型解决问题感兴趣,可以使用Azure机器学习云平台 中的Gemini模块进行深入研究。
总的来说,计算机视觉前途的一片光明。当然,这也很大程度上得益于对机器学习的研究。近年来计算机视觉领域的快速发展已令人十分振奋,但我们坚信未来会看到它更多惊艳的成果。