[机器学习-从入门到入土] 神经网络

[机器学习-从入门到入土] 神经网络

个人导航

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

文章目录

  • [[机器学习-从入门到入土] 神经网络](#[机器学习-从入门到入土] 神经网络)
  • 个人导航
  • 符号说明
        • [权重矩阵 Θ ( l ) \Theta^{(l)} Θ(l)](#权重矩阵 Θ ( l ) \Theta^{(l)} Θ(l))
        • [误差项 δ ( l ) \delta^{(l)} δ(l)](#误差项 δ ( l ) \delta^{(l)} δ(l))
        • [单样本梯度矩阵 δ k ( l + 1 ) ( a k ( l ) ) T \delta_{k}^{(l+1)} \left(a_{k}^{(l)}\right)^{T} δk(l+1)(ak(l))T](#单样本梯度矩阵 δ k ( l + 1 ) ( a k ( l ) ) T \delta_{k}^{(l+1)} \left(a_{k}{(l)}\right){T} δk(l+1)(ak(l))T)
        • [批量梯度累加矩阵 Δ ( l ) \Delta^{(l)} Δ(l)](#批量梯度累加矩阵 Δ ( l ) \Delta^{(l)} Δ(l))
        • [总梯度(代价函数梯度) ∂ ∂ Θ i j ( l ) J ( Θ ) \frac{\partial}{\partial \Theta_{ij}^{(l)}} J(\Theta) ∂Θij(l)∂J(Θ)](#总梯度(代价函数梯度) ∂ ∂ Θ i j ( l ) J ( Θ ) \frac{\partial}{\partial \Theta_{ij}^{(l)}} J(\Theta) ∂Θij(l)∂J(Θ))
  • [激活函数(Activation Function)](#激活函数(Activation Function))
  • [损失函数 E E E(单样本)](#损失函数 E E E(单样本))
  • [代价函数 J J J(全样本)](#代价函数 J J J(全样本))
  • [误差项 δ \delta δ(核心)](#误差项 δ \delta δ(核心))
  • [输出层误差项 δ ( L ) \delta^{(L)} δ(L)](#输出层误差项 δ ( L ) \delta^{(L)} δ(L))
        • [Sigmoid + MSE](#Sigmoid + MSE)
        • [Sigmoid + Binary Cross-Entropy](#Sigmoid + Binary Cross-Entropy)
        • [Softmax + Categorical Cross-Entropy](#Softmax + Categorical Cross-Entropy)
  • [隐藏层误差项 δ ( ) \delta^{()} δ()](#隐藏层误差项 δ ( ) \delta^{()} δ())
  • [批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l)](#批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l))
  • 总梯度(用于更新)
  • [是批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l)的平均 $$ \frac{\partial}{\partial \Theta^{(l)}}J(\Theta)](#是批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l)的平均 $$ \frac{\partial}{\partial \Theta^{(l)}}J(\Theta))
  • [前向传播(Forward Propagation)](#前向传播(Forward Propagation))
  • 反向传播(Backpropagation)
  • 梯度下降更新
  • 总结(反向传播主线)

符号说明

m m m:样本数
k k k:神经元编号 / 输出维度索引

权重矩阵 Θ ( l ) \Theta^{(l)} Θ(l)

Θ ( l ) \Theta^{(l)} Θ(l) 表示 第 l l l 层 → 第 l + 1 l+1 l+1 层的权重矩阵

  • 包含该层的 权重 + bias
  • 行:第 l + 1 l+1 l+1 层神经元
  • 列: 1 + 1+ 1+ 第 l l l 层神经元数(首列为 bias)

维度:(下一层神经元数, 1+当前层神经元数)

Θ ( l ) ∈ R ( next ,   1 + self ) \Theta^{(l)} \in \mathbb{R}^{(\text{next},\,1+\text{self})} Θ(l)∈R(next,1+self)

误差项 δ ( l ) \delta^{(l)} δ(l)

δ ( l ) \delta^{(l)} δ(l) 表示 第 l l l 层神经元的误差项

  • 本质: ∂ E ∂ z ( l ) \displaystyle \frac{\partial E}{\partial z^{(l)}} ∂z(l)∂E
  • 用于将误差从输出层反向传播

特殊记号:

  • δ ( L ) \delta^{(L)} δ(L):输出层误差( L L L 为网络总层数)
单样本梯度矩阵 δ k ( l + 1 ) ( a k ( l ) ) T \delta_{k}^{(l+1)} \left(a_{k}^{(l)}\right)^{T} δk(l+1)(ak(l))T

δ k ( l + 1 ) ( a k ( l ) ) T \delta_{k}^{(l+1)} \left(a_{k}^{(l)}\right)^{T} δk(l+1)(ak(l))T

  • 表示 单个样本 对 Θ ( l ) \Theta^{(l)} Θ(l) 的梯度
  • 外积形式
  • 维度与 Θ ( l ) \Theta^{(l)} Θ(l) 相同
批量梯度累加矩阵 Δ ( l ) \Delta^{(l)} Δ(l)

Δ ( l ) \Delta^{(l)} Δ(l) 表示 第 l l l 层在一个 batch( m m m 个样本)上的梯度累加

Δ ( l ) ∈ R ( next ,   1 + self ) \Delta^{(l)} \in \mathbb{R}^{(\text{next},\,1+\text{self})} Δ(l)∈R(next,1+self)

总梯度(代价函数梯度) ∂ ∂ Θ i j ( l ) J ( Θ ) \frac{\partial}{\partial \Theta_{ij}^{(l)}} J(\Theta) ∂Θij(l)∂J(Θ)

∂ ∂ Θ i j ( l ) J ( Θ ) \frac{\partial}{\partial \Theta_{ij}^{(l)}} J(\Theta) ∂Θij(l)∂J(Θ)

  • 维度与 Θ ( l ) \Theta^{(l)} Θ(l) 相同
  • 是 Δ ( l ) \Delta^{(l)} Δ(l) 的平均
符号 形状 解释
a ( l ) a^{(l)} a(l) ( self , 1 ) (\text{self},1) (self,1) 第 l l l 层神经元的激活输出向量(不含 bias)
a ~ ( l ) \tilde a^{(l)} a~(l) ( 1 + self , 1 ) (1+\text{self},1) (1+self,1) 第 l l l 层激活向量补 1 后的输入(首元素为 bias)
z ( l + 1 ) z^{(l+1)} z(l+1) ( next , 1 ) (\text{next},1) (next,1) 第 l + 1 l+1 l+1 层的加权输入(线性部分)
Θ ( l ) \Theta^{(l)} Θ(l) ( next , 1 + self ) (\text{next},1+\text{self}) (next,1+self) 第 l l l 层 → 第 l + 1 l+1 l+1 层的权重矩阵(含 bias)
δ ( l ) \delta^{(l)} δ(l) ( self , 1 ) (\text{self},1) (self,1) 第 l l l 层神经元的误差项 , ∂ E ∂ z ( l ) \displaystyle \frac{\partial E}{\partial z^{(l)}} ∂z(l)∂E
δ ( l + 1 ) ( a ~ ( l ) ) T \delta^{(l+1)}(\tilde a^{(l)})^T δ(l+1)(a~(l))T ( next , 1 + self ) (\text{next},1+\text{self}) (next,1+self) 单样本 对 Θ ( l ) \Theta^{(l)} Θ(l) 的梯度(外积)
Δ ( l ) \Delta^{(l)} Δ(l) ( next , 1 + self ) (\text{next},1+\text{self}) (next,1+self) batch 内 m m m 个样本的梯度累加矩阵
∂ ∂ Θ ( l ) J ( Θ ) \dfrac{\partial}{\partial \Theta^{(l)}}J(\Theta) ∂Θ(l)∂J(Θ) ( next , 1 + self ) (\text{next},1+\text{self}) (next,1+self) 代价函数对权重的总梯度 ( 1 m Δ ( l ) \frac{1}{m}\Delta^{(l)} m1Δ(l))

激活函数(Activation Function)

Sigmoid

定义:
g ( z ) = 1 1 + exp ⁡ ( − z ) g(z)=\frac{1}{1+\exp(-z)} g(z)=1+exp(−z)1

梯度:
g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) g'(z)=g(z)(1-g(z)) g′(z)=g(z)(1−g(z))

若 a = g ( z ) a=g(z) a=g(z):
g ′ ( z ) = a ( 1 − a ) g'(z)=a(1-a) g′(z)=a(1−a)

ReLU

定义:
ReLU ( z ) = max ⁡ ( 0 , z ) \text{ReLU}(z)=\max(0,z) ReLU(z)=max(0,z)

梯度:
ReLU ′ ( z ) = { 1 , z > 0 0 , z ≤ 0 \text{ReLU}'(z)= \begin{cases} 1,&z>0\\ 0,&z\le0 \end{cases} ReLU′(z)={1,0,z>0z≤0

损失函数 E E E(单样本)

单个样本的误差,用于衡量模型输出与目标之间的差异

1.均方误差(MSE)

E = 1 2 ( t − y ) 2 E=\frac{1}{2}(t-y)^2 E=21(t−y)2

2.交叉熵(Binary Cross-Entropy)

E = − [ t log ⁡ y + ( 1 − t ) log ⁡ ( 1 − y ) ] E=-[t\log y+(1-t)\log(1-y)] E=−[tlogy+(1−t)log(1−y)]

代价函数 J J J(全样本)

整个训练集的平均损失:
J ( Θ ) = 1 m ∑ i = 1 m E ( i ) J(\Theta)=\frac{1}{m}\sum_{i=1}^{m}E^{(i)} J(Θ)=m1i=1∑mE(i)

误差项 δ \delta δ(核心)

误差项是 损失函数对加权输入 z z z 的偏导数
δ ( l ) = ∂ E ∂ z ( l ) \delta^{(l)}=\frac{\partial E}{\partial z^{(l)}} δ(l)=∂z(l)∂E

输出层误差项 δ ( L ) \delta^{(L)} δ(L)

假设:
a ( L ) = g ( z ( L ) ) a^{(L)}=g(z^{(L)}) a(L)=g(z(L))

定义:
δ ( L ) = ∂ E ∂ a ( L ) ⊙ g ′ ( z ( L ) ) \delta^{(L)}=\frac{\partial E}{\partial a^{(L)}} \odot g'(z^{(L)}) δ(L)=∂a(L)∂E⊙g′(z(L))

Sigmoid + MSE

E = 1 2 ∑ k ( a k − y k ) 2 E=\frac{1}{2}\sum_k(a_k-y_k)^2 E=21k∑(ak−yk)2

δ k = ( a k − y k ) a k ( 1 − a k ) \delta_k=(a_k-y_k)a_k(1-a_k) δk=(ak−yk)ak(1−ak)

δ = ( a − y ) ⊙ ( a ⊙ ( 1 − a ) ) \delta=(a-y)\odot(a\odot(1-a)) δ=(a−y)⊙(a⊙(1−a))

Sigmoid + Binary Cross-Entropy

E = − [ y log ⁡ a + ( 1 − y ) log ⁡ ( 1 − a ) ] E=-[y\log a+(1-y)\log(1-a)] E=−[yloga+(1−y)log(1−a)]

δ = a − y \delta=a-y δ=a−y

Softmax + Categorical Cross-Entropy

E = − ∑ k y k log ⁡ a k E=-\sum_k y_k\log a_k E=−k∑yklogak

δ = a − y \delta=a-y δ=a−y

隐藏层误差项 δ ( ) \delta^{()} δ()

递推公式(反向传播核心):

\\begin{align} \\delta\^{(L-1)} \&= \\frac{\\partial E}{\\partial a^{(L-1)}}⊙g'(z^{(L-1)}) \\ \&=(\\frac{\\partial E}{\\partial z\^{(L)}} \\cdot \\frac{\\partial z\^{(L)}}{\\partial a^{(L-1)}})⊙g'(z^{(L-1)}) \\ \&= \\delta\^{(L)} \\Theta\^{(L-1)} ⊙ g\^{\\prime} (z\^{(L-1)}) \\ \\end{align}

说明:

  • 先通过权重矩阵传播误差
  • 再乘以激活函数梯度

批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l)

单样本梯度:
δ ( l + 1 ) ( a ( l ) ) T \delta^{(l+1)}(a^{(l)})^T δ(l+1)(a(l))T

批量累加:
Δ ( l ) = ∑ i = 1 m δ i ( l + 1 ) ( a i ( l ) ) T \Delta^{(l)}=\sum_{i=1}^m \delta_i^{(l+1)}(a_i^{(l)})^T Δ(l)=i=1∑mδi(l+1)(ai(l))T

总梯度(用于更新)

是批量梯度累加 Δ ( l ) \Delta^{(l)} Δ(l)的平均

\\frac{\\partial}{\\partial \\Theta\^{(l)}}J(\\Theta) \\frac{1}{m}\\Delta\^{(l)}

前向传播(Forward Propagation)

每一层输入补 1(bias):
a ~ ( l ) = [ 1 a ( l ) ] \tilde a^{(l)}= \begin{bmatrix} 1\\ a^{(l)} \end{bmatrix} a~(l)=[1a(l)]

线性变换:
z ( l + 1 ) = Θ ( l ) a ~ ( l ) z^{(l+1)}=\Theta^{(l)}\tilde a^{(l)} z(l+1)=Θ(l)a~(l)

非线性激活:
a ( l + 1 ) = g ( z ( l + 1 ) ) a^{(l+1)}=g(z^{(l+1)}) a(l+1)=g(z(l+1))

反向传播(Backpropagation)

假设三层全连接网络,Sigmoid + BCE

输出层:
δ ( 3 ) = a ( 3 ) − y \delta^{(3)}=a^{(3)}-y δ(3)=a(3)−y

隐藏层:
δ ( 2 ) = ( Θ ( 2 ) ) T δ ( 3 ) ⊙ g ′ ( z ( 2 ) ) \delta^{(2)}=(\Theta^{(2)})^T\delta^{(3)}\odot g'(z^{(2)}) δ(2)=(Θ(2))Tδ(3)⊙g′(z(2))

梯度下降更新

学习率 α \alpha α:

Θ ( l ) ← Θ ( l ) − α 1 m Δ ( l ) \Theta^{(l)} \leftarrow \Theta^{(l)}-\alpha\frac{1}{m}\Delta^{(l)} Θ(l)←Θ(l)−αm1Δ(l)

总结(反向传播主线)

前向传播:
a → z → a a \rightarrow z \rightarrow a a→z→a

反向传播:
δ ( L ) → δ ( L − 1 ) → ⋯ \delta^{(L)} \rightarrow \delta^{(L-1)} \rightarrow \cdots δ(L)→δ(L−1)→⋯

梯度构造:
δ ( l + 1 ) ( a ( l ) ) T \delta^{(l+1)}(a^{(l)})^T δ(l+1)(a(l))T

相关推荐
AI街潜水的八角1 天前
基于Opencv的条形码识别与创建
人工智能·opencv·计算机视觉
谁怕平生太急1 天前
Mobile GUI Agent相关学习资料整理
人工智能·大模型
牛奶1 天前
2026 春涧·前端走向全栈
前端·人工智能·全栈
DeepVis Research1 天前
【AGI/Simulation】2026年度通用人工智能图灵测试与高频博弈仿真基准索引 (Benchmark Index)
大数据·人工智能·算法·数据集·量化交易
Linux猿1 天前
2025数字消费发展报告 | 附PDF
人工智能·研报精选
这张生成的图像能检测吗1 天前
(论文速读)CCASeg:基于卷积交叉注意的语义分割多尺度上下文解码
人工智能·深度学习·计算机视觉·语义分割
大猪宝宝学AI1 天前
【AI Infra】BF-PP:广度优先流水线并行
人工智能·性能优化·大模型·模型训练
Jerryhut1 天前
Opencv总结7——全景图像拼接
人工智能·opencv·计算机视觉
haing20191 天前
七轴协作机器人运动学正解计算方法
算法·机器学习·机器人