深度学习笔记 Part3(转载)

转载深度学习笔记

来源|[email protected]知乎,https://zhuanlan.zhihu.com/p/152362317
本文仅用于学术分享,如有侵权,联系后台作删文处理

卷积神经网络–CNN篇

13. 卷积神经网络基础

深度学习笔记 Part3(转载)
计算机视觉任务涉及的数据体量是特别大的,一张图像就有上千个数据点,更别提高分辨率图像和视频了。这时用全连接网络的话,参数数量太大,因而改用卷积神经网络(CNN),参数数量可以极大地减小。CNN 的工作原理就像用检测特定特征的过滤器扫描整张图像,进行特征提取,并逐层组合成越来越复杂的特征。这种「扫描」的工作方式使其有很好的参数共享特性,从而能检测不同位置的相同目标(平移对称)。

卷积核对应的检测特征可以从其参数分布简单地判断,例如,权重从左到右变小的卷积核可以检测到黑白竖条纹的边界,并显示为中间亮,两边暗的特征图,具体的相对亮暗结果取决于图像像素分布和卷积核的相对关系。卷积核权重可以直接硬编码,但为了让相同的架构适应不同的任务,通过训练得到卷积核权重是更好的办法。

卷积运算的主要参数:

深度学习笔记 Part3(转载)
padding:直接的卷积运算会使得到的特征图越来越小,padding 操作会在图像周围添加 0 像素值的边缘,使卷积后得到的特征图大小和原图像(长宽,不包括通道数)相同。

常用的两个选项是:『VALID』,不执行 padding;『SAME』,使输出特征图的长宽和原图像相同。

stride:两次卷积操作之间的步长大小。

一个卷积层上可以有多个卷积核,每个卷积核运算得到的结果是一个通道,每个通道的特征图的长宽相同,可以堆叠起来构成多通道特征图,作为下一个卷积层的输入。

深度卷积神经网络的架构:

深度学习笔记 Part3(转载)
深度卷积神经网络的架构主要以卷积层、池化层的多级堆叠,最后是全连接层执行分类。池化层的主要作用是减少特征图尺寸,进而减少参数数量,加速运算,使其目标检测表现更加鲁棒。

14. 经典卷积神经网络

深度学习笔记 Part3(转载)
LeNet·5:手写识别分类网络,这是第一个卷积神经网络,由 Yann LeCun 提出。
AlexNet:图像分类网络,首次在 CNN 引入 ReLU **函数。
VGG-16:图像分类网络,深度较大。

15. 特殊卷积神经网络

深度学习笔记 Part3(转载)
ResNet: 引入残差连接,缓解梯度消失和梯度爆炸问题,可以训练非常深的网络。

Network in Network: 使用 1x1 卷积核,可以将卷积运算变成类似于全连接网络的形式,还可以减少特征图的通道数,从而减少参数数量。

Inception Network: 使用了多种尺寸卷积核的并行操作,再堆叠成多个通道,可以捕捉多种规模的特征,但缺点是计算量太大,可以通过 1x1 卷积减少通道数。

16. 实践建议

深度学习笔记 Part3(转载)
使用开源实现: 从零开始实现时非常困难的,利用别人的实现可以快速探索更复杂有趣的任务。

数据增强: 通过对原图像进行镜像、随机裁剪、旋转、颜色变化等操作,增加训练数据量和多样性。

迁移学习: 针对当前任务的训练数据太少时,可以将充分训练过的模型用少量数据微调获得足够好的性能。

基准测试和竞赛中表现良好的诀窍: 使用模型集成,使用多模型输出的平均结果;在测试阶段,将图像裁剪成多个副本分别测试,并将测试结果取平均。

17. 目标检测算法

深度学习笔记 Part3(转载)
目标检测即使用边界框检测图像中物体的位置,Faster R-CNN、R-FCN 和 SSD 是三种目前最优且应用最广泛的目标检测模型,上图也展示了 YOLO 的基本过程。

18. 人脸识别

深度学习笔记 Part3(转载)
人脸识别有两大类应用:人脸验证(二分分类)和人脸识别(多人分类)。

当样本量不足时,或者不断有新样本加入时,需要使用 one-shot learning,解决办法是学习相似性函数,即确定两张图像的相似性。比如在 Siamese Network 中学习人脸识别时,就是利用两个网络的输出,减少同一个人的两个输出的差别,增大不同人的两个输出之间的差别。

19. 风格迁移

深度学习笔记 Part3(转载)
风格迁移是一个热门话题,它会在视觉上给人耳目一新的感觉。例如你有一副图,然后将另一幅图的风格特征应用到这幅图上,比如用一位著名画家或某一副名画的风格来修改你的图像,因此我们可以获得独特风格的作品。