Understanding Convolutional Neural Networks for NLP
卷积
应用于矩阵的滑动窗口函数。滑动窗口又称内核,过滤器或特征检测器。 我们使用3×3滤波器,将其元素值与原始矩阵相乘然后相加。 通过在整个矩阵上滑动滤波器来为每个元素执行此操作获得完整的卷积。
(1)用相邻值对每个像素求平均使图像模糊
(2)取像素与其邻居之间的差异来检测边缘
CNN
CNN基本上是几层卷积,利用非线性激活函数如ReLU或tanh对结果进行处理
计算特点:位置不变性和组合性
CNN for NLP
输入:表示为矩阵的句子或文档,矩阵的每一行对应一个单词或字符(word2vec, GloVe, one-hot vectors可进行词映射)
filter:“宽度”通常与输入矩阵的宽度相同;高度或区域大小可能有所不同,但典型的滑动窗口大于2-5个单词或字符
CNN超参数
狭窄卷积与宽卷积
zero-padding:所有落在矩阵之外的元素都被认为是零
输出:
窄卷积的输出:(7-5)+1=3,宽卷积的输出:(7+2*4-5)+1=11
步幅大小
每一步过滤器移动的长度
池化
池层对其输入进行子采样, 将最大操作应用于每个过滤器的结果
池化提供固定大小的输出矩阵
池化会降低输出维数,但可以保留最显着的信息
通道
可以为不同的单词映射(如word2vec,GloVe)设置单独通道,可以为不同语言表示的相同句子设置通道,或以不同方式表达
CNN在NLP中的应用
1.分类任务的应用:情感分析,垃圾邮件检测或主题分类
2.CNN架构的建立:超参的选择--输入的表示(word2vec,GloVe,one-hot),卷积滤波器的数量和大小,池化策略(最大值,平均值)和激活函数(ReLU,tanh)
max-pooling总是超过average-pooling
理想的滤波器尺寸很重要,但与任务有关
正规化在NLP任务没有产生很大不同