当前位置: 首页 > news >正文

《深度学习的核心公式》

深度学习的核心公式围绕模型构建(前向传播)、损失计算、参数优化(反向传播与优化器) 三大核心环节展开,且符号定义需保持统一(如下标i表示样本,上标l表示网络第l层)。以下按模块梳理核心公式,并明确其作用与符号含义。

一、基础组件:激活函数与损失函数

激活函数为网络注入非线性能力(否则深层网络等价于单层线性模型),损失函数则量化“预测值与真实值的差距”,是参数优化的目标。

1. 核心激活函数

激活函数公式作用与特点
Sigmoidσ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}σ(z)=1+ez1输出映射到[0,1][0,1][0,1],适用于二分类输出层;缺点是易梯度消失($
Tanhtanh⁡(z)=ez−e−zez+e−z\tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}tanh(z)=ez+ezezez输出映射到[−1,1][-1,1][1,1],比Sigmoid中心对称,缓解梯度消失;仍适用于浅层网络。
ReLU(最常用)ReLU(z)=max⁡(0,z)\text{ReLU}(z) = \max(0, z)ReLU(z)=max(0,z)仅保留正信号,计算高效,彻底解决梯度消失(正区间导数为1);缺点是“死亡ReLU”(负信号永久失活)。
Leaky ReLULeakyReLU(z)=max⁡(αz,z)\text{LeakyReLU}(z) = \max(\alpha z, z)LeakyReLU(z)=max(αz,z)α\alphaα为小常数,如0.01)对负信号保留微小梯度,避免死亡ReLU,适用于深层网络(如ResNet)。

2. 核心损失函数

损失函数需与任务匹配(回归/分类),以下为最常用类型:

(1)回归任务:均方误差(MSE)

衡量连续值预测的误差(如房价预测、温度预测),公式为:
LMSE=1N∑i=1N12∥y^i−yi∥2\mathcal{L}_{\text{MSE}} = \frac{1}{N} \sum_{i=1}^N \frac{1}{2} \| \hat{y}_i - y_i \|^2LMSE=N1i=1N21y^iyi2

  • NNN:样本数量;y^i\hat{y}_iy^i:第iii个样本的预测值;yiy_iyi:第iii个样本的真实值;
  • 系数12\frac{1}{2}21是为了求导后抵消平方项(不影响最小化目标)。
(2)分类任务:交叉熵损失(CE)

衡量离散类别预测的“概率分布差距”(如图片分类、文本情感分析),分二分类与多分类:

  • 二分类交叉熵(输出层用Sigmoid):
    LBCE=−1N∑i=1N[yilog⁡y^i+(1−yi)log⁡(1−y^i)]\mathcal{L}_{\text{BCE}} = -\frac{1}{N} \sum_{i=1}^N \left[ y_i \log \hat{y}_i + (1 - y_i) \log (1 - \hat{y}_i) \right]LBCE=N1i=1N[yilogy^i+(1yi)log(1y^i)]

    • y^i∈[0,1]\hat{y}_i \in [0,1]y^i[0,1]:样本iii属于正类的概率;yi∈{0,1}y_i \in \{0,1\}yi{0,1}:真实标签。
  • 多分类交叉熵(输出层用Softmax):
    先通过Softmax将输出映射为概率分布:
    y^ik=Softmax(zik)=ezik∑k′=1Kezik′\hat{y}_{ik} = \text{Softmax}(z_{ik}) = \frac{e^{z_{ik}}}{\sum_{k'=1}^K e^{z_{ik'}}}y^ik=Softmax(zik)=k=1Kezikezik
    KKK为类别数,zikz_{ik}zik是第iii个样本在第kkk类的加权和,y^ik\hat{y}_{ik}y^ik是该样本属于第kkk类的概率)

    再计算交叉熵损失:
    LCE=−1N∑i=1N∑k=1Kyiklog⁡y^ik\mathcal{L}_{\text{CE}} = -\frac{1}{N} \sum_{i=1}^N \sum_{k=1}^K y_{ik} \log \hat{y}_{ik}LCE=N1i=1Nk=1Kyiklogy^ik

    • yik∈{0,1}y_{ik} \in \{0,1\}yik{0,1}:真实标签的独热编码(如类别kkk为真实类时,yik=1y_{ik}=1yik=1,其余为0)。

