网络架构概述
本文探讨的深层神经网络结构如下:
- 输入层: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} W1 | 第一层权重 | 5 × 3 5 \times 3 5×3 |
| b 1 b^{1} b1 | 第一层偏置 | 5 × 1 5 \times 1 5×1 |
| Z 1 Z^{1} Z1 | 第一层线性输出 | 5 × 1 5 \times 1 5×1 |
| A 1 A^{1} A1 | 第一层激活输出 | 5 × 1 5 \times 1 5×1 |
| W 2 W^{2} W2 | 第二层权重 | 5 × 5 5 \times 5 5×5 |
| b 2 b^{2} b2 | 第二层偏置 | 5 × 1 5 \times 1 5×1 |
| Z 2 Z^{2} Z2 | 第二层线性输出 | 5 × 1 5 \times 1 5×1 |
| A 2 A^{2} A2 | 第二层激活输出 | 5 × 1 5 \times 1 5×1 |
| W 3 W^{3} W3 | 第三层权重 | 3 × 5 3 \times 5 3×5 |
| b 3 b^{3} b3 | 第三层偏置 | 3 × 1 3 \times 1 3×1 |
| Z 3 Z^{3} Z3 | 第三层线性输出 | 3 × 1 3 \times 1 3×1 |
| A 3 A^{3} A3 | 第三层激活输出 | 3 × 1 3 \times 1 3×1 |
| W 4 W^{4} W4 | 输出层权重 | 1 × 3 1 \times 3 1×3 |
| b 4 b^{4} b4 | 输出层偏置 | 1 × 1 1 \times 1 1×1 |
| Z 4 Z^{4} Z4 | 输出层线性输出 | 1 × 1 1 \times 1 1×1 |
| A 4 A^{4} A4 | 输出层激活输出 | 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)
数学公式表示
-
第一隐藏层 :
Z 1 = W 1 X + b 1 Z^{1} = W^{1}X + b^{1} Z1=W1X+b1
A 1 = g 1 ( Z 1 ) A^{1} = g^{1}(Z^{1}) A1=g1(Z1) -
第二隐藏层 :
Z 2 = W 2 A 1 + b 2 Z^{2} = W^{2}A^{1} + b^{2} Z2=W2A1+b2
A 2 = g 2 ( Z 2 ) A^{2} = g^{2}(Z^{2}) A2=g2(Z2) -
第三隐藏层 :
Z 3 = W 3 A 2 + b 3 Z^{3} = W^{3}A^{2} + b^{3} Z3=W3A2+b3
A 3 = g 3 ( Z 3 ) A^{3} = g^{3}(Z^{3}) A3=g3(Z3) -
输出层 :
Z 4 = W 4 A 3 + b 4 Z^{4} = W^{4}A^{3} + b^{4} Z4=W4A3+b4
A 4 = σ ( Z 4 ) A^{4} = \sigma(Z^{4}) A4=σ(Z4)
其中:
- g 1 , g 2 , g 3 g^{1}, g^{2}, g^{3} g1,g2,g3 为隐藏层激活函数(如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
梯度计算公式
-
输出层梯度 :
d Z 4 = A 4 − Y dZ^{4} = A^{4} - Y dZ4=A4−Y
d W 4 = 1 m d Z 4 ( A 3 ) T dW^{4} = \frac{1}{m} dZ^{4} (A^{3})^T dW4=m1dZ4(A3)T
d b 4 = 1 m ∑ d Z 4 db^{4} = \frac{1}{m} \sum dZ^{4} db4=m1∑dZ4 -
第三隐藏层梯度 :
d A 3 = ( W 4 ) T d Z 4 dA^{3} = (W^{4})^T dZ^{4} dA3=(W4)TdZ4
d Z 3 = d A 3 ⊙ g 3 ′ ( Z 3 ) dZ^{3} = dA^{3} \odot g^{3\prime}(Z^{3}) dZ3=dA3⊙g3′(Z3)
d W 3 = 1 m d Z 3 ( A 2 ) T dW^{3} = \frac{1}{m} dZ^{3} (A^{2})^T dW3=m1dZ3(A2)T
d b 3 = 1 m ∑ d Z 3 db^{3} = \frac{1}{m} \sum dZ^{3} db3=m1∑dZ3 -
第二隐藏层梯度 :
d A 2 = ( W 3 ) T d Z 3 dA^{2} = (W^{3})^T dZ^{3} dA2=(W3)TdZ3
d Z 2 = d A 2 ⊙ g 2 ′ ( Z 2 ) dZ^{2} = dA^{2} \odot g^{2\prime}(Z^{2}) dZ2=dA2⊙g2′(Z2)
d W 2 = 1 m d Z 2 ( A 1 ) T dW^{2} = \frac{1}{m} dZ^{2} (A^{1})^T dW2=m1dZ2(A1)T
d b 2 = 1 m ∑ d Z 2 db^{2} = \frac{1}{m} \sum dZ^{2} db2=m1∑dZ2 -
第一隐藏层梯度 :
d A 1 = ( W 2 ) T d Z 2 dA^{1} = (W^{2})^T dZ^{2} dA1=(W2)TdZ2
d Z 1 = d A 1 ⊙ g 1 ′ ( Z 1 ) dZ^{1} = dA^{1} \odot g^{1\prime}(Z^{1}) dZ1=dA1⊙g1′(Z1)
d W 1 = 1 m d Z 1 X T dW^{1} = \frac{1}{m} dZ^{1} X^T dW1=m1dZ1XT
d b 1 = 1 m ∑ d Z 1 db^{1} = \frac{1}{m} \sum dZ^{1} db1=m1∑dZ1
其中:
- ⊙ \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 |
深层网络优势
- 表征能力:指数级增强的特征表示能力
- 层次抽象:自动学习从低级到高级的特征层次
- 模式识别:对复杂模式的识别能力远超浅层网络
- 通用性:适用于各种数据类型(图像、文本、语音)
传播过程总结
前向传播
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
深层神经网络通过多层次的非线性变换构建强大的特征表示能力,前向传播实现复杂函数映射,反向传播通过链式法则高效计算梯度,二者协同工作使网络能够学习高度复杂的输入-输出关系。