神经网络整体架构

news2024/11/27 22:38:58

文章目录

  • 1.输入层Input
  • 2.卷积层Conv
  • 3.激活函数层
    • (一)Sigmoid 函数
    • (二)Tanh 函数
    • (三)修正线性单元ReLU
    • (四)Leaky ReLU函数(带泄露的Relu)
    • (五)参数化ReLU
  • 4.池化层POOL
  • 5.全连接层FC
  • 6.输出层Output

  用全连接神经网络处理大尺寸图像具有三个明显的缺点:
  ①将图像展开为向量会丢失临近像素的空间信息
  ②模型参数过多,因此效率低下,训练困难
  ③大量参数也很块会导致网络过拟合
  针对这些问题,提出了卷积神经网络,很好的解决了这些问题。
  目的:减少网络参数数量,达到更好效果
在这里插入图片描述

1.输入层Input

  图像数据

2.卷积层Conv

  提取特征(将图像分成一个个小区域,利用卷积核生成对应的特征图)
  卷积运算的目的是提取输入的不同特征,某些卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
在这里插入图片描述
  可以看出卷积是一种局部操作,通过一定大小的卷积核作用于局部图像区域获得图像的局部信息。
在这里插入图片描述
在这里插入图片描述
  5×5的数据经过3×3的卷积核生成3×3的特征图
  卷积核:
在这里插入图片描述

  · 例
  第一个区域特征值:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  (1)多通道卷积
  当有多个通道channel时,例如图片可以有RGB三个通道,卷积核需要拥有相同的channel数,每个卷积核channel与输入层的对应channel进行卷积,将每个channel的卷积结果相加得到最终的feature map。
  (2)多卷积核
  当有多个卷积核时,可以学习到多种不同的特征,对应产生多个channel的feature map。多个功能的卷积核得计算结果放在一起,能够检测到图片中不同得特征(边缘检测)
  一个卷积层中可以有多个不同的卷积核,而每一个卷积核都对应一个特征图。

在这里插入图片描述

多通道卷积多卷积核
卷积核channel数是确定的前面是3×3×3,则卷积核的channel必须是3,每一个卷积核的通道数量必须要与输入通道数量保持一致卷积核的个数不是确定的
卷积核每个channel生成的不是独立的,需要相加并加上偏置量b,这里卷积输出结果只有1个,因为卷积核只有1个。每个卷积核生成的feature map是独立的,不需要相加,设置几个卷积核就产生几个feature map,这里输出结果有4个feature map,因为传入了3×3×3×4

在这里插入图片描述

在这里插入图片描述

3.激活函数层

  激活函数是用来加入非线性。常见的激活函数有sigmod、tanh、relu,前两者常用在全连接层,relu常见于卷积层。
  问题:为什么要在卷积层后面添加激活函数?
  如果只有线性变换,那无论多少层神经元,都能简化成一层神经元,那神经网络只是简单多元线性回归而已,不能拟合更加复杂的函数。举个例子,如果我们只有线性操作,那么我们的神经网络永远无法拟合圆等复杂的曲线图形,永远只能表示超平面,无法表示曲面等。
因为卷积对输入图像进行的操作是线性的,但输入的图像的信息不都是线性可分的,所以通过激活函数来进行非线性操作,能够更好的映射特征去除数据中的冗余,以增强卷积神经网络的表达能力。
  问题:激活函数为什么要使用非线性的?
  使用线性激活函数和不适用激活函数、直接使用logistic回归没有区别,那么无论神经网络有多少层,输出都是输入的线性组合,与没有隐藏层的效果相当,就成了最原始的感知器了。

相当于=

  作用:
  ①将神经网络非线性化,即提升神经网络的拟合能力,能拟合更复杂的函数。
  ②激活函数可以引入非线性因素。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。没有激活函数,神经网络将无法学习和模拟其他复杂类型的数据,例如图像视频、音频、语音等。
  ③激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。
在这里插入图片描述

  添加激活层:
在这里插入图片描述

(一)Sigmoid 函数

在这里插入图片描述
  sigmoid 函数公式如上式所示,函数图像如图所示。该函数能够把变量映射到[0,1]区间,所以一般是用来处理二分类的问题。

在这里插入图片描述

  观察还能发现在 sigmoid函数两端,对于大于5或小于-5的值无论多大或多小都会压缩到0或1。如此便带来一个严重问题,即梯度的“饱和效应”。
对照sigmoid函数的梯度图,大于5或小于-5部分的梯度接近0,这会导致在误差反向传播过程中导数处于该区域的误差将很难甚至根本无法传递至前层, 进而导致整个网络无法训练(导数为0将无法更新网络参数)。
此外,在参数初始化的时候还需特别注意,要避免初始化参数直接将输出值域带入这一区域:一种可能的情形是当初始化参数w过大时,将直接引发梯度饱和效应而无法训练。
在这里插入图片描述
解决办法:初始化参数w设置小点,这样生成的x值就会少,对应的斜率即梯度就会大更新参数就会快。
在这里插入图片描述

