数学基础

  1. 线性代数
    • 矩阵运算(乘法/逆/特征值分解/SVD)
    • 向量范数(L1/L2/无穷范数)与矩阵范数
    • 梯度向量与Hessian矩阵(二阶优化基础)
  2. 微积分
    • 标量/向量/矩阵求导(梯度、雅可比矩阵)
    • 链式法则在反向传播中的应用
    • 凸函数与非凸函数(神经网络优化的非凸性)
  3. 概率论与信息论
    • 概率分布(高斯分布、伯努利分布、Dirichlet分布)
    • 最大似然估计(MLE)与贝叶斯估计
    • 信息熵、交叉熵、KL散度(损失函数设计核心)
  4. 最优化理论
    • 梯度下降(GD/SGD/Momentum/Adam等变种)
    • 学习率调度策略(warm-up、余弦退火)
    • 鞍点、局部最优与全局最优问题

神经网络基础

  • 神经元模型(感知机、Sigmoid神经元等)
  • 神经网络的结构(单层神经网络、多层神经网络)
  • 前向传播算法
  • BP算法原理
  • 激活函数(Sigmoid、ReLU、Tanh等)的原理、作用、优缺点及适用场景

损失函数与优化算法

  • 常见的损失函数(均方误差、交叉熵损失等)的定义与应用场景
  • 优化算法(梯度下降、随机梯度下降SGD、Adagrad、RMSProp、Adam等)的原理与特点
  • 学习率调整策略(固定学习率、指数衰减、自适应学习率等)

数据处理与增强

  • 数据划分(训练/验证/测试集)与不平衡数据处理(过采样/欠采样/Focal Loss)
  • 图像增强(翻转/裁剪/归一化)、NLP增强(EDA/回译)

正则化和泛化

  • L1/L2正则化的原理与作用
  • Dropout原理与实现
  • 数据增强(旋转、翻转、缩放等)
  • 批归一化(Batch Normalization)
  • 早停(Early Stopping)
  • Weight Decay
  • 标签平滑(Label Smoothing)

正则化

概念

正则化是一种在深度学习中控制模型复杂度的技术,通过在损失函数中添加惩罚项,减少过拟合风险,提高模型的泛化能力和稳定性。正则化的核心思想是对模型的参数进行约束,使其在训练过程中不过度拟合训练数据中的噪声和细节,从而在未见过的新数据上表现更好。

常见的正则化方法

  1. L1 正则化:也称为 Lasso 正则化,它通过在模型的损失函数中增加权重的 L1 范数(权重向量的绝对值之和)来实现正则化。L1 正则化倾向于产生稀疏权重矩阵,即将一些权重推向零,从而实现特征选择的效果。

  2. L2 正则化:也称为 Ridge 正则化,它通过在模型的损失函数中增加权重的 L2 范数(权重向量的平方和)来实现正则化。L2 正则化会使权重值变得较小,但不会直接导致权重稀疏,因此不具有特征选择的作用,但可以有效地控制模型的复杂度。

  3. 权重衰减(Weight Decay):权重衰减是一种通过在损失函数中增加权重的平方和或绝对值之和来实现正则化的技术。L1/L2 正则化统称为权重衰减。

  4. Dropout:Dropout 是一种特殊的正则化技术,通过在训练过程中随机地丢弃(将其权重置为零)网络中的部分神经元,以及它们的连接,来减少神经网络的复杂度。这样可以防止神经元之间的共适应性,从而减少过拟合。

  5. 早停(Early Stopping):早停是一种简单而有效的正则化方法,它在训练过程中监视模型在验证集上的性能,一旦验证集上的性能开始下降,就停止训练。这样可以避免模型在训练集上过拟合。

  6. 数据增强(Data Augmentation):数据增强是通过对训练数据进行变换来增加数据的多样性,从而减少过拟合的风险。例如,在图像分类任务中可以进行随机裁剪、旋转、翻转等操作来增加训练数据的数量和多样性。

  7. 批量归一化(Batch Normalization):批量归一化是一种通过对每个批次的输入进行归一化来加速训练并减少过拟合的技术。它可以使得每一层的输入分布稳定,从而更容易优化模型。

在机器学习和深度学习中,正则化方法用于防止模型过拟合,提高泛化能力。以下是常见的正则化方法分类及核心原理:

一、参数约束类正则化

  1. L1/L2 正则化(权重衰减)
    • L1 正则化:在损失函数中加入权重绝对值之和(L = L0 + λ∑|w|),迫使部分权重变为0,产生稀疏解,减少模型复杂度。
    • L2 正则化:加入权重平方和(L = L0 + λ∑w²),惩罚过大的权重,使权重分布更平滑,避免过拟合。
    • 应用:广泛用于线性模型(如线性回归、逻辑回归)和神经网络。

