深度学习基础面经

深度学习面试核心知识点整理

一、两层网络反向传播、链式法则、梯度消失/梯度爆炸

手搓两层网络:逻辑回归模型 + MSE损失 + sigmoid激活函数

链式法则:反向传播本质就是链式法则的连乘,从损失往输入层逐层求导,把上游梯度乘上当前层局部导数,向前传递。

  • 梯度消失

    反向传播链式连乘,梯度不断变小趋近于0,参数几乎不更新。

    典型现象:靠近输入层的权重很难训练,loss下降极慢甚至停滞。

    常见原因:激活函数导数<1(如sigmoid)、权重初始化过小。

    解决办法:更换激活函数(ReLU)、合理权重初始化、BN、残差连接。

  • 梯度爆炸

    反向传播链式连乘,梯度不断变大,参数更新幅度剧烈,震荡不收敛。

    典型现象:loss剧烈震荡。

    常见原因:权重初始化过大、激活函数导数>1。

    解决办法:梯度裁剪、BN、残差结构。

根因:反向传播链式法则的连续相乘。

二、Adam / AdamW 原理与区别;SGD vs Adam

Adam

自适应优化器,利用梯度计算动量(惯性方向),为每个参数单独自适应调整学习率。

AdamW

Adam原生使用L2正则存在缺陷:L2惩罚项混入梯度,一起参与Adam的自适应缩放;梯度波动大时惩罚被稀释,梯度小时惩罚过重。

AdamW改进:权重衰减不参与梯度和矩的自适应计算,在Adam梯度更新完成之后,单独执行权重衰减;衰减力度只由学习率和weight_decay控制,不受梯度波动影响。

现在多用AdamW,权重衰减更稳定可靠。

SGD vs Adam

优点 缺点
SGD 泛化能力强,更容易找到平缓极小点;逻辑简单;显存占用低 学习率固定,收敛慢、容易震荡;超参数敏感
Adam 自适应学习率,每个参数独立调整步长,收敛快 容易收敛到尖锐极小点,部分任务泛化上限弱于SGD

三、学习率调优

学习率类比下山步长:步长太大容易震荡,步长太小走得太慢。

常见学习率调度

  1. 固定学习率:步长全程不变,谷底附近容易震荡不收敛。
  2. Step Decay:分段衰减,前期大学习率,后期降低。
  3. Cosine Decay:余弦曲线式衰减;常搭配warmup。
  4. Warmup:训练初期学习率从小慢慢抬升到目标学习率;避免前期参数不稳定时大步更新震荡。
  5. 基于验证指标动态调参:验证loss连续多轮稳定,降低学习率精细搜索。

不同场景初始学习率参考

场景 优化器 学习率
小模型从零训练 AdamW 1e-3 / 3e-4
小模型从零训练 SGD 0.1 / 0.01
LoRA微调 AdamW 2e-4
大模型微调 AdamW 1e-4
大模型全参数微调 AdamW 5e-6 ~ 2e-5

Batch size 策略:batch越大梯度越稳定,可承受更大学习率;batch扩大k倍,学习率可放大k倍;数据噪声大时,batch扩2倍,学习率优先×1.5。

根据loss表现调整学习率

场景 loss现象 调整策略
从零训练 训练loss几乎不降 放大3~10倍
从零训练 训练loss剧烈震荡 缩小3~10倍
从零训练 训练loss下降、测试loss不降 降学习率 + 正则/早停(过拟合)
LLM微调 loss下降,但输出胡说、破坏基座能力 降低学习率
LLM微调 loss不下降、输出效果差 提高学习率

分层学习率:底层(靠近输入)小学习率,新增/顶层模块大学习率。

组合推荐

  • 普通CNN:AdamW + 3e-4 + CosineDecay(可选warmup)
  • 小数据集:AdamW + 1e-4 / 3e-4,一般不需要warmup
  • LoRA微调:2e-4起步,不稳降到1e-4,建议warmup
  • 全参数微调:1e-5起步,强烈建议warmup
  • 大batch训练:学习率随batch放大 + 必须warmup

loss突然爆炸到极大值,检查batch,增加梯度裁剪。

四、BatchNorm / LayerNorm

BatchNorm(BN)

背景:内部协变量偏移,每层输入分布随训练持续变化,模型持续适应新分布,训练困难。

