【AI前沿】深度学习:神经网络基础

文章目录

  • 📑引言
  • 一、神经元和感知器
    • 1.1 神经元的基本概念
    • 1.2 感知器模型
  • 二、多层感知器(MLP)
    • 2.1 MLP的基本结构
    • 2.2 激活函数的重要性
    • 2.3 激活函数
    • 2.4 激活函数的选择
  • 三、小结

image.png

📑引言

深度学习是现代人工智能的核心技术之一,而神经网络是深度学习的基础结构。神经网络通过模拟人脑的神经元工作原理,从数据中自动提取特征并进行复杂的模式识别和分类任务。在这篇博客中,我们将详细探讨神经网络的基本概念、构成单元、重要特性以及它们在深度学习中的关键作用。

一、神经元和感知器

1.1 神经元的基本概念

神经元是神经网络的基本计算单元,其灵感来源于生物神经元。生物神经元通过接收输入信号(来自其他神经元或感受器),经过处理后传递输出信号。人工神经元模拟了这一过程,主要由以下部分组成:

  • 输入(Input): 接收来自其他神经元或输入数据的信号。
  • 权重(Weight): 每个输入信号都与一个权重相乘,权重决定了该输入信号的重要性。
  • 加权求和(Weighted Sum): 所有输入信号与对应权重的乘积之和。
  • 激活函数(Activation Function): 将加权求和的结果转换为输出信号。

数学上,一个神经元的输出可以表示为:
image.png
其中,( x_i ) 是输入信号,( w_i ) 是权重,( b ) 是偏置,( f ) 是激活函数。

1.2 感知器模型

感知器(Perceptron)是最简单的人工神经元模型,由Frank Rosenblatt在1958年提出。感知器是一种线性分类器,能够将输入数据分为两个类别。其基本结构如下:

  • 输入层: 接收输入数据,每个输入与一个权重相乘。
  • 加权求和: 将所有加权后的输入信号相加,加上偏置。
  • 激活函数: 使用阶跃函数(Step Function)作为激活函数,将加权求和结果转换为输出。

阶跃函数定义为:
image.png
感知器模型可以表示为:
image.png
感知器的训练过程通过调整权重和偏置,使模型能够正确分类输入数据。感知器的局限性在于它只能处理线性可分的数据集,对于复杂的非线性数据无能为力。

二、多层感知器(MLP)

2.1 MLP的基本结构

多层感知器(Multi-Layer Perceptron,MLP)是由多个感知器层叠组成的神经网络模型。MLP通过引入隐藏层(Hidden Layer),能够处理复杂的非线性数据。MLP的基本结构包括:

  • 输入层: 接收输入数据。
  • 隐藏层: 由多个神经元组成,通过激活函数进行非线性变换。
  • 输出层: 生成最终的输出结果。

每一层的输出作为下一层的输入,层与层之间全连接(Fully Connected),即每个神经元与上一层的所有神经元相连。

2.2 激活函数的重要性

激活函数是MLP中引入非线性的关键,使得神经网络能够拟合复杂的非线性关系。
常见的激活函数包括:

  • Sigmoid函数:

image.png
Sigmoid函数将输入压缩到(0, 1)之间,适用于输出为概率的任务,但容易导致梯度消失问题。

  • Tanh函数:

image.png
Tanh函数将输入压缩到(-1, 1)之间,相比Sigmoid具有零中心,但仍有梯度消失问题。

  • ReLU函数(Rectified Linear Unit):

image.png
ReLU函数解决了梯度消失问题,计算简单,广泛应用于现代神经网络中。但其可能导致部分神经元“死亡”,即在训练过程中输出恒为零。

  • Leaky ReLU函数:

image.png
Leaky ReLU在负轴上保留一部分信息,避免了神经元死亡的问题。
MLP的训练
MLP的训练过程包括前向传播(Forward Propagation)和反向传播(Backpropagation)。前向传播计算每层的输出,反向传播计算误差梯度并更新权重。

  • 前向传播: 从输入层开始,逐层计算输出,直到输出层生成最终结果。
  • 反向传播: 从输出层开始,逐层计算误差梯度,并使用梯度下降法更新权重和偏置。

反向传播的关键是链式法则(Chain Rule),通过链式法则计算每层的梯度:
image.png
其中,( L ) 是损失函数,( y ) 是输出,( w ) 是权重。

