首页 > 其他分享 >吴恩达深度卷积网络——经典卷积

吴恩达深度卷积网络——经典卷积

时间:2023-03-01 16:57:06浏览次数:51  
标签:吴恩达 训练 卷积 网络 layer 神经网络 经典 Inception

1. LeNet-5

特点:

  • LeNet-5 针对灰度图像而训练,因此输入图片的通道数为 1。
  • 该模型总共包含了约 6 万个参数,远少于标准神经网络所需。
  • 典型的 LeNet-5 结构包含卷积层(CONV layer),池化层(POOL layer)和全连接层(FC layer),排列顺序一般为 CONV layer->POOL layer->CONV layer->POOL layer->FC layer->FC layer->OUTPUT layer。2个卷积+3全连接。
  • 当 LeNet-5模型被提出时,其池化层使用的是平均池化,而且各层激活函数一般选用 Sigmoid 和 tanh。现在,我们可以根据需要,做出改进,使用最大池化并选用 ReLU 作为激活函数

2. AlexNet

特点:

  • AlexNet 模型与 LeNet-5 模型类似,但是更复杂,包含约 6000 万个参数。另外,AlexNet 模型使用了 ReLU 函数。
  • 当用于训练图像和数据集时,AlexNet 能够处理非常相似的基本构造模块,这些模块往往包含大量的隐藏单元或数据。

 3. VGG

特点:

  • VGG 又称 VGG-16 网络,“16”指网络中包含 16 个卷积层和全连接层
  • 超参数较少,只需要专注于构建卷积层。
  • 结构不复杂且规整,在每一组卷积层进行滤波器翻倍操作。
  • VGG 需要训练的特征数量巨大,包含多达约 1.38 亿个参数

 

 

 4. 残差网络

  残差网络(Residual Networks,简称为 ResNets)残差网络有助于解决梯度消失和梯度爆炸问题,使得在训练更深的网络的同时,又能保证良好的性能。残差块定义如下,通过捷径(Short cut,或者称跳远连接,Skip connections)可以将 a[l]添加到第二个 ReLU 过程中,直接建立a[l] 与a[l+2] 之间的隔层联系

      

  理论上,随着网络深度的增加,性能应该越来越好。但实际上,对于一个普通网络,随着神经网络层数增加,训练错误会先减少,然后开始增多。但残差网络的训练效果显示,即使网络再深,其在训练集上的表现也会越来越好。

   残差网络有效的原因:

  • 看似很深的神经网络,由于许多残差块的存在,弱化削减了某些神经层之间的联系,实现隔层线性传递,而不是一味追求非线性关系,模型本身也就能“容忍”更深层的神经网络了。
  • 从性能上来说,这两层额外的Residual blocks也不会降低Big NN的性能,所以给大型神经网络增加两层,不论是把残差块添加到神经网络的中间还是末端位置,都不会影响网络的表现
  • 如果 a[l]与 a[l+2]的维度不同,需要引入矩阵 Ws与 a[l]相乘,使得二者的维度相匹配。参数矩阵 Ws既可以通过模型训练得到,也可以作为固定值,仅使 a[l]截断或者补零
  • 卷积层通常使用 Same 卷积以保持维度相同,而不同类型层之间的连接(例如卷积层和池化层),如果维度不同,则需要引入矩阵 Ws

5. 1x1卷积 

   1x1 卷积的作用实际上类似全连接层的神经网络结构,从而降低(或升高,取决于滤波器组数)数据的维度,1×1卷积层给神经网络添加了一个非线性函数,从而减少或保持输入层中的通道数量不变,也可以增加通道数量

  如用 32 个大小为 1×1×192 的滤波器进行卷积,就能使原先数据包含的 192 个通道压缩为 32 个。

 

6. Inception网络

  • Inception 网络的作用即是代替人工来确定卷积层中的滤波器尺寸与类型,或者确定是否需要创建卷积层或池化层
  • Inception 网络选用不同尺寸的滤波器进行 Same 卷积,并将卷积和池化得到的输出组合拼接起来,最终让网络自己去学习需要的参数和采用的滤波器组合
  • Inception网络在单层网络上可以使用多个不同尺寸的filters,进行same convolutions,把各filter下得到的输出拼接起来。还可以将CONV layer与POOL layer混合,同时实现各种效果,但是要注意使用same pool。Inception Network不需要人为决定使用哪个过滤器或者是否需要池化,它使用不同尺寸的filters并将CONV和POOL混合起来,将所有功能输出组合拼接,再由神经网络本身去学习参数并选择最好的模块
  • 如果在构建神经网络层的时候,不想决定池化层是使用1×1,3×3还是5×5的过滤器,Inception模块是最好的选择。可以应用各种类型的过滤器,只需要把输出连接起来 
     Inception模块会将之前层的激活或者输出作为它的输入,为了能在最后将这些输出都连接起来,会使用same类型的padding来池化,使得输出的高和宽依然是28×28,这样才能将它与其他输出连接起来。如果进行了最大池化,即便用了same padding,3×3的过滤器,stride为1,其输出将会是28×28×192,其通道数与输入(通道数)相同。要做的是再加上一个1×1的卷积层,将通道的数量缩小到28×28×32,避免了最后输出时,池化层占据所有的通道,最后把得到的各个层的通道都加起来,得到一个28×28×256的输出。这就是一个Inception模块。   图中有 32 个滤波器,每个滤波器的大小为 5x5x192。输出大小为 28x28x32,所以需要计算 28x28x32 个数字,对于每个数,都要执行 5x5x192 次乘法运算。加法运算次数与乘法运算次数近似相等。因此,可以看作这一层的计算量为 28x28x32x5x5x192 = 1.2亿。为了解决计算量大的问题,可以引入 1x1 卷积来减少其计算量。我们使用 1x1 卷积把输入数据从 192 个通道减少到 16 个通道,然后对这个较小层运行 5x5 卷积,得到最终输出。这个 1x1 的卷积层通常被称作瓶颈层(Bottleneck layer)。改进后的计算量为 28x28x192x16 + 28x28x32x5x5x15 = 1.24 千万,减少了约 90%。只要合理构建瓶颈层,就可以既显著缩小计算规模,又不会降低网络性能       Inception网络举例:GoogleNet

  注意黑色椭圆圈出的隐藏层,这些分支都是 Softmax 的输出层,可以用来参与特征的计算及结果预测,起到调整并防止发生过拟合的效果。经过研究者们的不断发展,Inception 模型的 V2、V3、V4 以及引入残差网络的版本被提出,这些变体都基于 Inception V1 版本的基础思想上

