卷积神经网络基础篇

文章目录

  • 1、卷积层
    • 1.1、激活函数
    • 1.3、sigmoid
    • 1.4、Tanh
    • 1.5、ReLU
    • 1.6、Leaky ReLU
    • 1.7、误差计算
  • 2、池化层
  • 3、全连接层
  • 4、CNN训练

参考链接1
参考链接2

1、卷积层

卷积层(Convolutional layer),这一层就是卷积神经网络最重要的一个层次,也是“卷积神经网络”的名字来源。卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。
卷积运算的目的是提取输入的不同特征,某些卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。

卷积层的作用是对输入数据进行卷积操作,也可以理解为滤波过程,一个卷积核就是一个窗口滤波器,在网络训练过程中,使用自定义大小的卷积核作为一个滑动窗口对输入数据进行卷积。

卷积过程实质上就是两个矩阵做乘法,在卷积过程后,原始输入矩阵会有一定程度的缩小,比如自定义卷积核大小为3*3,步长为1时,矩阵长宽会缩小2,所以在一些应用场合下,为了保持输入矩阵的大小,我们在卷积操作前需要对数据进行扩充,常见的扩充方法为0填充方式。

卷积层中还有两个重要的参数,分别是偏置和激活(独立层,但一般将激活层和卷积层放在一块)。

偏置向量的作用是对卷积后的数据进行简单线性的加法,就是卷积后的数据加上偏置向量中的数据,然后为了增加网络的一个非线性能力,需要对数据进行激活操作,在神经元中,就是将没有的数据率除掉,而有用的数据则可以输入神经元,让人做出反应。

卷积核(是一种特征)对原图进行卷积,是把原图中包含这种特征提取出来
卷积计算(通过卷积核在图像上滑动计算,相乘、求和、取平均)结果等于1表示滤框中的值和卷积核的值完全一样

在这里插入图片描述
在这里插入图片描述

1.1、激活函数

激活函数,最常用的激活函数目前有Relu、tanh、sigmoid,着重介绍一下Relu函数(即线性整流层(Rectified Linear Units layer, 简称ReLU layer)),Relu函数是一个线性函数,它对负数取0,正数则为y=x(即输入等于输出),即f(x)=max(0,x),它的特点是收敛快,求梯度简单,但较脆弱。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3、sigmoid

Sigmoid函数是传统的神经网络和深度学习领域开始时使用频率最高的激活函数。
其优点主要是连续,平滑便于求导
但是其的缺点也很致命:
1.梯度消失问题(Vanishing Gradient problem):观看图像可知当x>2或x<2时Sigmod输出趋于平滑,导致梯度减小,权重和偏置更新过慢导致网络不更新
2.非零均值特性(none-zero-centered):会使训练震荡达不到最优解,使收敛变慢
3.导数计算复杂,影响速度

在这里插入图片描述

1.4、Tanh

Tanh主要解决了Sigmod非零均值特性的问题,但是其还是存在计算复杂和梯度消失的问题。

在这里插入图片描述

1.5、ReLU

Relu的主要优点有:
1.大于0时,其导数恒为1,不会存在梯度消失的问题
2.计算速度非常快,只需要判断 x 是大于0还是小于0
3.收敛速度远远快于前面的 Sigmoid 和 Tanh函数
但是ReLu也是有着缺陷的:
1.非零均值特性
2.x<0时,输出恒为0.会使某些神经元永远不会被激活,进而导致参数永远不会更新

在这里插入图片描述

1.6、Leaky ReLU

Leaky ReLU 的提出主要是为了解决前面提到的Dead ReLu问题。因为当 x 小于 0 时,其输出不再是 0。虽然同时 Leaky ReLU 具有 ReLU 的所有优点。但是在实际操作中并没有完全证明好于 ReLU 函数。

在这里插入图片描述

1.7、误差计算

计算第一个隐藏的结果
在这里插入图片描述
计算y1和y2的结果
在这里插入图片描述
softmax计算
在这里插入图片描述
损失计算
在这里插入图片描述
在这里插入图片描述
误差反向传播,得到每个节点的损失梯度信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
权重更新(新值 = 旧值-学习率*损失梯度)
在这里插入图片描述
分批次训练(每求一次批次进行一次误差计算以及反向传播)
在这里插入图片描述
优化器作用就是为了让网络更快收敛
在这里插入图片描述
wt+1表示更新后的参数,wt表示更新前的参数a表示设置学习率g(wt)是我们所求的损失梯度
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、池化层

通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。池化方式一般有两种,一种为取最大值,另一种为取均值,池化的过程也是一个移动窗口在输入矩阵上滑动,滑动过程中去这个窗口中数据矩阵上最大值或均值作为输出,池化层的大小一般为2*2,步长为1

池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。