(二)Tanh 函数

在这里插入图片描述

tanh 函数公式如上所示,tanh 函数图像如图 2.17 所示,是将变量映射到[-1,1]区间。
在这里插入图片描述
  tanh函数存在和sigmoid函数一样的缺点:当x趋近无穷大或无穷小,导数的梯度(即函数的斜率)就趋近于0,这使得梯度算法的速度会减慢。

(三)修正线性单元ReLU

  因为 sigmoid 和 tanh 函数在反向传播中常常因为值过小而造成梯度消失,ReLU 函数能够避免部分这个问题,ReLU 是修正线性单元(Rectified Linear Unit),ReLU 函数的表达式如下式所示:

在这里插入图片描述
  从图中可以看出 ReLU 函数不是连续的,属于分段函数:当x<0时, f(x)值为0,当x≥0 时, f(x)等于x,x≥0部分完全消除了sigmoid型函数的梯度饱和效应,因此不会出现梯度消失的情况。
在这里插入图片描述

  与sigmoid、tanh 激活函数相比,ReLU 函数当输入小于0时梯度等于0,这时神经元不会被激活,所以在某一段时间里只有部分神经元会被激活,在反向传播过程中收敛速度会更快。
  优点:
  ①ReLU激活函数计算量更小
  ②收敛速度远快于sigmoid和tanh;
  ③解决部分梯度消失问题
  ReLU的梯度大多数情况下是常数,有助于解决深层网络的收敛问题
  ④因为ReLU不会梯度消失只有线性关系,会让网络训练更快;
  缺点:
  ①强制性把负值置为0,可能丢掉一些特征;
  ②当输入为负数时,权重无法更新,导致神经元死亡(学习率不要太大)

(四)Leaky ReLU函数(带泄露的Relu)

  为了缓解“死区”现象,研究者将ReLU函数中x<0的部分调整为,其中为0.01或0.001数量级的较小正数。这种新型的激活函数被称作Leaky ReLU:
在这里插入图片描述

  可以发现,原始ReLU函数实际上是Leaky ReLU函数的一个特例,即.
  不过由于Leaky ReLU函数中为超参数,合适的值较难设定且较为敏感,因此Leaky ReLU函数在实际使用中的性能并不十分稳定。

(五)参数化ReLU

  参数化ReLU的提出很好的解决了Leaky ReLU函数中超参数不易设定的问题:参数ReLU直接将也作为一个网络中可学习的变量融入模型的整体训 练过程。
  注:Leaky ReLU中的α需经人为指定,而参数化ReLU中α则经网络学习得到。
在这里插入图片描述

4.池化层POOL

  池化(特征压缩/下采样)是将输入图像进行缩小,减少像素信息,只保留重要信息,主要是为了减少计算量。主要包括最大池化和均值池化。
  作用:
  ①减少网络中的参数计算量,从而遏制过拟合;
  ②增强网络对输入图像中的小变形、扭曲、平移的鲁棒性(输入里的微小扭曲不会改变池化输出——因为我们在局部邻域已经取了最大值/平均值)。
  ③帮助我们获得不因尺寸而改变的等效图片表征。这非常有用,因为这样我们就可以探测到图片里的物体,不管它在哪个位置。
  特征:
  ①没有要学习的参数
池化层和卷积层不同,没有要学习的参数。池化是从目标区域中取最大值(或平均值),所以不要学习的参数。
  ②通道数不发生变化
  经过池化运算,输入数据和输出数据的通道数不会发生变化。
在这里插入图片描述

  ③对微小的位置变化具有鲁棒性
  输入数据发生微小偏差时,池化仍会返回相同的结果。因此,池化对输入数据的微小偏差具有鲁棒性。比如,3X3的池化的情况下,如下图,池化会吸收输入数据的偏差(根据数据不同,结果可能不一致)。
在这里插入图片描述
在这里插入图片描述

  从上图看,池化只是变长和宽,而特征图的个数其实不会变。
  最大池化MAX POOLING(选取最大的特征值)
  (1)目的:抓住主要矛盾,忽略次要因素。
  (2)意义:降低数据维度,减少训练参数,避免过拟合。
  通用池化层过滤器:f=2×2,s=2

在这里插入图片描述

  注:池化层没有涉及到任何的矩阵计算,只是一个筛选、压缩、过滤的过程。

5.全连接层FC