二、神经网络核心:前向传播

前向传播是“输入数据经过网络层计算,得到预测值”的过程,核心是加权求和+激活函数,以全连接层(最基础层)和卷积层(CNN核心)为例。

1. 全连接层(Fully Connected Layer)

每一层的输出由上一层的所有神经元加权求和后激活得到,公式为:
zl=Wlal−1+blz^l = W^l a^{l-1} + b^lzl=Wlal1+bl
al=σl(zl)a^l = \sigma^l(z^l)al=σl(zl)

  • 符号定义:

    • al−1a^{l-1}al1:第l−1l-1l1层的激活输出(输入层时,a0=xa^0 = xa0=xxxx为原始输入);
    • WlW^lWl:第lll层的权重矩阵(维度:nl×nl−1n_l \times n_{l-1}nl×nl1nln_lnl为第lll层神经元数,nl−1n_{l-1}nl1为第l−1l-1l1层神经元数);
    • blb^lbl:第lll层的偏置向量(维度:nl×1n_l \times 1nl×1);
    • zlz^lzl:第lll层的“加权和”(未激活的线性输出);
    • σl\sigma^lσl:第lll层的激活函数(如ReLU、Sigmoid);
    • ala^lal:第lll层的最终激活输出(作为下一层的输入)。
  • 示例:若输入层有2个神经元(a0=[x1,x2]Ta^0 = [x_1, x_2]^Ta0=[x1,x2]T),第1层有3个神经元(n1=3n_1=3n1=3),则:
    z1=[W111W121W211W221W311W321][x1x2]+[b11b21b31],a1=ReLU(z1)z^1 = \begin{bmatrix} W_{11}^1 & W_{12}^1 \\ W_{21}^1 & W_{22}^1 \\ W_{31}^1 & W_{32}^1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + \begin{bmatrix} b_1^1 \\ b_2^1 \\ b_3^1 \end{bmatrix}, \quad a^1 = \text{ReLU}(z^1)z1=W111W211W311W121W221W321[x1x2]+b11b21b31,a1=ReLU(z1)

2. 卷积层(Convolutional Layer,CNN核心)

卷积层通过“滑动卷积核(Filter)”提取局部特征,核心是互相关运算(深度学习中“卷积”实际为互相关,无需翻转核),公式为:
zi,jl=∑p=0F−1∑q=0F−1Wp,ql⋅ai+p,j+ql−1+blz_{i,j}^l = \sum_{p=0}^{F-1} \sum_{q=0}^{F-1} W_{p,q}^l \cdot a_{i+p, j+q}^{l-1} + b^lzi,jl=p=0F1q=0F1Wp,qlai+p,j+ql1+bl
ai,jl=σl(zi,jl)a_{i,j}^l = \sigma^l(z_{i,j}^l)ai,jl=σl(zi,jl)

  • 符号定义:

    • al−1a^{l-1}al1:第l−1l-1l1层的特征图(维度:Hl−1×Wl−1×Cl−1H_{l-1} \times W_{l-1} \times C_{l-1}Hl1×Wl1×Cl1HHH=高度,WWW=宽度,CCC=通道数);
    • WlW^lWl:第lll层的卷积核(维度:F×F×Cl−1×KF \times F \times C_{l-1} \times KF×F×Cl1×KFFF=核大小,KKK=卷积核数量(即输出通道数));
    • zi,jlz_{i,j}^lzi,jl:第lll层特征图中(i,j)(i,j)(i,j)位置的加权和;
    • ai,jla_{i,j}^lai,jl:第lll层特征图中(i,j)(i,j)(i,j)位置的激活输出。
  • 关键逻辑:卷积核在输入特征图上滑动,每个位置与局部区域(F×FF \times FF×F)逐元素相乘后求和,再加偏置,最终激活得到输出特征图。

