博主在之前的学习中接触过卷积神经网络,但仍对其一知半解,今天便趁此学习总结一下。

参考视频

参考视频:​​从“卷积”、到“图像卷积操作”、再到“卷积神经网络”,“卷积”意义的3次改变​

卷积神经网络_卷积核

卷积概念

1.卷积层将输入与核矩阵进行交叉相关,加上偏移后得到输出

2.核矩阵和偏移都是可学习的参数

3.核矩阵的大小是超参数

首先要知道卷积公式:

卷积神经网络_卷积_02


举得是一个吃饭的例子,

卷积神经网络_像素点_03


卷积神经网络_卷积核_04


是不是看着很别扭,我们将g函数翻转一下:

卷积神经网络_机器学习_05

其中按照那个视频介绍,f为不稳定输入,g为稳定输出,使用卷积来求系统存量

其可以理解为过去对现在的影响

这是对卷积公式的理解,而在图像的卷积操作中,如果我们的理解还是有些狭隘了。

我们可以将上述公式图像看作某个位置对另一个位置的影响情况,延申到图像中也就是其他像素点对当前像素点的影响,这样理解是不是就更直观了呢

如我们找到了这样一个卷积核

卷积神经网络_卷积核_06


这个卷积核的左右是将某个像素点周围的像素点相加求平均,这种卷积操作可以使图像更加平滑朦胧,从而称作平滑卷积操作

卷积神经网络_机器学习_07


通过这个例子,我们可以理解为卷积核规定了周围像素点对当前像素点的影响情况

卷积神经网络_卷积_08


卷积神经网络_卷积_09


看着是不是有些拧巴,不要紧我们将其翻转一下,是不是就是一一对应了呢

卷积神经网络_卷积_10


根据以上分析我们可以得出结论,g函数并不是我们的卷积核,而其旋转180度后才是我们的卷积核

卷积神经网络_像素点_11


是不是又有了一种卷积翻转的感觉呢,这大概便是图像卷积的意义吧。

1.卷积核:卷积核就是图像处理时,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权值由一个函数定义,这个函数被称为卷积核。

2.有效填充后特征图的尺寸为:
height=(H-h)/S+1;
width=(W-w)/S+1;

H,W分别是输入图的尺寸,h,w分别是卷积核的尺寸

卷积神经网络_机器学习_12


卷积神经网络_机器学习_13


卷积神经网络_卷积核_14


接下来我们再来理解什么是卷积神经网络,在上一步骤为,我们认为图像卷积是利用卷积核让周边像素对某一个像素点施加影响,那么在我们的特征提取中,我们也可以理解为他可以规定如何去影响,比如让某个特征更加明显,这不就是做到了特征提取的功能了吗,如下图:

卷积神经网络_卷积_15


这其实便是通过选择合适的卷积核来对图像进行过滤,从而保留我们想要的特征,这种卷积核便是过滤器

这种情况下的卷积核通过对一些我们想要的位置的特征我们便可以进行试探与选择,而卷积核便是我们的模板,只要周边的元素特征符合我们的模板,我们便将其通过卷积核上的权值来进行放大,而对那些我们不想要的我们则可设置权值为0从而消除这种特征,这也就实现了特征选择,过滤器的功能了。

应用

卷积神经网络_机器学习_16


卷积神经网络_机器学习_17


卷积神经网络_像素点_18

代码实现

卷积神经网络_像素点_19


卷积神经网络_像素点_20


卷积神经网络_像素点_21


卷积神经网络_机器学习_22


卷积神经网络_卷积核_23


**batch_size:**整数,指定进行梯度下降时每个batch包含的样本数。训练时一个batch的样本会被计算一次梯度下降,使目标函数优化一步。

关于卷积层填充与步长

填充的意义

卷积神经网络_卷积核_24


填充的规则

卷积神经网络_卷积_25

步幅

卷积神经网络_像素点_26


卷积神经网络_卷积核_27


卷积神经网络_卷积_28


卷积神经网络_卷积核_29


卷积神经网络_像素点_30

超参数:通道数

卷积神经网络_卷积_31


卷积神经网络_卷积核_32


卷积神经网络_卷积核_33


卷积神经网络_卷积核_34


卷积神经网络_卷积核_35


卷积神经网络_机器学习_36

池化层

卷积神经网络_像素点_37