自学笔记(2)

大一下学期的自学笔记,由机器学习、深度学习课程组成。

一、统计学习

1. 回归问题

  1. 损失函数:均方误差损失 $\mathrm{MSE}$,$\sum (f(x)-y)^2$
  2. 改进:基函数(获取非线性)、正则项($\mathrm{L2,L1}$)

2. 二分类问题

  1. 连接函数:$\mathrm{Sigmoid}$,$\sigma(f(x))=\frac{1}{1+e^{-f(x)}}$
  2. 损失函数:交叉熵,$l(x,y)=y\log(\sigma(f(x)))+(1-y)\log(1-\sigma(f(x)))$

3. 多分类问题

  1. 连接函数:$\mathrm{Softmax}$,$\sigma_i(f(x))=\frac{e^{f_i(x)}}{\sum_j e^{f_j(x)}}$
  2. 损失函数:交叉熵,$l(x,y)=-\log(\sigma_y(f(x)))$

4. 学习理论

  1. 估计误差 $\mathrm{Estimation}$:训练所得函数与假设空间中最佳函数的距离
  2. 近似误差 $\mathrm{Approximation}$:假设空间中最佳函数与真值函数的距离
  3. 泛化误差:估计误差与近似误差之和

5. 优化方法

  1. 一阶方法:梯度下降(随机梯度下降)
  2. 学习率衰减:$\eta_{\min}+\frac{1}{2}(\eta_{\max}-\eta_{\min})(1+\cos(\frac{T_{cur}}{T_{all}}\pi))$
  3. 冲量法:$\Delta_t=\beta\Delta_{t-1}+(1-\beta)\nabla J(\theta_t)$
  4. $\mathrm{Nesterov}$:$\theta_t^\prime=\theta_t-\beta\Delta_{t-1},\Delta_t=\beta\Delta_{t-1}+(1-\beta)\nabla J(\theta_t^\prime)$
  5. 自适应学习率 $\mathrm{AdaGrad}$:$h=\frac{1}{\sqrt{r_t}+\delta}$,$r_t$ 为历史梯度平方和,但容易爆炸
  6. $\mathrm{RMSProp}$:$r_t=\rho r_{t-1}+(1-\rho)\nabla J(\theta_t)^2$,解决爆炸问题,可与冲量法连用
  7. 自适应冲量 $\mathrm{Adam}$:将 $h$ 也作用在冲量项上,但需用分母修正 $r,s$ 偏差,可与 $\mathrm{Nesterov}$ 连用
  8. 二阶方法:$\theta=\theta-H^{-1}\nabla J(\theta)$(增量算法可直接算逆)

二、深度学习

6. 多层感知机 $\mathrm{MLP}$

  1. 感知机学习算法:$(x,\pm 1),y=\mathrm{sgn}(\theta x)$,错误时 $\theta=\theta+xy$,设置阈值并堆叠模拟逻辑或函数运算
  2. 激活函数:$\mathrm{Sigmoid},\mathrm{ReLU},\mathrm{tanh},\mathrm{Softmax},\mathrm{GeLU},\mathrm{LeakyReLU}$
  3. 优化:反向传播(基于残差或计算图)
  4. 训练技巧:$\mathrm{Dropout}$、$\mathrm{ReLU}$ 初始方差改为 $\frac{2}{n}$

7. 卷积神经网络 $\mathrm{CNN}$

  1. 不变性($fT=f$)、等变性($fT=Tf$)
  2. 卷积核参数:$\mathrm{Stride},\mathrm{Padding},\mathrm{Dilation}$
  3. 训练技巧:池化 $\mathrm{Pooling}$、$\mathrm{BatchNormalization}$(改进:$\mathrm{GroupNormalization}$)、数据增广
  4. 标准架构:$1\times 1$ 卷积、$\mathrm{Inception}$(多尺度卷积)、$\mathrm{ResNet}$(残差直连)
  5. 轻量化:剪枝、权重聚类、组卷积(组间可洗牌)、通道分离卷积
  6. 改进:视频 $\mathrm{3D}$ 卷积、$\mathrm{Attention}$(全局距离加权,度量学习)、通道加权、神经架构搜索