三、参数优化核心:反向传播与优化器

反向传播通过链式法则计算损失函数对各层参数(Wl,blW^l, b^lWl,bl)的梯度,优化器则根据梯度更新参数,最小化损失。

1. 反向传播:梯度计算(以全连接层为例)

核心是定义“误差项”δl\delta^lδl:第lll层加权和zlz^lzl对损失L\mathcal{L}L的梯度,即δl=∂L∂zl\delta^l = \frac{\partial \mathcal{L}}{\partial z^l}δl=zlL,再通过δl\delta^lδl推导∂L∂Wl\frac{\partial \mathcal{L}}{\partial W^l}WlL∂L∂bl\frac{\partial \mathcal{L}}{\partial b^l}blL

(1)输出层误差项(l=Ll=Ll=LLLL为总层数)

根据损失函数不同,δL\delta^LδL的表达式不同:

  • 若用MSE损失(输出层无激活,即σL(z)=z\sigma^L(z)=zσL(z)=z):
    δL=∂L∂zL=∂L∂aL⋅σ′L(zL)=(y^−y)⋅1=y^−y\delta^L = \frac{\partial \mathcal{L}}{\partial z^L} = \frac{\partial \mathcal{L}}{\partial a^L} \cdot \sigma'^L(z^L) = (\hat{y} - y) \cdot 1 = \hat{y} - yδL=zLL=aLLσL(zL)=(y^y)1=y^y

  • 若用多分类交叉熵(输出层用Softmax):
    利用Softmax与交叉熵的导数性质(简化后):
    δL=y^−y\delta^L = \hat{y} - yδL=y^y
    y^\hat{y}y^为Softmax输出,yyy为独热标签,无需计算激活函数导数,大幅简化计算)

(2)隐藏层误差项(l<Ll < Ll<L

通过链式法则,隐藏层误差由下一层误差传递而来:
δl=((Wl+1)Tδl+1)⊙σ′l(zl)\delta^l = \left( (W^{l+1})^T \delta^{l+1} \right) \odot \sigma'^l(z^l)δl=((Wl+1)Tδl+1)σl(zl)

  • 符号说明:
    • (Wl+1)T(W^{l+1})^T(Wl+1)T:下一层权重矩阵的转置(维度匹配:nl×nl+1n_l \times n_{l+1}nl×nl+1);
    • ⊙\odot哈达玛积(逐元素相乘,保证维度与zlz^lzl一致);
    • σ′l(zl)\sigma'^l(z^l)σl(zl):第lll层激活函数的导数(如ReLU导数为σ′(z)=1\sigma'(z)=1σ(z)=1z>0z>0z>0)或000z≤0z \leq 0z0))。
(3)参数梯度(Wl,blW^l, b^lWl,bl的梯度)

有了误差项δl\delta^lδl,可直接推导参数梯度:

  • 权重梯度:∂L∂Wl=δl⋅(al−1)T\frac{\partial \mathcal{L}}{\partial W^l} = \delta^l \cdot (a^{l-1})^TWlL=δl(al1)T
    (维度:nl×nl−1n_l \times n_{l-1}nl×nl1,与WlW^lWl一致)

  • 偏置梯度:∂L∂bl=δl\frac{\partial \mathcal{L}}{\partial b^l} = \delta^lblL=δl
    (偏置向量的每个元素对应δl\delta^lδl的每个元素,因blb^lbl仅影响zlz^lzl的偏移)

2. 优化器:参数更新

优化器根据参数梯度(∂L∂Wl,∂L∂bl\frac{\partial \mathcal{L}}{\partial W^l}, \frac{\partial \mathcal{L}}{\partial b^l}WlL,blL)调整参数,核心是“梯度下降”的变体,解决“如何高效最小化损失”的问题。

(1)随机梯度下降(SGD,基础优化器)

