目录
三、多层卷积的理解 和 CNN 网络bn、relu、pool层的顺序
一、为什么CNN可以用到文本处理中
1、CNN网络善于处理的场景
1、特征分布局部性
2、局部特征具有可平移性,参数共享(如一个人的脸放在图片任意一个位置都是那张脸)
3、特征具有收缩性(如图片分辨率的大小不会影响图片类别的判断)
2、CNN用于文本处理中的场景
2.1、CNN用于文本分类(尤其是长文本分类)
1、分析一下文本分类场景的特点:
① 特征具有局部性(如:一段话的类别往往会集中在某几个高重要性的短语上)
② 特征具有平移性(如:同一个重要短语可以出现句子中的任意位置)
③ 特征具有收缩性(如:去掉句子中一些不相关的词不会影响句子类别的判断)
④ 当文本过长时RNN分类效果不是很好
综上所述:文本分类符合CNN网络的处理场景
2、CNN网络处理文本分类的优点
① 可以提取更长文本的重要 n-gram 特征,CNN网络的输入可以作为RNN网络输入
② CNN 网络局部感知且参数共享,模型迭代速度快
二、激活函数区别
1、sign 函数
最开始感知机模型的激活函数
特点有以下几点:
① 激活函数是离散的输出,BP 过程会出现“偏转”现象,做无用的迭代
2、sigmoid 函数
由sign离散激活转化为 0-1 连续激活函数
特点有以下几点:
① sigmoid 在非“活跃区”容易出现梯度消失
② sigmoid 的输出结果均是>0的值,容易产生偏置效果,如果初始化的值不合适,可能永远达不到最优解。
3、tanh 函数
对sigmoid做改变,循环神经网络中通常使用的是tanh
特点有以下几点:
① tanh 输出值是0中心化的,不会出现偏置问题
② tanh 函数“活跃区”的梯度比sigmoid大,模型收敛速度快
③ tanh 函数同样存在非“活跃区”,它也会出现梯度消失或梯度爆炸
4、relu 函数
CNN通常使用的relu激活
tip:RNN网络中通常用的是tanh与sigmoid函数,不会使用relu,因为RNN内部有循环结构,使用relu容易导致数值爆炸
特点有以下几点:
① relu函数计算很简单,模型迭代速度很快
② relu“活跃区”梯度为1,不会出现梯度消失,relu右侧存在截取,不会存在梯度爆炸;relu同时存在失活区,可以屏蔽一些噪声
三、多层卷积的理解 和 CNN 网络bn、relu、pool层的顺序
0、conv2d 与 pool2d 的理解:
当 stride > 1 且没有padding时,多层conv2d具有下采样的作用,扩大感知视野【即便不使用pooling】
可以理解pooling是一种极端的下采样方式,相对conv2d来说,maxpool类似于仅仅是最大特征的参数为1其他区域参
数为0的卷积层
1、pool层的作用
① 增加模型的迭代速度 ② 增加感受视野
2、conv、bn、relu、pool顺序
conv --- bn --- relu ---- pool