本slide主要介绍当前流行的一些DNN以及数据集
slide链接
https://www.rle.mit.edu/eems/wp-content/uploads/2019/06/Tutorial-on-DNN-02-Popular-DNNs-datasets.pdfwww.rle.mit.edu![d79c8a12ab4f9ddfac0fe03cbda0d8f5.png](https://i-blog.csdnimg.cn/blog_migrate/da9b705ad028f04d338d85abf581c9a9.jpeg)
从“古老”的LeNet开始,AlexNet开启了近10年的深度学习热潮,ResNet当前非常火热,效果也很好。也可以参考阅读之前的文章的简单介绍,下面会进行详细介绍。
严忻恺:深度学习入门-深度学习(一)zhuanlan.zhihu.com![dfc003fa683bd2c4dde861c78e85a8bd.png](https://i-blog.csdnimg.cn/blog_migrate/9f1acb146bcc7f476723c55ae4907994.jpeg)
MNIST数据集是最典型的手写数字识别数据集。它包含了数字0~9的10个类型,每个数字图片28x28的像素,有60000个训练集和10000个测试集
![d61eb4cf10af894bc1897c76ea56fc70.png](https://i-blog.csdnimg.cn/blog_migrate/3a3230a7cc76d5878caad07929c25218.jpeg)
![709b856cf2472a32f690e3215e753e6a.png](https://i-blog.csdnimg.cn/blog_migrate/0f8982306833db373ae64f384cf97d05.jpeg)
LeNet-5是基于MNIST数据集的数字分类神经网络,由于层数不多所以还称不上是深度
![4e5fc1d49033ff188f1092d0d1ed3fdc.png](https://i-blog.csdnimg.cn/blog_migrate/73493e60d011163e764e68c24d6aad5f.jpeg)
IMAGENET是一个图像数据集,给个别人的介绍吧
ImageNet图像数据集介绍_网络资源是无限的-CSDN博客blog.csdn.net![8838e368eef735349fed783a5e1135c4.png](https://i-blog.csdnimg.cn/blog_migrate/2a7d7ddf7b862b19f0d7a3cb71a9f370.jpeg)
基于Imagenet的图像识别比赛就是ILSVR,选出识别精度错误率最低的5名
AlexNet是ILSVRC12年的冠军,此网络一出甩开了传统图像识别精度一大截,也掀起了深度学习的热潮.
![ebe28fcdd4432f635d9c2743d18d2283.png](https://i-blog.csdnimg.cn/blog_migrate/de439ee54dca53783609bad21fdb4896.jpeg)
AlexNet有5个卷积层,3个全连接层,使用ReLU作为激活函数。它的权重有61M个,乘加MAC有724M次。
![66327f6a38600b6a0c394ad0ff049083.png](https://i-blog.csdnimg.cn/blog_migrate/2cce8b41ae63a608eb0ec68e0e73113a.jpeg)
可以看到AlexNet有8层深度,前五层为卷积层,后三层为全连接层。
由于输入图像是彩色的有RGB三个通道,图像大小为224x224,即输入数据规模为224x224x3,对应L1层使用的filter大小为11x11x3,即对每个通道完成11x11的卷积。
L2层使用5x5的卷积,L3层~L5使用3x3对的卷积。
![6786954d353e9a41225322fecba0cbcf.png](https://i-blog.csdnimg.cn/blog_migrate/549e56fdfb93b6cd0a2ea062ad24e352.jpeg)
可以看到第一层的权重有11(R)x11(S)x3(C)x96(M)=34848=34k个,由于stride为4,可以迅速的减少输出特征图的大小;
根据当前层的M等于下一层的C,所以第一层输出的特征图共96组,AlexNet将分为两组,每组48个通道;两组共享权重,所以第二层的权重有5x5x48x256 =307200=307k个
依次类推,权重的总数量还是挺大的。
![3819789235f444c40caf58fc9da814e6.png](https://i-blog.csdnimg.cn/blog_migrate/f47a61c35012bacef8a3a0131eb44f4f.jpeg)
图中详细给出了每一层使用的组件和每一层权重的个数。
![e3a64d5dcd774b42449d6c49d58b426f.png](https://i-blog.csdnimg.cn/blog_migrate/1679b868158a7507ef4f10e5e9aaf00c.jpeg)
VGG-16是16层的VGG结构网络,也有19层版本的。VGG-16的权重个数为138M,乘加操作为15.5G个。相比于Alexnet,VGG网络层数更多,即深度更深。
![cc9a1bfcc849b94c8a3733da42e55a4c.png](https://i-blog.csdnimg.cn/blog_migrate/9bd54e4e87767212909832079d453d55.jpeg)
![23149989509cce7dc61e4dc525f429c0.png](https://i-blog.csdnimg.cn/blog_migrate/66f086cc563853f895b74e0a9d44560b.jpeg)
更深的网络也意味着更多的权重,所以使用多个较小的filter(比如3x3的卷积核)来完成一个大卷积,比一次使用一个大卷积核能少使用权重。比如5x5的卷积需要25个权重,而2个3x3的卷积只需要18个权重。
![c7c90e0d596e3d085ad448705029298e.png](https://i-blog.csdnimg.cn/blog_migrate/3498af98b2dd781915c987c1c6e1e0ca.jpeg)
GoogleNetV1是ILSVRC14的关键,目前为止它还有v2、v3和v4的版本
![57b0226d6fa1ea5cf2b5634ddfc3c442.png](https://i-blog.csdnimg.cn/blog_migrate/bf4ef9816273dea118e906a2f8624704.jpeg)
GoogleLeNetV1总共有21层深度卷积层,但是总共有57个卷积层,这是因为它采用了每层在横向并行处理的方法而并不是一味加深深度。并且使用了1x1的卷积来减少权重和乘法的数量。
![4c83610c2e65db410e1cbe7ad7fe1c04.png](https://i-blog.csdnimg.cn/blog_migrate/b4beb23592a512439056bc2590ae4f59.jpeg)
使用1x1的卷积处理多个通道卷积,可以减少下一层的通道数量。这是因为虽然特征图大小没有改变,但是C张输入特征图经过1x1卷积后为1张输出特征图,这样的好处是存储压力可以极大的减少,还可以降低算力。
![13487dfe192e02b5ee59decc3a1ff4c6.png](https://i-blog.csdnimg.cn/blog_migrate/38a52020ccecec9fe715a7fdcca3cd91.jpeg)
在大卷积之前使用1x1的卷积,可以减少权重和乘法次数,乘法数量从854M个减少到358M个。
![7c791e483ac610dd767996e551427216.png](https://i-blog.csdnimg.cn/blog_migrate/eeee3ee0664d439cb356719aa6553f95.jpeg)
Resnet是ILSVRC15的冠军,它就更深了,达到了152层。不过效果也很明显,错误精度直接到了3.57%。
![2e5c9c9d0ae1c046d68254c9b801aaed.png](https://i-blog.csdnimg.cn/blog_migrate/564eee8f95f321735fca3e495f9b1aff.jpeg)
训练和验证误差会随着层数的增加而增加,这是由于梯度消失带来的代价,为了解决这个问题,Resnet引入了残差块(short cut module)。
![425f41d676066e5b45a53d4d49ae1d16.png](https://i-blog.csdnimg.cn/blog_migrate/dea51dca006cbcb164943a4efd89f7fc.jpeg)
残差块的思路就是将很多层之间的特征图和当前层的进行相减得到残差值,再用残差值去更新神经网络,这样可以解决梯度消失的问题,也就可以将网络做的更深了。不过带来的问题就是要存储多层以前的数据。slide右边可以看到除了第一层是卷积层,最后一层是全连接层外,中间所有的层都是残差层。
![d7afb314a5a58db40720782273a422ae.png](https://i-blog.csdnimg.cn/blog_migrate/a4c8cc6c9d61bc6dffb9c471f5796f1e.jpeg)
继承GooleNet的思路,也使用1x1的卷积来减少计算量和规模,从而使网络做的更深。
![1729c38f86ceb35c62b6c818eb0d7855.png](https://i-blog.csdnimg.cn/blog_migrate/9c926eb8ebbbe51ba37f4c8285e5a7e4.jpeg)
比较一下讨论的以上网络的各个指标参数,会发现卷积层对各个指标的影响非常重大。
下面介绍几个近几年的高效网络。
![f71192d1db489d9b9a7e18f5d86683df.png](https://i-blog.csdnimg.cn/blog_migrate/383efd69ab62bbdfb421049c77f73bd8.jpeg)
DenseNet是17年提出的网络,它大量的使用了密集块。密集块的核心思想是将特征图concat(拼接合并,通道组,没有加法乘法操作)起来而不是加起来。
![bf2e49cc42f37880bc842dad204c644c.png](https://i-blog.csdnimg.cn/blog_migrate/2a9e127edfa8893de87051a6a7e188ff.jpeg)
它比Resnet有更高的精度,更少的权重数量和乘法数量。
![0bda6ac5642e9230a54b8bc330f3a575.png](https://i-blog.csdnimg.cn/blog_migrate/2d261fc3a13ca109d78b6db8400cd5d3.jpeg)
WideResNet是对ResNet网络的优化,核心思路是增加计算并行。因为它采用加宽而不是加深网络的方法,它采用了更宽的残差块,将152层的ResNet减少到了50层。因为相比于增加深度,增加宽度对并行计算来说更友好。
![85b0c72ef0309f96a82c158229ac511e.png](https://i-blog.csdnimg.cn/blog_migrate/d41a6418cec56cc9c73e3fb4327804a9.jpeg)
ResNeXt采用了分组卷积的方式,它将一个残差块内部的实现分为32组来处理,分组卷积也可以减少计算量。
所以综上所述,我们可以总结出一些有效的提升DNN的方法。
![83efd340c313f55e9614ca3b64b54713.png](https://i-blog.csdnimg.cn/blog_migrate/3c113d5a47c820a31008f35e1585821f.jpeg)
1.使用1x1的卷积
![29c2be793b00907eb132181f95230b8f.png](https://i-blog.csdnimg.cn/blog_migrate/a0630e30356a8ed2df364df51dc3a87e.jpeg)
2.使用多个小卷积核来完成大的卷积
![efbdbc5fea52209ee67df6375d8feba1.png](https://i-blog.csdnimg.cn/blog_migrate/dd78772dec42491ecde45b14e18e8235.jpeg)
3.将通道和空间解耦合进行相关处理
![193aa74349e594a9edeedd41e568482d.png](https://i-blog.csdnimg.cn/blog_migrate/c5d9243b5d4f13a471799891134f33e0.jpeg)
4.采用分组卷积,用合并操作代替来减少权重和乘法数量
![9a51893bcabfc25738b337b7595829d4.png](https://i-blog.csdnimg.cn/blog_migrate/31707b4ae91979fe4c1b2bc4f9084d03.jpeg)
不过这些都有效的方法也会带来一定的复杂度,比如存储代价等。所以我们设计神经网络的时候要在精度和复杂度之间选取平衡。
数据集
图像分类数据集,图像分类/识别,不用检测
![b57b8bd5d11cfd092f89db292fd8ba53.png](https://i-blog.csdnimg.cn/blog_migrate/adb4f403bc045b97b113e6c7663cbe74.jpeg)
现在的一些数据集
![966d05cde03b4f6f75b86ad09590761f.png](https://i-blog.csdnimg.cn/blog_migrate/3f3bb5bce523efd7f0a5a5a88eec259e.jpeg)