目录
1、三种经典的深度卷积网络
1.1、LeNet-5
1.2、AlexNet
1.3、VGG
2、残差网络
3、Inception 网络(Inception network)
4、迁移学习
5、数据增强
1、三种经典的深度卷积网络
1.1、LeNet-5
![深度卷积网络的实际应用_第1张图片](http://img.e-com-net.com/image/info8/ed973fb61aa1426b86b012de4fa307d6.jpg)
- 使用 sigmoid 函数和 tanh 函数,而不是ReLu 函数,这篇论文中使用的正是 sigmoid 函数和 tanh 函数
- LeNet-5 是针对灰度图片训练的,所以图片的大小只有 32×32×1
-
6 个 5×5 的过滤器,步幅为 1 。由于使用了 6 个过滤器,步幅为 1 , padding 为 0 ,输出结果为 28×28×6 , 图像尺寸从 32×32 缩小到 28×28 。然后进行池化操作
-
接下来是卷积层,用一组 16 个 5×5 的过滤器,新的输出结果有 16 个通道
-
池化层,高度和宽度再缩小一半,输出一个 5×5×16 的图像。将所有数字相 乘,乘积是 400
-
全连接层,在全连接层中,有 400 个节点,每个节点有 120 个神经元,这里已 经有了一个全连接层。但有时还会从这 400 个节点中抽取一部分节点构建另一个全连接层, 就像这样,有 2 个全连接层
-
最后一步就是利用这 84 个特征得到最后的输出,我们还可以在这里再加一个节点用来 预测^ 的值, ^ 有 10 个可能的值,对应识别 0-9 这 10 个数字
1.2、AlexNet
![深度卷积网络的实际应用_第2张图片](http://img.e-com-net.com/image/info8/e29faf10b2614f79be696627002e7dd5.jpg)
-
实际上,这种神经网络与 LeNet 有很多相似之处,不过 AlexNet 要大得多。正如前面讲
到的 LeNet 或 LeNet-5 大约有 6 万个参数,而 AlexNet 包含约 6000 万个参数。当用于训练图 像和数据集时,AlexNet 能够处理非常相似的基本构造模块,这些模块往往包含着大量的隐藏单元或数据,这一点 AlexNet 表现出色。 AlexNet 比 LeNet 表现更为出色的另一个原因是它使用了 ReLu 激活函数。 GPU 的处理速度还比较慢,所以 AlexNet 采用了非常复杂的 方法在两个 GPU 上进行训练。大致原理是,这些层分别拆分到两个不同的 GPU 上,同时还 专门有一个方法用于两个 GPU 进行交流
1.3、VGG
![深度卷积网络的实际应用_第3张图片](http://img.e-com-net.com/image/info8/8dcea0111ffe4c359778233c410cc195.jpg)
2、残差网络
![深度卷积网络的实际应用_第4张图片](http://img.e-com-net.com/image/info8/4aa39321698a4d58920ffb69ee6363fc.jpg)
-
非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题
-
跳跃连接( Skip connection ),它可以从某一层网络层获取激活,然后迅速反馈给另外
一层,甚至是神经网络的更深层
-
可以利用跳跃连接构建能够训练深度网络的 ResNets , 有时深度能够超过 100 层
-
在残差网络中有一点变化,我们将 [] 直接向后,拷贝到神经网络的深层,在 ReLU 非线
性激活函数前加上 [] ,这是一条捷径。 [] 的信息直接到达神经网络的深层,不再沿着主路
径传递,这就意味着最后这个等式 ( [+2] = ( [+2] ) ) 去掉了,取而代之的是另一个 ReLU 非 线性函数,仍然对 [+2] 进行 函数处理,但这次要加上 [] ,即: [+2] = ( [+2] + [] ) , 也就是加上的这个 []产生了一个残差块。ResNet 网络就是通过将很多这样的残差块堆积在一起,形成一个很深神经网络
3、Inception 网络(Inception network)
![深度卷积网络的实际应用_第6张图片](http://img.e-com-net.com/image/info8/5c0ccd585d2a4b58bd7b44b48dfd2e63.jpg)
- 构建卷积层时,要决定过滤器的大小究竟是 1×1,3×3 还是 5×5,或者要不要添加池化层。而 Inception 网络的作用就是代替你来决定,虽然网络架因此变得更加复杂,但网络表现却非常好
- Inception 网络是由 Google 在 2014 年提出的一种卷积神经网络结构,用于解决深层网络中的梯度消失和参数爆炸问题。其中,1*1 的卷积被广泛应用于通道的压缩
- 在 Inception 网络中,1*1 卷积被称为 Inception 模块的 1*1 分支。它主要用于降低网络的计算量和参数数量,同时也能够提高模型的表达能力。具体实现方式如下:
(1)、输入的特征图为 H * W * C ,其中 H 表示高度,W 表示宽度,C 表示通道数
(2)、通过使用 1*1 的卷积核,将输入的特征图进行通道的压缩。使用较小的通道数可以降低计算量和参数数量,同时也可以增加网络的非线性能力
(3)、1*1 卷积核的数量通常是根据需求进行设置的。例如,如果希望将输入特征图的通道数压缩为原来的一半,那么可以设置 1*1 卷积核的数量为 C/2
(4)、1*1 卷积的操作是逐像素进行的,即对于输入特征图的每个像素点,都会与 1*1 卷积核进行卷积运算
(5)、经过 1*1 卷积操作后,输出的特征图为 H * W * (C/2)
4、迁移学习
![深度卷积网络的实际应用_第10张图片](http://img.e-com-net.com/image/info8/da9dad9db7a947d790b6e42c8207e4b4.jpg)
- 如果有大量数据,应该做的就是用开源的网络和它的权重,把这、所有的权重当作初始化,然后训练整个网络。再次注意,如果这是一个 1000 节点的 softmax,而只有三个输出,需要自己的 softmax 输出层来输出你要的标签
5、数据增强
(1)、
垂直镜像对称:假如,训练集中有这张图片,然后将其
翻转得到右边的图像
![深度卷积网络的实际应用_第11张图片](http://img.e-com-net.com/image/info8/a4b052f7c9be42bc8b1bdd2efe016b58.jpg)
(2)、随机裁剪,给定一个数据集,然后开始随机裁剪,可能修剪这 个(编号 1),选择裁剪这个(编号 2),这个(编号 3),可以得到不同的图片放在数据集中,你的训练集中有不同的裁剪。随机裁剪并不是一个完美的数据增强的方法,如果你随机裁剪的那一部分(红色方框标记部分,编号 4),这部分看起来不像猫。但在实践中,这个方法还是很实用的,随机裁剪构成了很大一部分的真实图片