7. 卷积神经网络训练

迁移学习

  • 对于已训练好的卷积神经网络,可以将所有层都看作是冻结的,只需要训练与你的 Softmax 层有关的参数即可。大多数深度学习框架都允许用户指定是否训练特定层的权重。
  • 而冻结的层由于不需要改变和训练,可以看作一个固定函数。可以将这个固定函数存入硬盘,以便后续使用,而不必每次再使用训练集进行训练了
  • 上述的做法适用于你只有一个较小的数据集。如果你有一个更大的数据集,应该冻结更少的层,然后训练后面的层。越多的数据意味着冻结越少的层,训练更多的层。如果有一个极大的数据集,你可以将开源的网络和它的权重整个当作初始化(代替随机初始化),后训练整个网络

数据扩增

  • 当数据不够时,数据扩增(Data Augmentation)就有帮助。常用的数据扩增包括镜像翻转、随机裁剪、色彩转换。
  • 色彩转换是对图片的 RGB 通道数值进行随意增加或者减少,改变图片色调。另外,PCA 颜色增强指更有针对性地对图片的 RGB 通道进行主成分分析(Principles Components Analysis,PCA),对主要的通道颜色进行增加或减少,可以采用高斯扰动做法来增加有效的样本数量
  • 在构建大型神经网络的时候,数据扩增和模型训练可以由两个或多个不同的线程并行来实现。
  • 在数据扩充过程中也有一些超参数,比如说颜色变化了多少,以及随机裁剪的时候使用的参数

计算机视觉现状

  • 通常学习的知识来源于被标记的数据和手工工程
  • 手工工程(Hand-engineering,又称 hacks)指精心设计的特性、网络体系结构或是系统的其他组件。手工工程是一项非常重要也比较困难的工作。在数据量不多的情况下,手工工程是获得良好表现的最佳方式
  • 另外,在模型研究或者竞赛方面,有一些方法能够有助于提升神经网络模型的性能:
    • 集成(Ensembling):独立地训练几个神经网络,并平均输出它们的输出
    • Multi-crop at test time:将数据扩增应用到测试集,对结果进行平均
    • 但是由于这些方法计算和内存成本较大,一般不适用于构建实际的生产项目。

标签:吴恩达,训练,卷积,网络,layer,神经网络,经典,Inception
From: https://www.cnblogs.com/forever-fate/p/17160038.html

相关文章

  • 经典场景的测试用例(持续更新)
    一、登录测试用例  二、微信收发信息 三、微信朋友圈 四、微信支付 ......
  • 美团前端二面经典react面试题总结
    React事件机制<divonClick={this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上,而是在document处监听了所有的事件,当事件发生并......
  • 《为什么我们要读经典》总结
    什么是经典作品?经常听人家说:“我正在重读”而不是“我正在读”的书。初读好像是在重温的书。重读像初读那样能带来新发现。经常是很多书的基础。经常要么在我们想象......
  • 经典算法动态规划(dp问题归纳)
    1,线性dp求连续子区间问题输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。栗子:输入:1-2310-472-......
  • 经典算法贪心(刷题归纳)
    <贪心算法greedyalgorithnm>本质是让机器模拟人类,每次都按照某一个标准取最优解,一般常用最优子结构问题,但不是所有的时候贪心都获得最优解。跟DP最大的区别在于,贪心不可......
  • 前端二面经典面试题指南
    数组去重ES5实现:functionunique(arr){varres=arr.filter(function(item,index,array){returnarray.indexOf(item)===index})return......
  • 字节前端经典面试题(附答案)
    有哪些可能引起前端安全的问题?跨站脚本(Cross-SiteScripting,XSS):⼀种代码注⼊⽅式,为了与CSS区分所以被称作XSS。早期常⻅于⽹络论坛,起因是⽹站没有对⽤户......
  • Linux 经典脚本
    编写helloworld脚本#!/bin/bash#编写helloworld脚本echo"HelloWorld!"通过位置变量创建Linux系统账户及密码#!/bin/bash#通过位置变量创建Linux系......
  • 美团前端经典react面试题整理
    react强制刷新component.forceUpdate()一个不常用的生命周期方法,它的作用就是强制刷新官网解释如下默认情况下,当组件的state或props发生变化时,组件将重新渲染。......
  • 吴恩达卷积神经网络——浅层卷积神经网络
    一、计算机视觉计算机视觉(ComputerVision)的高速发展标志着新型应用产生的可能,例如自动驾驶、人脸识别、创造新的艺术风格。一般的计算机视觉问题包括以下几类:图片......