每次用一个样本(或小批量样本)的梯度更新参数,公式为:
Wl=Wl−η⋅∂L∂WlW^l = W^l - \eta \cdot \frac{\partial \mathcal{L}}{\partial W^l}Wl=WlηWlL
bl=bl−η⋅∂L∂blb^l = b^l - \eta \cdot \frac{\partial \mathcal{L}}{\partial b^l}bl=blηblL

  • η\etaη:学习率(控制步长,需手动调参,过大易震荡,过小收敛慢)。
(2)动量法(Momentum,缓解SGD震荡)

模拟物理“动量”,积累历史梯度的方向,减少更新震荡,公式为:
vtW=γ⋅vt−1W+η⋅∂L∂Wlv_t^{W} = \gamma \cdot v_{t-1}^{W} + \eta \cdot \frac{\partial \mathcal{L}}{\partial W^l}vtW=γvt1W+ηWlL
Wl=Wl−vtWW^l = W^l - v_t^{W}Wl=WlvtW

  • vtWv_t^{W}vtW:第ttt步的动量(权重更新的“速度”);
  • γ\gammaγ:动量系数(通常取0.9,控制历史梯度的贡献)。
(3)Adam(自适应学习率,最常用)

结合“动量法”(一阶矩)和“自适应步长”(二阶矩),无需手动调参,公式为:

  1. 计算一阶矩(动量):mtW=β1⋅mt−1W+(1−β1)⋅∂L∂Wlm_t^{W} = \beta_1 \cdot m_{t-1}^{W} + (1 - \beta_1) \cdot \frac{\partial \mathcal{L}}{\partial W^l}mtW=β1mt1W+(1β1)WlL
  2. 计算二阶矩(梯度平方的累积):vtW=β2⋅vt−1W+(1−β2)⋅(∂L∂Wl)2v_t^{W} = \beta_2 \cdot v_{t-1}^{W} + (1 - \beta_2) \cdot \left( \frac{\partial \mathcal{L}}{\partial W^l} \right)^2vtW=β2vt1W+(1β2)(WlL)2
  3. 修正一阶矩(缓解初始阶段偏差):m^tW=mtW1−β1t\hat{m}_t^{W} = \frac{m_t^{W}}{1 - \beta_1^t}m^tW=1β1tmtW
  4. 修正二阶矩:v^tW=vtW1−β2t\hat{v}_t^{W} = \frac{v_t^{W}}{1 - \beta_2^t}v^tW=1β2tvtW
  5. 更新参数:Wl=Wl−η⋅m^tWv^tW+ϵW^l = W^l - \eta \cdot \frac{\hat{m}_t^{W}}{\sqrt{\hat{v}_t^{W}} + \epsilon}Wl=Wlηv^tW+ϵm^tW
  • 超参数默认值:β1=0.9\beta_1=0.9β1=0.9β2=0.999\beta_2=0.999β2=0.999ϵ=10−8\epsilon=10^{-8}ϵ=108(防止分母为0);
  • 核心优势:对不同参数自适应调整步长(梯度大的参数步长小,梯度小的步长稍大),收敛快且稳定。

四、核心公式的逻辑闭环

深度学习的训练流程本质是“前向传播→计算损失→反向传播算梯度→优化器更参数”的迭代循环,各核心公式的关系如下:

  1. 前向传播zl=Wlal−1+blz^l=W^l a^{l-1}+b^lzl=Wlal1+blal=σl(zl)a^l=\sigma^l(z^l)al=σl(zl)):从输入得到预测值y^\hat{y}y^
  2. 损失计算(MSE/交叉熵):量化y^\hat{y}y^yyy的差距L\mathcal{L}L
  3. 反向传播δl=(Wl+1)Tδl+1⊙σ′l(zl)\delta^l=(W^{l+1})^T \delta^{l+1} \odot \sigma'^l(z^l)δl=(Wl+1)Tδl+1σl(zl)):从输出层往回算各参数的梯度;
  4. 优化器更新(Adam/SGD):用梯度调整Wl,blW^l, b^lWl,bl,降低L\mathcal{L}L
  5. 重复1-4,直到L\mathcal{L}L收敛(模型学好参数)。

