本博文是由微软研究院和剑桥大学的Jamie Shotton,Antonio Criminisi,Sebastian Nowozin共同完成,是这个主题的第二篇。
在上一篇文章中,我们向你介绍了机器视觉相关领域并且讨论了一个非常有效的算法——像素智能分类决策树,这个算法已经在医疗图像处理和Kinect中广泛使用。在这篇文章中,我们将会看到最近很热门深度神经网络(深度学习)及其在机器视觉中成功的应用,然后我们将会看一下未来机器视觉和机器学习的发展。
深度神经网络
最近几年我们用于机器视觉研究的训练数据集在质量和数量上都有了很大的提升。这些提升在很大程度上依赖于众筹的发展,增大被标记的图片样本数量到几百万张。一个好的数据集集——ImageNet——包括几万种类别的几百万张被标记过的图片。
在ImageNet数据集社区经过几年的慢速发展后,在2012年,Krizhevsky等人引爆了这个领域。他们展示了通用GPU计算结合对算法的微小改变就能够训练比以前更多层次的卷积神经网络。他们对ImageNet的1000个类别进行精确测试, 其结果是一个里程碑式的跨越。这引起了很多大众媒体的关注,甚至带来了大量创业公司的并购。之后,深度学习在机器视觉领域开始变成一个热门课题,最近的很多论文扩大了目标定位、人脸识别和人类的姿态估计的研究方法。
未来展望
毫无疑问深度卷积神经网路是强而有力的,然而它能够完全解决机器的视觉问题吗?我们可以确定的是深度学习会在未来几年继续流行,并且将会在未来几年推动相关的技术的发展,但是我们相信这还需要一些路要走。虽然我们仅仅能够推测未来会发生什么改变,但是可以确定的是我们已经能看到的一些趋势。
表示方法:目前这些神经网络只能够识别一些相对简单的图像内容,还不能更深层次的理解图片中各个目标对象之间的关系以及特定个体在我们生活中所扮演的角色(比如,我们不能根据图片中的人的头发都是很有光泽并且都拿着吹风机就简单的认为这些人的头发是湿的)。 新的数据集 比如微软的“CoCo“,可以通过提供“非典型”图片的单个目标对象的更多细节标签来进一步改善这种状况,比如,这些图片包含多个并不是居于最突出位置的目标对象。
效率:尽管深度神经网络在图像处理方面能够通过并行的方式来达到相对较快的执行速度,但是,神经网络并不像我们上一篇文章所提到的问题那样:这里的每一个测试样例都要遍历神经网络的每一个节点才会输出。此外,即使用到最快的GPU集群进行加速,训练一个神经网络也需要几天或这几周的时间,这限制了我们的实验速度。
结构学习:目前,深度卷积神经网络是一个已经经过多年的研究的一个精心设计的稳定结构。如果说要改变它的话,我们能改变的只是每一层的大小和层的数量(也就是神经网络的深度),这些的确对整个神经网络的预测准确性有很大的影响。目前,除了简单对神经网络的参数改变来优化神经网络,我们希望能够从数据直接学习到更灵活的网络结构。
最近,我们已经开始着手解决上面的问题,尤其是后面两个。令我们特别高兴的是我们最近关于决策丛林算法的工作:决策有向无环图(DAG)的集合。你可以认为一个决策有向无环图是一个决策树,不同的是每一个决策有向无环图的子节点允许有多个父节点。相较于决策树,我们已经证明,这样可以减少一个数量级的内存消耗,同时也改进了算法的泛化能力。虽然有向无环图(DAG)和神经网络非常相像,但是确实包括两个非常大的不同点,首先,DAG的结构可以和模型的参数同时被训练;第二,DAG保留了决策树高效的运算性能:每一个测试样本仅仅从DAG中选择一个路径而不是像神经网络一样遍历所有节点。我们正在积极的研究是否决策丛林同其他形式的深度学习相结合能够产生出更加高效的深度神经网络。
如果你有兴趣尝试用决策丛林来解决你的问题,你可以通过Azure ML的Gemini 模型进一步研究。
总而言之,机器视觉拥有光明的前景很大程度上归功于机器学习的发展。机器视觉最近的快速发展已经非常令人惊奇,但是我们相信机器视觉的未来依然是一本令人激动的打开了的书。
Jamie, Antonio and Sebastian