2.3 激活函数

激活函数的作用
激活函数在神经网络中起到引入非线性的作用,使得神经网络能够学习和拟合复杂的非线性关系。不同的激活函数具有不同的特性和应用场景。
常见激活函数

  1. Sigmoid函数:

Sigmoid函数将输入值映射到(0, 1)之间,常用于二分类问题的输出层。其数学表达式为:
image.png
**优点:**平滑且连续,输出范围在(0, 1)之间。
**缺点:**容易导致梯度消失问题,训练深层网络时效果不佳。

  1. Tanh函数:

Tanh函数将输入值映射到(-1, 1)之间,常用于隐藏层的激活函数。其数学表达式为:
image.png
**优点:**零中心化,输出范围在(-1, 1)之间。
**缺点:**与Sigmoid函数类似,也容易导致梯度消失问题。

  1. ReLU函数:

ReLU函数是现代神经网络中最常用的激活函数,输出输入值与0的较大者。其数学表达式为:
image.png
**优点:**计算简单,能够有效解决梯度消失问题,提高训练速度。
**缺点:**可能导致部分神经元“死亡”,即在训练过程中输出恒为零。

  1. Leaky ReLU函数:

Leaky ReLU函数是ReLU的变种,在负轴上保留一部分信息,避免神经元死亡的问题。其数学表达式为:
image.png
**优点:**避免神经元死亡,保留负值信息。
**缺点:**需要手动调节参数 ( \alpha )。

2.4 激活函数的选择

激活函数的选择对神经网络的性能有重要影响。
一般来说,隐藏层使用ReLU或其变种(如Leaky ReLU),输出层根据具体任务选择Sigmoid或Tanh函数。对于回归问题,输出层可以直接使用线性激活函数。

三、小结

神经网络是深度学习的基础结构,通过模拟人脑的神经元工作原理,能够从数据中自动提取特征并进行复杂的模式识别和分类任务。本文详细探讨了神经元和感知器、多层感知器(MLP)、激活函数的基本概念和关键技术。希望通过这篇详细的博客,读者能够全面理解神经网络的基础知识,为深入学习和研究深度学习技术打下坚实的基础。

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【unity笔记】九、Unity添加串口通信

unity仿真使用虚拟串口调试。下面为简单流程。 常用串口调试软件在这里下载。 1.虚拟串口 添加虚拟串口,这里使用com1 com2 2. 串口调试 在这里为虚拟串口发送消息。 3. unity配置 3.1 设置 在文件->生成设置->玩家设置->玩家->其他设置 中找到…

【JavaSE】程序逻辑控制

目录 1. 顺序结构 2. 分支结构 2.1 if语句 2.1.1 语法格式1 2.1.2 语法格式2 2.1.3 语法格式3 2.1.4 练习 2.1.5 注意事项 2.2 switch 语句 3. 循环结构 3.1 while循环 3.1.1 语法格式 3.1.2 代码示例 3.1.3 注意事项 3.2 break 3.3 continue 3.4 for循环 …

Java虚拟机与跨平台特性

Java虚拟机与跨平台特性 1、Java虚拟机(JVM)2、跨平台特性3、总结 💖The Begin💖点点关注,收藏不迷路💖 1、Java虚拟机(JVM) Java虚拟机是一个能够执行Java字节码的软件环境。它模…

计算机的错误计算(二十七)

摘要 介绍错数:任给一个单变元函数,当自变量被截断时,函数值中含有的错误的有效数字个数,并给出其计算方法。 首先,从字面上看,错数表示错误的有效数字个数。 下面从一个略显粗糙的化简过程,推…

LLM-文本分块(langchain)与向量化(阿里云DashVector)存储,嵌入LLM实践

文章目录 前言向量、令牌、嵌入分块按字符拆分按字符递归拆分按token拆分 向量化使用 TextEmbedding 实现语义搜索数据准备通过 DashScope 生成 Embedding 向量通过 DashVector 构建检索:向量入库语义检索:向量查询完整代码 总结 前言 Transformer 架构…

GitLab和Git

GitLab保姆级教程 文章目录 GitLab保姆级教程一、GitLab安装二、添加组和用户三、新增项目四、Git上传项目说明五、命令行指引 根据以下说明从计算机中上传现有文件:六、创建与合并分支七、GitLab回滚到特定版本八、数据备份与恢复九、docker中创建gitlab GIT 常用命…

