论文Convolutional Naural Networks for Sentence Classification--模型介绍篇

Yoon Kim发表的论文Convolutional Naural Networks for Sentence Classification,前面两篇博客介绍了论文阅读的笔记,CNN在NLP中的运用以及论文具体的Tensorflow实现方法,今天对CNN模型进行分解剖析:

1.输入-词向量:将句子的每一个单词转化为一个k维的词向量拼接在一起作为输入,取最大句子长度n。句子长度不够则进行补零操作,也叫padding,因而每一个句子的输入为n*k的矩阵。我们采用static channel和non-static channel两个通道同时输入,一个可以进行微调一个保持不变,因而输入是两个n*k的矩阵。

  • 理想情况下,多通道可以防止过拟合,尤其是对于数据集较小的情况。但是结果并不一定,我们应该多关注此向量的微调。相比于添加一个通道,可调的单通道多维输入效果反而更好
  • static中词向量采用word2vec训练好的,在训练过程中保持不变,只调整模型的其他参数。由于good和bad的语气差不多,在word2vec中两者的表示类似。
  • non-static中词向量会进行调整,通过微调可以学到更多有意义的表示。

2.卷积操作:利用卷积核与输入进行卷积得到特征映射的结果。每个卷积核的大小为filter_size*embedding_size,filter_size论文中取[3,4,5],embedding_size即为词向量的长度k,embedding_size的巧妙设置,使得我们不需要关注词向量内部,关注点可以放在词与词之间。论文中3中形状的卷积核均设置了100个,我们对2个通道用3种卷积核,每种100个均进行卷积,可以得到2*3*100个特征映射的输出。由于一个卷积核对每个通道的输入进行一一遍历卷积,因此需要的参数大大减少。

3.池化操作:通过去最大值获得句子中最重要的特征,由于每个filter对应一个输出,池化后可以得到一个num_filters维的向量。由于对每一个卷积结果只考虑最大值,即使在输入没有做padding,池化后也可以消除句子长度不一致的问题。

4.全连接层

由于目的是判断对给定的句子是正面还是负面评论,所以需要对池化的结果进行二分类。由于实验数据集较小,容易出现过拟合实验迭代到3000轮时准确率接近1,所以全连接层使用dropout减少过拟合,也可用L2正则化防止过拟合。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值