Skip to content
BaiRuic's Blog
Go back

贝叶斯神经网络引入

Updated:

本文脉络如下图:

Untitled 60

将先简单介绍贝叶斯定理,然后以线性回归模型为例子,分别讲述极大似然估计、最大后验估计、贝叶斯估计这三种参数估计方法。通过这三种参数估计方法深刻理解频率派和贝叶斯派的区别所在,最后把贝叶斯派的观点应用到普通神经网络中,即形成了贝叶斯神经网络

贝叶斯理论

托马斯·贝叶斯为了解决“逆概率”问题,提出了贝叶斯定理:

$$ \begin{equation*}P(A|B) = \frac{P(B|A)P(A)}{P(B)}\end{equation*} $$

何为正向概率何为逆向概率?

例如,抽奖同桶里面有十个球,其中2个白球8个黑球,然后你随便摸一个球,问摸出是白球的概率,此为正向概率;但如果现在不知道桶里黑白球的比例,然后我有放回的摸N个球,通过观察这N个球然后估计桶里白球黑球的比例,此为逆向该率。

机器学习的问题通常便是一个逆向概率问题:模型的参数是未知的,我们只有N个样本(N个样本即相当于我又放回的摸了N次球),然后通过这N个样本来估计模型的参数。

贝叶斯公式由下图几部分组成:

Untitled 61

综合来看,最开始没有观测到数据的时候,我们依据过往的经验赋予参数一个分布,称之为先验分布,然后当我们有了实际的观测数据之后,我们就对先验分布进行了更新,得到了新的分布,称之为后验分布。

所以贝叶斯理论提供了一个思考问题的固定模式:

先验分布 + 样本信息 → 后验分布

#频率派 贝叶斯派简介

频率派贝叶斯派
参数估计把所要推断的参数\theta看作是一个未知的固定系数,即\theta 虽然是未知的,但它确确实实是存在的一个固定值,它不会改变参数是一个随机值,因为没有观察到,所以它和一个随机数也没什么区别,因此认为参数服从某一个分布
决策结果是由“推断”出的参数直接决定结果是由所有可能的参数所给出的预测结果的期望

总之,频率派把参数看作是一个固定常数,而贝叶斯派认为参数是一个分布。

线性回归

数据表示:

$$ \begin{equation*}\begin{split}D =& {(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)}\ &x_i \in {R}^p \ &y_i \in {R},i=1,2,\dots,N \ \end{split}\end{equation*}
$$

$$ \begin{equation*}X = \begin{pmatrix}x_1^T\ x_2^T\ \vdots\ x_N^T\end{pmatrix}=\begin{bmatrix}x_{11} & x_{12} & \cdots & x_{1p}\ x_{21} & x_{22} & \cdots & x_{2p}\\vdots& & \ddots & \ x_{N1} & x_{N2} & \cdots & x_{Np}\\end{bmatrix}_{Np},Y = \begin{bmatrix} y_1^T\ y_2^T\ \vdots\ y_N^T \end{bmatrix}\end{equation} $$

线性回归模型:

$$ f(x) = w^Tx= x^Tw $$

最小二乘估计

$$ \begin{equation*}\begin{split} &{L}({w}) =\frac{1}{2 N} \sum_{i=1}^{N}\left(y_{i}-{w}^{\mathrm{T}} {x}_{i}\right)^{2}\ &\hat{w}=\underset{w}{\arg \min} {L}(w) \end{split}\end{equation*} $$

L2正则化的最小二乘估计:

$$ \begin{equation*}\begin{split}&J(w) = L(w)+ \lambda w^Tw\ &\hat{w}=\underset{w}{\arg \min} {J}(w) \end{split}\end{equation*} $$

假设我拟合出的曲线如下:

Untitled 62

可以看到,每个样本都有一点偏差,可以称之为样本的噪声。假设噪声 $\epsilon$ 服从高斯分布,即 $\epsilon\sim N(0,\sigma^2)$,则有

