深入浅出神经网络:从基础原理到高级应用

第5章 神经网络

更加详细内容可以看这篇文章

5.1 神经元模型

神经网络的基本单元是神经元模型。神经元模拟了生物神经元的行为,通过接收输入信号,进行加权求和,然后经过激活函数输出结果。
在这里插入图片描述

数学上,一个简单的神经元可以表示为:

y = f ( ∑ i = 1 n w i x i + b ) y = f\left(\sum_{i=1}^{n} w_i x_i + b\right) y=f(i=1nwixi+b)

其中, w i w_i wi是输入 x i x_i xi的权重, b b b是偏置, f f f是激活函数。
在这里插入图片描述

常见的激活函数包括Sigmoid函数、Tanh函数和ReLU函数,它们分别定义为:

Sigmoid ( x ) = 1 1 + e − x \text{Sigmoid}(x) = \frac{1}{1 + e^{-x}} Sigmoid(x)=1+ex1

Tanh ( x ) = tanh ⁡ ( x ) = e x − e − x e x + e − x \text{Tanh}(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} Tanh(x)=tanh(x)=ex+exexex

ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)

这些激活函数各有特点,Sigmoid和Tanh函数压缩输入到固定范围内,但容易导致梯度消失问题;ReLU函数则通过简单的线性变换解决了梯度消失问题,但可能导致“死ReLU”现象。

5.2 感知机与多层网络

感知机是最简单的神经网络,由一个或多个神经元构成,它只能解决线性可分的问题。
感知机:两层神经元组成。
在这里插入图片描述

感知机的输出可以表示为:

y = sign ( ∑ i = 1 n w i x i + b ) y = \text{sign}\left(\sum_{i=1}^{n} w_i x_i + b\right) y=sign(i=1nwixi+b)

感知机的局限在于它仅能解决线性可分的问题。为了解决非线性问题,我们引入了多层感知机(MLP)。多层感知机通过引入隐藏层解决了非线性问题。一个两层感知机有输入层、隐藏层和输出层。其数学表示为:

h j = f ( ∑ i = 1 n w i j x i + b j ) h_j = f\left(\sum_{i=1}^{n} w_{ij} x_i + b_j\right) hj=f(i=1nwijxi+bj)

y k = g ( ∑ j = 1 m v j k h j + c k ) y_k = g\left(\sum_{j=1}^{m} v_{jk} h_j + c_k\right) yk=g(j=1mvjkhj+ck)

其中, w i j w_{ij} wij v j k v_{jk} vjk分别是输入层到隐藏层和隐藏层到输出层的权重, b j b_j bj c k c_k ck是偏置项, f f f g g g是激活函数。多层感知机的强大在于其能够通过多个隐藏层的组合,逼近任意复杂的函数。

5.3 误差逆传播算法

误差逆传播算法是训练多层神经网络的核心算法。其目标是通过最小化损失函数来调整网络的权重和偏置。常见的损失函数是均方误差(MSE),定义为:

E = 1 2 ∑ k = 1 K ( y k − t k ) 2 E = \frac{1}{2}\sum_{k=1}^{K} (y_k - t_k)^2 E=21k=1K(yktk)2

其中, y k y_k yk是网络的输出, t k t_k tk是目标值。反向传播通过链式求导法则计算损失函数相对于每个权重的梯度,然后使用梯度下降法更新权重:

w i j : = w i j − η ∂ E ∂ w i j w_{ij} := w_{ij} - \eta \frac{\partial E}{\partial w_{ij}} wij:=wijηwijE

其中, η \eta η是学习率。

详细来说,反向传播算法分为以下几个步骤:

  1. 前向传播:计算每层神经元的输入和输出。
  2. 计算误差:使用损失函数计算输出层的误差。
  3. 反向传播:根据输出层的误差,利用链式求导法则逐层计算每层的误差。
  4. 更新权重:根据计算出的误差和梯度,调整每个权重和偏置。

梯度计算的关键在于链式法则。对于隐藏层的每个权重 w i j w_{ij} wij,其梯度可以表示为:

∂ E ∂ w i j = ∂ E ∂ y k ⋅ ∂ y k ∂ h j ⋅ ∂ h j ∂ w i j \frac{\partial E}{\partial w_{ij}} = \frac{\partial E}{\partial y_k} \cdot \frac{\partial y_k}{\partial h_j} \cdot \frac{\partial h_j}{\partial w_{ij}} wijE=ykEhjykwijhj