8. 循环神经网络 $\mathrm{RNN}$

  1. $h_t=f(h_{t-1},x_t)=\mathrm{tanh}(Wh_{t-1}+Ux_t),y_t=Vh_t$,可改进为双向、多层
  2. 应用方式:多对一、一对多、多对多
  3. 优化:反向传播,但容易梯度爆炸或消失
  4. 梯度爆炸:分块、梯度裁剪($\mathrm{Clip}$)
  5. 梯度消失:$\mathrm{LSTM}$(遗忘、写入、读取)
  6. 训练技巧:$\mathrm{Dropout}$ 共享、$\mathrm{Layer Normalization}$(通道间归一)、课程学习(逐步将真值 $y$ 替换为预测)
  7. $\mathrm{Attention}$:逐层做 $h_t$ 相关性加权

9. 图神经网络 $\mathrm{GNN}$

  1. 节点相似性:$\frac{N(u)\cap N(v)}{N(u)\cup N(v)}$,但无法刻画远距离
  2. $\mathrm{DeepWalk}$:用随机游走的概率表示节点相似性,损失函数 $\displaystyle \sum_{u\in V}\sum_{v\in N(u)}-\log(\frac{\exp(z_u^Tz_v)}{\sum_{n\in V}\exp(z_u^Tz_n)})$
  3. 改进:$\mathrm{node2vec}$(加权随机游走,平衡 $\mathrm{BFS}$ 和 $\mathrm{DFS}$)、分母随机采样降低复杂度
  4. 图卷积网络 $\mathrm{GCN}$:效仿 $\mathrm{CNN}$ 特征聚合、同层参数共享,$\displaystyle h_v^k=\sigma(W_k\sum_{u\in N(v)}\frac{h_u^{k-1}}{|N(v)|}+B_kh_v^{k-1})$
  5. 改进:图注意力网络 $\mathrm{GAT}$(邻居加权)、聚类 $\mathrm{ClusterGCN}$(降低复杂度)
  6. 训练技巧:在部分顶点上训练降低复杂度、将图卷积层改为 $\mathrm{MLP}$ 避免过平滑(小世界原理)、残差连接

10. $\mathrm{Transformer}$

  1. $\mathrm{Attention}$:将 $x$ 转化为 $q,k,v$,$a=\mathrm{Softmax}(\frac{q^Tk}{\sqrt{d}})$,$\mathrm{MQA,GQA}$ 头间共享 $k,v$
  2. $\mathrm{FFN}$:$\mathrm{FFN}(x)=\mathrm{GeLU}(W_1x+b_1)W_2+b_2$,$\mathrm{dim}W=d^2$ 且参数共享,$\mathrm{MoE}$ 中多个共用
  3. 模仿 $\mathrm{CNN,RNN}$,引入加权残差连接、预先 $\mathrm{LayerNormalization}$(归一化或单位化)
  4. 位置编码:$e_i(2j)=\sin(\frac{i}{10000^{2j/d}}),e_i(2j+1)=\cos(\frac{i}{10000^{2j/d}})$;或相对位置编码 $\mathrm{ALiBi}$、旋转位置编码 $f(x,m)=xe^{im\theta},\theta_i=10000^{-2(i-1)/d}$
  5. 改进:线性注意力、$\mathrm{MaskAttention}$(遮挡)、$\mathrm{FlashAttention}$(分块)、$\mathrm{RingAttention}$(分布式)
  6. $\mathrm{GPT}$:$\mathrm{Decoder}$,生成式预训练;$\mathrm{BERT}$:$\mathrm{Encoder}$,填空式预训练;$\mathrm{T5}$:完整版

