卷积神经网络发展历史及各种卷积神经网络模型简介

卷积神经网络发展历史及各种卷积神经网络模型简介1 前言我的毕设做的是基于 opencv 和卷积神经网络的人脸识别项目 在做完这个项目之后 我一直想好好总结一下所学到的关于卷积神经网络的知识 现在趁着有点空闲 随手记录一点以前学过的 或者正在学习的知识点 相当于一个备忘录 2 卷积神经网络模型概览从一开始的 LeNet 到后来的 VGGNet 再到 google 的 Inception 系列 再到 ResNet 系列 每一种神经网络模型都有其创新

1.前言

我的毕设做的是基于opencv和卷积神经网络的人脸识别项目。在做完这个项目之后,我一直想好好总结一下所学到的关于卷积神经网络的知识。现在趁着有点空闲,随手记录一点以前学过的,或者正在学习的知识点,相当于一个备忘录。

2.卷积神经网络模型概览

2.1LeNet模型结构

2.2 AlexNet

我个人的意见是,这个更深层网络提取更高维度的特征,它是这么个意思:前面的卷积层提取一些浅层的特征,比如纹理,形状(我们输入的是颜色特征),然后中间的卷积层呢,提取的是一些更复杂的特征,这些特征难以描述,就类似于我们中国说看山不是山,看水不是水的境界,只可意会,不可言传。而最后的分类信息,就是最后的看山还是山,看水还是水的境界。

在AlexNet网络中,有以下特点:

  • 增加了relu非线性激活函数,增强了模型的非线性表达能力。成为以后卷积层的标配。
  • dropout层防止过拟合。成为以后fc层的标配。
  • 通过数据增强,来减少过拟合。
  • 引入标准化层(Local Response Normalization):通过放大那些对分类贡献较大的神经元,抑制那些对分类贡献较小的神经元,通过局部归一的手段,来达到作用。

当然后来人们通过研究发现,这个LRN层并没有啥太好的作用,所以在后来的网络结构中,它被BN层(批归一化层)取代了。

2.3 ZFNet

在这里插入图片描述
ZFNet在AlexNet的基础上做了小小的改进:

  • 调整第一层卷积核大小为7*7
  • 设置卷积参数stride=2
  • 特征分层次体系结构(就是我前面说的三层)
  • 深层特征更鲁棒(区分度高,不受图片微小的影响)
  • 深层特征收敛更慢

2.4 VGGNet

  • 网络深,卷积层多。结构哦更加规整,简单。
  • 卷积核都是3* 3的或者1* 1的,且同一层中channel的数量都是相同的。最大池化层全是2*
    2。
  • 每经过一个pooling层后,channel的数量会乘上2.
    也就是说,每次池化之后,Feature Map宽高降低一半,通道数量增加一倍。VGGNet网络层数更多,结构更深,模型参数量更大。

VGGNet的意义:

  • 证明了更深的网络,能更好的提取特征。
  • 成为了后续很多网络的backbone。

2.5 GoogleNet/Inception v1

2.6 Inception v2/v3

在提出了Inception v1之后,google又提出了Inception v2/v3/v4.在前面介绍视觉感受野的时候,我们曾经说过,一个大的卷积核可以由多个小的卷积核来替代。在v2/v3中,他们有效的利用了这个知识。在Inceptiion v2中,伟大的作者们通过两层3* 3的卷积核代替掉了5* 5的卷积核。而在Inception v3中,更是桑心病狂 别出心裁的用n* 1 + 1* n的卷积核代替了n* n的卷积核。
在这里插入图片描述
通过这样的操作,我们能够实现什么样的效果呢?

  • 参数量降低,计算量减少。
  • 网络变深,网络非线性表达能力更强(因为在每一个卷积层后面都可以增加一个激活层)

要注意的是,在实验中伟大的先行者们发现,并不是拆分都能达到很好的效果。卷积的拆分最好是用在中间的部分,不要在图像的开始就进行这样的拆分。

2.7 ResNet

  • 核心单元简单堆叠。
  • 跳连结构解决网络梯度消失问题。
  • Average Pooling层代替fc层。
  • BN层加快网络训练速度和收敛时的稳定性。
  • 加大网络深度,提高模型的特征抽取能力。

3.卷积神经网络结构对比

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222559.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:31
下一篇 2026年3月17日 下午3:31


相关推荐

  • 图层合并_cad图层怎么统一到一个图层

    图层合并_cad图层怎么统一到一个图层Arcgis合并线图层和面图层相同类型的图层合并数据管理工具——常规——合并。这个工具只能是线与线、面与面、点与点相同类型的图层合并。输入要合并的图层,设置输出的数据名称就可以了,非常简单。不同类型的图层合并“合并”这个工具只能用于相同类型的图层合并,不同类型的图层合并就要先把图层转为相同的类型。比如一个线图层,一个面图层,可以把线图层直接在转换工具中使用要素转面工具转为面图层,但是这时候我们发现属性表是空的,这样做是不正确的。下边介绍一种方法:线图层和面图层合并为线图层。1、线转栅格转换工

    2025年8月20日
    5
  • stringutil.isnotempty_中低腰和低腰的区别

    stringutil.isnotempty_中低腰和低腰的区别
    转自:http://www.zhenhua.org/article.asp?id=625
     
    isNotEmpty将空格也作为参数,isNotBlank则排除空格参数

    参考QuoteStringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为

    2022年8月12日
    7
  • 哪个智能体好用?从L1到L4,从RPA到Agent,大白话讲解AI Agent

    哪个智能体好用?从L1到L4,从RPA到Agent,大白话讲解AI Agent

    2026年3月16日
    2
  • pycharm远程连接服务器后添加LD_LIBRARY_PATH

    pycharm远程连接服务器后添加LD_LIBRARY_PATH在中的添加 LD LIBRARY PATH 以及路径

    2026年3月27日
    1
  • 获取C/C++字符串、字符数组长度

    获取C/C++字符串、字符数组长度在 C C 中常用的获取字符串长度或者字符串数组长度的函数有 sizeof length strlen size 其中 strlen str 和 str length 和 str size 都可以用来求字符串的长度 str length 和 str size 是用于求 string 类对象的成员函数 strlen str 是用于求字符串数组的长度 其参数是 cha

    2026年3月20日
    2
  • Struts2之ActionContext理解

    Struts2之ActionContext理解在 Strust2 中 有一个内置对象叫 ActionContex 通过该对象可以获得之前 Servlet 中的对象 比如 requst 对象 response 对象 那么为什么可以通过 ActionContex 获得那些对象呢 那是因为在 ActionContex 内容引用了那些对象 也就是在 ActionContex 内部记录了那些对象的地址 看下图上图就是简单理解为什么通过 Action

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号