通过这种方式,网络能够逐层调整权重,使得损失函数逐渐减小,逼近最优解。

当然,继续补全和详细解释剩下的部分。

5.4 全局最小与局部极小

在训练神经网络的过程中,我们希望找到损失函数的全局最小值,但由于损失函数通常是非凸的,我们可能会陷入局部极小值。解决这一问题的方法包括初始化权重的多次尝试、使用动量(Momentum)方法、以及更复杂的优化算法如Adam优化器。

局部最小值是在某一区域内,函数的取值达到了最小,但是如果将这个区域扩展到定义域上来,那么这个局部最小值就不一定是最小的。

全局最小值,是在定义域内,函数值最小。全局最小一定是局部最小值,但“局部极小 ” 不一定是“全局最小 ”。因此我们的目标是找到 “ 全局最小 ”。

可能存在多个局部极小值,但却只会有一个全局最小值

在这里插入图片描述

动量方法通过引入动量项来加速梯度下降,并减少震荡,其更新规则为:

v t + 1 = γ v t + η ∂ E ∂ w i j v_{t+1} = \gamma v_t + \eta \frac{\partial E}{\partial w_{ij}} vt+1=γvt+ηwijE
w i j : = w i j − v t + 1 w_{ij} := w_{ij} - v_{t+1} wij:=wijvt+1

其中, γ \gamma γ是动量系数,通常设为0.9。动量方法通过保留先前梯度更新的方向,使得参数在正确方向上前进得更快。

Adam优化器结合了动量法和RMSProp方法,通过自适应调整学习率,加速收敛并降低震荡。其更新规则为:

m t = β 1 m t − 1 + ( 1 − β 1 ) ∇ E m_t = \beta_1 m_{t-1} + (1 - \beta_1) \nabla E mt=β1mt1+(1β1)E
v t = β 2 v t − 1 + ( 1 − β 2 ) ( ∇ E ) 2 v_t = \beta_2 v_{t-1} + (1 - \beta_2) (\nabla E)^2 vt=β2vt1+(1β2)(E)2
m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1β1tmt
v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1β2tvt
w = w − η m ^ t v ^ t + ϵ w = w - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} w=wηv^t +ϵm^t

其中, β 1 \beta_1 β1 β 2 \beta_2 β2是超参数,常设为0.9和0.999, ϵ \epsilon ϵ是一个极小值防止分母为零。

5.5 其他常见神经网络

除了多层感知机,还有许多其他类型的神经网络。

  1. 卷积神经网络(CNN)
    卷积神经网络专注于处理图像数据,通过卷积层提取特征。卷积操作可以表示为:

    ( I ∗ K ) ( x , y ) = ∑ i = 0 m − 1 ∑ j = 0 n − 1 I ( x + i , y + j ) K ( i , j ) (I * K)(x, y) = \sum_{i=0}^{m-1}\sum_{j=0}^{n-1} I(x+i, y+j) K(i, j) (IK)(x,y)=i=0m1j=0n1I(x+i,y+j)K(i,j)

    其中, I I I是输入图像, K K K是卷积核。卷积层通过滑动窗口操作提取局部特征,并通过池化层(如最大池化)进一步减少特征图的尺寸。典型的CNN架构包括卷积层、池化层、全连接层等。

  2. 循环神经网络(RNN)
    循环神经网络用于处理序列数据,通过隐藏层之间的循环连接捕捉时间序列关系。其更新公式为:

    h t = f ( W h h h t − 1 + W x h x t + b h ) h_t = f(W_{hh} h_{t-1} + W_{xh} x_t + b_h) ht=f(Whhht1+Wxhxt+bh)
    y t = g ( W h y h t + b y ) y_t = g(W_{hy} h_t + b_y) yt=g(Whyht+by)

    其中, W h h W_{hh} Whh, W x h W_{xh} Wxh, W h y W_{hy} Why是权重矩阵, h t h_t ht是隐藏状态, x t x_t xt是输入, y t y_t yt是输出。RNN在处理长序列时可能会遇到梯度消失或爆炸问题,常用的变种有长短期记忆网络(LSTM)和门控循环单元(GRU),它们通过引入门机制有效地缓解了这些问题。

  3. 生成对抗网络(GAN)
    生成对抗网络由生成器和判别器组成。生成器通过噪声生成假数据,判别器则用于区分真实数据和假数据。训练过程是一个零和博弈,两个网络互相竞争,使得生成器生成的数据越来越真实。GAN的损失函数为:

    min ⁡ G max ⁡ D V ( D , G ) = E x ∼ p d a t a ( x ) [ log ⁡ D ( x ) ] + E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{data}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_z(z)}[\log(1 - D(G(z)))] GminDmaxV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]

    其中, D D D是判别器, G G G是生成器, x x x是真实数据, z z z是噪声。

  4. 自编码器(Autoencoder)
    自编码器用于数据降维和特征学习,由编码器和解码器组成。编码器将输入数据压缩到低维表示,解码器则将低维表示重构为原始数据。自编码器的目标是最小化重构误差:

    L ( x , x ^ ) = ∣ ∣ x − x ^ ∣ ∣ 2 L(x, \hat{x}) = ||x - \hat{x}||^2 L(x,x^)=∣∣xx^2

    其中, x x x是输入数据, x ^ \hat{x} x^是重构数据。常见的变种有稀疏自编码器、去噪自编码器和变分自编码器(VAE)。