11. 语言模型

  1. $\mathrm{ScalingLaw}$:参数量 $\gt$ $\mathrm{BatchSize}\gt \mathrm{epoch}$;推理 $\gt$ 训练;扩大单模型 $\mathrm{vs}$ 多模型集成
  2. 微调:全量微调(数据多易负迁移)、$\mathrm{Adapter}$(插适配头,如低秩适应微调 $\mathrm{LoRA}$,$\theta=\theta+AB$)、部分微调(如调倒数两三层,数据少易过拟合)
  3. 改进:加入正则项限制微调改变量、重跑预训练任务检查精度变化、多模型微调(根据相关性加权蒸馏)
  4. $\mathrm{RLHF}$:监督微调 $\to$ 训练奖励模型 $\to$ 强化学习;或 $\mathrm{DPO}$(直接用成对数据微调,可用大模型生成)
  5. $\mathrm{Prompting}$:$\mathrm{InContextLearning}$,思维链,集成工具,检索增强生成 $\mathrm{RAG}$(文档向量化 $\to$ 与问题计算相似度 $\to$ 写入 $\mathrm{Prompt}$)
  6. 部署:量化(浮点转小整数)、推测解码 $\mathrm{SpeculativeDecoding}$(小模型生成大模型验证)
  7. 视觉:$\mathrm{CLIP}$(弱监督图文对相似度矩阵对角化)、$\mathrm{Flamingo}$(将图 $\mathrm{token}$ 映射到文本空间)、$\mathrm{Q-Former}$(将图转化为 $\mathrm{query}$)

12. 多模态与智能体

  1. 底层:$\mathrm{ViT}$(分块 $\mathrm{MLP}$ 后块间注意力)、$\mathrm{SwinTransformer}$(块内注意力,块滑动)
  2. 训练方式:生成式预训练,如 $\mathrm{ImageGPT}$
  3. $\mathrm{CLIP}$:弱监督图文对,让相似度矩阵对角化
  4. 多模态语言模型:$\mathrm{Flamingo}$(将图转为 $\mathrm{token}$ 嵌入文本)、$\mathrm{Q-Former}$(将图转为 $\mathrm{query}$)、$\mathrm{VQGAN}$(图转为最近码字,再解码计算相似度)
  5. 纯多模态模型:$\mathrm{Fuyu}$(图文同等映射到另一空间)
  6. $\mathrm{Agent}$:规划(目标分解、自我反思)、记忆(长:历史经验;短:上下文)、工具(外部应用、大模型)、行动(虚拟、具身)、协作(人机、多代理)

13. 迁移学习

  1. 多任务学习:共享参数 $+$ 任务头,损失函数加权(或范数归一、任务不确定性、帕累托最优)
  2. 元学习:输入数据集直接输出最优学习器,分为训练任务(支撑集、验证集)、测试任务(训练集、测试集),优化目标为 $n$ 个训练任务的平均损失函数
  3. 生成学习:先编码再解码算相似度,可对编码器做限制(稀疏性、范数、加噪声、加遮挡)
  4. 对比学习:增广两个副本 $\to$ 分别转为特征向量 $\mathrm{query,key}\to$ 计算相似度,优化对比损失函数 $-\sum\log\frac{\exp(k_i^Tq_i/\tau)}{\sum\exp(k_j^Tq_i/\tau)}$,$\mathrm{SimCLR}$ 引入解码器
  5. 改进:$\mathrm{MemoryBank}$ 存储定量 $\mathrm{key}$ 降低复杂度、$\mathrm{MoCo}$(用 $q$ 编码器的滑动平均更新 $k$ 编码器)、$\mathrm{SimSiam}$(无负例,单边解码,另一边停止梯度)
  6. 领域自适应:$\mathrm{OOD}$,用 $H\Delta H$ 对称差散度衡量分布差异,如领域对抗神经网络 $\mathrm{DANN}$(用 $\mathrm{GAN}$ 将两领域映射到接近的领域,在接近领域上学习)

三、强化学习

