高斯分布不必赘述,这里记录个有意思的东西,即从高斯分布和贝叶斯理论出发看曲线拟合(即选择参数w)。

    首先假设我们使用多项式拟合曲线,根据泰勒展开的方法,我们可以用有限项多项式在一定精度内拟合任何曲线。

w(或者说计算损失函数)。主要原因为:残差和存在互相抵消问题,残差绝对值之和难于简练表达计算,而最小二乘法使用的残差平方和表达计算方便,并且可以有效控制离群值。

    此外,在吴恩达的《机器学习》课程中,为了防止过拟合,有一个步骤是添加regularization parameter,即


python拟合多元高斯分布 高斯分布拟合曲线_python拟合多元高斯分布

(*)

    其中θ即本文中的多项式系数w,y为本文中的target(也就是目标t),h(x)为本文中的y(x),λ即为regularization parameter,所在一项即为正则(regularization)项。(这个翻译比较不知所云)原理大致为控制多项式项的个数,防止模型过度复杂而造成过拟合。(具体原理需要数学证明,学习之后再补)

    而在本书中,给出了曲线拟合的贝叶斯式的理解:

    假设输入值为x,target为t,我们假定t服从y(x, w)为期望值的高斯分布。即:

python拟合多元高斯分布 高斯分布拟合曲线_曲线拟合_02

    由此我们给出:

python拟合多元高斯分布 高斯分布拟合曲线_曲线拟合_03

(1)

    对于多次试验组成的样本,我们有:

python拟合多元高斯分布 高斯分布拟合曲线_高斯分布_04

(2)

    对该式取自然对数,得到:

python拟合多元高斯分布 高斯分布拟合曲线_最小二乘法_05

(3)

    根据最大似然估计法,我们要做的就是调节w以最大化lnp(t|x, w, β),显然,这个目标恰等价于没有正则项的最小二乘法。

lnp(t|x, w, β),我们还可以得到β(即方差的倒数)的学习值:

  

python拟合多元高斯分布 高斯分布拟合曲线_python拟合多元高斯分布_06

(4)

    这和样本方差的二阶矩估计法是同样的结果。

β的学习值后,我们可以使用这个模型预测target了:

python拟合多元高斯分布 高斯分布拟合曲线_最小二乘法_07

(5)

    现在使用贝叶斯思想重新考虑w的确定:假设w的先验分布也是高斯分布。即:

python拟合多元高斯分布 高斯分布拟合曲线_高斯分布_08

(6)

α称为超参数,即控制参数的参数,可暂不考虑。根据贝叶斯理论,即后验概率正比于先验概率乘以目标值的条件概率:

python拟合多元高斯分布 高斯分布拟合曲线_python拟合多元高斯分布_09

(7)

忽略系数和无关于w的项,我们得到了新的优化(最小化)目标:

python拟合多元高斯分布 高斯分布拟合曲线_python拟合多元高斯分布_10

(8)

λ可以调节,这正是添加正则项后的最小二乘拟合目标(*)。


    对于这种有趣的现象,结合一些常见解释和自己的想法总结一下:

t服从y(x, w)为期望值的高斯分布,也就是t与y的偏离符合高斯分布。概率论中常出现高斯分布这个东西,比如中心极限定理。中心极限定理似乎就是上述偏离现象的一种解释,就是说大量随机误差的和趋于高斯分布。中心极限定理是可以通过特征函数证明的(这又是一个坑)。

    这种处理方法本就和最小二乘法不矛盾,因为最小二乘法使用的是残差平方和,平方形式就意味着正片差、负偏差地位相同,并且偏差越大惩罚越重,也就是说我们越认为它不可能出现,这些都和高斯分布是契合的。

∑wi^2,Matlab记为w.^2很漂亮)的关键。(当然,我们也可以把指数项改为exp(w'w)改为exp((w'w)^2),相应的也可以把正则项改为λ*(w'w)^2,导致的结果是ln(p)会对w更加敏感,但不影响本质)。事实上,由于我们使用有限项多项式去拟合曲线,最小二乘法中,我们是把样本值(观测值)当作了真实值,尽可能用样本值来获取更有效的w,然后为了防止w对偏差的过度捕捉增加正则项;而在贝叶斯理论中,无论是w还是t都是有不确定性的,它把t和w当作同等存在。(以上w, t均为向量,即w, t

    这里就看出贝叶斯理论的一个优点,当试验较少时,根据频率学派的方法,会把误差算入实际概率分布,并且样本越少结果越可能得到荒谬的结果,而贝叶斯方法则始终会给出中肯合理的结果。

    如果完整地使用贝叶斯理论来预测新的条件x下的试验结果t,则并不需要对w进行点估计,而是在表示出后验概率后,利用贝叶斯全概率公式求出t的分布p(t)。

python拟合多元高斯分布 高斯分布拟合曲线_python拟合多元高斯分布_11

p(t|x, w)、p(w|x, t)代入求得:

python拟合多元高斯分布 高斯分布拟合曲线_最小二乘法_12

    这里s^2(x)实际表达式较为复杂,但是可以表示为两项,一项即1/β,也就是t的波动,另一项则是w带来的,这就是贝叶斯处理的结果。