笔记:计算机视觉与深度学习-北邮-鲁鹏-2020年录屏
写在开头(重复的)
1.课程来源:B站视频.
2.笔记目的:个人学习+增强记忆+方便回顾
3.时间:2021年4月17日
4.同类笔记链接:(钩子:会逐渐增加20210428)
第一讲.第二讲.第三讲.第四讲.第五讲.第六讲.第七讲.第八讲.第九讲.第十讲.第十一讲.番外篇一个简单实现.第十二讲.第十三讲.第十四讲完结.
5.请一定观看视频课程,笔记是对视频内容的有限度的重现和基于个人的深化理解。
6.注意符号 SS:意味着我的个人理解,非单纯授课内容,有可能有误哦。
—以下正文—
上节回顾(00:00-11:51)
经典网络解析
一、AlexNet
(一)认识AlexNet的结构
- 1.AlexNet网络的结构:
- 1.1计算网络层数时仅统计卷积层和全连接层;CONV是卷积层,NORM是归一化层(AlexNet的归一化层已经不常用了),MAX POOL是池化层,FC是全连接层。
- 1.2CONV1:96个11×11卷积核,步长为4,没有0填充。(CONV自带了一个ReLU激活函数)(原图227×227×3,本层输出55×55×96)
- 1.3MAX POOL1层:窗口大小3×3,步长为2。池化层的窗口大于步长,每次池化的区域有重叠。重叠有助于对抗过拟合(但效果一般,之后不用了)(本层输入同上输出,输出27×27×96)
- 1.5NORM1(局部响应归一化层):后续研究表明,更深的网络中该层对分类性能的提成效果并不明显,且会增加计算量与存储空间,所以后续不再使用,也不细讲。
- 1.6COVN2:256个5×5卷积核,步长为1,使用0填充p=2。(输入27×27×96,输出27×27×256)。
- 1.7MAX POOL2:输出13×13×256的特征图组。
- 1.8COVN3和COVN4:384个3×3的卷积核,步长为1,使用0填充p = 1。(输入13×13×256,输出13×13×384)
- 1.9COVN5:256个3×3的卷积核,步长为1,使用0填充p = 1。(输入13×13×384,输出13×13×256)
- 1.10MAX POOL3:输入13×13×256,输出6×6×256特征响应图组。
- 1.11接口分析,有MAX POOL3输出的相应图,如何输入给只接受向量信息的FC?答:将256张6×6的特征图一次展开,串接,得到一个尺寸为9216×1的列向量。(这就是多层的卷积网络对同一张图片分析后输出的特征信息,以列向量的形式组织)
- 1.12重要技巧:Dropout策略防止过拟合;使用加入动量的随机梯度下降算法,加速收敛;验证集损失不下降时,手动降低10倍的学习率;采用样本增强策略增加训练样本数量,防止过拟合;集成多个模型,进一步提高精度。
- 1.12.1SS手动降低10倍的学习率这一操作,意味着要显式的显示每一轮学习的进度,且要在程序中预留好重新输入学习率的接口。
(二)功能
- 1.卷积层在做什么?
可以理解为,FC之前的所有卷积层池化层归一化层构成了一个“超级卷积核”(PS:超级卷积核通过反向可视化之后,可以展现为一张图片),超级卷积核与图片卷积后,形成(不妨)256个特征响应图。 - 2.这些“超级卷积核”时从数据中习得的对于分类有意义的结构特征。
- 3.这些“超级卷积核”的输出,特征响应图是一种便于人类理解表示形式,它的物理存储是6×6×256的响应值,它还可以存储为256个值(其中每个值是6×6“特征响应图“的算术平均值)。
二、ZFNet
(一)结构
- 1.主体结构不变,但做了设计上的三个改进
- 2.对第一、二、三卷积核的改进,降低了图像细节损失的速度。在AlexNet中COVN1就使用步长为4的卷积核,一次损失太大。
- 3.重点要理解这种改进思维:在后续的研究中,人们发现在第三、第四卷积核中,已经能通过反向可视化在图片中找出某些语义结构,因此ZFNet增加了第三第四层卷积核的个数,既可以记忆更多的语义信息。
三、VGG16(至今仍然使用)
- 1.改进:放弃大尺度卷积核;串联小尺度卷积核,以此达到大尺寸卷积核的同等的感受野;深度更深、非线性更强,网络的参数也更少;去掉了AlexNet中的局部响应归一化层。
- 2.所有卷积层均采用3×3的卷积核及ReLU激活函数
- 3.所有的池化层采用最大池化,其窗口大小为2×2,步长为2(改进为无重叠的池化)
- 4.经过一次池化操作,其后的卷积层的卷积核个数就增加一倍,直至达到512。
- 4.1为什么前几层的卷积核个数可以少,后几层的卷积核个数要多:我们认为,前几层的卷积核学习到的是一些基元结构,而基元的总数是相对较少的,后几层能够反映一些基元组合后的具有某种语义的信息,这种基元的排列组合形式是非常多的。
- 5.VGG的主要贡献:证明了小卷积核等价替换大卷积核后效果更好;证明了局部归一化层没什么用; 证明加深深度使网络更有效果。
四、GoogLeNet
(一)创新点
- 1.提出了一种新的inception结构,他能保留输入信号中更多的信息。
- 2.去掉了AlexNet的前两个全连接层,并采用了平均池化,这一设计使得GoogLeNet只有500万参数,比AlexNet少了12倍。
- 3.在网络中引入了辅助分类器,克服了训练过程中的梯度消失问题。
(二)Inception模块
- 1.层数更深、参数更少、计算效率更高、非线性表达能力更强。
(三)averagepool
- 1.在最终的FC层前有一个平均池化层,将卷积网络输出的1000个特征响应图组,取平均值变成1000维列向量,交给了FC。
- 2.这一操作丢失了语义结构的空间位置信息,但忽略语义结构的位置信息,有助于提升卷积层提取到的特征的平移不变性。