这些公式是构建所有深度学习模型(CNN、RNN、Transformer)的基础,不同模型仅在“层结构”(如Transformer的自注意力层)上有差异,核心的损失计算、反向传播与优化逻辑保持一致。


文章转载自:

http://kbblG0vC.pcgrq.cn
http://1G704LOO.pcgrq.cn
http://v9L7MBCl.pcgrq.cn
http://YQuiNzlY.pcgrq.cn
http://NRU4VaN0.pcgrq.cn
http://rBj14d25.pcgrq.cn
http://cJawdVX7.pcgrq.cn
http://CgbFOD2t.pcgrq.cn
http://11FGJYpV.pcgrq.cn
http://nG6ycZWY.pcgrq.cn
http://YT9f8Ddo.pcgrq.cn
http://0L5kSqrc.pcgrq.cn
http://VClpCCVk.pcgrq.cn
http://69Oo3qes.pcgrq.cn
http://kmQLQFVx.pcgrq.cn
http://fYgBW06p.pcgrq.cn
http://yADBmckv.pcgrq.cn
http://zGsuDI5l.pcgrq.cn
http://RsMsVzBk.pcgrq.cn
http://iPTycHyq.pcgrq.cn
http://cWwFlX39.pcgrq.cn
http://T5fXEQEJ.pcgrq.cn
http://Z1w3FwlK.pcgrq.cn
http://FAIXAu9M.pcgrq.cn
http://1ZHV3c9g.pcgrq.cn
http://BNyub3Zo.pcgrq.cn
http://DPc3KJgm.pcgrq.cn
http://whFhKfC8.pcgrq.cn
http://4nrQS7c2.pcgrq.cn
http://4EpDa2Mi.pcgrq.cn
http://www.dtcms.com/a/377683.html

相关文章:

  • 划痕缺陷检测:3类成因,对应3套打光方案
  • 摆动序列:如何让数组“上下起伏”地最长?
  • 模型 公地悲剧
  • 深入理解 Android targetSdkVersion:从 Google Play 政策到依赖冲突
  • DDNS动态域名解析服务:原理与工具详解全攻略,外网畅访内网设备用自定义固定域名
  • 【系统分析师】第20章-关键技术:信息物理系统分析与设计(核心总结)
  • 批量更新数据:Mybatis update foreach 和 update case when 写法及比较
  • 九、瑞萨发布RZT/N认证的PROFINET-IRT和PROFIdrive软件协议栈
  • Linux系统学习之注意事项及命令基本格式
  • MoE架构训练系统设计:专家并行与门控网络优化策略
  • 深入分析神马 M56S+ 202T 矿机参数与性能特点
  • 工业RFID现场网关模块:实现多协议互通,128台读写设备互连!
  • Linux系统之----信号
  • 硅基计划4.0 算法 归并排序
  • 关于发布未来工业互联网基础理论与关键技术重大研究计划2025年度项目指南的通告
  • RAG技术解析:AI如何“边查边答”,还要守住数据安全底线?
  • 多通道相参信号
  • 数据映射表
  • NVSpeech_170k 数据集音频提取处理
  • GC Root的一些理解
  • Windows 使用 SHFileOperation 实现文件复制功能
  • Linux防火墙-Firewalld
  • 面壁智能开源多模态大模型——MiniCPM-V 4.5本地部署教程:8B参数开启多模态“高刷”时代!
  • vue3+TS项目配置Eslint+prettier+husky语法校验
  • Redis 5单线程 vs 6多线程性能解析
  • CSS 特指度 (Specificity)
  • 数据结构(C语言篇):(十一)二叉树概念介绍
  • 【go语言 | 第1篇】Go环境安装+go语言特性
  • 嵌入式面试题(4)
  • Python中的getattr/setattr和pybind11中的attr相關函數