鱼C论坛

 找回密码
 立即注册

20.CNN文本分类

已有 176 次阅读2019-7-24 17:55 |个人分类:自然语言

CNN文本分类
    1.这里的输入层显示有两个channel,其实我们可以看作是一个,因此后文中说到这个两个channel分别是static和non-static
    ,即使用的词向量是否随着训练发生变化.non-static就是词向量随着模型训练变化,这样的好处是词向量可以根据数据集做适当
    调整,当数据集较小时不推荐此操作,否则容易产生过拟合现象.static就是直接使用word2vec训练好的词向量即可,此外,由图可
    知,输入层是将一个句子所有单词的词向量进行拼接成一个矩阵,每一行代表一个词.每个句子固定20个词,如果不够的补padding.
    2.卷积层,每个卷积核的大小为filter_size * embedding_size.filter_size代表卷积核纵向上包含单词的个数,即认为相邻
    几个词之间有词序关系,代码里使用的是{3,4,5}.embedding_size就是词向量的维数,每个卷积核计算完成之后我们就得到了1个
    列向量,代表这该卷积核从句子中提取出来的特征.有多少和卷积核就能提取出多少种特征,即图中在纵深方向上channel的数量
    3.池化层.文中提到pooling操作就是将卷积得到的列向量的最大值提取出来.这样pooling操作之后我们会获得一个num_filters
    维的行向量,即将每个卷积核的最大值连接起来,这样做还有一个好处就是,如果我们之前没有对句子进行padding操作,那么句子的
    长度是不同的,卷积之后得到的列向量维度也是不同的,可以通过poolding来消除句子之间长度不同的差异.
    4.全连接层,为了将pooling层输出的向量转化为我们想要的预测结果,加上一个softmax层即可针对电影评价的分类任务,就是将其
    转化为正面,负面两个结果,文中还提到了过拟合的问题,因为实验种所使用的数据集相对较小,很容易就会发生过拟合现象,在实验过
    程种也会发现当迭代3000多轮的时候准确率就会接近1.所以这里引如dropout来减少过拟合现象,此外还可以考虑L2正则化等方法实
    现防止过拟合的功能.
    

路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 17:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部