在这里插入图片描述

  全连接层在整个卷积神经网络中起分类器的作用,在全连接层之前需要将之前的输出feature map展平;再接一个或多个全连接层,进行模型学习。
  全连接层相当于一个普通神经网络。
  如果说卷积层、汇合层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用。
  在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转化为卷积核为1×1的卷积;而前层是卷积层的全连接层可以转化为卷积核为h×w的全局卷积,h和w分别为前层卷积输出结果的高和宽。
  · 例1
  以经典的VGG-16网络模型为例,对于224×224×3的图像输入,最后一层卷积层(指VGG-16的Pool5)可得输出为7×7×512的特征张量,若后层是一层含4096个神经元的全连接层时,则可用卷积核为7×7×512×4096的全局卷积来实现这一全连接运算过程。
在这里插入图片描述

  其中该卷积核具体参数如下,经过此卷积操作后可得1×1×4096的输出。
在这里插入图片描述
  如需再次叠加一个含2048个神经元的全连接层,可设定以下参数的卷积层操作:

在这里插入图片描述
  · 例2
  全连接层FC前面一层结果是32×32×10,那么全连接层的矩阵第一个参数是32×32×10=10240,第二个参数取决于最终要分成几类,上图分成5类即第二个参数是5,那么矩阵是[10240,5]。

6.输出层Output

分类回归
采用Softmax函数采用线性函数
分类
回归

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

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

相关文章

从加载到对话:使用 Transformers 本地运行量化 LLM 大模型(GPTQ AWQ)

&#xff08;无需显卡&#xff09;使用 Transformers 在本地加载具有 70 亿参数的 LLM 大语言模型&#xff0c;通过这篇文章你将学会用代码创建属于自己的 GPT。 LLM 的加载、微调和应用涉及多个方面&#xff0c;今天我们先聚焦于加载&#xff0c;本文的难点仅在于正确安装和知…

SQL第16课挑战题

1. 美国各州的缩写应始终用大写。更新所有美国地址&#xff0c;包括供应商状态&#xff08;Vendors表中的vend_state)和顾客状态&#xff08;customers表中的cust_state),使它们均为大写。 2. 第15课挑战题1要求将自己添加到customers表中&#xff0c;现在删除自己&#xff0c;…

活动预告丨第二十八期 “CCF 开源高校行”暨“木兰技术开放日”活动走进北京大学...

点击蓝字 关注我们 CCF Opensource Development Committee 开源高校行 北京大学站 在数字化转型的浪潮中&#xff0c;开源软件人才的培养是信息技术创新发展的重要根基&#xff0c;高校学子作为我国开源生态的源头活水备受重视。10月9日下午15:00-17:10 “CCF 开源高校行”暨“…

【VScode】如何使用详细步骤【笔记】、配置 C / C ++【笔记】

2024 - 10 - 10 - 笔记 - 24 作者(Author)&#xff1a;郑龙浩(仟濹) 该笔记写于 2024-07-02 摘抄到博客上的时间是 2024-10-10 VScode配置 C / C 笔记 我是看了下方链接的视频后为了方便后期复习做的笔记: B站某UP主的视频如下&#xff1a; VScode配置C/C开发环境&#xff…

科研绘图系列:R语言绘制SCI文章图2

文章目录 介绍加载R包导入数据图a图b图d系统信息介绍 文章提供了绘制图a,图b和图d的数据和代码 加载R包 library(ggplot2) library(dplyr) library(readxl) library(ggpmisc)导入数据 数据可从以下链接下载(画图所需要的所有数据): 百度网盘下载链接: https://pan.baid…

S14 瑞士轮胜者组 TES 2:0 击败 DK 晋级淘汰赛

电子竞技的赛场上&#xff0c;总有一些瞬间&#xff0c;让所有的质疑和嘲笑变得苍白无力。 今天&#xff0c;滔搏战队用自己的行动&#xff0c;再次证明了这一点。 他们不仅翻越了挡在面前的高山&#xff0c;更让世界听到了他们的故事。 这支曾被低估的队伍&#xff0c;在夏季…

使用Pytorch+Numpy+Matplotlib实现手写字体分类和图像显示

文章目录 1.引用2.内置图片数据集加载3.处理为batch类型4.设置运行设备5.查看数据6.绘图查看数据图片(1)不显示图片标签(2)打印图片标签(3)图片显示标签 7.定义卷积函数8.卷积实例化、损失函数、优化器9.训练和测试损失、正确率(1)训练(2)测试(3)循环(4)损失和正确率曲线(5)输出…

绘图技巧 | 矩形树状图(Treemap)绘图技巧分享~~

今天这篇推文&#xff0c;小编还是像往常一样交给大家绘图技巧&#xff0c;今天的主角就是-*树形矩阵图(Treemap)*。绘制树形图使用R或者Python都是可以绘制的&#xff0c;今天我们还是使用R进行绘制(Python绘制结果为交互式&#xff0c;后面统一介绍相应的库)。在R中有专门的包…

Java项目-----图形验证码登陆实现

