一、经典算法原理
(一)SVM 原理
支持向量机(SVM)作为二分类算法,旨在空间中寻找一个超平面,将不同类别的点分隔开。其核心原理是找出能使两类点中离平面最近的点(即支持向量)到平面的距离最远的超平面,以此实现分类目的。
(二)LR 逻辑回归
- 原理剖析:逻辑回归可用于二分类及多分类问题,由 “逻辑” 和 “回归” 构成。它通过将连续的线性回归结果映射为概率值(借助 Sigmoid 等激活函数),从而实现对分类问题的处理。
- 激活函数选择:常用 Sigmoid 函数作为激活函数,这源于伯努利的指数族分布特性。指数族分布在给定某些统计量时具有最大熵,而伯努利分布是在只有两个取值且给定期望值下熵最大的分布,符合逻辑回归的需求。
- 交叉熵相关:从极大似然估计角度,通过计算样本的似然函数并取对数,可得到逻辑回归的损失函数形式;从 KL 散度角度,交叉熵与 KL 散度密切相关,在逻辑回归中,最小化交叉熵可使模型预测分布更接近真实分布。此外,逻辑回归的参数可初始化为 0,在反向传播时,参数能根据样本特征 x 得到有效更新。
(三)集成学习
- Bagging 与 Boosting 差异:Bagging 的训练集通过原始集有放回选取,样例权重均匀,预测函数权重相等且可并行生成,主要降低方差;Boosting 每轮训练集不变,但样例权重依上轮分类结果调整,错误率高的样例权重更大,弱分类器权重不同,预测函数顺序生成,主要降低偏差。
- 随机森林与 GBDT:随机森林基于 Bagging 策略,使用多棵决策树进行预测;GBDT 基于 Boosting 策略,采用 CART 回归树拟合残差,用于分类时结合对数损失函数和 sigmoid 函数得到分类结果。
- GBDT、XGBoost、LightGBM:三者均为基于 Boosting 的集成学习算法。GBDT 是基础框架;XGBoost 在 GBDT 基础上进行了性能优化,如并行计算和正则化;LightGBM 则采用了直方图算法等技术,进一步提升训练效率和性能 。
(四)决策树
决策树通过对数据特征进行递归划分,构建树形结构模型,用于分类和回归任务。其核心在于选择合适的划分特征和划分点,以最大化信息增益或最小化不纯度,常见的划分准则有信息增益、信息增益比、基尼指数等。
(五)EM 算法
- 原理阐释:用于解决含有隐含数据和未知模型参数的问题。通过迭代方式,先猜测隐含参数(E 步),再基于观察数据和猜测的隐含参数极大化对数似然,求解模型参数(M 步),不断重复直至模型参数基本稳定。
- 收敛特性:能保证收敛到一个稳定点,但通常只能达到局部最优。若优化目标为凸函数,则可收敛到全局极大值。
二、模型问题及解决策略
(一)过拟合问题
- 应对方法:从模型角度,可采用正则化、BatchNorm 和 LayerNorm、Dropout 等技术;数据角度,增加训练数据、进行数据增强、标签平滑、引入先验知识等;此外,交叉验证、预训练等方法也有助于缓解过拟合。
- Dropout 作用机制:通过随机丢弃部分神经网络单元,减少神经元之间的依赖,避免模型对训练集的过拟合,可看作是联合多个小规模网络的预测结果。
(二)归一化
- 目的与常用方法:将数据映射到特定范围(如 0 - 1),提升数据处理便捷性和特征可比性。常用的方法有 z 标准化(适用于近似正态分布数据)和最小最大标准化(将数据压缩到 0 - 1 区间)。
- NLP 场景选择:在自然语言处理(NLP)中,由于句子长度不一、Tokens 向量关联性及统计量稳定性等问题,通常不使用 BatchNorm,而更倾向于 LayerNorm,它对特征维度进行归一化,可降低 self - attention 处理后向量的方差,加速模型收敛。
(三)正则化
- 操作方式:通过在原目标函数中添加惩罚项(l1 或 l2 范数),控制模型复杂度,防止过拟合。l1 范数为向量各元素绝对值之和,l2 范数为向量各元素平方和的平方根。
- 效果差异:l2 正则化对原最优解元素进行不同比例放缩;l1 正则化使元素偏移并产生稀疏性,某些元素会变为 0。
- 先验关联:l1 正则化可由假设权重 w 的先验分布为拉普拉斯分布,通过最大后验概率估计导出;l2 正则化对应权重 w 的先验分布为高斯分布。
(四)初始化
- 方法及特点:全 0 初始化不适用于具有隐藏层的神经网络,因其会导致参数无法更新;随机初始化是常见方式,W 参数随机生成,b 参数初始化为 0;Xavier 初始化确保正向和反向传播时,激活值和梯度的方差保持不变;He 初始化适用于 ReLU 等激活函数,在随机初始化基础上,根据上一层神经元个数进行调整。
- 隐层初始化要点:神经网络隐层的 W 参数不能全部初始化为 0,否则隐藏层单元会计算相同内容,无法学习复杂特征,但偏置项 b 可初始化为 0。
(五)激活函数
激活函数为神经网络引入非线性转换能力,使模型能够学习复杂的映射关系。不同激活函数(如 Sigmoid、ReLU 等)各有优缺点,例如 Sigmoid 函数存在梯度消失问题,ReLU 函数则可能导致神经元死亡,但计算效率较高。
(六)损失函数
在二分类任务中,交叉熵损失函数应用广泛。相比于均方误差(MSE),交叉熵更易找到全局最优解,因为 MSE 可能存在多个局部最优解,训练效果受初始权值影响较大。
三、数据处理与优化
(一)样本不均衡处理
- 过采样方法:随机从少数类样本中采样增加新样本;SMOTE 算法通过在少数类样本与其最近邻样本连线上随机选取点生成新样本;ADASYN 则在基于 K 最近邻分类器被错误分类的原始样本附近生成新样本。
- 降采样方法:随机从多数类中选取样本组成新样本集;Edited Nearest Neighbor(ENN)通过删除多数类中与多数 k 近邻样本类别不同的样本;Repeated Edited Nearest Neighbor(RENN)重复 ENN 过程直至无样本可删;Tomek Link Removal 去除类别边缘中构成 Tomek link(两个不同类样本互为最近邻)的多数类样本,增大类别间间隔。
- 带权重的 loss:通过给不同类别的样本赋予不同权重,调整损失函数,使模型更关注少数类样本,平衡样本不均衡问题。
(二)数据预处理
连续特征常进行归一化处理,提升模型训练效果;离散特征通常采用 one - hot 编码,将其转化为向量形式,便于模型处理。
(三)梯度消失和梯度爆炸
- 产生原因:均由网络层数过深引发梯度反向传播中的连乘效应。梯度消失时,浅层隐层更新缓慢甚至停滞;梯度爆炸时,浅层网络梯度波动剧烈,导致特征分布变化大,损失偏差大。
- 解决方案:合理的权重初始化和选择合适的激活函数可缓解问题;Batchnorm 通过对数据进行归一化处理,使梯度传播更稳定。
(四)优化器
- 功能概述:优化器用于更新模型参数,使模型逼近最优值,最小化(或最大化)损失函数。
- 改进方向:从随机梯度下降(SGD)到 Adam,引入了自适应学习率和动量机制,使学习率能根据参数更新情况动态调整,加速模型收敛并提高训练稳定性。Adamw 在 Adam 基础上,将权重衰减(weight decay)直接融入反向传播公式,计算效率更高,效果与 Adam + L2 正则化类似。
四、模型评价指标
(一)常用指标
- 精确率(Precision):衡量被预测为阳性的样本中预测正确的比例,公式为 Precision = TP /(TP + FP)。
- 准确率(Accuracy):反映模型正确预测的比例,公式为 Accuracy = (TPR + TNR)/ 2 。
- AUC:为 ROC 曲线下的面积,用于评估模型的排序能力,与模型预测分数的绝对值无关,对均匀正负样本采样不敏感,在排序业务中应用广泛。与 Accuracy 相比,AUC 和 logloss 无需手动设置阈值将预测概率转换为类别,能更客观地评估模型性能。
(二)工业应用选择
在工业界,AUC 常用于评估模型性能,尤其是在排序业务场景。因其仅关注样本排序效果,不受预测分数绝对值影响,且对正负样本采样不敏感,能更稳定地反映模型的优劣。
五、NLP 前沿技术
(一)BERT 和 Transformer
- 技术要点:Transformer 是一种基于注意力机制的神经网络架构,具有上下文感知和并行计算的优势。BERT 基于 Transformer 的 Encoder - only 架构,通过掩码语言模型(MLM)和下一句预测(Next Sentence Prediction)两个预训练任务进行训练。
- Attention 机制:Self - attention 是 Attention 的特殊形式,满足 Q = K = V(同源)且遵循 Attention 计算方式。通过对输入序列进行矩阵变换得到 Q、K、V,计算词语间相似度实现加权求和。除以根号 d 可缩放注意力分数,减小方差。多头注意力机制允许模型同时关注不同子空间信息,提升模型表达能力,且不会增加模型复杂度。
- OOV 处理:BERT 对不在词表中的单词,按 subword 方式拆分 token,若仍无法匹配,则标记为 [unknown]。
(二)ChatGPT
- 性能提升因素:ChatGPT 性能提升得益于大模型(拥有丰富数据,为推理能力奠定基础)、代码预训练(增强语言理解能力)、Prompt/Instruction Tuning(使模型适应人类语言逻辑)以及人类反馈的强化学习(RLHF,让生成结果更符合人类期望)。
- RLHF 原理:先选择预训练语言模型(如小规模 GPT - 3),收集其生成数据训练奖励模型(根据人工排序评估生成文本质量),再通过强化学习基于奖励模型优化初始模型,使用近端策略优化(PPO)算法更新模型参数,同时设置约束项防止模型取巧。
(三)大模型相关
- 模型架构:通常指参数达一亿以上的模型,目前多以 Transformer 为基础,主要架构包括 Encoder - only(如 BERT)、Encoder - Decoder(如 T5)、Decoder - Only(如 GPT 系列)。GPT - 4 采用 Transformer Decoder 结构并有所改进。
- 位置编码:位置编码分为绝对位置编码(如 BERT 早期使用的三角函数位置编码,但长度受限)和相对位置编码。常用的相对位置编码有 ROPE(用于谷歌 PaLM 和 LLaMA)和 Alibi(用于 Bloom 模型)。Alibi 位置编码外推性更好,通过在 attention score 中添加偏置矩阵体现位置差异;ROPE 基于三角函数改进,融入相对位置信息。
- 微调方法:常见微调方法有 LoRA(冻结预训练模型参数,更新旁路矩阵)、Adapter(在模型层中添加 Adapter 模块学习特定任务知识)、Prefix - tuning(在输入添加特定任务向量序列)、Prompt - tuning(定义任务 Prompt 并拼接输入,冻结预训练模型训练) 。这些方法可在特定下游任务中有效优化大模型性能,同时减少计算资源消耗和训练时间。