二、模型结构类正则化

  1. Dropout

    • 训练时以概率p随机“关闭”神经元(置为0),减少神经元间的依赖,迫使模型学习更鲁棒的特征。测试时保留所有神经元,权重按p缩放以平衡输出。
    • 变种:DropConnect(随机断开神经元连接)、Stochastic Depth(随机跳过神经网络层)。
  2. 数据增强(Data Augmentation)

    • 通过对训练数据进行变换(如图像旋转、裁剪、加噪声,文本同义词替换等),扩展数据集多样性,提升模型泛化能力。
    • 优势:无额外计算成本,是计算机视觉和NLP的标配方法。
  3. 集成学习(Ensemble Methods)

    • 通过组合多个模型(如Bagging、Boosting、Stacking),减少方差或偏差。例如:
      • Bagging(如随机森林):训练多个独立模型,取平均/投票结果。
      • Boosting(如AdaBoost、XGBoost):迭代加强难样本权重,提升弱模型性能。

三、训练过程类正则化

  1. 早停法(Early Stopping)

    • 在训练过程中监控验证集性能,当性能不再提升时提前终止训练,避免过拟合。本质是限制模型训练时间,属于“计算资源约束”的正则化。
  2. 权重初始化

    • 合理的初始化(如Xavier/Glorot初始化、He初始化)可避免梯度消失/爆炸,使训练更稳定,间接起到正则化效果。
    • 例如:正态分布初始化、均匀分布初始化,或基于层输入/输出维度的自适应初始化。
  3. 标签平滑(Label Smoothing)

    • 将硬标签(如[0,1,0])转换为软标签(如[0.1,0.8,0.1]),防止模型对类别过于自信,提升泛化能力,尤其在分类任务中有效。

四、其他高级方法

  1. 对抗训练(Adversarial Training)

    • 在训练数据中加入微小对抗扰动(如FGSM生成的对抗样本),迫使模型学习对输入扰动鲁棒的特征,提升泛化性和安全性。
  2. 知识蒸馏(Knowledge Distillation)

    • 用“教师模型”指导“学生模型”学习,学生模型通过拟合教师的软输出(如logits),吸收更泛化的知识,即使学生模型更小也能保持性能。

核心神经网络模型

卷积神经网络(CNN)

  • 卷积层的原理与计算(卷积核、步长Stride、填充Padding、感受野)
  • 池化层的作用与常见类型(最大池化、平均池化等)、归一化层(BatchNorm/LayerNorm)
  • 卷积神经网络的典型架构(LeNet、AlexNet、VGG、ResNet、Inception等)
  • 目标检测中的CNN应用(R-CNN、Fast R-CNN、Faster R-CNN、YOLO等)

循环神经网络(RNN)及其变体

  • RNN的基本原理与结构
  • 长短期记忆网络(LSTM)的原理与结构
  • 门控循环单元(GRU)的原理与结构
  • 注意力机制(Attention Mechanism)
  • RNN在自然语言处理中的应用(语言模型、机器翻译、文本生成等)

LSTM如何缓解梯度消失?

生成模型

生成对抗网络(GAN)

原理与训练技巧

变分自编码器(VAE)

扩散模型(Diffusion Model)与DDPM


工程实践

模型评估与选择

  • 评估指标(准确率、召回率、F1值、均方误差、峰值信噪比等)的定义与计算
  • 交叉验证的原理与方法
  • 模型选择的原则与方法(基于验证集性能、复杂度等)

模型调试与问题排查

  • 梯度消失/爆炸(权重初始化、激活函数选择、梯度裁剪)
  • 过拟合 vs 欠拟合(偏差-方差分析)
  • 训练曲线分析(损失/准确率震荡或停滞的原因)

怎么解决梯度消失和梯度爆炸问题

  1. 使用Relu、LeakyRelu、Elu等激活函数
  2. BatchNormalization
  3. ResNet残差结构
  4. 梯度剪切(Clip 操作)
  5. 正则
    梯度消失和梯度爆炸

一、激活函数优化

  1. 使用非饱和激活函数
    • ReLU及其变体(如Leaky ReLU、PReLU、ELU):
      • ReLU在正区间的导数为1,避免梯度消失;
      • Leaky ReLU/PReLU通过引入负区间的微小斜率(如0.01),缓解神经元“死亡”问题;
      • ELU(Exponential Linear Unit)通过平滑负区间输出,改善梯度稳定性。

