textCNN 文本分类系列-tf2.0 keras实现(一)

本文介绍了如何使用TensorFlow 2.0的Keras API实现TextCNN模型进行文本分类任务,详细讲解了一维卷积运算、卷积层的工作原理,并展示了TextCNN的模型结构和卷积块的构建。
摘要由CSDN通过智能技术生成

写在前面:今天开始总结一下文本分类任务中常见的神经网络模型。
第一站textCNN

文本分类任务

文本分类任务是自然语言处理(NLP)中很重要的子任务,比如文本情感分类,对于一段话,比如评价,判断是积极的还是消极的。
在此我们用卷积神经网络来解决这个问题。

卷积神经网络

卷积神经网络最初是在14年左右应用到图像处理领域中的,由于卷积神经网络具有平移不变性和参数共享特点,有强大的特征提取能力(表征学习),在很多图像识别任务中取得了非常显著的效果,成为当时的STOA(最好的方案)。
在图像识别中,我们往往应用的是二维卷积核,我们想利用卷积神经网络提取到图像的空间特征,而由于图像有宽高两个维度,于是我们就是用二维卷积核。又如视频等输入,我们往往会用三维卷积来处理。
文本类的信息只有位置上的先后关系,我们就采用一维卷积核来处理
此部分简单介绍卷积的工作原理,会有专门一章来介绍卷积层。

二维卷积运算

卷积运算,引用于动手学习深度学习
上图所示,假设输入是一张图片方格内的值为其像素,*代表卷积运算,图片蓝色部分和内容和卷积核相对应的位置相乘,最后求和成为了第一个输出(蓝色部分)。
然后依次向右向下移动输入的选中部分,依次与卷积核进行运算得出全部的输出。

一维卷积运算

一维卷积运算如下图所示。

一维卷积可以将相邻的位置关联起来,这种方式就可以提取上下文特征。不同大小的卷积核可以提取不同范围的特征。

卷积层

在卷积层后缓解位置敏感的问题,我们会用到池化层进行下采样,池化层的计算方式和卷积类似。常见的池化层有最大池化层和平均池化层。此外,我们往往会在其中加上BatchNorm层以缓解卷积神经网络训练参数过多带来的过拟合问题。

TextCNN 模型实现

卷积块

我们是用tf2.0 中keras API实现的,我们将卷积+batchnorm+池化做成一个可以复用的块。

    def conv1D_with_bn_gp(self,filters,kernel_size):
        blk = K.models.Sequential(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值