深层神经网络:原理与传播机制详解

网络架构概述

本文探讨的深层神经网络结构如下:

  • 输入层:3个神经元
  • 第一隐藏层:5个神经元
  • 第二隐藏层:5个神经元
  • 第三隐藏层:3个神经元
  • 输出层:1个神经元

输出层 隐藏层3 隐藏层2 隐藏层1 输入层 输出 神经元3.1 神经元3.2 神经元3.3 神经元2.1 神经元2.2 神经元2.3 神经元2.4 神经元2.5 神经元1.1 神经元1.2 神经元1.3 神经元1.4 神经元1.5 输入1 输入2 输入3

数学符号定义

符号 含义 维度
X X X 输入数据 3 × 1 3 \times 1 3×1
W [ 1 ] W^{[1]} W[1] 第一层权重 5 × 3 5 \times 3 5×3
b [ 1 ] b^{[1]} b[1] 第一层偏置 5 × 1 5 \times 1 5×1
Z [ 1 ] Z^{[1]} Z[1] 第一层线性输出 5 × 1 5 \times 1 5×1
A [ 1 ] A^{[1]} A[1] 第一层激活输出 5 × 1 5 \times 1 5×1
W [ 2 ] W^{[2]} W[2] 第二层权重 5 × 5 5 \times 5 5×5
b [ 2 ] b^{[2]} b[2] 第二层偏置 5 × 1 5 \times 1 5×1
Z [ 2 ] Z^{[2]} Z[2] 第二层线性输出 5 × 1 5 \times 1 5×1
A [ 2 ] A^{[2]} A[2] 第二层激活输出 5 × 1 5 \times 1 5×1
W [ 3 ] W^{[3]} W[3] 第三层权重 3 × 5 3 \times 5 3×5
b [ 3 ] b^{[3]} b[3] 第三层偏置 3 × 1 3 \times 1 3×1
Z [ 3 ] Z^{[3]} Z[3] 第三层线性输出 3 × 1 3 \times 1 3×1
A [ 3 ] A^{[3]} A[3] 第三层激活输出 3 × 1 3 \times 1 3×1
W [ 4 ] W^{[4]} W[4] 输出层权重 1 × 3 1 \times 3 1×3
b [ 4 ] b^{[4]} b[4] 输出层偏置 1 × 1 1 \times 1 1×1
Z [ 4 ] Z^{[4]} Z[4] 输出层线性输出 1 × 1 1 \times 1 1×1
A [ 4 ] A^{[4]} A[4] 输出层激活输出 1 × 1 1 \times 1 1×1

前向传播机制

前向传播是数据从输入层流向输出层的过程,计算步骤如下:
输入 X 计算 Z1 = W1·X + b1 激活 A1 = g1(Z1) 计算 Z2 = W2·A1 + b2 激活 A2 = g2(Z2) 计算 Z3 = W3·A2 + b3 激活 A3 = g3(Z3) 计算 Z4 = W4·A3 + b4 输出 A4 = σ(Z4)

数学公式表示

  1. 第一隐藏层
    Z [ 1 ] = W [ 1 ] X + b [ 1 ] Z^{[1]} = W^{[1]}X + b^{[1]} Z[1]=W[1]X+b[1]
    A [ 1 ] = g [ 1 ] ( Z [ 1 ] ) A^{[1]} = g^{[1]}(Z^{[1]}) A[1]=g[1](Z[1])

  2. 第二隐藏层
    Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] Z^{[2]} = W^{[2]}A^{[1]} + b^{[2]} Z[2]=W[2]A[1]+b[2]
    A [ 2 ] = g [ 2 ] ( Z [ 2 ] ) A^{[2]} = g^{[2]}(Z^{[2]}) A[2]=g[2](Z[2])

  3. 第三隐藏层
    Z [ 3 ] = W [ 3 ] A [ 2 ] + b [ 3 ] Z^{[3]} = W^{[3]}A^{[2]} + b^{[3]} Z[3]=W[3]A[2]+b[3]
    A [ 3 ] = g [ 3 ] ( Z [ 3 ] ) A^{[3]} = g^{[3]}(Z^{[3]}) A[3]=g[3](Z[3])

  4. 输出层
    Z [ 4 ] = W [ 4 ] A [ 3 ] + b [ 4 ] Z^{[4]} = W^{[4]}A^{[3]} + b^{[4]} Z[4]=W[4]A[3]+b[4]
    A [ 4 ] = σ ( Z [ 4 ] ) A^{[4]} = \sigma(Z^{[4]}) A[4]=σ(Z[4])

