本文主要是介绍【胶囊网络-CapsNet】Investigating Capsule Networks with Dynamic Routing for Text Classification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Investigating Capsule Networks with Dynamic Routing for Text Classification
发表在EMNLP 2018
文章目录
- Model
- N-gram convolutional layer
- primary capsule layer
- Child-Parent Relationships
- Dynamic Routing
- convolutional capsule layer
- fully connected capsule layer
- CNN 在对空间信息进行建模时,需要对特征检测器进行复制,降低了模型的效率。
- CNN 空间不敏感的方法不可避免地受限于丰富的文本结构(比如保存单词的位置信息、语义信息、语法结构等),难以有效地进行编码且缺乏文本表达能力。
Capsule Network 由hinton提出,用神经元向量代替传统神经网络的单个神经元节点,以 Dynamic Routing 的方式去训练这种全新的神经网络,有效地改善了上述两类方法的缺点。
本文是capsNet在文本分类上的应用,并针对文本分类任务提出了三个策略减少背景或者噪音胶囊对网络的影响。
- Orphan Category:在胶囊网络的最后一层,引入 Orphan 类别,它可以捕捉一些背景知识,比如停用词。在视觉任务加入 Orphan 类别效果比较有限,因为图片的背景在训练和测试集里往往是多变的。然而,在文本任务,停用词比较一致,比如谓词和代词等。
- Leaky-Softmax:除了在最后一层引入 Orphan 类别,中间的连续卷积层也需要引入去噪机制。对比 Orphan 类别,Leaky-Softmax 是一种轻量的去噪方法,它不需要额外的参数和计算量。
- 路由参数修正:传统的路由参数,通常用均与分布进行初始化,忽略了下层胶囊的概率。相反,我们把下层胶囊的概率当成路由参数的先验,改进路由过程。
在 6 个 benchmarks 上进行了实验,Capsule Network 在其中 4 个中取得了最好结果。
同事,在多标签迁移的任务上(fromsingle-label to multi-label text classification),Capsule Network 的性能远远地超过了 CNN 和 LSTM。
Model
模型包含四层,
- N-gram convolutional layer
- primary capsule layer
- convolutional capsule layer
- fully connected capsule layer
N-gram convolutional layer
这是标准的卷积层,对于每一个卷积,窗口大小 K 1 × v K_1\times v K1×v:
m i a = f ( x i : i + K 1 − 1 ∘ W a + b 0 ) m^a_i = f(x_{i:i+K_1-1} \circ W^a + b_0) mia=f(xi:i+K1−1∘Wa+b0)
其中, x ∈ R L ∗ V , x i ∈ R V , W a ∈ R K 1 ∗ v , m a ∈ R L − K 1 + 1 x \in R^{L*V}, x_i \in R^V, W^a \in R^{K_1*v}, m^a \in R^{L-K_1+1} x∈RL∗V,xi∈RV,Wa∈RK1∗v,ma∈RL−K1+1,V是词向量维度。
卷积核通道数为B,卷积层输出:
M = [ m 1 , m 2 , . . . m B ] ∈ R ( L − K 1 + 1 ) × B M = [m_1, m_2,... m_B] \in R^{(L-K_1+1) \times B} M=[m1,m2,...mB]∈R(L−K1+1)×B
primary capsule layer
第一层胶囊网络。
p i = g ( W b M i + b 1 ) g ( s j ) = ∣ ∣ s j ∣ ∣ 2 1 + ∣ ∣ s ∣ ∣ 2 s j ∣ ∣ s j ∣ ∣ p_i = g(W^bM_i + b_1) \\ g(s_j) = \frac{||s_j||^2}{1+||s||^2} \frac{s_j}{||s_j||} pi=g(WbMi+b1)g(sj)=1+∣∣s∣∣2∣∣sj∣∣2∣∣sj∣∣sj
其中: W b ∈ R B × d , M i ∈ R B , i ∈ ( 1 , L − K 1 + 1 ) W^b \in R^{B \times d}, M_i \in R^{B}, i \in (1, L-K_1+1) Wb∈RB×d,Mi∈RB,i∈(1,L−K1+1),g是squash函数。
通道数设置为C,即:
P = [ p 1 , p 2 , . . . P C ] ∈ R ( L − K 1 + 1 ) × C × d P = [p_1, p_2, ...P_C] \in R^{(L-K_1+1) \times C \times d} P=[p1,p2,...PC]∈R(L−K1+1)×C×d
最终输出为 ( L − K 1 + 1 ) × C (L-K_1+1) \times C (L−K1+1)×C个维度为d的胶囊。
Child-Parent Relationships
在胶囊网络层之间就会存在Child-Parent关系,本文尝试了两种transformation。
- 共享权重,对于每一个parent胶囊,共享权重 W j t 1 W^{t_1}_j Wjt1。
- u ^ = W j t 1 u i + b j ∣ i \hat{u} = W_j^{t_1} u_i + b_{j|i} u^=Wjt1ui+bj∣i,其中 u i u_i ui是每个child-capsule。
- 参数量: N ∗ d ∗ d N*d*d N∗d∗d
- 非共享权重,对于每一个parent胶囊j,child胶囊i,有
- u ^ = W j ∣ i t 1 u i + b j ∣ i \hat{u} = W_{j|i}^{t_1} u_i + b_{j|i} u^=Wj∣it1ui+bj∣i
- 参数量: H ∗ N ∗ d ∗ d H*N*d*d H∗N∗d∗d,parent胶囊N个,child胶囊H个。
Dynamic Routing
通过动态路由算法学习获得child胶囊对parent胶囊的权重,动态的加强或减弱权重,优于会丢失位置信息的max pooling算法。同事本文针对文本分类任务提出了三个策略优化CapsNet:
-
Orphan Category:在胶囊网络的最后一层,引入 Orphan 类别,它可以捕捉一些背景知识,比如停用词。在视觉任务加入 Orphan 类别效果比较有限,因为图片的背景在训练和测试集里往往是多变的。然而,在文本任务,停用词比较一致,比如谓词和代词等。
-
Leaky-Softmax:除了在最后一层引入 Orphan 类别,中间的连续卷积层也需要引入去噪机制。对比 Orphan 类别,Leaky-Softmax 是一种轻量的去噪方法,它不需要额外的参数和计算量。
-
路由参数修正:传统的路由参数,通常用均与分布进行初始化,忽略了下层胶囊的概率。相反,我们把下层胶囊的概率当成路由参数的先验,改进路由过程。
原始Dynamic Routing:
convolutional capsule layer
fully connected capsule layer
这篇关于【胶囊网络-CapsNet】Investigating Capsule Networks with Dynamic Routing for Text Classification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!