总结

神经网络是深度学习的核心,理解其基础构造和训练方法对于掌握现代人工智能技术至关重要。通过以上各章节的详细讲解,我们从神经元模型、感知机、多层网络、误差逆传播算法,到全局最小与局部极小问题,以及不同类型的神经网络,一步步深入了解其原理和应用。希望这些内容能够帮助你更好地理解神经网络的复杂性和强大潜力。

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

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

相关文章

pipeline开发笔记

pipeline开发笔记 jenkins常用插件Build Authorization Token Root配置GitLab的webhooks(钩子)配置构建触发器--示例 piblish over sshBlue OceanWorkspace Cleanup PluginGit插件PipelineLocalization: Chinese (Simplified) --中文显示Build Environment Plugin 显示构建过程…

ArcGIS 10.8 安装教程

目录 一、ArcGIS10.8二、安装链接三、安装教程四、ArcGIS实战 (一)ArcGIS10.8 1. 概述 ArcGIS 10.8是由美国Esri公司开发的GIS平台,用于处理、分析、显示和管理地理数据,并实现数据共享。它具有新特性和功能,性能更…

iOS MPNowPlayingInfoCenter 通知栏、锁屏 显示当前播放的媒体信息

前言 MPNowPlayingInfoCenter 是 iOS 框架 MediaPlayer 中的一个类,主要用于管理锁屏界面、控制中心、通知中心中显示的“当前播放”媒体信息。它允许开发者向用户展示正在播放的音乐或媒体信息,并控制媒体播放。 通过 MPNowPlayingInfoCenter&#xf…

新电脑Win11家庭中文版跳过联网激活方法(教程)

预装Win11家庭中文版的新电脑,如何跳过联网激活;由于微软限制必须要联网激活,需要使用已有的微软账户登入或者注册新的微软账户后才可以继续开机使用,Win11联网后系统会自动激活。下面介绍一下初次开机初始化电脑时如何跳过联网激…

猫咪掉毛还容易应激,哪款宠物空气净化器可以吸毛且低噪?

今年的双十一第一波优惠我没有抢,因为我在犹豫我真的必须要买宠物空气净化器,但是会不会有很多副作用等等问题,让我一直不敢下手。 一直犹豫买不买是因为我家养了一只爱掉毛的小猫咪,家里每天都是想着要清理猫咪掉下来的猫毛&…

又是一年 1024

今天是 1024 程序员节,现在是一名大数据讲师,我和往常一样,依旧在讲课中度过。对于很多程序员来说,这一天也许是属于代码、调试和无数行 SQL 查询的,而对于我来说,虽然工作内容不同,却也和数据、…

软考算法——线性表、栈和队列、串、数组、矩阵和广义表

软考算法(一) 线性表定义顺序表单链表循环链表双向链表 性能分析线性表插入删除操作 栈和队列栈队列循环队列 串、数组、矩阵和广义表串串的基本操作串的存储结构 数组数组的存储地址计算 矩阵——稀疏矩阵上三角矩阵下三角矩阵 广义表 线性表 定义 线性…