$$ \begin{equation*}\begin{split} &y=f(x)+\epsilon\
& \ \ =w^Tx+\epsilon\ &y|_{w,x} \sim N (w^Tx, \sigma^2)\&P(y|{w,x}) = \frac{1}{\sqrt{2\pi}\sigma}exp{-\frac{(y-w^Tx)^2}{2\sigma^2}} \end{split} \end{equation*} $$

极大似然估计

核心思想:参数应该取使得已经发生的事件的概率达到最大

因此就是可以在给定的数据集的情况下,使得该数据集发生的概率最大来求得模型中的参数。那么该数据集发生的概率 该怎么数学表示呢?如下表示

$$ \begin{equation*}\begin{split} L(w) &=P(Y \mid X, w) \ &=\prod_{i=1}^{N} P\left(y_{i} \mid x_{i}, w\right) \end{split}\end{equation*} $$

该形式又称之为似然函数,参数直接取最大化$L(w)$即可:

$$ \hat{w} =\arg \max _{w} L(w) $$

计算如下:

$$ \begin{equation*}\begin{aligned} \ell(w) &=\log P(Y \mid X, w) \&=\log \prod_{i=1}^{n} P\left(y_{i} \mid x_{i}, w\right) \&=\log \prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{1}{2 \sigma}\left(y_{i}-w^{T} x\right)^{2}\right) \&=\log \frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}}+\sum_{i}^{n}\left(-\frac{1}{2 \sigma}\left(y_{i}-w^{T} x\right)^{2}\right)\end{aligned}

\end{equation*} $$

$$ \begin{split} \hat{w} &=\arg \max {w} \ell(w) \ &=\arg \max {w} \log \frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}}+\sum{i}^{n}\left(-\frac{1}{2 \sigma}\left(y{i}-w^{T} x_{i}\right)^{2}\right) \ &=\arg \max {w}-\frac{1}{2 \sigma} \sum{i}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2} \ &=\arg \min {w} \sum{i}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2} \ \end{split} $$

可以看到,最好得到w的优化目标函数同最小二乘得到的目标函数完全一样,因此在线性回归模型中,噪声服从高斯分布的极大似然估计,就是最小二乘估计。

最大后验估计

最大后验估计是直接从待求解的参数出发,用贝叶斯公式来求解:

$$ \begin{equation*} \begin{aligned} P(w \mid Y, X) &=\frac{P(Y, X, w)}{P(Y, X)} \ &=\frac{P(Y \mid X, w) P(X \mid w) P(w)}{P(Y, X)} \ \end{aligned} \end{equation*}

$$

观察公式,分母部分是边缘概率,是与w无关的一个边缘概率值,所以我们可以仅仅把它当作计算后验概率过程中的归一化系数。然后分子中的第二项P(X|w)因为w 和X是无关的,所以也可以忽略掉。最终得到如下形式:

$$ \begin{equation*}\begin{aligned}P(w \mid Y, X) &=\frac{P(Y, X, w)}{P(Y, X)} \&=\frac{P(Y \mid X, w) P(X \mid w) P(w)}{P(Y, X)} \& \propto P(Y \mid X, w) P(w)\end{aligned}\end{equation*} $$

即我们只关注最后的这个正比关系。然后w取最大后验概率的参数,即:

$$ \hat{w}=\arg \max _{w} P(Y \mid X, w) P(w) $$

其中$P(Y|X,w)$为似然函数,$w$为先验概率,这里假设先验概率服从如下高斯分布:

$$ w \sim \mathcal{N}(0, \Sigma) $$

则似然和先验数学表达分别如下:

$$ \begin{equation*}\begin{aligned}P(Y \mid X, w) &=\prod_{i=1}^{n} P\left(y_{i} \mid x_{i}, w\right) \&=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y_{i}-w^{T} x_{i}\right)^{2}}{2 \sigma^{2}}\right) \&=\frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}} \prod_{i=1}^{n} \exp \left(-\frac{\left(y_{i}-w^{T} x_{i}\right)^{2}}{2 \sigma^{2}}\right)\end{aligned}\end{equation*} $$

