卷积神经网络CNN基础知识

目录

  • 1 前言
  • 2 卷积神经网络CNN
    • 2.1 LeNet-5相关介绍
    • 2.2 CNN基本结构
      • 2.2.1 卷积层
      • 2.2.2 池化层(下采样层)
      • 2.2.3 全连接层
        • 2.2.3.1激励层(非线性激活)
        • 2.2.3.2 线性层
        • 2.2.3.3 Dropout层
        • 2.2.3.4 总结
    • 2.3 图像的上采样和下采样
      • 2.3.1 上采样
      • 2.3.2 下采样
    • 2.4 梯度
      • 2.4.1 梯度弥散
      • 2.4.2 梯度爆炸
    • 2.5 CNN卷积特点
      • 2.5.1 局部连接
      • 2.5.2 权值共享
    • 2.6 感受野

1 前言

在了解卷积神经网络之前,我们可以通过下图先看一下传统机器学习与深度学习的区别:
在这里插入图片描述

2 卷积神经网络CNN

2.1 LeNet-5相关介绍

卷积神经网络(Convolutional Neural Networks, CNN)的雏形是1998 年LeCunt提出的LeNet-5网络结构。LeNet-5网络结构如下图所示:在这里插入图片描述
可以看出LeNet-5 共包含 8 层:

  1. Input输入层:输入一个大小为 32x32的灰度图像。
  2. C1 卷积层:通过卷积核进行卷积,输出6 个大小为 28x28的特征图 (Feature Map )。
  3. S2 下采样池化层:通过池化核进行池化,输出6 个大小为 14x14 的特征图(Feature Map )。
  4. C3卷积层:通过卷积核进行卷积,输出16 个大小为 10x10的特征图 (Feature Map )。
  5. S4下采样池化层:通过池化核进行池化,输出16 个大小为 5x5 的特征图(Feature Map )。
  6. C5卷积层:通过卷积核进行卷积,输出120个特征图,与S4相连。
  7. F6全连接层:有 84 个单元(之所以选这个数字的原因来自于输出层的设计),与 C5 层全相连。计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。
  8. output输出层(也是全连接层):有84个单元输入,10个单元输出。

2.2 CNN基本结构

CNN 主要由卷积层、池化层、全连接层组成。这些层的作用与其之间的关系可借助下图进行理解:
在这里插入图片描述

2.2.1 卷积层

功能:
用卷积核对输入图像进行不断卷积,得到图像特征图。每个卷积层都由许多特征图(Feature map)组成,随着网络深度的加深,特征图的数量会成倍增加,与此同时,特征图的长宽将缩小。
计算方法:
卷积层通过卷积核在本层的特征图上滑动,并将卷积核与特征图的对应位置元素相乘,最终求和并加上偏置项之后作为最终输出。具体理解可参考博客https://blog.csdn.net/weixin_51312723/article/details/132291673 中第二章“神经网络中神经结构的使用”部分。

2.2.2 池化层(下采样层)

池化层又名下采样层。
功能: 保留图像特征的同时,减小数据量,即对特征图进行压缩,缩小特征图,也就是缩小特征映射。
下采样方法主要有两种: 平均池化和最大池化。目前通常使用的是最大池化(maxpool),因为它计算简单而且能够更好的保留纹理特征。而平均池化虽然能很好的保留背景,但容易使得图片变模糊。
计算方法: 请查看博客https://blog.csdn.net/weixin_51312723/article/details/132291673 第三章“神经网络当中的一些基本结构”中的第二小节“池化层”部分。

2.2.3 全连接层

通常情况下,网络的最后是全连接层(Fully connected,FC)用作分类,FC 将经过卷积层、激励层和池化层处理后的特征信息整合并映射到样本空间中。然而,FC 层是黑盒模型,其参数量占整个模型的 80%以上,在训练时很容易过拟合,为了解决这个问题,通常在 FC 之后使用 Dropout 方法。Dropout 方法可以随机使一些神经元处于失活状态,从而降低神经元之间的关联性,减少过拟合,提高网络的泛化能力。

2.2.3.1激励层(非线性激活)

激励层:就是relu函数那些。
详情请查看博客https://blog.csdn.net/weixin_51312723/article/details/132291673 第三章“神经网络当中的一些基本结构”中的第三小节“非线性激活”部分。

2.2.3.2 线性层

详情请查看博客https://blog.csdn.net/weixin_51312723/article/details/132291673 第三章“神经网络当中的一些基本结构”中的第四小节“线性层”和第四章:神经网络小实战“部分。

2.2.3.3 Dropout层

Dropout一般放在全连接层中的激活函数之后,目的是防止过拟合,提高模型返回能力。由于卷积层参数较少,很少有放在卷积层后面的情况,卷积层一般使BatchNorm。

2.2.3.4 总结
  1. 如果模型只是单纯的线性层叠加,最后模型也是线性的,等价于只有一个线性层(把所有权值矩阵先结合相乘,最后只剩一个权值矩阵),而非线性激活层的加入才使得深度有了意义。
  2. 非线性激活层给我们的神经网络中引入一些非线性的特征,因为网络当中非线性越多的话,你才能训练出符合各种曲线、各种特征的一个模型,要不然模型的泛化能力就不够好。
  3. 卷积神经网络中的卷积块包含三个阶段:在第一阶段中,多个卷积计算并行产生输出;在第二阶段中,将第一阶段的输出结果进行非线性激活;在第三阶段中,池化操作被用于进一步调整该卷积块的输出。

2.3 图像的上采样和下采样

2.3.1 上采样

上采样: 又名放大图像、图像插值。
作用: 在卷积神经网络中,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(如图像的语义分割),这个使图像由小分辨率映射到大分辨率的操作,叫做上采样。

