论文Convolutional Naural Networks for Sentence Classification--模型介绍篇
来源:互联网 发布:淘宝能买汽车吗 编辑:程序博客网 时间:2024/04/27 14:46
最近读了Yoon Kim发表的Convolutional Naural Networks for Sentence Classification一文。这是一篇将CNN和NLP结合的文章,接下来我们会分模型介绍和代码实现两部分来介绍该论文。
论文所提出的模型结构如下图所示:
1,这里的输入层显示有两个channel,其实我们可以看作是一个,因为后文中说到这两个channel分别是static和non-static,即使用的词向量是否随着训练发生变化。non-static就是词向量随着模型训练变化(Fine tune),这样的好处是词向量可以根据数据集做适当调整,但是CS224d课程里也说过当数据集较小时不推荐此操作,否则容易产生过拟合现象。static就是直接使用word2vec训练好的词向量即可。此外,由图可知,输入层是将一个句子所有单词(padding)的词向量进行拼接成一个矩阵,每一行代表一个词。
2,卷积层,不做过多解释。每个卷积核的大小为filter_size*embedding_size。filter_size代表卷积核纵向上包含单词个数,即认为相邻几个词之间有词序关系,代码里使用的是[3,4,5]。embedding_size就是词向量的维数。每个卷积核计算完成之后我们就得到了1个列向量,代表着该卷积核从句子中提取出来的特征。有多少和卷积核就能提取出多少种特征,即图中在纵深方向上channel的数量。
3,池化层。文中提到pooling操作就是将卷积得到的列向量的最大值提取出来。这样pooling操作之后我们会获得一个num_filters维的行向量,即将每个卷积核的最大值连接起来。这样做还有一个好处就是,如果我们之前没有对句子进行padding操作,那么句子的长度是不同的,卷积之后得到的列向量维度也是不同的,可以通过pooling来消除句子之间长度不同的差异。
4,全连接层,为了将pooling层输出的向量转化为我们想要的预测结果,加上一个softmax层即可。针对电影评价的分类任务,就是将其转化为正面、负面两个结果。文中还提到了过拟合的问题,因为实验中所使用的数据集相对较小,很容易就会发生过拟合现象,在实验过程中也会发现当迭代3000多轮的时候准确率就会接近1。所以这里引如dropout来减少过拟合现象。此外还可以考虑L2正则化等方法实现防止过拟合的功能。
到这里其实对论文模型的架构已经介绍的差不多了,至于实验结果自然不必说,达到了很好的效果,现在其分类性能也成了新论文的标准线。具体的结果分析可以参考论文,这里不再详细赘述。那么接下来我们就开始介绍该模型如何使用TensorFlow实现。
- 论文Convolutional Naural Networks for Sentence Classification--模型介绍篇
- 论文Convolutional Naural Networks for Sentence Classification--TensorFlow实现篇
- 论文笔记《Convolutional Neural Networks for Sentence Classification》
- 论文《Convolutional Neural Networks for Sentence Classification》总结
- 【论文笔记】Convolutional Neural Networks for Sentence Classification
- 读论文《Convolutional Neural Networks for Sentence Classification》
- Convolutional Neural Networks for Sentence Classification论文解读
- Convolutional Neural Networks for Sentence Classification
- deeplearning论文学习笔记(1)Convolutional Neural Networks for Sentence Classification
- Convolutional Neural Networks for Sentence Classification笔记整理
- 论文《Recurrent Convolutional Neural Networks for Text Classification》总结
- 论文《Recurrent Convolutional Neural Networks for Text Classification》总结
- Convolutional Neural Network For Sentence Classification
- Convolution Neural Networks for sentence Classification(yoon-kim)论文总结
- 深度学习论文理解3:Flexible, high performance convolutional neural networks for image classification
- [深度学习论文笔记][Image Classification] Very Deep Convolutional Networks for Large-Scale Image Recognitio
- [深度学习论文笔记][Video Classification] Two-Stream Convolutional Networks for Action Recognition in Videos
- [深度学习论文笔记][Video Classification] Long-term Recurrent Convolutional Networks for Visual Recognition a
- Python操作HBase
- Activity生命周期
- 乐观锁和悲观锁的区别
- iOS学习笔记-038.UITableView示例二——九宫格
- [JNI]开发实例(1)封装libjpeg库 保证图片质量压缩图片
- 论文Convolutional Naural Networks for Sentence Classification--模型介绍篇
- 非微信官方网页,继续访问将转换成手机预览模式
- 蛇行矩阵
- 区间更新POJ3468 HDU1698
- JS获取表单数据
- 阅读Object类源码
- Python基础语法(4)——GUI编程及猜数字游戏
- 2017.3.4 wyd测试
- bzoj 1660 单调栈