Table of contents
名词
DNN 深度神经网络 CNN 卷积神经网络 RNN 循环神经网络 KNN K近邻 MLE 最大似然估计 GMM 高斯混合模型 MSE 均方误差 MAP 最大后验估计 SVM 支持向量机 LDA 线性判别分析 GDA 高斯判别分析 ROC 受试者工作特征曲线 AUC 曲线下面积 TP 真阳性 TPR 真阳性率 FPR 假阳性率 BCE 二元交叉熵 CE 交叉熵 GD 梯度下降 BoW 词袋模型 TF-IDF 词频-逆文档频率 IR 信息检索 MLP 多层感知机 GQA 分组查询注意力 SFT 监督微调 LoRA 低秩微调 RLHF 基于人类反馈的强化学习 PPO 近端策略优化 DPO 直接偏好优化 RAG 检索增强生成 AE 自编码器 VAE 变分自编码器 GAN 生成对抗网络 CLIP 对比语言-图像预训练模型 RL 强化学习 GEPA 基于遗传进化和Pareto优化的提示词进化方法
Learning Problem(任务是什么,如何评价,有什么数据。)
- 看数据!:多少数据,数据特征(输入,本身属性)和标签(输出,要预测的)。有哪些具体值,有没有缺漏项,分布是什么样的。
- 测试集只可以使用一次,也不能对着它调参数。另:benchmark overfitting,如果一个测试集被全领域反复调参、反复比较,模型可能会越来越适应这个测试集,而不一定代表真实世界泛化能力真的那么强。
机器学习部分
聚类,课程里主要介绍基于模型的聚类,还有层次聚类(构造树状结构)、划分式(eg谱聚类,图割)、密度聚类(egDBSCAN、OPTICS、HDBSCAN)
- KNN,不细说。
熵
熵衡量的是分布本身的不确定性交叉熵
衡量如果真实数据来自 ,但我们用 来编码或预测,平均需要多少信息量
多分类交叉熵:
二分类交叉熵: ,KL散度 (aka 相对熵)
是一种计算两个概率分布差异的方式,但不可以在这里算距离,它不满足对称性和三角不等式。
MLE,iid假设,用负对数似然来求loss表达式。
- GMM,假设误差符合高斯分布,从MLE可以推出MSE。GMM的求解可以使用EM或GD。
回归,学习一个,新给出x可以预测y的模型。比拟合更大一些,包含预测泛化的考量。
- 线性回归,对w线性,可以使用基函数展开拟合非线性关系
- 高斯线性回归,假设误差符合高斯分布(MSE),有闭式解 ,不可逆时可以用伪逆 (在所有让 (|Xw-y|^2) 最小的解里,选择 (|w|) 最小的那个)。L2正则化,有闭式解;贝叶斯建模方向,MAP 最大后验估计 = 最大似然 + 先验约束。L2可以从MAP来理解,相当于认为开始给了一个小权重先验。
- 回归的几何视角,不细说
- 回归模型的表现:MSE或Log likelihood计算validation在模型下出现的概率。MSE=Gaussian Log likelihood
- K-Fold cross-validation,先划出Test Data,剩余的分k份,每一份做validation一次,选出最好超参数再全量train。
分类:
-
判别式,直接学习 :
- (I) 逻辑回归:
- 线性回归,模型加 Sigmoid/Softmax
- MLE推出来的BCE:
- Softmax ,MLE推出来的CE:
- 压缩到0~1,没有闭式解,GD。评价模型:ROC,AUC。TP:True Positive真阳性,H0假设是阴性,TPR/FPR实际是什么分母就是什么。TPRakaRecall…
- (II) SVM
- (III) 神经网络分类器
-
生成式,学习联合分布,再用贝叶斯公式计算 ,不同类别比较时,(p(x)) 是一样的
- (I) Naive Bayes 训练:假设特征独立,计算特征先验和特征的条件概率(Laplace smoothing)。离散时可以直接计数,连续时假设特征为高斯分布,使用均值方差刻画条件概率
- (II) GDA/QDA高斯判别分析,LDA线性判别分析:会建模特征之间的相关性,多了协方差。LDA是GDA的特例,共享类别的协方差。
梯度下降:
-
每次用全部数据,叫 batch gradient descent
-
每次只用一个样本,叫 stochastic gradient descent
-
实际深度学习中最常用的是 mini-batch。将多个样本组成batch一起计算,最后梯度取平均。
-
主要的方法:gradient descent, Momentum, AdaGrad, RMSProp, Adam (Adaptive Moment Estimation,同时兼顾了动量和 RMSProp 的优点,现在主要使用)
- Momentum:
- AdaGrad:
-
学习率:固定,或者学习率调度器(学习率随训练过程变化,具体不细说), AdaGrad, RMSProp, Adam会改变学习率。
补充:PCA主成分分析,无监督的降维
深度学习部分
Activate Function(激活函数):
- Sigmoid:,值域 适合概率,出现梯度消失(梯度太小学不动),性质
- ReLU:,不会出现梯度消失,计算简便,现在广泛使用,不可导处可以人工给一个0或1
tanh:,值域 万能逼近定律:连续函数都可以用一层hidden layer的神经网络表示。但并不知道要多少神经元,也不知道怎么训练。 神经网络中,一般输入层不计算一层。两层全连接就是1隐藏层+1输出层。
训练的具体计算: 反向传播,链式法则。具体方法:
(神秘的内容)
有限微分(参数变化一小点来看预测值,来近似梯度)效率低,每个参数要算2次正向
符号求导(整个一起算的意思)?准确,但是表达式可能很复杂; 采用自动微分:链式法则,先可以把每一步导数的表达式写出来,前向的时候算具体值,反向传播的时候代入。
- 初始化:near zero时梯度下降迅速,对于ReLU,He初始化补偿ReLU丢掉一半有效强度
- Batch Normalization:每一层的参数做一个标准化,同时分母加上一个小值防止除0以及更稳定。训练时 Batch Norm 用当前 mini-batch 的均值和方差做归一化;同时不断记录这些均值和方差的滑动平均。测试时不用当前 batch 的统计量,而用训练期间累计得到的滑动平均均值和方差。RMSNorm 替代 Layer Norm:去掉均值中心化,只做缩放,更简单高效。
- 权重共享,引伸出卷积
卷积 conv:kernel size,步长stride,外层填充padding,pooling ,W同理 等价于 维度计算:主要注意一个卷积核用多个通道
- Double Descent:传统中模型过复杂会过拟合,要early stopping。但现代大神经网络中,大于Interpolation threshold(插值阈值,插值临界点),训练误差会下降、上升再下降,泛化能力反而更好了。
- Dropout:训练时随机丢掉一部分神经元,测试时使用全部神经元并做缩放,用来减少过拟合。
Attention and Transformer
MLP固定长度,CNN每一层只能多看一点。于是使用Transformer。 把文本转换成机器学习模型可处理的数字向量:
-
Bag of Words,简称 BoW,统计每个词在每篇文档中出现的次数,忽略词序
-
TF-IDF,For each word i, compute TF-IDF(i)= TF(i)*IDF(i),TF(i)= times word i appears in a document/words in doc,IDF(i)=Log( Total number of documents/ number of documents with word i)
-
现在深度学习基本是查embedding table
RNN Soft vs Hard attention Inner-Product Search is a basic information retrieval (IR) method to rank document relevance,transformer借鉴这种思想。 Q query K key V value Self Attention Layer: 其中, 表示序列长度, (D)表示隐藏维度,也是输入的维度。 , , 其中:, (Q和K的维度需要保持一致) , (V可以另外设置) ,其中: ,每个元素是 个相加来的,标准化一下 ,其中: ,即: 其中:, 为输出的维度
- Multi-Headed Attention: Grouped-query Attention (GQA) 每个头一个Q,复用KV 最终结果将多个head的结果拼接起来,一般每个head D/H维,使最终维度和原来一致
Transformer layer = 多头自注意力 Multi-head Self-Attention + MLP/前馈神经网络 + residual connection残差连接 + LayerNorm
- attention 权重是通过 softmax 得到的,有一定非线性,但 attention 的输出本质上还是对 V的加权组合。MLP可以做更强的非线性变换。
- Residual connection:让信息可以直接跳过某些模块,缓解梯度消失,使深层 Transformer 更容易训练。
- Layer Norm:稳定每一层的数值分布,让训练更平稳。
Transformer图像分类中,额外加一个特殊 token,叫
<class>token 或[CLS]token,专门负责汇总整张图的信息
Attention没有位置信息,position embedding
- 直接相加:在高维空间里,
x_n和r_n通常接近正交,也就是互相干扰不大。 - Learned Positional Embeddings,提前确定最大长度,not good
- Sinusoidal Positional Encoding,正弦/余弦位置编码,能表达相对位置,线性层容易处理,可以推广到更长序列。乘上一个表示旋转的向量就是一个相对位置。
RNN:长距离衰减、时间上依赖上一步难以并行。 Encoder-Decoder:变长输入、变长输出。 attention:在RNN时期就有了,应用在RNN上可以查询信息。 Encoder-Decoder Transformer:抛弃掉RNN。 现代LLM:decoder-only Transformer,大量语料,self-supervision,预测next token,训练时Masked Attention防止偷鸡直接取下一个token。transformer在训练中可以并行,但在生成时跟RNN一样是串行。
- Self-attention:Q、K、V 都来自同一个序列。
- Cross-attention:Q 来自一个序列,K 和 V 来自另一个序列。
- VLM:加线性变换层visual encoder aka adapter
- GPT:Generatively Pretrained Transformer 后训练 Post training:
- SFT (Supervised Fine-tuning):有老师有标答。
- LoRA Fine-Tuning:把大矩阵的更新量拆成两个小矩阵
A和B,用W' = W + AB在关键线性层上加一个低秩适配器,只训练A/B而冻结原模型参数。通常让A随机初始化、B初始化为 0,是为了让初始输出完全等于原模型,同时保证梯度能流动、训练能启动。 - Synthetic Data Augmentation:合成数据增强,用AI生成数据来训练/微调。
- RLHF (Reinforcement Learning from Human Feedback):用PPO等算法,需要reward model。
- DPO (Direct Preference Optimization):不需要reward model。 RAG,思维链,Agent,区别workflow。
自监督学习
通过可以直接构建的学习任务,学习通用特征。 像是LLM的基模,也像是高考一样,学习一些没有实际价值的任务(比如next token prediction)来获得基本的理解。
-
Generative: Predict part of the input signal
- Autoencoders (AE)自编码器:把输入压缩成隐藏表示,再尽量重建原始输入。
- GANs 生成对抗网络:生成器造假样本,判别器判断真假,两者对抗训练。
- Super-resolution 超分辨率:用低清图像预测高清图像。
- Colorization 图像上色:用灰度图预测对应的彩色图。
- Inpainting 图像修复:根据图像周围内容补全缺失区域。
-
Discriminative: Predict something about the input signal
-
Context Prediction 上下文预测:判断图像块之间的相对位置关系。
-
Rotation 旋转预测:预测图像被旋转了多少角度。
-
Jigsaw 拼图任务:把打乱的图像块重新排列或预测正确顺序。
-
Clustering 聚类:把相似样本自动分到同一组,学习有用特征。
-
Contrastive Learning 对比学习:让“应该相似的东西”在向量空间里靠近,让“不相关的东西”远离
-
SimCLR:Simple Framework for Contrastive Learning of Visual Representations
一张图片,做两种随机变换,之间尽可能接近,同时让它们和其他图片的表示尽可能远。
-
CLIP:Contrastive Language-Image Pre-Training
让匹配的图像和文本向量靠近,让不匹配的图像和文本向量远离。
-
-
-
VAE (Variational Autoencoder):AE的改进,潜空间更连续更规整。
-
Diffusion:学习去噪过程。
Agent
RL:状态、动作、策略、奖励函数 GEPA:Genetic-Pareto Prompt Evolution,基于遗传进化和 Pareto 优化的提示词进化方法。