14. 表格式学习(状态、动作都离散)

  1. 算法:$\mathrm{SARSA}\to \mathrm{Q-learning}$(将$\mathrm{A^\prime}$ 替换为最优动作)
  2. 改进:资格迹(每步衰减 $\gamma\lambda$,遇到就 $+1$)

15. 价值函数逼近(状态空间连续)

  1. 核心思想:用以 $w$ 为参数的模型估计 $Q(S,A)$
  2. $\mathrm{TD-error}:\delta=R+\gamma Q(S^\prime,A^\prime)-Q(S,A)$
  3. $w=w-\alpha \nabla w\cdot\delta$(一步梯度下降)
  4. 改进:$\mathrm{Q-learning}$、资格迹(将 $+1$ 替换为 $\nabla w\cdot Q(S,A))$

16. 策略梯度方法(状态、动作都连续)

  1. 核心思想:用一个以 $\theta$ 为参数的模型获得策略
  2. 离散型策略:$\mathrm{Softmax}$,$\pi(a|s,\theta)=\frac{e^{J(s,a)}}{\sum e^{J(s,b)}}$
  3. 连续型策略:$\mathrm{Gaussian}$
  4. 策略梯度定理:$\nabla J(\theta)\propto q(s,a)\nabla \log \pi(a|s,\theta)$
  5. $\mathrm{REINFORCE}$:基于 $\mathrm{Monte Carlo}$ 方法,可引入 $\mathrm{Baseline}$(状态价值函数)减小方差,与价值函数逼近联用
  6. $\mathrm{Actor-Critic}$:基于时序差分方法,可引入资格迹 $\nabla \log \pi(a|s,\theta)$、$\mathrm{Baseline}$
  7. 改进:近端策略优化 $\mathrm{TRPO,PPO}$,防止更新过大导致策略崩溃(用 $\mathrm{KL}$ 散度衡量新旧策略差异)

17. 现代强化学习

  1. $\mathrm{DDPG}$:确定性策略梯度方法,在连续动作空间中更有效
  2. $\mathrm{SAC}$:优化策略的同时最大化策略的熵,鼓励随机探索
  3. 基于模型的强化学习:学习环境模型,用模拟数据与真实数据一起训练策略,如 $\mathrm{Dyna-Q}$

4. 生成式模型

18. 生成对抗网络 $\mathrm{GAN}$

  1. 损失函数:对抗学习,$\displaystyle \min_G\max_D(\log D(x)+\log(1-D(G(z))))$,$D$ 为判别器,$G$ 为生成器($\mathrm{Jensen-Shannon}$ 散度)
  2. 改进:$\log(1-x)$ 好样本梯度爆炸、坏样本梯度消失,改为优化 $\log(D(G(z)))$;换用 $\mathrm{Wasserstein}$ 距离(将 $D$ 改为满足 $\mathrm{1-Lipschitz}$ 的连续函数)
  3. 生成器实现:$\mathrm{DCGAN}$(逆向 $\mathrm{CNN}$,转置卷积)
  4. $\mathrm{Benchmark}$:$\mathrm{InceptionScore}$(可识别性分布与生成多样性分布的 $\mathrm{KL}$ 散度)、$\mathrm{FID}$(生成样本与真实样本的高斯分布差异)
  5. 模式崩溃:使用 $\mathrm{GradientPenalty}$ 或系数矩阵谱归一化限制 $\mathrm{Lipschitz}$ 系数
  6. 条件生成:加入重建误差,对标签数据 $(x_i,y_i)$ 优化 $\displaystyle\min_G\max_D(\log D(x_i,y_i)+\log(1-D(G(x_i,z_i)))+|G(x_i,z_i)-y_i|)$

19. 变分自编码器 $\mathrm{VAE}$

20. 扩散模型 $\mathrm{Diffusion}$


自学笔记(2)
https://sqzr2319.github.io/CSDIY-2/
作者
sqzr2319
发布于
2025年7月1日
许可协议