从2017年底到2018年初,整个人工智能学术研究领域谈论最多的应该就是被誉为深度学习之父Geoffrey E. Hinton 发表的论文 Dynamic Routing Between Capsules,其中介绍了全新的深度学习模型——胶囊网络(Capsule Network)
虽然CNN在图像识别领域取得了巨大成功并掀起了深度学习浪潮,Hinton指出CNN的工作方式与人类大脑大相径庭,继续沿着CNN的“卷积——池化”模型进行同构扩展无法达到更高的智能水平。
相对于普通神经网络,CNN的主要创新在于用卷积层自动提取各层级的特征并用这些特征进行最终预测。然而卷积层使得神经元数量大量增加,在提取特征后必须用池化层(一般为Max-pooling)进行数据降维才形成最终特征,由此带来的问题是:
第一条并非完全是一个缺点,它在某种程度上增加了网络的鲁棒性;但第二条会带来大问题,即它使得后续的处理无法识别特征之间的位置关系。
观察图9-48(左),其中有四个几何特征:大矩形、小矩形、两个圆形,神经网络可以通过这四个特征学习到它是一辆汽车。但如果丢失了这些特征的位置信息,则很可能将同样具有这四个特征的图9-48(右)也识别成一辆汽车。
产生CNN困境的根本原因是在普通神经网络中执行运算的基本单位——神经元(neural)——处理的数据是标量(scalar),在卷积层后用抛弃神经元的方式降低数据复杂度直接丢失了很多信息。
而在新的架构中,承载运算的基本单元——胶囊(capsule)——处理的数据变成了向量(vector),用向量的线性变换降低数据复杂度使得所有信息都能够参与其中。
?这个改变推翻了沿用了几十年的基于神经元的网络计算方法,产生了全新的基于向量的胶囊运算流程。胶囊与传统神经元的运算方式对比如图9-49所示。
对该图解释如下:
在Hinton的论文中采用的??函数形如?,该函数保持向量方向不变,而只改变向量的长度。在胶囊网络中,向量的方向用于定义某种特征,而向量的长度用于表示该特征存在的可能性,因此可以将??函数理解为对预测置信度的调整与归一化。
论文在提出了胶囊的概念后设计了一个用于识别MNIST(数字手写图像库)的胶囊网络架构,如图9-50所示。
对该网络解释如下:
因此,卷积层中的标量数值共有??个,而 PrimaryCaps 中的标量数值共有??个,达到了相当于池化层的降维目的,并且不会丢失卷积层中特征的位置信息。
在?PrimaryCaps 之后可以连接任意胶囊层继续搭建网络,其意义与在CNN中用多个卷积层逐层提炼更高级别知识的作用类似。
此外,论文中还提到了胶囊网络参数新的训练方法——动态路由算法(Dynamic Routing Algorithm),它用于替代传统网络中的反向传播对图9-45中的参数进行训练,有兴趣的读者可以研读原论文。