其中:

  • g [ 1 ] , g [ 2 ] , g [ 3 ] g^{[1]}, g^{[2]}, g^{[3]} g[1],g[2],g[3] 为隐藏层激活函数(如ReLU, tanh)
  • σ \sigma σ 为输出层激活函数(如sigmoid)

反向传播机制

反向传播通过链式法则计算损失函数对各参数的梯度,从输出层向输入层反向传播误差:
损失函数 J dZ4 = A4 - Y dW4 = dZ4·A3ᵀ db4 = dZ4 dA3 = W4ᵀ·dZ4 dZ3 = dA3 * g3'(Z3) dW3 = dZ3·A2ᵀ db3 = dZ3 dA2 = W3ᵀ·dZ3 dZ2 = dA2 * g2'(Z2) dW2 = dZ2·A1ᵀ db2 = dZ2 dA1 = W2ᵀ·dZ2 dZ1 = dA1 * g1'(Z1) dW1 = dZ1·Xᵀ db1 = dZ1

梯度计算公式

  1. 输出层梯度
    d Z [ 4 ] = A [ 4 ] − Y dZ^{[4]} = A^{[4]} - Y dZ[4]=A[4]−Y
    d W [ 4 ] = 1 m d Z [ 4 ] ( A [ 3 ] ) T dW^{[4]} = \frac{1}{m} dZ^{[4]} (A^{[3]})^T dW[4]=m1dZ[4](A[3])T
    d b [ 4 ] = 1 m ∑ d Z [ 4 ] db^{[4]} = \frac{1}{m} \sum dZ^{[4]} db[4]=m1∑dZ[4]

  2. 第三隐藏层梯度
    d A [ 3 ] = ( W [ 4 ] ) T d Z [ 4 ] dA^{[3]} = (W^{[4]})^T dZ^{[4]} dA[3]=(W[4])TdZ[4]
    d Z [ 3 ] = d A [ 3 ] ⊙ g [ 3 ] ′ ( Z [ 3 ] ) dZ^{[3]} = dA^{[3]} \odot g^{[3]\prime}(Z^{[3]}) dZ[3]=dA[3]⊙g[3]′(Z[3])
    d W [ 3 ] = 1 m d Z [ 3 ] ( A [ 2 ] ) T dW^{[3]} = \frac{1}{m} dZ^{[3]} (A^{[2]})^T dW[3]=m1dZ[3](A[2])T
    d b [ 3 ] = 1 m ∑ d Z [ 3 ] db^{[3]} = \frac{1}{m} \sum dZ^{[3]} db[3]=m1∑dZ[3]

  3. 第二隐藏层梯度
    d A [ 2 ] = ( W [ 3 ] ) T d Z [ 3 ] dA^{[2]} = (W^{[3]})^T dZ^{[3]} dA[2]=(W[3])TdZ[3]
    d Z [ 2 ] = d A [ 2 ] ⊙ g [ 2 ] ′ ( Z [ 2 ] ) dZ^{[2]} = dA^{[2]} \odot g^{[2]\prime}(Z^{[2]}) dZ[2]=dA[2]⊙g[2]′(Z[2])
    d W [ 2 ] = 1 m d Z [ 2 ] ( A [ 1 ] ) T dW^{[2]} = \frac{1}{m} dZ^{[2]} (A^{[1]})^T dW[2]=m1dZ[2](A[1])T
    d b [ 2 ] = 1 m ∑ d Z [ 2 ] db^{[2]} = \frac{1}{m} \sum dZ^{[2]} db[2]=m1∑dZ[2]

  4. 第一隐藏层梯度
    d A [ 1 ] = ( W [ 2 ] ) T d Z [ 2 ] dA^{[1]} = (W^{[2]})^T dZ^{[2]} dA[1]=(W[2])TdZ[2]
    d Z [ 1 ] = d A [ 1 ] ⊙ g [ 1 ] ′ ( Z [ 1 ] ) dZ^{[1]} = dA^{[1]} \odot g^{[1]\prime}(Z^{[1]}) dZ[1]=dA[1]⊙g[1]′(Z[1])
    d W [ 1 ] = 1 m d Z [ 1 ] X T dW^{[1]} = \frac{1}{m} dZ^{[1]} X^T dW[1]=m1dZ[1]XT
    d b [ 1 ] = 1 m ∑ d Z [ 1 ] db^{[1]} = \frac{1}{m} \sum dZ^{[1]} db[1]=m1∑dZ[1]

