参考:
- d2l
- 今日学习——卷积神经网络(CNN)
https://blog.csdn.net/m0_61165991/article/details/124176077
- 图像工程(上册)-图像处理
- 傅里叶变换
https://blog.csdn.net/qq_43369406/article/details/131350139
x.1 前储知识(optional可跳过)
x.1.1 信号处理
x.1.2 数字图像处理
参考图像工程(上册)-图像处理
x.1.2.1 空域/时域
x.1.2.2 傅里叶变换
参考傅里叶变换 https://blog.csdn.net/qq_43369406/article/details/131350139
x.1.2.3 频域
x.2 filter/kernel例子,二维卷积
filter滤波器/kernel卷积核的概念的由来是信号处理和数字图像处理技术,卷积就类似空域中的模板卷积,下面来举一个边缘检测的小例子,
上面这个操作,也就是我们常说的2-D卷积的操作,参看卷积是什么https://blog.csdn.net/qq_43369406/article/details/131351280
x.3 From Fully Connected Layers to Convolutions
x.3.1 CNN和图像的性质
我们学习了线性模型,非线性模型如MLP,MLP适合处理表格数据,行对应样本,列对应特征,对于表格类数据我们使用MLP来寻找特征间交互的通用模式(PR)。我们也可以将多张图片展平为多个一维向量后传入MLP训练,但是这会忽略每张图片的空间结构信息,例如第一行第一个像素和第二行第一个像素它们是相邻的,但是展平为一维向量后,我们往往会丢失这一层关系。
为了更好利用相邻像素间的相互关联性这一先验知识,诞生了convolutional neural network, CNN, 卷积神经网络。CNN具有如下优点:
- CNN需要的参数少于Full Connect Neural Network(FCNN)
- 卷积易于用GPU并行计算
- CNN适合图像
卷积神经网络的提出需要具有两种假设,translation invariance平移不变性,locality局部性,这些性质都可以在下图中寻找特定人Waldo得到体现
- translation invariance: 不管检测对象出现在图像中的那个位置,神经网络的前面基层应该对相同的图像区域具有类似的反应。
- locality: 神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系。
x.3.2 卷积操作
我们参考数学中的卷积,再不进行翻转的情况下只考虑互相关运算;在考虑局部性质后,我们只选取小于原图大小的尺寸较小的卷积核,即限制在2 delta的范围;考虑多个通道的存在我们引入四维表示,第一第二纬度是长宽,第三纬度(输入通道数),第四维度(输出通道数)。最终我们得到卷积计算公式如下(严格意义上讲是cross-correlation互相关计算公式后再加上bias偏置),式中V是卷积核值,X是输入特征矩阵值,H是输出特征矩阵值,u是bias:
我们可以更改卷积核中的参数以达到不同效果,如平滑或者锐化。而CNN则是将卷积核中参数设置为可学习的,通过将输出特征矩阵和label进行运算,反向传播卷积核中的参数,以使得CNN模型能够达到在图像中找到我们所需要的物体的结果。
x.3.3 receptive field
在CNN中,互相关运算称为卷积运算;卷积核张量上的权重称为元素。
receptive field感受野,指的是:对于某一层的任意元素x,其感受野指在forward propagation, FP前向传播期间可能影响该层元素x计算的所有元素,来自于前面的所有层。例如在上面的output中19的感受野就是input的四个位置元素。