核心:对中间特征标准化,稳定分布,加速收敛、稳定训练。

计算(单个batch):

μB=1m∑i=1mxi,σB2=1m∑i=1m(xi−μB)2 \mu_B=\frac{1}{m}\sum_{i=1}^{m}x_i,\quad \sigma_B^2=\frac{1}{m}\sum_{i=1}^{m}(x_i-\mu_B)^2 μB=m1i=1∑mxi,σB2=m1i=1∑m(xi−μB)2

x^i=xi−μBσB2+ϵ,yi=γx^i+β \hat{x}_i=\frac{x_i-\mu_B}{\sqrt{\sigma_B^2+\epsilon}},\quad y_i=\gamma\hat{x}_i+\beta x^i=σB2+ϵ xi−μB,yi=γx^i+β

γ,β\gamma,\betaγ,β 为可学习缩放、平移参数。

CNN维度:输入 X∈RN×C×H×WX\in \mathbb{R}^{N\times C\times H\times W}X∈RN×C×H×W,按通道C归一化 ,在 KaTeX parse error: Can't use function '\(' in math mode at position 1: \̲(̲N,H,W\) 维度求均值方差:

μc=1NHW∑n,h,wXn,c,h,w,σc2=1NHW∑n,h,w(Xn,c,h,w−μc)2 \mu_c=\frac{1}{NHW}\sum_{n,h,w}X_{n,c,h,w},\quad \sigma_c^2=\frac{1}{NHW}\sum_{n,h,w}(X_{n,c,h,w}-\mu_c)^2 μc=NHW1n,h,w∑Xn,c,h,w,σc2=NHW1n,h,w∑(Xn,c,h,w−μc)2

训练 vs 推理

  • 训练:使用当前mini-batch的均值方差;同时EMA维护全局运行均值方差
    μrunning=(1−m)μrunning+mμBσrunning2=(1−m)σrunning2+mσB2 \mu_{running}= (1-m)\mu_{running}+m\mu_B \\ \sigma_{running}^2= (1-m)\sigma_{running}^2+m\sigma_B^2 μrunning=(1−m)μrunning+mμBσrunning2=(1−m)σrunning2+mσB2
  • 推理:直接使用EMA累积好的运行均值、方差,不再用batch统计量。

LayerNorm(LN)

对单个样本、单个token,在特征维度D上归一化:

μn,l=1D∑d=1DXn,l,d,σn,l2=1D∑d=1D(Xn,l,d−μn,l)2 \mu_{n,l}=\frac{1}{D}\sum_{d=1}^{D}X_{n,l,d},\quad \sigma_{n,l}^2=\frac{1}{D}\sum_{d=1}^{D}(X_{n,l,d}-\mu_{n,l})^2 μn,l=D1d=1∑DXn,l,d,σn,l2=D1d=1∑D(Xn,l,d−μn,l)2

BN vs LN 使用场景

  • CV常用BN:CNN特征空间结构稳定,batch维度统计可靠;
  • Transformer/NLP常用LN:序列长度动态变化,batch维度统计不稳定,适合单样本维度归一化。

五、激活函数:ReLU / LeakyReLU / GELU / Sigmoid / Tanh / Softmax

激活函数作用:引入非线性,让网络拟合复杂映射。

激活函数 公式 优点 缺点
ReLU f(x)=max⁡(0,x)f(x)=\max(0,x)f(x)=max(0,x) 计算简单;正数梯度恒为1,缓解梯度消失,收敛快 负区间梯度恒0,神经元死亡
LeakyReLU f(x)={αx,x<0x,x≥0f(x)=\begin{cases}\alpha x,&x<0\\x,&x\ge0\end{cases}f(x)={αx,x,x<0x≥0 缓解神经元死亡 超参α\alphaα需要调
GELU f(x)=xΦ(x)f(x)=x\Phi(x)f(x)=xΦ(x),Φ\PhiΦ正态累积分布 函数平滑、梯度连续,LLM主流 计算开销更大
Sigmoid f(x)=11+e−xf(x)=\frac{1}{1+e^{-x}}f(x)=1+e−x1 输出(0,1),适合二分类概率 两端梯度小,易梯度消失
Tanh f(x)=ex−e−xex+e−xf(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}f(x)=ex+e−xex−e−x 输出(-1,1),中心化 两端饱和,易梯度消失
Softmax Pi=ezi∑j=1KezjP_i=\frac{e^{z_i}}{\sum_{j=1}^{K}e^{z_j}}Pi=∑j=1Kezjezi 输出互斥类别概率,总和=1 类别竞争,不适合多标签

使用广度:CNN最常用ReLU/SiLU;Transformer/GPT系列常用GELU、SwiGLU。

六、Transformer & 自注意力机制

自注意力:每个token与序列内所有token计算相关性,融合上下文信息。

输入Embedding:X∈RL×DX\in\mathbb{R}^{L\times D}X∈RL×D,LLL token长度,DDD特征维度。

步骤:

  1. 线性映射得到Q、K、V:Q=XWQ, K=XWK, V=XWVQ=XW_Q,\ K=XW_K,\ V=XW_VQ=XWQ, K=XWK, V=XWV
    • Q:查询,我想要什么信息
    • K:键,我有什么特征
    • V:值,我携带的信息内容
  2. Q、K点积,计算token相关性分数
  3. Softmax归一化,得到注意力权重
  4. 权重和V加权求和,得到融合上下文的新特征

Attention(Q,K,V)=Softmax(QKTdk)V Attention(Q,K,V)= Softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=Softmax(dk QKT)V

  • 缩放因子 dk\sqrt{d_k}dk :防止QK点积数值过大,Softmax进入饱和区,梯度变小。

多头注意力:多组独立QKV,各自计算自注意力,结果拼接后线性投影;从多个子空间捕捉不同关联模式,多视角建模。

位置编码:自注意力本身没有时序顺序感知能力;位置编码给每个位置增加位置向量,和embedding相加注入位置信息;常见:正弦余弦位置编码、RoPE旋转位置编码、可学习位置编码。

七、Warmup、梯度裁剪、EMA、混合精度、学习率调度

  • Warmup:学习率预热,训练初期学习率由小逐步抬升到目标lr;防止前期参数不稳定,大步更新震荡。
  • 梯度裁剪:反向传播后、参数更新前,限制梯度范数/数值大小;抑制梯度爆炸,稳定训练。常用L2范数裁剪。
  • EMA(指数移动平均):维护模型权重的滑动平均,平滑权重波动;推理时用EMA权重,泛化、稳定性更好。
  • 混合精度训练:FP16/BF16 + FP32混合计算;降低显存占用、提升GPU算力利用率;FP16搭配GradScaler解决梯度下溢。
  • 学习率调度:随训练轮次/验证指标动态调整学习率;前期大步快速收敛,后期小步精细优化。

八、Dropout 原理、训练/推理差异

Dropout是正则化手段,用来抑制过拟合。

原理:训练时以固定概率随机屏蔽一部分神经元;避免模型过度依赖少数神经元,近似大量子网络集成。

  • 训练阶段:随机失活神经元;
  • 推理阶段:Dropout关闭,所有神经元全部参与计算。

相关推荐
武子康23 分钟前
单卡 A6000 跑 Qwen-Drive:怎样留下可比较的第一条基线?
linux·人工智能·深度学习
严肃小白兔23 分钟前
第 06/24 期:神经网络的反向传播算法:从链式法则到梯度计算
人工智能·神经网络·算法
后端小肥肠42 分钟前
公众号漫画又挖到长尾赛道:家常菜美食,流量稳定长期有收益
人工智能·aigc·agent
泯泷1 小时前
从"检索管道"到"主动助理"——Agentic RAG 与双层记忆(五)
人工智能·llm·agent
武子康1 小时前
ComfyUI 加载了动作 LoRA,H3-World 的时间绑定就接好了吗?
人工智能·机器学习·claude
腾科IT教育1 小时前
HCIE-AI认证全部解析:方向选择、考试门槛与职业适配指南
人工智能·华为认证·hcie-ai·华为ai
QXWZ_IA1 小时前
具身智能在油气行业规模化应用面临哪些技术挑战?
人工智能·安全
泯泷3 小时前
AI Agent 的下一站:让世界主动来找它
人工智能·llm·agent
xsd202411183 小时前
MediaMTX + FFmpeg 搭一套轻量 RTSP 流服务器
人工智能