卷积运算
卷积运算可划分为三种:Same卷积、Valid卷积、Full卷积(反卷积)。
- 为什么要padding
因为在卷积/池化过程中过滤器可能不能将某个方向上的数据刚好处理完
Same卷积
通过Padding填充0运算保证卷积前后特征图大小不变
Valid卷积
不补零,忽略边界,特征图会变小
Full卷积
实现反卷积运算的核心步骤是在特征图中padding 0,然后进行卷积运算使得特征图变大。
FCN反卷积
首先对特征图各神经元之间进行0填充,即上池化;然后再进行卷积运算
卷积层
作用
:提取特征
使用
:输入数据与卷积核卷积生成卷积层矩阵
卷积层矩阵shape计算:
padding = SAME
out_h = ceil(in_h/strides[1])
out_w = ceil(in_w/strides[2])
padding = VALID
out_h = ceil((in_h-f_h+1)/strides[1])
out_w = ceil((in_w-f_w+1)/strides[2]
pytorch计算公式:https://blog.csdn.net/a132582/article/details/78658155
特性
:参数共享
其他
:
- 卷积时,通常会使用多个卷积核对图片进行卷积,每个卷积核的通道数和输入图片的通道数保持一致,卷积核的个数决定了feature map层的通道数。
- 感受野:感受野是卷积神经网络每一层输出的特征图(Feature Map)上的像素点在原始图像上映射的区域大小。
- 卷积层需要指定的超参数:filter个数(K)、filter大小(F)、步长(S)、边界填充(P)
- 关于卷积核的个数,理论上是初始化套数越多越好,初始化多套卷积核,提取的特征就会多样化,机器学到的东西就更多,有利于提高准确率
激活函数
将卷积层的输出做一次非线性映射,大部分卷积神经网络中,基本都是采用的relu函数
作用
:
- 用来加入非线性因素(实际问题中,样本不一定是线性可分的)
- 构建稀疏矩阵:可以去除数据中的冗余,最大可能保留数据的特征
常用激活函数
实际模型中最常用的还是RELU,注意学习率的设置以及死亡节点所占的比例即可
激
活
函
数
应
该
具
有
的
特
性
\color{#6495ED}{激活函数应该具有的特性}
激活函数应该具有的特性 :
- 非线性。
- 连续可微。梯度下降法的要求
- 范围最好不饱和。当有饱和的区间段时,若系统优化进入到该阶段,梯度近似为0,网络的学习就会停止
- 单调性。当激活函数是单调时,单层神经网络的误差是凸的,好优化。
- 在原点近似线性。这样当权值初始化为接近0的随机值时,网络可以学习的快,不用调节网络的初始值。
常
用
的
激
活
函
数
\color{#6495ED}{常用的激活函数}
常用的激活函数 :
1
、
s
i
g
m
o
i
d
函
数
\color{#8FBC8F}{1、sigmoid函数}
1、sigmoid函数
缺点:饱和时梯度值非常小。BP算法方向更新时是以连乘的方式传递到前层,当层数较多时就会使得梯度消失
2
、
T
a
n
h
函
数
\color{#8FBC8F}{2、Tanh函数}
2、Tanh函数
3
、
R
E
L
U
函
数
\color{#8FBC8F}{3、RELU函数}
3、RELU函数
该函数的提出很大程度上解决了BP算法在优化深层神经网络是的梯度消失问题
优点
:x>0时,梯度恒为1,无梯度消失问题,收敛快
增大了网络的稀疏性。x<0时输出为0,稀疏性也大,提取出的特征就越具有代表性,泛化能力越强
缺点:如果后层的某个梯度特别大,导致W更新以后变得特别大,导致该层输出0,成为死亡节点
当学习率比较大时可能会有40%的神经元都会在训练开始就死亡
4
、
L
e
a
k
y
R
e
l
u
函
数
\color{#8FBC8F}{4、Leaky Relu函数 }
4、LeakyRelu函数
5
、
M
a
x
o
u
t
函
数
\color{#8FBC8F}{5、Maxout函数}
5、Maxout函数
池化层
对输入的特征图进行压缩,一方面使特征图变小,简化网络设计复杂度;另一方面进行特征压缩,提取主要特征
池化操作一般有两种:1、avy pooling ,2、max pooling
作用
:池化层往往出现在卷积层的后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合),那么池化层的作用就是压缩图像
主要功能
:通过逐步减小表征的空间尺寸来减小参数量和网络中的计算;池化层在每个特征图上独立操作。使用池化层可以压缩数据和参数的量,减小过拟合
具
体
作
用
\color{#6495ED}{具体作用}
具体作用 :
- 特征不变性:去掉无关紧要的信息,留下最能表达图像的特征(平移不变性,选择不变性,尺度不变性)
- 特征降维:去除冗余信息,提取重要的特征
- 在一定程度上防止过拟合,更方便优化
- 可以扩大感知野(如何扩大感知野:通过下采样的方法,使得原来的一小块代表更大的区域)
全连接层
连接所有的特征,将输出值送给分类器(比如softmax分类器)
CNN之优缺点
优点:
- 共享卷积核,对高维数据处理无压力
- 无需手动选取特征,训练好权重,即得特征分类效果最好
- 深层次的网络抽取图像信息比较丰富,表达效果好
缺点: - 需要调参,需要大量样本集,训练最好用gpu
- 物理含义不明确(不知道每个卷积层提取的特征是什么)
卷积神经网络之fine-tuning
fine-tuning:就是使用已用于其他目标、预训练好模型的权重或部分权重,作为初始值开始计算
不用随机选取几个数作为初始权重的原因:
- 自己从头训练卷积神经网络容易出现问题
- fine-tuning能很快收敛到一个较理想的状态,省时又省心
fine-tuning的具体做法: - 复用相同层的权重,新定义层取随机权重初始值
- 调大新定义层的学习率,调小复用层的学习率