2.3.2 下采样

下采样: 又名降采样、缩小图像。
作用: 1. 减少计算量,防止过拟合;2. 增大感受野,使得后面的卷积核能够学到更加全局的信息。

2.4 梯度

2.4.1 梯度弥散

梯度弥散就是梯度消失,函数导数为0。
在上面2.2.3.1小节我们介绍了一些非线性激活的函数,如relu和sigmoid激活函数。但sigmoid激活函数不常用了,因为它就是导致梯度消失的一个常见的情况。
从所介绍的sigmoid函数图像可以看出,当sigmoid函数的输入很大或是很小时,它的梯度都会消失。 此外,当反向传播通过许多层时, 这些地方sigmoid函数的输入接近于零,可能导致整个乘积的梯度可能会消失。因此,ReLU激活函数成为了大家默认的选择。

2.4.2 梯度爆炸

梯度爆炸就是函数导数接近无穷大,很难收敛。

2.5 CNN卷积特点

众所周知,卷积神经网络(CNN)是一种 端到端 更全面的 非线性映射 抽取更深层次、更抽象的语义表征实现识别功能。同时,它也是一种具有局部连接、权值共享等特性的深度神经网络。

2.5.1 局部连接

具体内容请查看下面这篇参考博客的相关讲解:https://blog.csdn.net/weixin_41514525/article/details/113987876。

2.5.2 权值共享

具体内容请查看下面这两篇参考博客的相关讲解:

  1. https://blog.csdn.net/weixin_41514525/article/details/113987876;
  2. https://blog.csdn.net/duxinyuhi/article/details/128816396。

2.6 感受野

在卷积神经网络中,每一层的任意元素都有相应的感受野(Receptive field),其代表了在前向传播中可能影响当前元素计算的所有先前层元素的区域大小。具体内容请查看下面这篇参考博客的相关讲解:https://blog.csdn.net/qq_43665602/article/details/126754736。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/133239.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Idea报错 java: 程序包org.springframework.boot不存在 解决方法

发现我的是因为更改了maven的主路径和本地仓库路径,但是新建了一个工程后,设置就恢复默认了。需要重新设置正确路径。 应用后会重新下载依赖项 之后虽然还会报错,但是已经不影响项目运行,配置成功

uCOSIII实时操作系统 六 内部任务(空闲函数)

目录 空闲任务: 时钟节拍任务: 统计任务: 定时任务: 中断服务管理任务: 钩子函数: 空闲任务的钩子函数: 空闲任务钩子函数实验: 其他任务的钩子函数: 空闲任务&a…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …

uni-app:本地缓存的使用

uni-app 提供了多种方法用于本地缓存的操作。下面是一些常用的 uni-app 本地缓存方法: uni.setStorageSync(key, data): 同步方式将数据存储到本地缓存中,可以使用对应的 key 来获取该数据。 uni.setStorage({key, data}): 异步方式将数据存储到本地缓存…

The Foundry Nuke 15视频后期合成和特效制作Mac软件

Nuke 15 是一款专业的合成软件,主要用于电影、电视和广告制作中的后期合成和特效制作。 Nuke 15 提供了强大的合成工具和功能,可以对多个图像、视频和3D元素进行无缝融合和合成。它支持多通道图像处理,能够处理高动态范围(HDR&…

共享WiFi二维码项目如何加盟代理?有哪些注意事项!

随着移动互联网的发展,如今WiFi热点已成为人们日常生活的必需品。而共享wifi二维码项目也渐渐成为了一个非常有前景的共享商业模式。用户可以通过扫共享wifi二维码享受免费的上网服务,而加盟商则可以赚取一定的推广费用,是一种非常理想的商业…

SpringSecurity + jwt + vue2 实现权限管理 , 前端Cookie.set() 设置jwt token无效问题(已解决)

问题描述 今天也是日常写程序的一天 , 还是那个熟悉的IDEA , 还是那个熟悉的Chrome浏览器 , 还是那个熟悉的网站 , 当我准备登录系统进行登录的时候 , 发现会直接重定向到登录页 , 后端也没有报错 , 前端也没有报错 , 于是我得脸上又多了一张痛苦面具 , 紧接着在前端疯狂debug…

Pulsar 之架构,客户端以及多区域容灾

Pulsar 之架构,客户端以及多区域容灾 架构BrokersClusters元数据存储配置存储区持久存储Apache BookKeeperLedgersLedgers读一致性托管Ledgers 日志存储 Pulsar 代理服务发现 Pulsar client(客户端)客户端设置阶段Reader interface 多区域容灾备份(GEO-REPLICATION)…

2核4G游戏服务器推荐(阿里云/腾讯云/华为云)

2核4G游戏服务器推荐,首选腾讯云2核4G5M带宽轻量应用服务器218元一年、阿里云2核4G4M带宽轻量应用服务器297元一年,华为云2核2G3M云耀L服务器95元一年,阿腾云来详细说下2核4G游戏服务器推荐配置大全: 目录 2核4G游戏服务器推荐 …

PlantUML 绘图

官网 https://plantuml.com/zh/ 示例 绘制时序图 USB 枚举过程 PlantUML 源码 startuml host <-- device : device insert host note right : step 1 host -> device : get speed, reset, speed check note right : step 2 host -> device …

华为OD机试 - 消消乐游戏 - 栈Stack(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

WIFI产品使用指导说明

一、登录服务器 二、新建产品 三、设置WIFI产品的联网参数 1、恢复出厂设置 2、设置参数 四、操作更新 网络连接特性&#xff1a; 路由器掉线得情况下&#xff0c; 第一次&#xff0c;搜索网络1分钟间隔第二次&#xff0c;搜索网络1分钟间隔第三次&#xff0c;搜索网络…