当前位置: 首页 > news >正文

深度学习-神经网络

文章目录

  • 一、基本组成单元:神经元
  • 二、神经网络层
  • 三、偏置与权重
  • 四、激活函数
    • 1.激活函数的作用
    • 2.常见的激活函数
      • 1).Sigmoid
      • 2).Tanh函数
      • 3).ReLU函数
  • 五、优点与缺点
  • 六、总结

神经网络(Neural Network, NN)是一种模拟人类大脑工作方式的计算模型,它是深度学习和机器学习领域的基础。神经网络的构造是一个复杂但系统的过程,涉及多个关键组件和步骤。

一、基本组成单元:神经元

神经网络的基本组成单元是神经元,它模拟了生物神经元的结构和功能。每个神经元接收来自其他神经元的输入信号,通过加权求和、加上偏置项,并应用激活函数,最终产生输出信号。
在这里插入图片描述

二、神经网络层

神经网络由多个层组成,包括输入层、隐藏层和输出层。

  • 输入层:接收原始数据作为输入,不进行任何计算,只是将数据传递给隐藏层。
  • 隐藏层:位于输入层和输出层之间,可以有一层或多层。隐藏层的神经元对输入数据进行加权求和、加上偏置项,并通过激活函数产生输出,这些输出将作为下一层的输入。隐藏层是神经网络进行复杂计算和信息处理的关键部分。
  • 输出层:神经网络的最后一层,负责产生最终的输出结果。输出层的神经元数量通常与任务的具体需求相关,例如,在分类任务中,输出层的神经元数量可能与类别数相同。
    在这里插入图片描述

三、偏置与权重

  • 偏置:加到加权和上的一个常数,可以看作是每个神经元的一个额外输入。偏置允许神经元即使在所有输入都为零时也有非零的输出。
  • 权重:连接不同神经元的参数,代表一个神经元输出对另一个神经元输出的影响力。在训练过程中,神经网络通过调整权重来学习数据中的模式。
  • 权重和偏置的初始化
    在训练神经网络之前,通常需要初始化权重和偏置。初始化的方法有很多种,比如将权重和偏置都初始化为0、小的随机数、或者根据某种特定的分布(如正态分布或均匀分布)来初始化。不同的初始化方法可能会对网络的训练过程和最终性能产生不同的影响。
    在这里插入图片描述

四、激活函数

激活函数是神经网络中的非线性元素,它使得神经网络能够解决非线性问题。

1.激活函数的作用

  • 引入非线性:激活函数为神经网络引入了非线性因素,使得网络能够拟合各种复杂的函数或映射,从而解决线性模型表达能力不足的问题。
  • 归一化:激活函数通常会将神经元的输出限制在一个特定的范围内,如Sigmoid函数的输出范围在(0,
    1)之间,这有助于限制数据的扩张,防止数据过大导致的溢出风险。
  • 增强特征:激活函数能够增强输入的有效特征,去除或降低噪音特征,从而提高模型的泛化能力。

2.常见的激活函数

1).Sigmoid

在这里插入图片描述
公式:
s i g ( t ) = 1 1 + e − t sig(t)= \frac{1}{1+e^{-t}} sig(t)=1+et1

特点:Sigmoid函数将输入值映射到(0, 1)之间,输出值可以解释为概率或激活程度。它适合用于二分类问题的输出层。然而,Sigmoid函数存在梯度消失和计算量大的问题,且在深层网络中容易导致梯度消失,影响训练效果。

2).Tanh函数

在这里插入图片描述

公式:
t a n h : a = e z − e − z e z + e − z tanh : a= \frac{e^z-e^{-z}}{e^z+e^{-z}} tanh:a=ez+ezezez

特点:Tanh函数将输入值映射到(-1, 1)之间,且输出以0为中心,这有助于加速收敛。与Sigmoid函数相比,Tanh函数在收敛速度和梯度传播方面表现更好。但是,它同样存在梯度消失和计算量大的问题。

3).ReLU函数

在这里插入图片描述

