卷积神经网络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.rhkb.cn/news/156725.html

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

相关文章

如何防止内部员工数据外泄?

首先,数据对于企业的价值和意义无需多说,数据价值的发挥和利用以数据安全为基础。当数据创造价值的同时,也面临着被窃取泄露、滥用、非法利用的风险,进而对个人、组织甚至整个社会、国家的利益产生严重威胁和损害。近年来&#xf…

kafka生产者发送消息报错 Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected

报这个错误是因为kafka里的配置要修改下 在config目录下 server.properties配置文件 这下发送消息就不会一直等待,就可以发送成功了

配置nginx的虚拟主机

1.基于域名的虚拟主机 vim /usr/local/nginx/conf/nginx.conf 复制一个 cd /var/www/html/ mkdir kgc accp cd kgc/ vim index.html this is kgc! cd .. cd accp this is accp! vim /etc/hosts systemctl restart nginx 2.基于ip的虚拟主机 ifconfig ens33:0 192.168…

【特纳斯电子】基于物联网的指纹密码锁系统设计-实物设计

资料下载链接:基于物联网的指纹密码锁系统设计-实物设计 - 电子校园网 编号: T3732205M-SW 设计简介: 本设计是基于单片机的指纹密码锁,主要实现以下功能: 1、可通过密码解锁 2、可通过云平台解锁 3、可通过指纹解…

OpenWRT搭建个人web站点并结合内网穿透实现公网远程访问

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器,目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器,并且和…

2023年中国手机回收量、手机回收价值及行业细分现状分析[图]

手机回收的主要去向包括再销售及环保降解两类。其中进行再交易的二手手机多为9成新及以上手机。二手手机最终去向主要为再销售及环保降解。 2016年以来,我国手机总体出货量持续下滑,2022年全年,国内市场手机总体出货量累计2.72亿部&#xff0…

c#设计模式-行为型模式 之 迭代器模式

🚀简介 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口…

【linux进程(四)】僵尸进程和孤儿进程概念进程优先级讲解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 进程优先级 1. 前言2. 什么是…

ubuntu20.04 nerf Instant-ngp (下) 复现,自建数据集,导出mesh

参考链接 Ubuntu20.04复现instant-ngp,自建数据集,导出mesh_XINYU W的博客-CSDN博客 GitHub - NVlabs/instant-ngp: Instant neural graphics primitives: lightning fast NeRF and more youtube上的一个博主自建数据集 https://www.youtube.com/watch…

在Linux中掌握不同的命令,让创建文件变得易如反掌

在Linux中创建一个新文件很简单,但也有一些令人惊讶和灵巧的技术。​在本教程中,学习如何从Linux终端创建文件。​ 先决条件 访问命令行/终端窗口(Ctrl-Alt-F2或Ctrl-Alt-T) 具有sudo权限的用户帐户(对于某些文件/目录是可选的) 从命令行创建新的Linux文件 Linux的设计…

如何构建安全的App网络通信?

前言 说到安全肯定逃不开数据的加解密,数据本地存储大多用对称加解密来实现,那网络传输数据的时候是不是也用对称加解密来实现?没错,常规网络通信时,大部分网络传输过程中基本也是用对称加解密来实现的,毕竟…

Matlab论文插图绘制模板第118期—进阶气泡图

之前的文章中,分享过Matlab气泡图的绘制模板: 图虽说好看,但有一个缺点:需要手动调节两个图例的位置。 为了解决这一问题,我们不妨结合前段时间分享的紧凑排列多子图的绘制模板: 从而达到自动对齐排列的效…

Vue3模块找不到问题解决:找不到模块‘vue ‘。你的意思是将“模块解决方案”选项设置为“节点”,还是添加ali

Vue3 vite 项目引入 vue 报错 Cannot find module ‘vue‘. Did you mean to set the ‘moduleResolution‘ option to ‘node‘, or to add ali 在项目中找到 tsconfig.json 文件 找到配置项里的 "moduleResolution": "bundler", 将其改成 &q…

<图像处理> Fast角点检测

Fast角点检测 基本原理是使用圆周长为N个像素的圆来判定其圆心像素P是否为角点,如下图所示为圆周长为16个像素的圆(半径为3);OpenCV还提供圆周长为12和8个像素的圆来检测角点。 相对中心像素的位置信息 //圆周长为16 static c…

前端工程化(editorconfig+ESLint+Prettier+StyleLint+Husky、Commitlint)

前言 致谢:有来技术大大 通过学习有来技术大大的文章和结合自己的实践,写一篇笔记记录一下 所使用的工具: ide项目风格(editorconfig)代码检查(ESLint)代码风格(Prettier)样式风格(StyleLint)git提交规范(Husky、Commitlint) 一、ide项目…

PyTorch模型性能分析与优化

一、说明 训练深度学习模型,尤其是大型模型,可能是一项昂贵的支出。我们可以使用的管理这些成本的主要方法之一是性能优化。性能优化是一个迭代过程,我们不断寻找提高应用程序性能的机会,然后利用这些机会。在之前的文章中&#x…

【TensorFlow2 之015】 在 TF 2.0 中实现 AlexNet

一、说明 在这篇文章中,我们将展示如何在 TensorFlow 2.0 中实现基本的卷积神经网络 \(AlexNet\)。AlexNet 架构由 Alex Krizhevsky 设计,并与 Ilya Sutskever 和 Geoffrey Hinton 一起发布。并获得Image Net2012竞赛中冠军。 教程概述: 理论…

LMI FocalSpec 3D线共焦传感器 使用笔记1

一.硬件介绍 以上特别注意: 屏蔽线必须接地,因为在现场实际调试中,使用软件调试发现经常 弹窗 传感器丢失警告!! 以上 Position LED 的灯被钣金挡住,无法查看异常现象,能否将指示灯设置在软件界面上? 需要确认是软触发还是硬触发,理论上 硬触发比软触发速度要快.(我们目前使用…

文心一言Plugin实战来了,测试开发旅游攻略助手

刚刚过去的8月,百度WAVE SUMMIT 深度学习开发者大会上,重磅发布文心一言的五个原生插件:百度搜索、览卷文档(基于文档的交互)、E 言易图(数据洞察图表生成)、说图解画(基于图片的交互…

【后端】韩顺平Java学习笔记(入门篇)

目前准备学后端,java虽然大二上学了但是基本忘没了orz 争取大三卷一点啊啊啊 九月份写的10月份才发orz 中间摆烂了很久,现在目标清晰准备行动了kkk 来源:韩顺平 零基础30天学会Java 目录 I. 简介 一、特点 ✿ 跨平台性 → 运行机制…