以下内容是自己学习北京邮电大学鲁鹏副教授计算机视觉与深度学习课程(A02)的一些笔记,
笔者能力有限,如有错误还望各位大佬在评论区批评指正 。
先贴一下课程官网:CV-XUEBA
卷积的一些知识可以看上篇,地址:计算机视觉与深度学习-卷积&图像去噪&边缘提取
写在开头:笔者是上篇和这篇这两节课一起听的,所以对卷积神经网络各个层有了一个比较清晰的认识,由于笔者能力有限,有很多内容笔者自认为并没有很好的写出来,所以这篇文章有点简短,如果大家看后有比较大的疑问,十分建议大家去看看老师的课,真的很棒。
1、全连接神经网络的瓶颈
2、卷积神经网络
2.1 卷积神经网络的组成
2.2 卷积网络的卷积核
2.3 卷积层
2.4 卷积步长
3、池化层
4、图像增强
前面学习了一下全连接神经网络,但是当图像越大时,隐层的每个神经元的权值个数就越大,当达到一定规模后,系统可能就跑不动了。以CIFAR10为例,每张图片的尺寸是32x32x3,那么隐层的每个神经元的权值个数就是32x32x3+1。因此全连接神经网络适合处理小图像,或者已经将图像表示为向量的情况,例如我们可以把卷积后得到的向量作为全连接神经网络的输入,这样就可以减轻系统的负担。
卷积层(CONV):对图像卷积得到特征响应图。
激活层(RELU):对卷积输出的结果通过激活函数(一般是RELU函数)后输出。
池化层(POOL):简单计算,增大感受野。
全连接层(FC):也就是全连接神经网络,接收向量的输入,输出类别的向量。可以理解为前四层是一个大的卷积核,输出的是特征响应图。
卷积网络的卷积核不仅有宽和高,还有深度,也就可以是说这个模板是立体的,常写成:宽度 x 高度 x 深度。
卷积核参数不仅包括核中存储的权值,还包括一个偏置值。数学公式:,其中w为卷积的权值,b为卷积核的偏置。
通过对图像卷积就可以得到一张特征响应图。
再用其他的卷积核卷积就可以得到多张特征响应图,需要注意的是,原图像的深度需要与卷积核深度一致,特征响应图个数与卷积核个数一一对应。由于卷积核的不同,得到的特征响应图就放映了对应卷积核基元的信息。
卷积神经网络中,卷积核可以按照指定的间隔进行卷积操作,这个间隔就是卷积步长。
在不考虑深度的情况下,有以下关系:
前面我们已经知道,在卷积过程中会出现需要进行边界填充的问题,最常用的是零值填充,零值填充数量p是指填充像素的行数或者列数,那么存在以下关系:
边界填充公式即可以正向求出特征图尺寸,卷积前后的图像大小一致时,也可以反过来求出需要填充像素的个数,当然上述都是在其他都已知的情况下。
在加入深度后,结合上面卷积层的知识点,我们可以很清晰的知道,输出特征图尺寸的深度D2=K(卷积核个数)
池化的作用:对每一个特征响应图独立进行,降低特征响应图组中每一个特征响应图的宽度和高度,减少后续卷积层的参数的数量,降低计算资源耗费,进而控制过拟合。
常见的池化操作:
1.最大池化:使用区域内的最大值来代表这个区域。将窗口内最大的基元保留下来,类似于非极大值抑制。
2.平均池化:采用区域内所有值的均值作为代表。
池化操作不改变图像的深度,只改变图像的宽度和高度。
由于现在的卷积神经网络越来越复杂,非常容易出现过拟合现象,因此需要数据增强来扩充数据集。
数据增强:是从现有的训练样本中生成更多的训练数据,其方法是利用多种能够生成可信图像的随机变换来增加样本。
数据增强的目标是让模型能够观察到数据的更多内容,从而具有更好的泛化能力。
数据增强的方法有:纺专,随机缩放,抠图,拉伸,径向畸变等等,详见之前篇。
*再次申明这只是笔者自学课程的一些笔记,想着学了留下点东西,限于笔者能力有限,
如有错误还望大神指正。如果觉得笔者水平太低大可当作饭后消遣。希望我们在视觉学习的道路上勇往直前!