池化层的作用是对数据进行降维处理,对于所有神经网络来说,随着网络深度增加,网络中权值参数的数量也会越来越大,这也是导致我们在训练一个大型网络时必须使用大型服务站和GPU加速了,但是卷积神经网络出了它本身权值共享和局部连接方式可以有效的降低网络压力外,池化层也作为一个减低网络压力的重要组成部分,经过卷积层后的数据做为池化层的输入进行池化操作。

池化层的具体作用:
特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。
特征降维,我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用。
在一定程度上防止过拟合,更方便优化。

在这里插入图片描述
在这里插入图片描述

3、全连接层

全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,用来计算最后每一类的得分。全连接层往往在分类问题中用作网络的最后层,作用主要为将数据矩阵进行全连接,然后按照分类数量输出数据,在回归问题中,全连接层则可以省略,但是我们需要增加卷积层来对数据进行逆卷积操作。

4、CNN训练

在这里插入图片描述
前向传播阶段:
选取训练样本(x,y),将x输入网络中。随机初始化权值(一般情况下选取小数),信息从输入层经过一层一层的特征提取和转换,最后到达输出层,得到输出结果。

反向传播阶段:
输出结果与理想结果对比,计算全局性误差(即Loss)。得到的误差反向传递给不同层的神经元,按照“迭代法”调整权值和偏重,寻找全局性最优的结果。

通过大量图片去训练这个模型,通过前向传播和反向传播的方法,神经网络得到一个结果,将其和真实的结果进行比较误差计算(损失函数),我们的目标就是将损失函数降到最低,通过修改卷积核的参数和全连接每一层的权重来进行微调,使得损失函数最小。

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

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

相关文章

动手学深度学习(Pytorch版)代码实践 -循环神经网络- 56门控循环单元(`GRU`)

56门控循环单元&#xff08;GRU&#xff09; 我们讨论了如何在循环神经网络中计算梯度&#xff0c; 以及矩阵连续乘积可以导致梯度消失或梯度爆炸的问题。 下面我们简单思考一下这种梯度异常在实践中的意义&#xff1a; 我们可能会遇到这样的情况&#xff1a;早期观测值对预测…

机器人动力学模型及其线性化阻抗控制模型

机器人动力学模型 机器人动力学模型描述了机器人的运动与所受力和力矩之间的关系。这个模型考虑了机器人的质量、惯性、关节摩擦、重力等多种因素&#xff0c;用于预测和解释机器人在给定输入下的动态行为。动力学模型是设计机器人控制器的基础&#xff0c;它可以帮助我们理解…

html的浮动作用详解

HTML中的“浮动”&#xff08;Float&#xff09;是一个CSS布局技术&#xff0c;它原本设计用于文本环绕图像或实现简单的布局效果&#xff0c;比如并排排列元素。然而&#xff0c;随着Web开发的演进&#xff0c;浮动也被广泛用于更复杂的页面布局设计中&#xff0c;尽管现代CSS…

2024/7/7周报

文章目录 摘要Abstract文献阅读题目问题本文贡献问题描述图神经网络Framework实验数据集实验结果 深度学习MAGNN模型相关代码GNN为什么要用GNN&#xff1f;GNN面临挑战 总结 摘要 本周阅读了一篇用于多变量时间序列预测的多尺度自适应图神经网络的文章&#xff0c;多变量时间序…

SAP已下发EWM的交货单修改下发状态

此种情况针对EWM未接收到ERP交货单时&#xff0c;可以使用此程序将ERP交货单调整为未分配状态&#xff0c;在进行调整数据后&#xff0c;然后使用VL06I&#xff08;启用自动下发EWM配置&#xff0c;则在交货单修改保存后会立即下发EWM&#xff09;重新下发EWM系统。 操作步骤如…

3ds Max渲染曝光过度怎么办?

3dmax效果图云渲染平台——渲染100 以3ds Max 2025、VR 6.2、CR 11.2等最新版本为基础&#xff0c;兼容fp、acescg等常用插件&#xff0c;同时LUT滤镜等参数也得到了同步支持。 注册填邀请码【7788】可领30元礼包和免费渲染券哦~ 遇到3ds Max渲染过程中曝光过度的问题&#xf…

SLF4J的介绍与使用(有logback和log4j2的具体实现案例)

目录 1.日志门面的介绍 常见的日志门面 &#xff1a; 常见的日志实现&#xff1a; 日志门面和日志实现的关系&#xff1a; 2.SLF4J 的介绍 业务场景&#xff08;问题&#xff09;&#xff1a; SLF4J的作用 SLF4J 的基本介绍 日志框架的绑定&#xff08;重点&#xff09…

Influxdb中,Flux常用的函数

目录 一、Flux常用的函数及其简要描述 1. 数据源和筛选函数 2. 聚合函数 3. 时间序列操作函数 4. 转换和映射函数 5. 窗口函数 6. 其他常用函数 注意事项 二、使用方法举例 1. 数据源和筛选 2. 聚合 3. 时间序列操作 4. 窗口函数 5. 转换和映射 注意事项 三、…