其中:

  • ⊙ \odot ⊙ 表示逐元素乘法(Hadamard积)
  • g ′ g^{\prime} g′ 为激活函数的导数
  • m m m 为样本数量

激活函数导数

1. Sigmoid导数

σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1 - \sigma(z)) σ′(z)=σ(z)(1−σ(z))

2. Tanh导数

tanh ⁡ ′ ( z ) = 1 − tanh ⁡ 2 ( z ) \tanh'(z) = 1 - \tanh^2(z) tanh′(z)=1−tanh2(z)

3. ReLU导数

ReLU ′ ( z ) = { 1 if z > 0 0 otherwise \text{ReLU}'(z) = \begin{cases} 1 & \text{if } z > 0 \\ 0 & \text{otherwise} \end{cases} ReLU′(z)={10if z>0otherwise

4. Leaky ReLU导数

LeakyReLU ′ ( z ) = { 1 if z > 0 0.01 otherwise \text{LeakyReLU}'(z) = \begin{cases} 1 & \text{if } z > 0 \\ 0.01 & \text{otherwise} \end{cases} LeakyReLU′(z)={10.01if z>0otherwise

深层网络特性

1. 层次化特征学习

原始输入 低级特征
边缘/纹理 中级特征
部件/图案 高级特征
对象/概念 最终预测

2. 梯度传播挑战

  • 梯度消失:深层网络中梯度指数级减小
  • 梯度爆炸:深层网络中梯度指数级增大
  • 解决方案
    • 合适的权重初始化(Xavier, He)
    • 批归一化(Batch Normalization)
    • 残差连接(Residual Connections)

3. 参数规模分析

权重数量 偏置数量 总参数
输入→隐藏1 5×3=15 5 20
隐藏1→隐藏2 5×5=25 5 30
隐藏2→隐藏3 3×5=15 3 18
隐藏3→输出 1×3=3 1 4
总计 58 14 72

深层网络优势

  1. 表征能力:指数级增强的特征表示能力
  2. 层次抽象:自动学习从低级到高级的特征层次
  3. 模式识别:对复杂模式的识别能力远超浅层网络
  4. 通用性:适用于各种数据类型(图像、文本、语音)

传播过程总结

前向传播

W1,b1 g1 W2,b2 g2 W3,b3 g3 W4,b4 σ 输入X 线性变换Z1 激活输出A1 线性变换Z2 激活输出A2 线性变换Z3 激活输出A3 线性变换Z4 预测输出ŷ

反向传播

∂J/∂ŷ ∂J/∂W4 ∂J/∂b4 ∂J/∂A3 ∂J/∂Z3 ∂J/∂W3 ∂J/∂b3 ∂J/∂A2 ∂J/∂Z2 ∂J/∂W2 ∂J/∂b2 ∂J/∂A1 ∂J/∂Z1 ∂J/∂W1 ∂J/∂b1 损失J dZ4 权重梯度dW4 偏置梯度db4 激活梯度dA3 dZ3 权重梯度dW3 偏置梯度db3 激活梯度dA2 dZ2 权重梯度dW2 偏置梯度db2 激活梯度dA1 dZ1 权重梯度dW1 偏置梯度db1

深层神经网络通过多层次的非线性变换构建强大的特征表示能力,前向传播实现复杂函数映射,反向传播通过链式法则高效计算梯度,二者协同工作使网络能够学习高度复杂的输入-输出关系。

相关推荐
千宇宙航几秒前
闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
图像处理·人工智能·深度学习·神经网络·计算机视觉·fpga开发
IT古董4 分钟前
【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(4)模型评价与调整(Model Evaluation & Tuning)
神经网络·机器学习·回归
onceco29 分钟前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
天水幼麟1 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习
jndingxin3 小时前
OpenCV CUDA模块设备层-----高效地计算两个 uint 类型值的带权重平均值
人工智能·opencv·计算机视觉
天水幼麟3 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习
Sweet锦3 小时前
零基础保姆级本地化部署文心大模型4.5开源系列
人工智能·语言模型·文心一言
hie988944 小时前
MATLAB锂离子电池伪二维(P2D)模型实现
人工智能·算法·matlab
晨同学03274 小时前
opencv的颜色通道问题 & rgb & bgr
人工智能·opencv·计算机视觉
蓝婷儿5 小时前
Python 机器学习核心入门与实战进阶 Day 3 - 决策树 & 随机森林模型实战
人工智能·python·机器学习