$$ \begin{equation*}P(w)=\frac{1}{\sqrt{2 \pi}|\Sigma|^{\frac{1}{2}}} \exp \left(-\frac{w^{T} \Sigma^{-1} w}{2}\right)\end{equation*} $$

$w$求解过程如下:

$$ \begin{equation*}\begin{aligned}\hat{w}&=\arg \max {w} P(Y \mid X, w) P(w) \&=\arg \max {w} \log \frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}}+\log \frac{1}{\sqrt{2 \pi}|\Sigma|^{\frac{1}{2}}}-\frac{1}{2 \sigma^{2}} \sum{i=1}^{n}\left(y{i}-w^{T} x_{i}\right)^{2}-\frac{1}{2} w^{T} \Sigma^{-1} w \&=\arg \min {w} \frac{1}{2 \sigma^{2}} \sum{i=1}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2}+\frac{1}{2} w^{T} \Sigma^{-1} w \&=\arg \min {w} \sum{i=1}^{n}\left(y_{i}-w^{T} x_{i}\right)^{2}+w^{T}\left(\sigma^{2} \Sigma^{-1}\right) w\end{aligned}\end{equation*} $$

再来观察这个$w$的目标函数,可以发现第一项依旧和最小二乘的形式是完全一样的,而第二项是和L2正则项类似的,除了系数不一样。事实上,第二项就可以认为是L2正则化项,因为此处的系数完全是我之前自定义的,一个是噪声的高斯分布方差,一个是先验分布的协方差。

所以我们可以说:噪声、先验均服从高斯分布的最大后验分布 就是 带L2正则化的最小二乘估计。

贝叶斯估计(贝叶斯线性回归)

在贝叶斯估计中,我们假设参数w是未知的随机变量,而不是固定的值,这是与最大后验概率的区别所在。所以我们不用$\argmax$或者$\argmin$求解参数值,而是直接求$w$的分布

依旧采用如下贝叶斯公式:

$$ \begin{equation*}\begin{aligned}P(w \mid Y, X) &=\frac{P(Y, X, w)}{P(Y, X)} \&=\frac{P(Y \mid X, w) P(X \mid w) P(w)}{P(Y, X)} \& \propto P(Y \mid X, w) P(w)\end{aligned}\end{equation*} $$

其中p(Y|X,w)和p(w)分别为似然函数和参数的先验,在这里,依旧假设先验w服从如下高斯分布:

$$ w \sim \mathcal{N}(0, \Sigma) $$

则似然和先验表达如下:

$$ \begin{equation*}P(w)=\frac{1}{\sqrt{2 \pi}|\Sigma|^{\frac{1}{2}}} \exp \left(-\frac{w^{T} \Sigma^{-1} w}{2}\right)\end{equation*} $$

$$ \begin{equation*}\begin{aligned}P(Y \mid X, w) &=\prod_{i=1}^{n} P\left(y_{i} \mid x_{i}, w\right) \&=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y_{i}-w^{T} x_{i}\right)^{2}}{2 \sigma^{2}}\right) \&=\frac{1}{(2 \pi)^{\frac{n}{2}} \sigma^{n}} \prod_{i=1}^{n} \exp \left(-\frac{\left(y_{i}-w^{T} x_{i}\right)^{2}}{2 \sigma^{2}}\right)\end{aligned}\end{equation*} $$

先验和似然均服从高斯分布,所以后验也服从高斯分布,这里假设后验服从如下高斯分布:

$$ \begin{equation*}\begin{split}&w \mid Y, X \sim \mathcal{N}\left(\mu_{w}, \Sigma_{w}\right)\&f(w)=\frac{1}{(\sqrt{2 \pi})^{n}|\Sigma_w|^{\frac{1}{2}}} \exp\left({-\frac{\left(x-\mu_{w}\right)^{\mathrm{T}}(\Sigma_w)^{-1}\left(x-\mu_{w}\right)}{2}}\right) \end{split}\end{equation*} $$

所以现在的目的就是根据似然和先验的表达式求解后验分布的两个参数,这里采用配方法求解:

