cnn在sentence分类和向量实验

本文介绍了CNN在句子分类中的应用,通过实验展示了其在体育和军事文本分类中达到100%准确率。同时,利用CNN的特征向量进行相关句子计算,效果良好,适合分类任务,如语义分析。CNN模型的doc向量也被应用于基于点击日志的个性化文章推荐。
摘要由CSDN通过智能技术生成

cnn简介

cnn的主要步骤

其中:
每一个行是一个word2vec的向量。
共n行,代表n个词。
然后卷积运算,窗口是3,4,5。

  • 输入层
    如图所示,输入层是句子中的词语对应的word vector依次(从上到下)排列的矩阵,假设句子有 n 个词,vector的维数为 k ,那么这个矩阵就是 n×k的。

这个矩阵的类型可以是静态的(static),也可以是动态的(non static)。静态就是word vector是固定不变的,而动态则是在模型训练过程中,word vector也当做是可优化的参数,通常把反向误差传播导致word vector中值发生变化的这一过程称为Fine tune。

对于未登录词的vector,可以用0或者随机小的正数来填充。

  • 第一层卷积层
    输入层通过卷积操作得到若干个Feature Map,卷积窗口的大小为 h×k ,其中 h 表示纵向词语的个数,而 k 表示word vector的维数。通过这样一个大型的卷积窗口,将得到若干个列数为1的Feature Map。
    卷积层和激励层通常合并在一起称为“卷积层”。 卷积层的线性部分这里写图片描述则是WX+b; 激励层还是各种sigmoid的激活函数。
  • 池化层
    接下来的池化层,文中用了一种称为Max-over-time Pooling的方法。这种方法就是简单地从之前一维的Feature Map中提出最大的值,文中解释最大值代表着最重要的信号。可以看出,这种Pooling方式可以解决可变长度的句子输入问题(因为不管Feature Map中有多少个值,只需要提取其中的最大值)。

最终池化层的输出为各个Feature Map的最大值们,即一个一维的向量。

  • 全连接 + Softmax层
    池化层的一维向量的输出通过全连接的方式,连接一个Softmax层,Softmax层可根据任务的需要设置(通常反映着最终类别上的概率分布)。

最终实现时,我们可以在倒数第二层的全连接部分上使用Dropout技术,即对全连接层上的权值参数给予L2正则化的限制。这样做的好处是防止隐藏层单元自适应(或者对称),从而减轻过拟合的程度。

CNNs本质上就是多层卷积运算,外加对每层的输出用非线性激活函数做转换,比如用ReLU和tanh。在传统的前馈神经网络中,我们把每个输入神经元与下一层的输出神经元相连接。这种方式也被称作是全连接层,或者仿射层。在CNNs中我们不这样做,而是用输入层的卷积结果来计算输出。这相当于是局部连接,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值