二、权重初始化策略

  1. 自适应初始化方法
    • Xavier/Glorot初始化:适用于Sigmoid/Tanh激活函数,根据输入输出维度调整初始权重的方差。
    • He初始化:专为ReLU设计,权重的方差为 ( \frac{2}{n_{\text{in}}} ),其中 ( n_{\text{in}} ) 是输入神经元数。
    • 目标:使各层激活值的方差保持一致,避免梯度逐层放大或缩小。

三、归一化技术

  1. 批量归一化(Batch Normalization, BN)

    • 对每一层的输入进行标准化(减均值、除标准差),使激活值分布稳定在非饱和区。
    • 可减少对初始化的依赖,并允许使用更大的学习率。
    • 替代方案:层归一化(Layer Norm)、权重归一化(Weight Norm)。
  2. 梯度归一化(Gradient Norm Clipping)

    • 在反向传播时,对梯度进行裁剪(如限制L2范数不超过阈值),防止梯度爆炸。

四、网络结构改进

  1. 残差连接(ResNet)

    • 引入跳跃连接(Skip Connection),允许梯度直接绕过深层网络传递,缓解梯度消失。
    • 公式:( y = F(x) + x ),其中 ( F(x) ) 为残差函数。
  2. 门控机制(LSTM/GRU)

    • 在循环神经网络(RNN)中,LSTM/GRU通过门控单元(输入门、遗忘门、输出门)控制信息流动,缓解长期依赖问题。

五、优化算法改进

  1. 自适应优化器

    • Adam、RMSProp等优化器通过自适应调整学习率,对梯度较大的参数使用较小学习率,反之亦然。
    • 例如:Adam结合动量(Momentum)和自适应学习率,对梯度爆炸有一定鲁棒性。
  2. 学习率调整

    • 使用学习率预热(Warmup)或逐渐衰减策略,避免训练初期梯度不稳定。

六、其他方法

  1. 权重正则化

    • L1/L2正则化约束权重的大小,间接控制梯度幅度。
    • 例如:L2正则化通过惩罚大权重,限制梯度爆炸。
  2. 梯度检查(Gradient Checking)

    • 调试时手动验证梯度计算是否正确,排除实现错误导致的异常梯度。

模型压缩与部署

  • 模型剪枝(结构化/非结构化剪枝)、量化(FP32→FP16/INT8)
  • 知识蒸馏(Teacher-Student模型)
  • 部署工具:ONNX Runtime/TensorRT

八、面试高频问题分类

  1. 基础理论
    • 反向传播推导、梯度消失原因及解决方法
    • 为什么ReLU比Sigmoid更常用?
    • BatchNorm的原理与作用(训练vs推理阶段的区别)
  2. 模型对比
    • CNN vs Transformer在图像任务中的优缺点
    • LSTM为什么能缓解梯度消失?门控机制如何工作?
    • BP算法原理
  3. 工程实践
    • 如何处理类别不平衡数据?
    • 模型过拟合时的调参策略(从数据/模型/训练三方面回答)
    • 分布式训练中如何同步梯度?DDP与DP的区别
  4. 开放问题
    • 预训练模型为什么有效?微调时需要注意什么?
    • 如何设计一个高效的轻量级模型?
    • 对当前大模型(如GPT-4)的理解与潜在问题(伦理/算力)

九、项目实战与复习建议

  1. 项目梳理模板
    • 项目背景(解决什么问题?数据规模/难点)
    • 技术方案(模型选择依据、创新点,如改进的损失函数/数据增强策略)
    • 实验结果(指标对比:准确率/mAP/ROI,可视化分析)
    • 落地挑战(部署时的性能优化,如模型量化)
  2. 复习策略
    • 刷LeetCode(算法基础)+ 复现经典论文(PyTorch实现ResNet/GAN)

四、高频面试问题

  1. 理论推导

    • 手推反向传播(以单层感知机为例)
    • 手写损失函数梯度(如交叉熵+MSE)
    • 解释BatchNorm的作用与数学公式
  2. 模型对比与分析

    • CNN vs RNN的适用场景
    • Transformer为何适合长序列建模?
  3. 场景设计

    • 如何解决类别不平衡问题?
    • 模型过拟合的排查与解决方案
    • 小样本学习的实现思路(Few-shot Learning)

七、面试准备建议

  1. 刷题方向
    • 机器学习手推题(SVM、决策树)
    • 深度学习代码题(手写CNN/RNN)