公式:
f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
特点:ReLU函数在正输入时保持输入不变,负输入时输出为0。这种特性使得ReLU函数在计算速度上远快于Sigmoid和Tanh函数,且能够有效缓解梯度消失问题。

五、优点与缺点

  • 优点:
    • 自动特征提取:无需人工设计特征,能够自动从数据中提取关键特征。
    • 强大的数据拟合能力:能够捕捉数据中的非线性关系,提高模型预测的准确性
    • 广泛的应用场景:适用于图像识别、语音识别、自然语言处理等多个领域。
  • 缺点:
    • 依赖大量训练数据:模型性能受数据量影响,数据量不足可能导致过拟合或欠拟合。
    • 计算资源要求高:训练大规模神经网络需要高性能计算资源。
    • 可解释性差:神经网络的决策过程难以解释,缺乏透明度。

六、总结

本文主要介绍了神经网络部分组成,例如基本单元、网络层、偏置、权重与激活函数等组成部分。其中简述了网络层的三部分,即输入层、输出层与隐藏层,然后讲到了神经网络中的可训练参数,即偏置与权重,它们共同决定了网络的行为和性能。其次我们介绍了神经网络常用的几种激活函数,通过图像与公式为大家展示了几种激活函数的异同。最后我们为大家讲述了神经网络的优缺点,以便让大家合理的运用神经网络。

相关文章:

深度学习-神经网络

文章目录 一、基本组成单元:神经元二、神经网络层三、偏置与权重四、激活函数1.激活函数的作用2.常见的激活函数1).Sigmoid2).Tanh函数3).ReLU函数 五、优点与缺点六、总结 神经网络(Neural Network, NN)是一种模拟人类大脑工作方式的计算模型…...

Redis - 集群篇 - 集群模式

