胶囊网络-CapsNet
Geoffrey Hinton的胶囊网络(Capsule Network)震动了整个人工智能领域,它将卷积神经网络(CNN)的极限推到一个新的水平。 网上已经有很多的帖子、文章和研究论文在探讨胶囊网络理论,以及它如何做的比传统的CNN更好。
胶囊网络原理
传统的CNN一个NN能够识别一个特征,并不能从多角度看出是来自同一个事物,胶囊网络的提出为了解决这一类问题,保证特征的结构性,在空间的不变性,用一组向量表示事物的特征,并用向量的长度定义是否存在该类特征。
对应的胶囊内部的结构如下图,v1和v2同时进入NN,同时与权重相乘得到对应的u1和u2,接着做weight sum得到s,接着s通过挤压函数得到输出的下一层的v。需要注意的是W1和W2是被训练过程中得到的。而c1和c2是在测试集经过动态路由算出来的。
动态路由算法
对于手写数字而言,最后出现的结果是一个十维的向量,根据挤压前面提到的算法可知,如向量的长度代表有无该特征以及算出对应的结果。也可以将得到的结果进入NN得到一个重构的结果,可对应设置有特征的向量权重是1,无特征的向量权重是0。