跨越界限的温柔坚守

跨越界限的温柔坚守 —— 郑乃馨与男友的甜蜜抉择在这个光怪陆离、瞬息万变的娱乐圈里&#xff0c;每一段恋情像是夜空中划过的流星&#xff0c;璀璨短暂。然而&#xff0c;当“郑乃馨与男友甜蜜约会”的消息再次跃入公众视野&#xff0c;它不仅仅是一段简单的爱情故事&#xf…

iOS中多个tableView 嵌套滚动特性探索

嵌套滚动的机制 目前的结构是这样的&#xff0c;整个页面是一个大的tableView, Cell 是整个页面的大小&#xff0c;cell 中嵌套了一个tableView 通过测试我们发现滚动的时候&#xff0c;系统的机制是这样的&#xff0c; 我们滑动内部小的tableView, 开始滑动的时候&#xff0c…

C/C++ 代码注释规范及 doxygen 工具

参考 谷歌项目风格指南——注释 C doxygen 风格注释示例 ubuntu20 中 doxygen 文档生成 doxygen 官方文档 在 /Doxygen/Special Command/ 章节介绍 doxygen 的关键字 注释说明 注释的目的是提高代码的可读性与可维护性。 C 风格注释 // 单行注释/* 多行注释 */ C 风格注…

设置某些路由为公开访问,不需要登录状态即可访问

在单页面应用&#xff08;SPA&#xff09;框架中&#xff0c;如Vue.js&#xff0c;路由守卫是一种非常有用的功能&#xff0c;它允许你控制访问路由的权限。Vue.js 使用 Vue Router 作为其官方路由管理器。路由守卫主要分为全局守卫和组件内守卫。 以下是如何设置路由守卫以允…

k8s 部署RuoYi-Vue-Plus之mysql搭建

1.直接部署一个pod 需要挂载存储款, 可参考 之前文章设置 https://blog.csdn.net/weimeibuqieryu/article/details/140183843 2.部署yaml 先创建命名空间ruoyi kubectl create namespace ruoyi创建部署文件 mysql-deploy.yaml --- apiVersion: v1 kind: PersistentVolume …

【论文阅读笔记】Meta 3D AssetGen

【论文阅读笔记】Meta 3D AssetGen: Text-to-Mesh Generation with High-Quality Geometry, Texture, and PBR Materials Info摘要引言创新点 相关工作T23D基于图片的3d 重建使用 PBR 材料的 3D 建模。 方法文本到图像:从文本中生成阴影和反照率图像Image-to-3D:基于pbr的大型重…

搭建NEMU与QEMU的DiffTest环境(动态库方式)

搭建NEMU与QEMU的DiffTest环境&#xff08;动态库方式&#xff09; 1 DiffTest原理简述2 编译NEMU3 编译qemu-dl-difftest3.1 修改NEMU/scripts/isa.mk3.2 修改NEMU/tools/qemu-dl-diff/src/diff-test.c3.3 修改NEMU/scripts/build.mk3.4 让qemu-dl-difftest带调试信息3.5 编译…

C语言实现字符串排序

如果只有英文字符且不区分大小写的话按照字典序排序可以用strcmp函数&#xff0c;两个字符串自左向右逐个字符相比&#xff08;按ASCII值大小相比较&#xff09; strcmp(s1,s2) 当s1<s2时&#xff0c;返回为负数&#xff1b; 当s1s2时&#xff0c;返回值 0&#xff1b; …

安卓的组件

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

【Linux】打包命令——tar

打包和压缩 虽然打包和压缩都涉及将多个文件组合成单个实体&#xff0c;但它们之间存在重要差异。 打包和压缩的区别&#xff1a; 打包是将多个文件或目录组合在一起&#xff0c;但不对其进行压缩。这意味着打包后的文件大小可能与原始文件相同或更大。此外&#xff0c;打包…

Win10精英控制器2代青春版 设备删除失败,蓝牙连接断断续续

前提 更新了主板rog z790带WiFi、蓝牙&#xff0c;但是精英控制器连上老师断断续续。 过程 在设备管理中尝试了卸载、重装主板对应的蓝牙驱动&#xff0c;怎么都不行&#xff0c;都已经想放弃了。 但是想起来之前主板没有蓝牙&#xff0c;用的是绿联的USB蓝牙接收器&#xf…

Ubuntu24.04修改系统的环境变量

apache/tomcat配置要用到JDK&#xff0c;使用torch有时也会用到系统库&#xff0c;涉及到环境变量 1. 查看环境变量 cat /etc/environment2. 新建环境变量 sudo nano /etc/environment在文件底部添加新的环境变量 MY_VARIABLE"your_value"3. 修改环境变量 临时—…