先化解标准高斯分布,如下:

$$ \begin{equation*}\begin{split}f(w)&=\frac{1}{(\sqrt{2 \pi})^{n}|\Sigma_w|^{\frac{1}{2}}} \exp\left({-\frac{\left(x-\mu_{w}\right)^{\mathrm{T}}(\Sigma_w)^{-1}\left(x-\mu_{w}\right)}{2}}\right)\&= \dots \exp \left(\colorbox{#fff2cc}{$-\frac{1}{2} w^{T} \Sigma_{w}^{-1} w$}+\colorbox{#e2f0d9}{$\mu_{w}^{T} \Sigma_{w}^{-1} w$}-\frac{1}{2} u_{w}^{T} \Sigma_{w}^{-1} u_{w} \right)\ \end{split}\end{equation*} $$

(因为底数部分是一个固定的常数值,并不会影响具体的分布,所以在这里只写指数部分)

可见,参数$\Sigma$ 为$w$的二次项系数,$\mu \Sigma$ 为$w$的一次项系数,分别如上公式块黄色青色所指。所以我们只需要找到似然函数和先验的乘积项目中的w的一次项和二次项即可。

化解似然函数和先验乘积,如下:

$$ \begin{equation*}\begin{aligned}P(Y \mid X, w) P(w) &=\dots \exp \left(-\frac{1}{2 \sigma^{2}}(Y-X w)^{T}(Y-X w)\right) \exp \left(-\frac{1}{2} w^{T} \Sigma^{-1} w\right) \&=\dots \exp \left(-\frac{1}{2 \sigma^{2}}(Y-X w)^{T}(Y-X w)-\frac{1}{2} w^{T} \Sigma^{-1} w\right)\&=\dots \exp \left(-\frac{1}{2 \sigma^{2}} w^{T} X^{T} X w+\sigma^{-2} Y^{T} X w-\frac{1}{2} \sigma^{-2} Y^{T} Y-\frac{1}{2} w^{T} \Sigma^{-1} w \right)\ &=\dots \exp \left(\colorbox{#fff2cc}{$-\frac{1}{2} w^{T}\left(\sigma^{-2} X^{T} X+\Sigma^{-1}\right) w$}+\colorbox{#e2f0d9}{$\sigma^{-2} Y^{T} X w$}-\frac{1}{2} \sigma^{-2} Y^{T} Y \right)\\end{aligned}\end{equation*} $$

一次项、二次项,对应关系分别如下:

$$ \begin{equation*}\begin{cases}\Sigma_{w}^{-1}=\sigma^{-2} X^{T} X+\Sigma^{-1}\\mu_{w}^{T} \Sigma_w^{-1}=\sigma^{-2} Y^{T} X \\end{cases}\end{equation*} $$

求解得到w后验分布的均值和协方差矩阵如下:

$$ \begin{equation*}\begin{cases}\Sigma_{w}^{-1}=\sigma^{-2} X^{T} X+\Sigma^{-1}\\mu_{w} =\sigma^{-2} \Sigma_{w} X^{T} Y \end{cases}\end{equation*} $$

至此,后验w的参数已经求解得到了,即已经完成贝叶斯推断部分了。接下来是贝叶斯决策部分。所谓决策,即新给定一个样本输入$x^$,求解该样本的对应的结果$y^$

贝叶斯线性回归模型:

$$ \begin{equation*}\begin{cases}f(x) = w^Tx\y = f(x) + \varepsilon, \varepsilon \sim \mathcal{N}\left(0, \sigma^2\right) \end{cases}\end{equation*} $$

模型参数:

$$ \begin{equation*}\begin{split}w &\sim \mathcal{N}\left(\mu_{w}, \Sigma_{w}\right)\&\Sigma_{w}^{-1}=\sigma^{-2} X^{T} X+\Sigma^{-1}\&\mu_{w} =\sigma^{-2} \Sigma_{w} X^{T} Y\end{split}\end{equation*} $$

因为此处的w不再是一个固定的参数值,而是一个分布,所以 $y=w^Tx$ 也是一个分布:

$$ y^* = f(x^*) = x^{*T}w $$

最终预测的结果,即为$y^*$的期望

$$ \begin{equation*}\begin{aligned}&\&{E}[{y}^] =x^{T} \mu_{w} \&\operatorname{Var}[{y}^] =x^{T} \Sigma_{w} x^\end{aligned}\end{equation} $$

小结

到此,线性回归的三中参数估计方法均已经给出,可以发现,最大后验估计是在极大似然估计的基础上引入先验信息;贝叶斯估计与最大后验估计的区别在于最大后验估计只取使得先验和似然乘积最大的参数w,而贝叶斯估计求得完整的分布,最后再通过求期望来得到预测结果。

举个例子,假设我现在有个问题需要请教班级里面的同学,但是我手上只有成绩单。那我应该请教谁呢?

频率派的做法是去请教最优秀的学生。那么谁最优秀?怎么选择最优秀的呢?

极大似然估计的做法是直接看成绩单,去问成绩最优秀的那个学生,因为极大似然估计认为你既然能考出最好的成绩,那你必然就是最优秀的,选你没错了。

最大后验估计的做法是这样的,我潜意识里面认为性格文静的学生优秀,然后我带着这样的偏见先给在座的学生根据性格打分,越文静的分数越高。然后再去根据成绩单加分,最后选出综合分数最高的那个学生。

在这里,我所带的偏见即为先验信息,成绩单就是样本。我们先抛开加入先验的作用谈一下为什么需要加入先验信息?其实引入先验才是最符合我们认识世界观察世界的方式的。比如你现在新认识一个朋友,那你必然会根据这个朋友的外在给他一个最初的评价,这就是我们所说的第一印象。然后在日后慢慢的接触中,对这个朋友的认识、了解越来越多,就会对他有一个新的评价。这个新的评价即为后验。所以说,引入先验才是符合我们认知的。再来谈一下先验的作用,假设我对这个朋友第一印象的特别好,各方面都是满分。然后认识的第二天他做了一件有让普遍价值观所不能接受的事情,但是这个时候,你对他的评价肯定还是好的,心里还是会为他辩解的。但是如果他之后每天都做一件不能让你的价值观接受的事情,时间长了,你对他的评价肯定也会变差的,这个时候,不管你对他的第一印象怎么样,最后的评价都是很差很差,就是说第一印象对最后的评价的作用微乎其微。所以引入先验的作用如果用机器学习的话语讲就是:当样本少的时候(你们之间认识的时间短,观察的不够多),先验很大程度决定了后验,但是当样本足够多的时候(对他有了足够多的了解),先验对后验的样本就没那么重要了。

贝叶斯派的做法就不是找最优秀的学生了,贝叶斯派也会引入先验,这一点和最大后验的做法类似。贝叶斯派也会先根据同学的性格来打个分数,然后再结合手头的成绩单得到一个综合排名,只不过贝叶斯派不找最优秀的学生了,而是挨个问过班级的每一位学生,然后根据刚刚得到的综合排名给每位学生的答案赋予一个权重值,排名靠前的学生的答案肯定是权重越高。最后选择权中最高的答案。

贝叶斯派的最大优点就是引入了不确定度。比如刚刚的例子,极大似然和最大后验的做法均是只得问了一个学生的答案就把他当作了最后的结果,至于多大程度可信我根本无从得知,所以这样的方法用在无人驾驶、医疗诊断上很难被信服。而贝叶斯的做法最后拿到的结果是一个所有人的且带权重的答案,所以当我选择权重最高的答案时,我也就知道选择该答案的置信度,这就是贝叶斯派最大的优势。当然贝叶斯派的缺陷也很明显,计算过于复杂,计算量过大。

频率派 贝叶斯派总结

贝叶斯神经网络

至此,已经领悟了频率派和贝叶斯派的思想不同之处了,如果把贝叶斯参数估计的方法放到神经网络中,就形成了贝叶斯神经网络。

Untitled 64

Share this post:

Previous Post
贝叶斯神经网络变分近似