Flask 用 Redis 缓存键值对-实例

Flask 使用起 Redis 来简直就是手到擒来,比 MySQL 简单多了,不需要那么多配置,实际代码就这么多,直接复制就能用。除了提供简单实用的实例以外,本文后面还会简单介绍一下 Redis 的安装与使用,初学者也能一看…

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…

如何在 Windows 10 上恢复未保存的 Word 文档

您是否整晚都在处理一个重要的 word 文件,但忘记保存它了?本文适合您。在这里,我们将解释如何恢复未保存的 word 文档。除此之外,您还将学习如何恢复已删除的 word 文档。 从专业人士到高中生,每个人都了解丢失重要 W…

物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程

前言: 物流数据分析成本利润计算软件,佳易王物流货运单管理系统操作教程 以下软件操作教程以,佳易王物流单统计分析软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 一、软件操作教程 1、佳易王物流货运…

前端八股文 闭包的理解

什么是闭包 闭包是指有权访问另一个函数作用域中的变量的函数 ——《JavaScript高级程序设计》 (闭包 内层函数 引用的外层函数的变量) 下面就是一个简单的闭包 闭包不一定必须有 return 闭包不一定有内存泄漏 闭包 什么时候用到 return 就是 外部…

【区块链+跨境服务】粤澳健康码跨境互认系统 | FISCO BCOS应用案例

2020 年突如其来的新冠肺炎疫情,让社会治理体系面临前所未见的考验,如何兼顾疫情防控与复工复产成为社会 各界共同努力的目标。区块链技术作为传递信任的新一代信息基础设施,善于在多方协同的场景中发挥所长,从 而为粤澳两地的疫情…

QT TCP网络通信编程

学习目标: TCP网络通信编程 前置环境 运行环境:qt creator 4.12 学习内容 一、TCP 协议基础知识: TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 拥塞控制算法包括慢启动、拥塞避免、快速重传和快速恢复。TCP 通信需要建立连接,Qt 提供 QTcp…

【区块链 + 智慧政务】省级一体化区块链平台 | FISCO BCOS应用案例

在加强数字政府建设的大背景下,科大讯飞广泛应用数字技术于政府管理服务,推动政府数字化、智能化运行。同时, 统筹推进业务、数据和技术的融合,提升跨地域、跨层级、跨部门和跨业务的协同管理和服务水平。 当前政务信息化建设中&…

绿盟培训入侵排查

一、webshell 排查 1、文件特征 2、windows 3、linux 4、内存马 二、web 日志排查 1、日志排查 2、中间件报错排查 三、服务器失陷处置

洛谷 7.10 数数

Vanya and Books - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ac代码 #include<bits/stdc.h> typedef long long ll;#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) const ll N1e3; using namespace std;int main() {IOS;ll x;cin>>x;ll ans0,px…

VScode 格式化插件Prettier设置无效

VScode在配置格式化代码的插件的时候&#xff0c;可以选择Prettier或者ESlint等插件 比如选择Prettier格式化代码 在某文件修改代码之后&#xff0c;ctrls 保存代码&#xff0c;保存之后会自动格式化代码&#xff0c;但是我们发现控制台有报错 为什么已经设置了格式化插件为Pr…

Springboot 设置个性化banner

在 Spring Boot 中自定义 banner 的方法有几种&#xff0c;可以通过以下步骤来实现&#xff1a; 1、使用文本文件作为 banner 在 src/main/resources 目录下创建一个名为 banner.txt 的文件。 编辑这个文件&#xff0c;输入想要显示的文本。确保文本中包含换行符和空格…

linux radix-tree 基数树实现详解

radix tree&#xff0c;又称做基数树&#xff0c;是一种适合于构建key(index)与value(item)相关联的数据结构。内核中使用非常广泛。本文主要聚焦linux内核基数树的代码实现,大量注释过的代码。 radix-tree组织结构如下: 1、数据结构 /** The bottom two bits of the slot de…

Java中的公平锁和非公平锁

1、什么是公平锁和非公平锁 公平锁和非公平锁是指在多线程环境下&#xff0c;如何对锁进行获取的顺序和策略的不同。 公平锁是指多个线程按照申请锁的顺序来获取锁&#xff0c;即先到先得的策略。当一个线程释放锁之后&#xff0c;等待时间最长的线程将获得锁。公平锁的优点是保…