AI 文章阅读
follow 周舒畅的知乎文章,包含AI辅助创作
自由能理论
Free Energy Principle, FEP
任何自组织系统为了维持其存在,都必须通过行动和感知来最小化其变分自由能,从而间接最小化与环境之间的“惊奇”(Surprise)
变分自由能=复杂度-准确度
最小化自由能的过程,就是在保持自身简洁的和精确解释数据间寻找最佳平衡
Adam优化器
Adaptive Moment Estimation,自适应矩估计
Adam的核心思想是动量法和自适应学习率,通过计算梯度的均值和方差,自适应调整学习率
自然梯度
梯度下降是指在参数空间中寻找梯度下降最快的方向。但对于神经网络,参数的微小变化可能会导致模型输出分布的巨大变化,参数空间的距离不等同于模型表达的概率分布空间中的距离
自然梯度的核心思想,就是在模型表达的概率分布空间中做最速下降。我们使用KL散度来描述概率分布空间间的距离
由参数$\theta$定义的概率分布 $p(x|\theta)$,找到一个参数更新方向 $d$,使得在新参数 $\theta+d$ 下,新概率分布和原概率分布的KL散度最小化
经过推导,自然梯度的方向与费雪信息矩阵(Fisher Information Matrix, FIM)有关
KL散度
KL散度是用于衡量两个概率分布之间差异的度量,含义为用一个概率分布$Q$来近似另一个概率分布$P$时的信息损失,实现了量化两个分布之间的差异
对于离散概率部分
$$
D_{\text{KL}}(P || Q) = \sum_{x} P(x) \log \left( \frac{P(x)}{Q(x)} \right)
$$
对于连续概率分布
$$
D_{\text{KL}}(P || Q) = \int P(x) \log \left( \frac{P(x)}{Q(x)} \right) dx
$$
KL散度是非对称的,$D_{\text{KL}}(P || Q) \neq D_{\text{KL}}(Q || P)$
KL散度是非负的
从信息论的角度,KL散度是指用$Q$的编码方式来编码$P$时,需要的额外编码长度
KL散度不满足三角不等式,不是一个严格的距离
度量
度量:距离
度量空间:描述集合内元素间距离的结构
性质:
- 对称性(点A到点B到距离和点B到点A刀距离相同)
- 三角不等式(两边之和大于第三边)
- 同一性(当且仅当两点重合,两点间距离为0)
- 非负性(两点间距离不能为负数)
对角近似
如果一个模型参数为N,那么完整的FIM是一个NxN矩阵,对其求逆的复杂度为$O(N^3)$,对于参数量巨大的神经网络,这是不可接受的
Adam使用的是一个对角化的FIM矩阵,最终的计算复杂度是$O(N)$
稀疏自编码器 SAE
和人脑一样,对于任何特定输入,神经网络中只有一小部分神经元会活跃,这种“稀疏激活”的特性,是生物智能高效和鲁棒的关键
一个普通的自编码器,会学到整体的压缩方式。而一个稀疏自编码器,会被迫去发现一些更基础、更独立的视觉“字母表”,倾向于用少量专业神经元来解释输入,是一种更加高效的编码方式
SAE的Loss由重建损失和稀疏性惩罚构成
重建损失往往使用MSE
稀疏性惩罚的实现方法有:
- L1正则化
- KL散度
MSE
均方误差,一种常见Loss函数,用于衡量预测值和真实值之间的差异
$$
\text{MSE} = \frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2
$$
L1正则化
通过限制模型参数(权重)的绝对值之和,促使部分参数趋向于零,从而实现模型的稀疏性(sparse model),即减少不重要的特征对模型的贡献
想要参数的绝对值之和尽可能小,那么参数就会尽可能为0
$$
\text{Loss} = L(\theta) + \lambda \sum_{i} |\theta_i|
$$
-
$\theta $:模型参数(权重)。
-
$\sum_{i} |\theta_i|$:所有参数绝对值的和,称为L1范数。
-
$\lambda$:正则化强度的超参数,控制正则化的影响程度。较大的$\lambda$会更强烈地惩罚大的权重值。
KL散度
SAE使用KL散度,目的是增加隐藏层激活的稀疏性,不要求每次输入的激活都稀疏,而是要求在整个训练数据集上,每个隐藏神经元的平均激活度维持在一个很低的水平
VAE也是用了KL散度,但是作用是衡量潜在变量的分布和先验分布(标准正态分布)间的差异,使得潜在空间分布更加规则、连续,更接近标准正态分布
专家混合模型
Mixture of Experts, MoE
MoE模型中有很多并行的专家(前馈神经网络)和一个路由器(gating network),对于每个输入,路由器会决定这个输入使用哪些专家来处理
MoE的思想和SAE有很多相似之处,都是条件计算和稀疏激活,一个是网络级别的稀疏激活,一个是神经元级别的稀疏激活
Top-K 稀疏
在每次前向传播中,我们只保留激活度最高的K个神经元,其他的强制设为0
PPO 和 GAE
PPO:近端策略优化
GAE:广义优势估计