Table of contents
贝叶斯解释“L1和L2正则化”,本质上是最大后验估计。如何深入理解贝叶斯公式?
(贝叶斯公式中的概率可以是随机事件的概率,也可以是概率分布wiki)
似然函数 L(θ|X):X发生之后,关于θ的函数。 似然值:参数 θ 发生后,X 发生的概率,即 L(θ|X) = P(X|θ)。
频率派认为训练数据是来自真实分布的采样,似然值(X发生概率)最大的 θ 就是最接近真实的,但并不能说这组参数就是最有可能的分布。 贝叶斯派想直接求参数 θ 的概率,认为真实θ分布发生的概率应该最大。
MLE 在两个地方做了近似:寻找使 X 发生概率最大的 θ 并不等于 θ 发生的概率最大;θ 是一个分布,找到的是它的众数。
MAP 只有一个近似:寻找概率最大的 θ 分布是严谨的,只剩"θ 是一个分布,找到的是它的众数"。
(221216): 概率模型的参数θ出现的概率是概率密度函数,但在概率密度函数上,任一个点(一个θ)的概率是0,因为它对应的面积为0,所以只有谈论"一段区间"出现的概率才有意义,比如θ落在0.2~0.3之间的概率为60%。
MAP 等于 MLE 加上正则化
θ 在训练集 X 上发生的概率 P(θ|X) 可用贝叶斯公式展开:
P(θ|X) = (P(X|θ)/P(X)) ⋅ P(θ)
模型参数 θ 的概率 = X 在参数为 θ 时发生的概率 与 X 在所有可能的 θ 下发生的概率之和 的比值 × θ 的起始概率。 其中 P(X) =∫ P(X|θ)P(θ) dθ 。
P(θ|X) 和 P(θ) 都是 θ 的概率,不过前者是有条件的(是X发生之后的,是更新后的),所以叫做“后验分布”(X是试验,即“试验之后”);后者是在X发生之前,(不看X)心中已有的知识,是先验分布。
P(X|θ) 和 P(X) 都是 X 的概率,不过前者是在参数为 θ 时,X 发生的概率,后者是各种参数得到 X 的概率之和,它们的比值是先验分布 P(θ) 的置信度。
从先验分布P(θ)出发,算出实验结果 X 在参数为 θ 时发生的概率,然后除以 X 在各种θ时发生的概率之和,做为系数,对先验分布做修正。
P(X) 是对所有可能的 θ 做积分(也称边缘概率),比如对于抛硬币实验,就要对正-反概率:从 (正:0, 反:1) 到 (正:1, 反:0) 之间的所有情况,求出X发生的概率再积分(是个常数)。无法直接求,可以用蒙特卡洛方法近似。 不过,想求概率最大时的 θ,并不必求出概率最大是多少。因为 P(X) 与 θ 无关,所以 P(θ|X) ∝ P(X|θ) P(θ),只需求似然度乘以先验分布乘积最大时,对应的 θ 就行。
MLE 认定:θ = arg max_θ P(X|θ);
MAP 认定:θ = arg max_θ (P(X|θ)⋅P(θ))
(MLE和MAP的求解推导 极大似然估计/最大后验估计—通过抛硬币例子理解)
代入神经网络中的符号:
MLE: W = arg max_W P(X,Y|W) ∝ arg max_W log P(X,Y|W),这就是最大似然估计损失函数(“是猫”的概率)
MAP: W = arg max_W P(W|X,Y) ∝ arg max_W (log P(X,Y|W) + log P(W)),损失函数相比 MLE 多了先验分布 P(W)
理论上先验分布可以任意选择,只要使用大量数据迭代无限次后,后验分布的最大概率对应的就是真实θ,但如果数据量有限,不同的先验分布会收敛到不同的θ。
-
如果采用正态分布 wᵢ~N(0,σ²) 作为先验分布 P(W),则其对应 L2 正则化项:λ||𝐖||₂+C:
$$ log P(W) = log ∏_i \frac{1}{σ\sqrt{2π}} e^{-\frac{(w_i-0)²}{2σ²}} = -\frac{1}{2σ²}∑_i w_i² + C $$ -
如果采用拉普拉斯分布 wᵢ~Laplace(0,b) 作为先验分布 P(W),则其对应 L1 正则化项:λ||𝐖||₁+C:
$$ log P(W) = log ∏_i \frac{1}{2b} e^{-\frac{|w_i-0|}{b}} = -\frac{1}{b}∑_i |w_i| + C $$ -
正态分布和拉普拉斯分布都是限定了高维空间中的向量 𝐖 的位置,L2正则化约束了向量模长(坐标平方和再开方)服从正态分布,L1正则化约束了两向量距离(坐标之差)服从拉普拉斯分布
-
如果先验分布 P(W) 是平均分布,概率是常数,与W无关,MAP 就退化成了 MLE
MAP 比 MLE 多了一个先验分布,先验分布就是正则化项。
贝叶斯公式描述的是:用新的实验结果对先验分布做修正,先验分布就是优化的起点,不同的先验分布,对应的优化起点不同.
最大后验估计像是一个损失函数的集合,选择不同的先验分布,相当于选择了不同的损失函数,包括MLE, L1正则化,L2正则化。
MAP 比 MLE 更正确
有一个人,女性,27岁,985硕士毕业,单身,在上海生活,平时喜欢表达,幽默,有些理想主义,关心少数人群,经常在网上发表犀利言论,问这个人更有可能是一个脱口秀演员呢? 还是更有可能是一个女性主义的脱口秀演员?
直觉选择后者,但其实前者概率更大,因为“脱口秀演员”包含的范围更大。
人的直觉运用了最大似然估计,选择“女性主义的脱口秀演员” 更可能出现描述的那些特质。 如果运用最大后验估计,按照概率乘法即可计算出哪个情况概率较大。
给定特征集合 D={女性,27岁,985硕士毕业,…, 发表犀利言论}, 结论集合 T = {t₁=p₁, t₂=p₁^p₂},其中 p₁ 是脱口秀演员,p₂ 是女性主义脱口秀演员
最大似然估计: T = arg max_T P(D|T)
当 T = t₂ 时:P(D|T=t₂) = P(D|p₁^p₂) = P(p₁^p₂|D) P(D) / P(p₁^p₂) = P(p₁,p₂,D)/P(p₁,p₂) = P(p₂|p₁,D) P(D|p₁) P(p₁) / (P(p₁|p₂)P(p₁)) = P(p₂|p₁,D) P(D|p₁) / P(p₁|p₂) = (P(p₂|p₁,D)/P(p₁|p₂)) P(D|T=t₁)
P(D|T=t₂) 与 P(D|T=t₁) 之间相差一个大于1的系数,所以当 T=t₂ 时似然值更大
最大后验估计: T = arg max_T P(T|D)
当 T = t₂ 时:P(T=t₂|D) = P(p₁^p₂|D) = P(D|p₁^p₂) P(p₁^p₂) / P(D) = P(p₁,p₂,D) / P(D) = P(p₂|p₁,D) P(p₁|D) P(D)/ P(D) = P(p₂|p₁,D) P(p₁|D) = P(p₂|p₁,D) P(T=t₁|D)
P(T=t₂|D) 与 P(T=t₁|D) 之间相差一个小于1的系数,所以当 T=t₁ 时后验概率更大
所以用贝叶斯方式思考更理性
用贝叶斯理解概率
概率的两种理解:频率派和贝叶斯派
频率派认为概率是某件事多次发生的频率,抛硬币可以多次重复,但不适合解释神经网络,(多分类)神经网络蕴含的模型与人脑中的模型的差异是损失函数,被看做为一个概率(“是猫的概率”)。这个概率是是softmax 对各类别上的 activation z 做归一化后得到的,是样本之间的差异,不好用频率解释。
贝叶斯公式中用的都是概率密度函数,先验概率 P(θ) 理解成在没有数据可供参考时,对神经网络参数的相信程度,相信程度可以是正态分布;后验概率是已知数据X之后,经过修正的对网络参数的相信程度。θ分布修正后,似然度就发生变化,在配分函数中的占比就变化,从而继续修正分布,当某个分布的似然度在配分函数中占比最大时,它就是最优的 θ 分布,其后验概率最大,它发生的可能性最大,对它的相信程度最高。
分母 P(X) 是边缘概率,也叫配分函数,将其按条件概率展开:
$$ P(θ_i | X) = \frac{P(X|θ_i) P(θ_i)}{∑ P(X|θ) P(θ)} = \frac{P(X|θ_i) P(θ_i)}{\int_θ P(X|θ) P(θ) dθ}
= \frac{P(X|θ_i) P(θ_i)}{P(X|θ_i) P(θ_i) + ∑_{k≠i} P(X|θ_k) P(θₖ) dθ} $$
分子是具体的一个 θ,分母是把所有可能的 θ 全部取一遍并相加,如果 θ 是连续的,就是积分的过程。
置信度是 [0,1] 之间的数,但不好求,似然值用梯度下降求,配分函数用蒙特卡洛方法求
用贝叶斯理解梯度下降
找最优参数的过程拆解成一个序列: P(θ|X) = P(s₁ s₂ s₃ … sₙ|X); 给定数据集 X, 先得到 s₁,下降一次得到 s₂,再得到 s₃,下降n次到达 sₙ
用贝叶斯公式展开:
P(θ|X) = P(s₁ s₂ s₃ … sₙ|X) = P(X|s₁ s₂ s₃ … sₙ) P(s₁ s₂ s₃ … sₙ) / P(X) = P(s₁ s₂ s₃ … sₙ, X)/P(X) = P(sₙ | s₁ s₂ s₃ … sₙ₋₁, X) P(s₁ s₂ s₃ … sₙ₋₁, X)/P(X)
= P(sₙ | s₁ s₂ s₃ … sₙ₋₁, X) P(sₙ₋₁| s₁ s₂ s₃ … sₙ₋₂, X) …. P(s₃|s₁,s₂,X) P(s₂|s₁,X) P(s₁|X) P(X)/P(X)
= P(sₙ | s₁ s₂ s₃ … sₙ₋₁, X) P(sₙ₋₁| s₁ s₂ s₃ … sₙ₋₂, X) …. P(s₃|s₁,s₂,X) P(s₂|s₁,X) P(s₁|X)
从右向左求。
假设中间的每一步并不依赖前面的所有结果,只依赖于它前面一步的结果:
P(θ|X) = P(sₙ | sₙ₋₁, X) P(sₙ₋₁| sₙ₋₂, X) …. P(s₃|s₂,X) P(s₂|s₁,X) P(s₁|X)
要求 P(θ|X) 的最大值,计算量还是太大,不是考虑整体乘积达到最大,只考虑局部每一小节,下一步等于上一步的最大值:
$$s_{i+1} = arg max_{s_{i+1}} P(s_{i+1} | s_i, X)$$从第一项到最后一项依次都取最大,最后的结果不一定是整体最大值,但也能得到一个近似的结果。上式就是最大后验估计, 损失函数是:P(sᵢ₊₁ | sᵢ, X), 则梯度下降为: sᵢ₊₁ = sᵢ + η ⋅ ∇ P(sᵢ₊₁ | sᵢ, X)