设置K8s管理节点异常容忍时间

说明 每个节点上的 kubelet 需要定时向 apiserver 上报当前节点状态,如果两者间网络异常导致心跳终端,kube-controller-manager 中的 NodeController 会将该节点标记为 Unknown 或 Unhealthy,持续一段时间异常状态后 kube-controller-manage…

软考——计算机网络概论

文章目录 🕐计算机网络分类1️⃣通信子网和资源子网2️⃣网络拓扑结构3️⃣ 计算机网络分类3:LAN MAN WAN4️⃣其他分类方式 🕑OSI 和 TCP/IP 参考模型1️⃣OSI2️⃣TCP/IP🔴TCP/IP 参考模型对应协议 3️⃣OSI 和 TCP/IP 模型对应…

AUTOSAR_EXP_ARAComAPI的6章笔记(4)

☞返回总目录 相关总结:《AUTOSAR 自适应应用中原始数据流传输的使用方法》总结 6.4 原始数据流传输的使用方法 本章描述了原始数据流(RawDataStreams)在 AUTOSAR 自适应应用程序中的使用方法。 目前,原始数据流传输在单播 / …

WSL2-轻量级AI训练场景最佳生产环境

WSL2 只适用于 Win 10 、Win11 在运行 AI 软件、AI 模型训练,Linux 是最佳的操作系统。 在运行各种软件,如:Stable Diffusion Web UI 等,使用 Docker 容器运行也更方便后期的快速复用,同样的 Docker 容器在 Linux 中…

基于springboot的网上服装商城推荐系统的设计与实现

基于springboot的网上服装商城推荐系统的设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取&#xf…

安灯系统助力汽车零部件工厂快速解决生产异常

在汽车零部件制造领域,高效的生产管理和快速解决异常情况是确保产品质量和生产进度的关键。而安灯系统的应用,正为汽车零部件工厂带来了全新的变革,助力其快速解决生产异常。 汽车零部件工厂的生产报工产线看板直观地反映出生产的各项关键数据…

基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能界面图 登录、用户注册界面图 心灵专…

【有啥问啥】智能座舱中的儿童遗留检测(CPD,Child Presence Detection)技术详解

智能座舱中的儿童遗留检测(CPD,Child Presence Detection)技术详解 引言 儿童遗留检测(CPD,Child Presence Detection)系统是一项旨在保护儿童免受因被遗忘在车内而导致的热中暑危险的重要安全技术。近年…

HCIP-HarmonyOS Application Developer 习题(十五)

(判断)1、在HarmonyOs中发布带权限公共事件,发布者首先要在config.json中申请所需的权限。 答案:正确 分析:发布携带权限的公共事件:构造CommonEventPublishInfo对象,设置订阅者的权限。 &#…

书生营 L0G4000 玩转HF/魔搭/魔乐社区

模型下载 在codespace上给环境装包,按照教材即可 运行后下载成功 建立下载json文件 新建下载internlm2_5-chat-1_8b的json文件 运行结果 基本上没啥问题,照着教程来就行 模型上传(可选) push的时候需要先认证token 最后的…

Linux 权限的理解

内容摘要 本文内容包括shell的运行原理,包括外壳程序的原理、理解、和意义,以及从两个方面对于权限的理解(人和事物的属性)、修改文件的权限,包括修改文件的拥有者、修改文件拥有者所在的组的用户以及修改文件的三类用…

域渗透AD渗透攻击利用 MS14-068漏洞利用过程 以及域渗透中票据是什么 如何利用

目录 wmi协议远程执行 ptt票据传递使用 命令传递方式 明文口令传递 hash口令传递 票据分类 kerberos认证的简述流程 PTT攻击的过程 MS14-068 漏洞 执行过程 wmi协议远程执行 wmi服务是比smb服务高级一些的,在日志中是找不到痕迹的,但是这个主…

鸿蒙中富文本编辑与展示

富文本在鸿蒙系统如何展示和编辑的?在文章开头我们提出这个疑问,带着疑问来阅读这篇文章。 富文本用途可以展示图文混排的内容,在日常App 中非常常见,比如微博的发布与展示,朋友圈的发布与展示,都在使用富文…