神经网络基本概念

神经网络介绍

神经网络是一类仿生学算法,其由若干类神经处理单元组成:

就是在一个感知机当中加入了激活函数的成分,而感知机则在笔者之前的博客有涉及:感知机相关文章

这里的w_i表示权重,x_i为输入,而b则是偏置

而多层感知机即可组成最简单的前向神经网络,如图:

最前面的叫输入层,其次是隐藏层和输出层(这里省去了偏置),其中隐藏层在一般情况下都不止一层

计算图的表示方案

神经网络在计算机内部的表示往往只需要依靠节点来实现

其中:

节点表示创建输入张量、矩阵、向量的函数

边表示节点产生和输入的变量,即张量、矩阵、向量

这里举一个简单的例子:

我们来表示上面的线性变换表达式,并设激活函数为ReLU,得到的计算图为:

复制代码
          +-----------------+
          |                 |
          |    Input (x)    |
          |  [x1, x2]^T     |
          |                 |
          +--------+--------+
                   |
                   | (边:传递 x)
                   v
          +-----------------+
          |                 |
          |   Linear (Wx+b) |
          | 计算 y_linear   |
          |                 |
          +--------+--------+
                   |
                   | (边:传递 y_linear)
                   v
          +-----------------+
          |                 |
          |    ReLU         |
          | 计算 y_relu     |
          |                 |
          +-----------------+

之所以需要画计算图主要是为了更好的完成神经网络前向传播计算和神经网络反向传播计算:

前向和反向传播算法

传播算法的主要目的是在实现网络架构之后能够实现参数估计,最常见的参数估计主要由MAP和MLE实现,这里我们不做讨论

根据前文,我们将神经网络的计算过程表示为计算图 ,节点v_1, v_2, ..., v_N满足拓扑排序,通过其关联性,推算出各个节点对于输出的导数

反向传播具体流程

反向传播通过 "前向传播" 和 "反向传播" 两步完成导数计算:

前向传播(Forward Pass)

按拓扑排序顺序i从1到N,依次计算每个节点v_i的值 ------ 计算方式为 "基于其父节点Pa(v_i)的值" 进行函数运算。

反向传播(Backward Pass)

从计算图的最后一个节点v_N开始,然后从(i=N-1)到1逆序遍历节点,利用链式法则计算每个节点的导数:

具体例子

还是沿用上面那个简单的例子,我们来研究一下如何运用反向传播法实现相关计算:

参数定义

首先,我们先明确一下各个参数的定义:

输入:

线性层参数------权重矩阵:

线性层输出:

ReLU 层输出:

假设最终损失为 L,我们需要计算:

前向传播

按拓扑顺序(输入 → 线性层 → ReLU 层)计算:

  1. 输入层:x_1、x_2
  2. 线性层:
  3. ReLU 层:
反向传播

假设 y_relu 是损失 L 的直接输入,我们这里设损失函数:

则ReLU梯度为:

线性层的梯度为:

参数 W、b 和输入 x 的梯度为:

梯度爆炸或消散

根据前文反向传播法计算得出的规律:

将 "损失对第一层权W1的梯度" 推广到含k层隐藏层的神经网络,得到梯度的一般形式:

其中:

  • a为输入层
  • w为各层权重
  • diag为激活函数在h处的导数的对角矩阵

为分析梯度随层数的变化,引入两个关键量:

β:激活函数导数对角矩阵diag的最大奇异值

γ:权重矩阵W的最大奇异值

根据矩阵范数不等式,梯度的范数满足:

由此得出核心规律:

若βγ > 1:随着隐藏层层数k增加,梯度会指数级增长 ,引发梯度爆炸(参数更新幅度过大,训练极不稳定)

若βγ < 1:随着k增加,梯度会指数级衰减 ,引发梯度消散(底层参数几乎无法更新,深层网络难以训练)

为了让梯度稳定传递,我们往往会选择更加合适的激活函数、权重初始值和网络架构

相关推荐
paopaokaka_luck4 小时前
基于springboot3+vue3的精准扶贫管理系统(AI 问答、ECharts 图形化分析)
前端·人工智能·echarts
Wang's Blog4 小时前
Vibe Coding一人即团队系列51: AI赋能项目交付与产品文档自动化生成实践
人工智能·自动化·devops
Carol06304 小时前
AI 进化全景:符号 AI‑大模型‑通用 Agent 发展之路
人工智能
eBest数字化转型方案4 小时前
Route Optimization for FMCG:多目标排线算法的工程实现
大数据·人工智能·算法
武子康4 小时前
Seedream 5.0 Pro 进入 Vercel AI Gateway:图像生成开始网关化
人工智能·ai·chatgpt·gateway·agent·claude·harness
能源科技集4 小时前
GWh时代储能逻辑生变,远景动力(AESC)790Ah电芯反向定义系统最优解
人工智能
Forerror20264 小时前
API网关怎么部署?MAI Gateway配置教程与最佳实践
人工智能·gateway·maigateway·finapi·企业级ai网关·大模型财务管控
2601_962100734 小时前
AI批量生成视频的工程化复盘(2026):一条能断点续跑、不重复扣量的出片脚本
人工智能·音视频
qq_425516184 小时前
双语字幕会议记录APP:多语言会议整理工具推荐
人工智能·智能手机·语音识别
xian_wwq4 小时前
【学习笔记】-深度认知系列-第8讲主流AI模型横向评测——GPT、Claude、Gemini、盘古、文心、通义
人工智能·笔记·学习