Table of Contents 前言1.贝叶斯法则2.正则化项3.贝叶斯正则化第$I$层贝叶斯框架第$\text{II}$层贝叶斯框架贝叶斯正则化算法步骤参考资料
前言
上一篇:正则化
下一篇:贝叶斯正则化与提前终止法关系
1.贝叶斯法则
贝叶斯法则: P(A|B) = \frac{P(B|A)P(A)}{P(B)}
P(A)称为先验概率(反映在已知B之前对事件A的认知);P(A|B)称为后验概率(反映在已知B之后对事件A的认知);P(B|A)是在事件A发生的条件下,事件B发生的条件概率;P(B)是事件的边缘概率(被用作归一化因子)
贝叶斯法则在于先验概率,如果它很大,那么后验概率也将显著增大
2.正则化项
一个包括网络输入及其对应目标输出的训练样本集:
\left{ p_{1},t_{1} \right},\left{ p_{2},t_{2} \right},\cdots,\left{ p_{n},t_{n} \right}
假设目标输出通过如下方式生成:
t_{q} = g(p_{q}) + \varepsilon_{q} (13.2)
其中,g()为某未知函数,\varepsilon_{q}为一个随机独立分布的零均值噪声源。我们的训练目标是产生一个能够逼近函数g()并且忽略噪声影响的神经网络。
神经网络训练的标准性能指标是该网络在训练集上的误差平方和:
F(x) = E_{D} = \sum_{q = 1}^{Q}{(t_{q} - a_{q})^{T}}(t_{q} - a_{q})
其中,a_{q}表示输入为时网络的输出。E_{D}这里表示训练数据上的误差平方和。
修改式,添加一个包含逼近函数(我们的例子中为神经网络)导数的惩罚项(或说为正则化项),以平滑所得到的函数。在一定条件下,正则化项可以写成网络权值平方和的形式,如:
F(x) = \beta {E_D} + \alpha {E_w} = \beta \sum\limits_{q = 1}^Q {{{({t_q} - {a_q})}^T}({t_q} - {a_q})} + \alpha \sum\limits_{i = 1}^n {x_i^2}
其中,比率\alpha/\beta用于控制网络解的有效复杂度。比率越大,网络响应越平滑。
正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式,如果你将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。
3.贝叶斯正则化
David Mackey将神经网络的训练置于贝叶斯框架中,除了选取正则化参数外,它还对训练过程的很多方面有所帮助。
该贝叶斯分析有两层:
- 对正则化性能指标进行统计学推导,理解参数的意义;
- 第二层:估计参数。
第I层贝叶斯框架
该贝叶斯框架假设神经网络的权值为随机变量。对于给定的数据集,我们选取能够最大化权值的条件概率的权值。贝叶斯法则用于计算如下概率函数:
P(x|D,\alpha,\beta,M) = \frac{P(D|x,\beta,M)P(x|\alpha,M)}{P(D|\alpha,\beta,M)}
其中,x是包含网络所有权值和偏置量;D表示训练数据集;\alpha和\beta是与密度函数P(D|x,\beta,M)和P(x|\alpha,M)相关的参数;M表示所选取的模型——所选定网络的结构(即网络有多少层以及每一层有多少神经元)。
接下来对每一项进行理解:
(1)P(D|x,\beta,M)表示对于给定权值集合x、参数以及网络模型的情况下,训练数据的概率密度。如果假设式(13.2)中的噪声是相对独立的且服从高斯分布,那么有:
P(D|x,\beta,M) = \frac{1}{Z_{D}(\beta)}\exp( - \beta E_{D}) (13.11)
其中 ,\beta = \frac{1}{2\sigma_{\varepsilon}^{2}},\sigma_{\varepsilon}^{2}是\varepsilon_{q}中每个元素的方差,E_{D}是式13.3中定义的误差平方和,Z_{D}(\beta) = (2\pi\sigma_{\varepsilon}^{2})^{N/2} = (\pi/\beta)^{N/2}
其中,N如式12.34一样取值Q \times S^{M}
式13.11也叫做似然函数,它描述了对于特定的网路权值集合,给定数据集出现的可能性。它能最大化似然函数的权值。当似然函数是高斯函数时,相当于最小化误差平方和E_{D}。
(2)该项P(x|\alpha,M)称为先验密度,体系哪里在收集数据前我们对于网络权值的了解。贝叶斯统计使我们能够在先验密度中融合先验知识。例如,如果假设权值是以0为中心的较小值,则可以选择一个零均值的高斯先验密度:
P(x|\alpha,M) = \frac{1}{Z_{W}(\beta)}\exp( - \alpha E_{W})
其中 ,\alpha = \frac{1}{2\sigma_{\omega}^{2}},\sigma_{\omega}^{2}是每个权值的方差,E_{W}是式13.4中定义的误差平方和,Z_{W}(\alpha) = (2\pi\sigma_{\omega}^{2})^{n/2} = (\pi/\alpha)^{n/2}
其中,是如式12.35所定义的网络中的权值的偏置量的数量。
(3)P(D|\alpha,\beta,M) 被称为证据,它是一个归一化项,不是x的函数。
(4)根据之前的所做的高斯假设,可以使用式13.10将后验密度重写为:
{P(x|D,\alpha,\beta,M) = \frac{\frac{1}{Z_{W}(\alpha)}\frac{1}{Z_{D}(\beta)}\exp( - (\beta E_{D} + \alpha E_{W}))}{归一化因子}}{\text{} = \frac{1}{Z_{F}(\alpha,\beta)}\exp( - F(x))}
其中,Z_{F}(\alpha,\beta)是\alpha和\beta的函数,F(x)是在式(13.4)中定义的正则化后的性能指标。为求权值最可能的取值,我们需要最大化P(x|D,\alpha,\beta,M)。这相当于最小化正则化性能指标F(x) = \beta E_{D} + \alpha E_{W}。
该框架为参数提供了𝛼𝛼和𝛽𝛽物理意义:
\alpha和\beta的物理意义:参数与测量误差的方差成反比。因此,如果噪声方差越大,那么值越小,且正则化比率的值越大。这将使得得到的网络权值变小,网络函数变得平滑。为了平衡噪声带来的影响,测量噪声越大,我们越要对网络函数进行平滑。
参数\alpha与网络权值先验分布的方差成反比。如果方差很大,说明方差很大,说明我们对于网络权值的取值很不确定,因此,它们有可能会非常大,那么参数\alpha将会很小,正则化比率也很小。这将允许网络权值变大,网络函数可以具有更多的变化。网络权值先验密度方差越大,网络函数可以有的变化就越多。
第\text{II}层贝叶斯框架
要想使用贝叶斯分析来估计\alpha和\beta,我们需要概率密度P(\alpha,\beta|D,M)。使用贝叶斯法则,重写为:
P(\alpha,\beta|D,M) = \frac{P(D|\alpha,\beta,M)P(\alpha,\beta|M)}{P(D|M)}
注意到此时的似然函数就是式13.10中的归一化因子(证据)。由式13.10可得:
{P(D|\alpha,\beta,M) = \frac{P(D|x,\beta,M)P(x|\alpha,M)}{P(x|D,\alpha,\beta,M)}}\{\text{} = \frac{\left\lbrack \frac{1}{Z_{D}(\beta)}\exp( - \beta E_{D}) \right\rbrack\left\lbrack \frac{1}{Z_{W}(\alpha)}\exp( - \alpha E_{w}) \right\rbrack}{\left\lbrack \frac{1}{Z_{F}(\alpha,\beta)}\exp( - F(x)) \right\rbrack}}\{\text{} = \frac{Z_{F}(\alpha,\beta)}{Z_{D}(\beta)Z_{W}(\alpha)}\frac{\exp( - \beta E_{D} - \alpha E_{w})}{\exp( - F(x))}}\{\text{} = \frac{Z_{F}(\alpha,\beta)}{Z_{D}(\beta)Z_{W}(\alpha)}} (13.17)
对于未知项Z_{F}(\alpha,\beta)可以使用泰勒级数展开来对其估计。
由于目标函数在极小点附近区域具有二次形式,因此我们可以将F(x)在其极小点x^{\text{MP}}(即梯度为零的点)附近以二阶泰勒级数展开。
F(x) \approx F(x^{\text{MP}}) + \frac{1}{2}(x - x^{\text{MP}})^{T}H^{\text{MP}}(x - x^{\text{MP}})
其中, H = \beta\nabla^{2}E_{D} + \alpha\nabla^{2}E_{W}是F(x)的Hessian矩阵,H^{\text{MP}}是Hessian矩阵在x^{\text{MP}}处的估计,将其代入式13.15有:
{P(x|D,\alpha,\beta,M) = \frac{1}{Z_{F}(\alpha,\beta)}\exp( - F(x))}\{\text{}\ \approx \frac{1}{Z_{F}(\alpha,\beta)}\exp\left\lbrack - F(x^{\text{MP}}) + \frac{1}{2}(x - x^{\text{MP}})^{T}H^{\text{MP}}(x - x^{\text{MP}}) \right\rbrack}\{\text{}\ \approx \left\lbrack \frac{1}{Z_{F}(\alpha,\beta)}\exp( - F(x^{\text{MP}})) \right\rbrack\exp\left\lbrack \frac{1}{2}(x - x^{\text{MP}})^{T}H^{\text{MP}}(x - x^{\text{MP}}) \right\rbrack} (13.20)
而高斯密度的标准形式为:
P(x) = \frac{1}{\sqrt{(2\pi)^{n}\left| (H^{\text{MP}})^{- 1} \right|}}\exp\left\lbrack \frac{1}{2}(x - x^{\text{MP}})^{T}H^{\text{MP}}(x - x^{\text{MP}}) \right\rbrack (13.21)
联立式13.20和式13.21,可以求得:
Z_{F}(\alpha,\beta) \approx (2\pi)^{\frac{n}{2}}(\det((H^{\text{MP}})^{- 1}))^{\frac{1}{2}}\exp( - F(x^{\text{MP}}))
将其代入式13.17有
P(D|\alpha,\beta,M) = \frac{Z_{F}(\alpha,\beta)}{(\pi/\beta)^{N/2}(\pi/\alpha)^{n/2}}
对其对数中的每一项求导,并使其导数为0,可以得到\alpha,\beta在极小点的最优值。
\alpha^{\text{MP}} = \frac{\gamma}{2E_{W}(x^{\text{MP}})},\beta^{\text{MP}} = \frac{N - \gamma}{2E_{D}(x^{\text{MP}})}
其中,\gamma = n - 2\alpha^{\text{MP}}tr(H^{\text{MP}})^{- 1}称为有效参数数量,n代表网络全部参数数量。\gamma项衡量了神经网络中多少参数被有效地用于减少误差函数,其取值范围为 (0,n)。
贝叶斯正则化算法步骤
① 初始化\alpha,\beta和权值。随机初始化权值并计算E_{D}及E_{W}。令\gamma = n,使用式13.23计算\alpha,\beta;
② 执行一步Levenberg-Marquardt算法来最小化目标函数F(x) = \beta E_{D} + \alpha E_{W};
③ 计算有效参数数量\gamma = n - 2\alpha^{\text{MP}}tr(H^{\text{MP}})^{- 1},在Levenberg-Marquardt训练算法中使用高斯-牛顿法逼近Hessian矩阵是可行的,H = \nabla^{2}F(x) \approx 2\beta J^{T}J + 2\alpha I_{n},其中,J为训练集上的误差的Jocobian矩阵;
④ 计算正则化参数\alpha = \frac{\gamma}{2E_{W}(x^{\text{MP}})}和\beta = \frac{N - \gamma}{2E_{D}(x^{\text{MP}})}新的估计值;
⑤ 迭代计算步骤①到③直至收敛。
请记住:当每一次重新估计正则化参数时,目标函数都将改变,因此,极小点是一直在变化的。如果在性能曲面上移下下一个极小点,那么正则化参数新的估计值将会更加精确。最终,精度足够高,使得目标函数在后续迭代中不会有明显改变。于是,网络收敛。
参考资料
马丁 T·哈根,章毅(译).神经网络设计.第二版.北京:机械出版社,2017.12