原理: 验证码在前端显示,但是是在后端生成, 将生成的验证码存入redis,待登录时,前端提交验证码,与后端生成的验证码比较. 详细解释: 图形验证码的原理(如下图代码).前端发起获取验证码的请求后, 1 后端接收请求,生成一个键key(随机的键) 然后生成一个验证码作为map的valu…

npm运行时出现npm ERR! builtins is not a function报错!

项目场景&#xff1a; 项目运行时什么都没动都没改突然运行不起来了&#xff0c;报错 TypeError: builtins is not a function 代码什么都没动&#xff0c;不是代码问题&#xff0c;排查后只有可能是node和npm的问题&#xff0c;所以卸载掉node重装重启 解决方案&#xff1a; …

Python:赋值的本质其实是引用

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 在Python编程中&#xff0c;我们经常会遇到各种赋值操作&#xff0c;无论是简单的变量赋值&#xff0c;还是复杂的数据结构操作。表面上看&#xff0c;赋值就是把一个值…

数字工厂管理系统如何优化生产流程

在当今快速变化的制造业环境中&#xff0c;提高生产效率、降低成本并确保产品质量是企业持续发展的关键。数字工厂管理系统作为智能制造的重要组成部分&#xff0c;正逐渐成为优化生产流程、推动产业升级的重要工具。本文将探讨数字工厂管理系统如何通过智能化、自动化和数据分…

目标检测中的损失函数

损失函数是用来衡量模型与数据的匹配程度的&#xff0c;也是模型权重更新的基础。计算损失产生模型权重的梯度&#xff0c;随后通过反向传播算法&#xff0c;模型权重得以更新进而更好地适应数据。一般情况下&#xff0c;目标损失函数包含两部分损失&#xff0c;一个是目标框分…

基于单片机的穿戴式泳池遇险紧急呼救系统的设计

本计基于单片机的穿戴式泳池遇险紧急呼救系统装置。该装置采用STC12C5A60S2单片机与心率检测模块MAX30102的一体化脉冲血氧分析仪和心率监测器&#xff0c;对人体的心跳进行了实时检测。该装置由发送端和接收端两部分组成&#xff0c;中间由LORA无线通信模块进行数据传输&#…

使用Pytorch写简单线性回归

文章目录 Pytorch一、Pytorch 介绍二、概念三、应用于简单线性回归 1.代码框架2.引用3.继续模型(1)要定义一个模型&#xff0c;需要继承nn.Module&#xff1a;(2)如果函数的参数不具体指定&#xff0c;那么就需要在__init__函数中添加未指定的变量&#xff1a; 2.定义数据3.实例…

掌握未来技能:亚马逊云科技推出生成式 AI 认证计划!

目录 前言 生成式 AI 的力量 1. 内容创造的无限可能 2. 数据增强和个性化 3. 提高生产力 4. 教育和研究的辅助工具 5. 突破语言障碍 关于亚马逊云科技生成式 AI 认证 1. 认证目标 2. 认证内容 3. 认证优势 如何获得认证 1. 在线学习 2. 实践考试 3.AWS Certifie…

连肝了多天学习MySQL索引与性能优化,详细总结一下索引的使用与数据库优化

文章目录 索引是什么&#xff1f;索引的作用初步认识索引索引的类型按照数据结构分类BTREE索引 哈希索引 按功能逻辑进行分类唯一索引普通索引主键索引全文索引 按照字段的个数进行划分单列索引多列&#xff08;组合&#xff0c;联合&#xff09;索引 小结索引的设计原则数据准…

FreeRTOS——TCB任务控制块、任务句柄、任务栈详解

任务控制块结构体 任务控制块是 FreeRTOS 中用于描述和管理任务的数据结构&#xff0c;包含了任务的状态、优先级、堆栈等信息。 TCB_t的全称为Task Control Block&#xff0c;也就是任务控制块&#xff0c;这个结构体包含了一个任务所有的信息&#xff0c;它的定义以及相关变…

UE5蓝图学习笔记玩家碰撞触发死亡加一秒黑屏

UE5蓝图学习笔记玩家碰撞触发死亡加一秒黑屏 1.代表检测自身是否到和其他Actor碰撞。 2.判断Actor是否等于Player Pawn 3.摄像机在一秒钟褪色0-1。 4.Delay延时一秒执行。 5.获取当前关卡的名字。 6.重新加载当前的关卡 。 7.获取Get Plyer Pawn。 8.获取玩家相机控制器…

一次性语音芯片:重塑语音识别技术,引领智能化生活新时代

随着一次性语音芯片的突破性进展&#xff0c;语音识别技术正融入我们生活的方方面面&#xff0c;引领着智能化生活迈向一个全新的时代。这些芯片不仅体积小巧、成本低廉&#xff0c;更在性能上实现了质的飞跃&#xff0c;能够更精确地捕捉并理解人类语音。本文将解读关于一次性…