霹雳吧啦wz学习笔记1_卷积神经网络
卷积神经网络
CNN(Convolutional Neural Network)
它的雏形是1998年LeCun的LeNet网络结构,卷积神经网络发展历程中的第一个卷积神经网络
Convolutions 卷积层
Subsampling 下采样层
Full connection 全连接层
只要包含了卷基层的神经网络都可以理解为卷积神经网络
全连接层:
全连接层就是由许许多多的神经元共同连接而得来的
BP神经网络
如果将神经元按列进行排列,列与列之间进行全连接,就得到一个BP神经网络
- 从左到右的正向传播过程中能够得到一个输出值,将这个输出值和所期望的输出值进行对比就能得到一个误差值
- 通过计算每个节点的偏导数就能够计算得到每个节点的误差梯度
- 将得到的损失值反向应用到损失梯度上,就达到了误差的反向传播过程
卷积层:
卷积就是一个滑动窗口在我们的特征图上进行滑动并计算
卷积的计算方式
12:04
卷积的目的就是为了进行图像的特征提取
卷积的特性
拥有局部感知机制:以滑动窗口的形式在特征图上进行滑动计算,所以具有局部感知能力
权值共享:滑动过程中,卷积核的值不会发生变化,所以又具有权值共享的特性
权值共享的优势(对比BP神经网络)
这里的参数指的是神经元的权重
权值的共享使得卷积神经网络的参数个数大幅度减少
卷积的过程
实际应用过程中往往是对多维的特征矩阵进行卷积操作
卷积核的深度要和输入特征矩阵一致(这里的深度指的是channel,即通道数),都是三维的,最终卷积得到的矩阵是由三通道的输入特征矩阵和三通道的卷积核分别对应卷积,再对应相加后得到一个卷积矩阵
总结
1、卷积核的cahnnel与输入特征层的channel相同(都是三通道)
2、输出的特征矩阵channel与卷积核的个数相同(通过卷积核1和卷积核2最终得到一个两通道的输出特征矩阵)卷积的目的:进行图像特征提取
卷积核的channel与输入特征层的channel相同
输出的特征矩阵channel与卷积核个数相同
思考
1、如果加上偏移量bias该如何计算
卷积核1输出得到的特征矩阵,加上偏移量-1之后是0200
卷积核2输出得到的特征矩阵,加上偏移量1之后是2232
2、加上激活函数该如何计算?
常见的激活函数:sigmoid激活函数,Relu激活函数
-
为什么要使用激活函数?在线性的计算过程中引入非线性因素,使其具备解决非线性问题的能力
-
Relu激活函数实际上是将负值全部过滤掉,只保留了正值不变,在实际应用中使用较多
-
在反向传播误差的过程中,如果使用sigmoid激活函数,导数的求解非常麻烦
-
如果使用Relu激活函数,权重如果进入失活状态后无法被再次激活,所以在训练的过程中,建议不要一开始就使用特别大的学习率进行学习,否则很容易导致大量神经元失活
-
卷积过程中出现越界怎么处理:通过padding,补0进行处理
-
padding的像素p:一般实际应用过程中是两边同时补零,即左右上下进行对称的:补零操作
-
上图中只补了一边,所以只用加上一个p就够了
-
N = ( 4 - 3 + 1 )/ 2 + 1 = 2 ,所以最后得到一个2*2的特征矩阵
AveragePooling平均下采样层(取平均值)
池化层
池化层的目的:对特征图进行稀疏处理,减少数据运算量
MaxPooling最大池化下采样层(取最大值)
averagepooling下采样层:寻找池化核对应范围内的平均值来进行平均下采样操作
池化层的特点:
1.没有训练参数
2.只改变特征矩阵的w和h,不改变channel
3.一般poolsize和stride相同