卷积神经网络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.mzph.cn/news/104685.shtml

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

相关文章

联盟链学习笔记-网络的创建

联盟链学习笔记 初始网络 下图是初始网络网络N的参考图 排序服务 在定义 网络 N 的时候,第一件事情就是定义一个 排序服务O4。O4 最初被配置并且由组织 R4 的一个管理员来启动,并且由 R4 管理。配置 NC4 包含了描述网络管理能力初始集合的规则。最初…

微软开源 windows-drivers-rs,用 Rust 开发 Windows 驱动程序

导读Microsoft Azure 首席技术官兼著名 Windows 软件开发人员 Mark Russinovich 在社交平台上宣布,启动了一个名为 windows-drivers-rs 的新开源项目。 该项目可帮助开发人员使用 Rust 开发 Windows 驱动程序,旨在支持 WDM (Windows Driver Model) 和 W…

【C语言】程序环境和预处理

程序环境: 1、C语言的任何一种实现,存在两个不同的环境; 2、翻译环境:将源代码转换成可执行的二进制指令(机器指令);.c文件(源文件——文本信息的代码)->&#xff0…

微服务12-分布式服务理论基础+Seata的认识

文章目录 分布式服务理论基础前言微服务和分布式的区别CAP定理BASE理论 Seata流程:seata部署微服务集成seata 分布式服务理论基础 前言 单体架构: 1.项目过于臃肿,所有服务在一起,一个业务挂了,整个项目就不能用了&…

腾讯云我的世界mc服务器多少钱一年?

腾讯云我的世界mc服务器多少钱?95元一年2核2G3M轻量应用服务器、2核4G5M带宽优惠价218元一年、4核8G12M带宽轻量服务器446元一年,云服务器CVM标准型S5实例2核2G优惠价280元一年、2核4G配置服务器748元一年,腾讯云百科txybk.com分享腾讯云我的…

人事管理系统springboot42

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

HNU-计算机网络-讨论课1

题目: 有关网络系统结构的讨论 一、必选问题(每组平均每人1个) 1、分层结构其实是世界演进形成的普遍系统结构,不管是自然领域还是社会领域,请举例说说你的理解。 2、有人说通信网络的核心技术在物理层&#xff0c…

Spring Boot 中的 TransactionTemplate 是什么,如何使用

Spring Boot中的TransactionTemplate:简化事务管理 事务管理是任何应用程序中至关重要的部分,特别是在处理数据库操作时。Spring Boot提供了多种方式来管理事务,其中之一是使用TransactionTemplate。本文将深入探讨TransactionTemplate是什么…

设计师都应该知道的事:极简主义家具该怎么去用

这座房子有黑暗而沉重的特征,包括棕色和白色的马赛克浴室瓷砖,弯曲的锻铁壁灯和土黄色的威尼斯石膏墙。但由于房屋与他们的风格相去甚远,白色,干净和简约,接下来我们就着这个方向去帮助房主进行改造。 她解释说&#x…

小谈设计模式(24)—命令模式

小谈设计模式(24)—命令模式 专栏介绍专栏地址专栏介绍 命令模式角色分析命令(Command)具体命令(ConcreteCommand)接收者(Receiver)调用者(Invoker)客户端&am…

生物制剂\化工\化妆品等质检损耗、制造误差处理作业流程图(ODOO15/16)

生物制剂、化工、化妆品等行业,因为产品为液体,产品形态和质量容易在各个业务环节发生变化,常常导致实物和账面数据不一致,如果企业业务流程不清晰,会导致系统大量的库存差异,以及财务难以核算的问题&#…

ROS为机器人装配激光雷达

移动机器人在环境中获取障碍物的具体位置、房间的内部轮廓等信息都是非常必要的,这些信息是机器人创建地图、进行导航的基础数据,除上面所讲的Kinect,还可以使用激光雷达作为这种场景应用下的传感器。 激光雷达可用于测量机器人和其他物体之间…

python爬取boss直聘数据(selenium+xpath)

文章目录 一、主要目标二、开发环境三、selenium安装和驱动下载四、主要思路五、代码展示和说明1、导入相关库2、启动浏览器3、搜索框定位创建csv文件招聘页面数据解析(XPATH)总代码效果展示 六、总结 一、主要目标 以boss直聘为目标网站,主要目的是爬取下图中的所…

软件TFN 2K的分布式拒绝攻击(DDos)实战详解

写在前头 本人写这篇博客的目的,并不是我想成为黑客或者鼓励大家做损坏任何人安全和利益的事情。因科研需要,我学习软件TFN 2K的分布式拒绝攻击,只是分享自己的学习过程和经历,有助于大家更好的关注到网络安全及网络维护上。 需要…

JavaScript(CSS)动画引擎汇总

汇总记录前端实现动画相关的库 1、animejs animejs是一个轻量级的JavaScript动画库,具有简单但功能强大的API。 它适用于CSS属性,SVG,DOM属性和JavaScript对象。 官网anime.js • JavaScript animation engine anime.js - a Collection by…

小华HC32F448串口使用

目录 1. 串口GPIO配置 2. 串口波特率配置 3. 串口接收超时配置 4. 串口中断注册 5. 串口初始化 6. 串口数据接收处理 7. DMA接收配置和处理 1. 串口GPIO配置 端口号和Pin脚号跟STM32没什么区别。 串口复用功能跟STM32大不一样。 如下图,选自HC32F448 表 2…

CodeForces每日好题10.14

给你一个字符串 让你删除一些字符让它变成一个相邻的字母不相同的字符串,问你最小的删除次数 以及你可以完成的所有方/案数 求方案数往DP 或者 组合数学推公式上面去想,发现一个有意思的事情 例如1001011110 这个字符串你划分成1 00 1 0 1111 0 每…

超低延时 TCP/UDP IP核

实现以太网协议集当中的ARP、ICMP、UDP以及TCP协议 一、概述 TCP_IP核是公司自主开发的使用FPGA逻辑搭建的用于10G以太网通信IP。该IP能够实现以太网协议集当中的ARP、ICMP、UDP以及TCP协议。支持连接10G/25G以太网PHY,组成高速网络通信系统。该IP上传、下传数据B…

极简的MapReduce实现

目录 1. MapReduce概述 2. 极简MapReduce内存版 3. 复杂MapReduce磁盘版 4. MapReduce思想的总结 1. MapReduce概述 以前写过一篇 MapReduce思想 ,这次再深入一点,简单实现一把单机内存的。MapReduce就是把它理解成高阶函数,需要传入map和…

【Candence报错】Discrepancy #i in TASK

问题描述 Candence LVS仿真提示网络不匹配 问题解决 检查原理图和Layout 注意: