zoukankan      html  css  js  c++  java
  • PRML读书后记(一): 拟合学习

    高斯分布·拟合

    1.1 优美的高斯分布

    中心极限定理[P79]证明均匀分布和二项分布在数据量 $N ightarrow infty$ 时,都会演化近似为高斯分布。

    作为最晚发现的概率分布,可以假设任何不确定的实数服从高斯分布。

    对于回归问题,显然目标值 $t$ ,有 $tsim N(mu ,sigma ^{2})$ 。

    $t$ 服从的高斯分布表达形式很特殊,很有趣,也很奇妙:

    $p(t|x,w,eta)=N(t|y(x,w),eta ^{-1})$      [P140]

    即分布的均值(期望)为参数拟合值,方差为 $eta ^{-1}$。

    撇开概率不谈,拟合值 $y(x,w)$ 和 目标值 $t$ 之间通常是有误差的,来源应该有二:

    I、拟合精度问题,给定一个指定函数,若通过迭代法近似,显然梯度下降为指定函数的参数几乎是不可能的。

    这里不考虑线性回归参数可以用极大似然算出来,扩展到一个非常复杂的神经网络目标函数。

    II、数据质量不佳,比如目标值 $t^{'}$ 被人为标记错了,和正确的值 $t$ 有偏差。

    这时候,就算是100%完美拟合,最多有$ y(x,w)=t' $,显然 $t' eq t$

    那么就假设误差为 $epsilon$ , 统一定义 $t$ 的形式:

    $t=y(x,w)+epsilon  quad where quad epsilon sim N(0,eta ^{-1})$

    假设误差$epsilon$服从一个零均值的高斯分布,并且结合 $t$ 的统一形式,将这个高斯分布嵌入 $t$ 的高斯分布。

    [P29]图1.16很好的描绘了这样表达的优美之处:

    即按照高斯分布的$3sigma$规则,真实的目标值由 $t$ 在最佳拟合值 $y(x,w)$ 附近偏移得到。

    1.2 极大似然估计的病态拟合

    扩展到有N条的数据集 $(X,T)$ 中,通常假设各条数据之间是独立的,根据[P17]的独立性Product Rule:

    $P(X,Y)=P(X)P(Y)$

    则多数据点 $T$ 的高斯分布:  $P(T|X,w,eta )=prod _{i=1}^{N}N(t_{n}|w^{T}phi (x_{n}),eta ^{-1})$

    取对数之后,有:

    $ln \, p(T|X,w,eta )=frac{N}{2}lneta -frac{N}{2}ln(2pi)-eta E_{D}(w) quad where quad E_{D}(w)=frac{1}{2}sum_{i=1}^{N}{\,t_{n}-w^{T}phi (x_{n})\,}^{2}$

    $eta E_{D}(w)$ 中的$eta$没有任何意义的,可以被约去,形成LMS的目标函数$E_{D}(w)$,数学解释是假设目标值t服从高斯分布。

    在对数似然函数上做极大似然估计,若模型是简单的线性回归,则 $W_{ML}$ 可以无须通过迭代法而较为精确的算出:

    $W_{ML}=(Phi^{T} Phi )^{-1}Phi^{T}T$

    这是一个代价昂贵且不是万能的计算:

    I、$(Phi^{T} Phi )$的逆矩阵不一定存在

    II、求逆矩阵的时间复杂度达$O(n^3)$

    而且很容易被误导,只要$Phi$在宣传报道上出现了偏差,那么$W_{ML}$是要负责的,变成对 $Phi$ 的膜拜性过拟合。

    而对于复杂的神经网络而言,无法推导也无必要推导$W_{ML}$的准确形式,只需使用普适的迭代近似方法求解。

    参数·Regularizer

    极大似然估计是个好方法,但直接对$P(t|w)$做极大似然估计却是糟糕透顶。

    $P(t|w)$做极大似然估计无外乎两个步骤:先算$P(t|w,eta)$,再近似$P(w)$。

    这不是一个好主意,因为$P(w)$看起来是$P(t|w,eta)$算出的附带品,没有主动权。

    若要取得主动权,就必须对$P(w|t)$做极大似然估计,根据贝叶斯条件概率分析相关变量:

    $P(w|t)=frac{ P(t|w)P(w)}{P(t)}$

    在优化过程中,分子这样的归一化因子可以忽视,它的作用只是为了将概率归一化到[0,1]范围。

    按照[P30]的写法最能表现出贝叶斯方法的意境,似然分布与参数先验分布构成共轭双生子形式:

    $P(w|t)_{[Posterior]}propto P(t|w)\,_{[Likelihood]} cdot P(w)\,_{[Prior]}$

    按照此方法,经过后验强化的参数W受到两部分影响:

    I、观测数据本身,由似然函数$P(t|w)\,_{[Likelihood]}$

    II、先验知识约束,由注入的$P(w)\,_{[Prior]}$

    由于引入先验知识来干涉W的优化方向,此时做的极大似然估计蜕变为最大后验估计(MAP)。

    2.1 先验知识:高斯分布

    高斯分布应该算是我们认知中,描绘一切连续型数值不确定性的最基本、最硬派的先验知识了。

    甭管你是什么妖魔鬼怪,只要你是连续的,不是离散的,先给你套个高斯分布的罪状。

    当然,钦定高斯分布从数学角度是由原因的,和其优美的数学共轭形式有关。

    [P98]的练习证明了,高斯似然分布 x 高斯先验分布,结果仍然是一个高斯分布。

    (此证明需要熟读第二章关于高斯分布的 150 个公式,需要很好的概率论、线代基础。)

    高斯分布在数学形式上有许多便利,比如下面提到的零均值简化版高斯分布,这为贝叶斯方法招来很多

    恶评,[P23] 是这样解释的:贝叶斯方法广受批判的原因之一,是因为其在选取先验概率分布上,根据的是

    数学形式的便利为基础而不是 先验分布的信度

    贝叶斯方法讲究推导严谨,公式齐全,对于那些奇怪的、无法用数学语言表达原理的、广布自然界的先验知识,

    如Deep Learning思想,自然不会考虑,这也是为什么有人会认为Deep Learning与Bayesian是对着干的。[Quora]

    2.1.1 波动性惩罚:简化高斯分布

    描述服从多元高斯分布的W的基本式如下:

    $P(w)=N(w|m_{0},S_{0})$       [P152]

    $m_{0}$ 为均值向量,$S_{0}$ 为协方差矩阵,下标为0表明这是注入的先验信息,无法修改。

    在获得N个观测数据后,多元后验高斯分布的基本式如下:

    $P(w|T)=N(w|m_{N},S_{N})$    [P153]

    若W的先验分布设置为一般的多元高斯分布,那么$m_{N}$、$S_{N}$的形式会很复杂。

    考虑设置一个特殊的先验高斯分布,它很Simple:

    $N(w|0,alpha^{-1}I)$

    这个高斯分布有两个特殊之处:

    I、均值向量为0,这样就把W分布的中心定位在原点。

    II、协方差矩阵,除了对角线外,全部为0。对角线上,统一由单值$alpha^{-1}$掌管。

    尽管I、II的做法都是从数学形式角度考虑的简化,但是II中对协方差矩阵的处理带来了一个意外收获。

    首先复习一下关于协方差矩阵的特性,它有两个关键点:

    I、非对角线元素$A_{i,j}$,表明不确定元$i$、$j$之间的协方差,即$cov(i,j)$

    与协方差联系最多的就是相关系数,$ ho_{i,j}$

    $ ho_{i,j}=0$表明不确定元$i$$j$不存在线性相关,但仍然保留着线性不相关,这种简化无伤大雅。

    II、对角线元素$A_{i,i}$,正是不确定元$i$自己本身的方差。

    如果$alpha$很大,即$alpha^{-1}$很小,那么不确定元$i$无形之中受到了一种 惩罚

    这种惩罚是从方差上的压制,方差被压制为小值,意味着不确定元$i$的波动性锐减。

    波动性意味着什么?参数W的对数据的拟合的敏感性(Sensitive)。这种简化无形之中形成了这种惩罚。

    简化高斯分布在取负似然对数之后,呈现更加优美的数学形式:

    $-ln\,p(w|T)= frac{eta}{2}sum _{n=1}^{N}{t_{n}-w^{T}phi (x_{n})}^{2}+frac{alpha}{2}W^{T}W+const$    [P153式+取负对数似然]

    在优化最小值时,第一部分在尽力使误差最小化,第二部分则在尽力惩罚参数——使$W^{T}W$最小化,无限朝0逼近。

    第二部分在Regularizer机制中称为:L2 Regularizer,它的作用是减轻由于参数空间过大造成的过拟合(维数灾难型过拟合)

    既可以从高斯分布理解:对拟合不敏感了,不行了,衰了。

    也可以从$W^{T}W$最小化、维数灾难理解:尽管维数保留着,但是各维度的总轴长被控制的很小。

    考虑一个幂函数$x^{D}$,尽管$D$很大, 但是基$x$并不大,最后的函数值也就不会膨胀得很大。

    2.1.2 稀疏性惩罚:L1 Regularizer

    简化高斯共轭分布,意外地为参数W带来一种惩罚活跃度的方法,在负对数似然函数上,即附加部分的$frac{eta }{2}W^{T}W$。

    以参数W的指数形式作为Regularizer的,指数型Regularizer函数可以归纳为:

    $Regularizer(W,Q,eta )=frac{eta }{2}sum _{i=1}^{M}left | w_{i} ight |^{Q}$

    其中,$eta$为系数,决定着Regularizer的强度。$Q$为指数,决定着Regularizer的表达形式。

    当$Q=1$,变成了另一个重要的Regularizer——L1 Regularizer,它使$|W|$最小化,让W呈现稀疏0值。

    稀疏性在Deep Learning中是很重要的思想,[Glorot11]中对于稀疏性,有几个比较有趣的观点:

    I、大脑中有1000亿以上的神经元,但是同时只有1%~4%激活,而且每次激活的区域都不一样。

    这是生物神经中的稀疏性。

    II、稀疏性将原本信息缠绕密集数据给稀疏化,得到稀疏特征表达。比如将实数5,稀疏为一个[1,0,1]向量,

    很容易线性可分了。又比如识别一直鸟,只要把噪声给稀疏掉,保留关键部位,最后就有更好的特征表达。

    这是特征表达上的稀疏性,实际应用有[稀疏编码][深度神经网络],当然还有我们的生物神经网络。

    当然,以上和L1 Regularizer毫无关系,因为它稀疏的姿势错了,要不然还要Deep Learning作甚。

    首先,这个稀疏策略没有Adaptive性,它并不会智能地的发现哪里需要稀疏,哪里不需要稀疏。

    从数学规划问题角度理解,它就是一个多元的约束条件,至于哪个元倒霉到被约束至0,这个没人能确定。

    其次,参数W直接影响着模型拟合能力,对它错误地稀疏0化,会造成严重的欠拟合。

    基于以上两点,不能认为L1与L2类似,就认为L1也能缓解过拟合,实际上它更有可能造成欠拟合。

    2.1.3 L1&L2 Regularizer 图形化理解

    来自[P146]、[P107].CHS.HIT.马春鹏的有趣配图,似乎能解释为什么L1会直接得到0,而L2却是无限接近0。

    2.1.4 更好地发现特征:Adaptive Represention Regularizer

    Hinton组的[Erhan10] 认为Deep Learning的Pre-Training也是一个Regularizer,原因有二:

    其一,预训练后参数W的搜索方向,有更大可能从局部最小值中逃逸。

    其二,预训练后参数W的搜索方向,让似然函数值变大,但是得到了更好的归纳能力(测试错误率变低)。

    第一点是比较神奇的Regularizer效果,即使是身披图灵奖的Bayesian方法,也是无法解释的。

    第二点有点像是L2 Regularizer的效果,但是更大可能是与模型内部存有的Attention机制有关。

    若是固定Pre-Training之后的参数W,那么Pre-Training等效于一个非线性的PCA,预先注入了

    对无标签观测数据的先验知识,即得到了更合理的$P(W)$,这又是Bayesian方法所无法解释的。

    2.1.5 可靠的稀疏性:Adaptive Sparsity Regularizer

    Deep Learning中有两个能够自适应引入稀疏性的方法,[ReLU]&[Dropout]。

    I、[ReLU]对神经元的输出稀疏,而神经元的输出显然是可变的。

    II、[Dropout]是对神经元的输出稀疏,不过方式有点特别,采用随机概率来决定,而不是自适应方法。

    但这并不能表明[Dropout]得不到自适应稀疏,它的自适应恰恰来自于随机本身。

    由于随机性,每次网络结构都不同,这压迫了参数W朝一个稳定方向调整。

    如2.1.2分析,[I]可以认为是发现了稀疏特征,替代L1。[II]可以认为是类似生物神经网络的稀疏激活机制,替代L2。

    这两者并不冲突,所以常规Deep Learning模型中,[I]+[II]是标配手段。

  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/neopenx/p/4820567.html
Copyright © 2011-2022 走看看