面试的时候被人问到集群的问题,搬砖仔哪懂这么多,继续整理一下知识点 Redis 集群模式 Redis集群就是将多个Redis节点连接在一起, 让Redis在不同的节点上同时提供服务。 Redis集群主要有三种模式: 主从复制模式(mast…...

Robot Operating System——线速度和角速度

大纲 应用场景1. 移动机器人控制场景描述具体应用 2. 无人机控制场景描述具体应用 3. 机械臂运动控制场景描述具体应用 4. 自动驾驶车辆控制场景描述具体应用 5. 机器人仿真场景描述具体应用 6. 机器人传感器数据处理场景描述具体应用 定义字段解释 案例 geometry_msgs::msg::T…...

量化投资策略_因子打分选股的案例实现

一:因子打分选股的介绍 因子打分选股是一种量化投资策略,它通过选取多个与股票收益率相关的因子,对股票进行综合评分,然后根据评分来选择股票构建投资组合。以下是构建多因子打分选股模型的一般步骤: 数据预处理&…...

架构师知识梳理(七):软件工程-工程管理与开发模型

软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…...

bp的模块被隐藏了

看我们现在没有代理那个模块了 我们点击查看 这里有被我们隐藏的模块,比如代理等,把前面的眼睛点一下 这个模块就出来了,如果想把他固定在任务栏里 拖动这个位置 就好了,如果有其他问题可以留言,看到可进我的努力给你…...

C++学习笔记(21)

243、条件变量-生产消费者模型 条件变量是一种线程同步机制。当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线 程才会被唤醒。 C11 的条件变量提供了两个类: condition_variable:只支持与普通 mutex 搭配&…...

Ubuntu系统入门指南:常用命令详解

Ubuntu系统入门指南:常用命令详解 引言 Ubuntu是一个基于Linux内核的开源操作系统,由Canonical公司和社区共同开发和维护。它以易用性、稳定性和广泛的软件支持而著称,广泛应用于个人电脑、服务器和云计算环境。对于新手来说,掌…...

keep-alive缓存不了iframe

最近做了个项目&#xff0c;其中有个页面是由 iframe 嵌套了一个另外的页面&#xff0c;在运行的过程中发现 KeepAlive 并不生效&#xff0c;每次切换路由都会触发 iframe 页面的重新渲染&#xff0c;代码如下&#xff1a; <router-view v-slot"{ Component }">…...

Gradio快速部署构建AIGC的web应用 ,python

Gradio快速部署构建AIGC的web应用 &#xff0c;python Gradio开源项目链接&#xff1a; https://github.com/gradio-app/gradiohttps://github.com/gradio-app/gradio &#xff08;1&#xff09;python的pip安装&#xff1a; pip install gradio &#xff08;2&#xff09;写…...

《职教论坛》

《职教论坛》投稿须知 《职教论坛》为全国中文核心期刊。为进一步提高期刊的规范化和标准化&#xff0c;也可使作者投搞有规可循&#xff0c;特对来稿提出如下要求&#xff1a; 一、稿件应有创新内容&#xff0c;应观点明确、资料准确、结构严谨、表述清楚、文字简明&#xff…...

JZ2440开发板——S3C2440的时钟体系

参考博客 &#xff08;1&#xff09;S3C2440-裸机篇-05 | S3C2440时钟体系详解&#xff08;FCLK、PCLK、HCLK&#xff09; 一、三种时钟&#xff08;FCLK、HCLK、PCLK&#xff09; 如下图所示&#xff0c;S3C2440的时钟控制逻辑&#xff0c;给整个芯片提供三种时钟&#xff1…...

[数据集][目标检测]男女性别检测数据集VOC+YOLO格式9769张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;9769 标注数量(xml文件个数)&#xff1a;9769 标注数量(txt文件个数)&#xff1a;9769 标注…...

static 初始化报错

在 C 或 C 中&#xff0c;当你在函数中使用 static 关键字初始化一个局部变量时&#xff0c;编译器要求初始化器&#xff08;initializer&#xff09;是编译时常量。如果你尝试用动态计算的值初始化 static 变量&#xff08;如函数参数或运行时生成的值&#xff09;&#xff0c…...

3D Gaussian Splatting 论文学习

概述 目前比较常见的渲染方法大致可以分为2种&#xff1a; 将场景中的物体投影到渲染平面&#xff1a;传统的渲染管线就是这种方式&#xff0c;主要针对Mesh数据&#xff0c;可以将顶点直接投影成2D的形式&#xff0c;配合光栅化、深度测试、Alpha混合等就可以得到渲染的图像…...

MySQL 安全机制全面解析

‍ 在如今的数字化时代&#xff0c;数据库安全 变得越来越重要。为了防止对数据库进行非法操作&#xff0c;MySQL 定义了一套完整的安全机制&#xff0c;包括用户管理、权限管理 和 角色管理。本文将为你深入浅出地介绍这三大安全机制&#xff0c;帮助你轻松掌握MySQL的安全管…...

vue原理分析(十四)研究new Vue()中的 initProvide

在Vue.prototype._init 中有一些init函数&#xff0c;今天我们来研究这些init函数 Vue.prototype._init function (options) {......{initProxy(vm);}......initLifecycle(vm);initEvents(vm);initRender(vm);callHook$1(vm, beforeCreate, undefined, false /* setContext *…...

Qt控制开发板的LED

Qt控制开发板的LED 使用开发板的IO接口进行控制是嵌入式中非常重要的一点&#xff0c;就像冯诺依曼原理说的一样&#xff0c;一个计算机最起码要有输入输出吧&#xff0c;我们有了信息的接收和处理&#xff0c;那我们就要有输出。 我们在开发板上一般都是使用开发板的GPIO接口…...

S3C2440开发板点亮LED灯+PWM定时器

目录 GPIO引脚和寄存器概述 点亮LED灯步骤 1.配置GPIO 2.点亮LED 设置引脚为输出 控制引脚电平 完整代码 PWM GPIO引脚和寄存器概述 GPIO端口&#xff1a; S3C2440的GPIO引脚可被配置为输入或输出&#xff08;控制LED的引脚通常配置为输出模式&#xff09;。寄存器&#…...

S-Procedure的基本形式及使用

理论 Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- \textbf{Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- } Lemma 1. ( S- Procedure[ 34] ) : Define the quadratic func- tions w.r.t. x ∈ C M 1 \mathbf{x}\in\mathbb{C}^M\times1 x…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...