zoukankan      html  css  js  c++  java
  • 机器学习笔记(4)-正则化

    机器学习笔记(4)-正则化

    机器学习中的正则化通常是用来解决过拟合问题的。这一节我们来推导并解释一下正则化为什么可以解决这个问题。首先我们现来看一下上一节关于最小二乘法的解析式:

    [W^T=(X^TX)^{-1}X^TY ]

    我们知道一个矩阵乘以它的转置是一个半正定矩阵,当(|X^TX|=0)时,矩阵不可逆,就没有办法得到它的解析解。而出现这个情况是因为矩阵的秩小于矩阵的阶数,代入到现实例子中,就是我的数据样本少于我的数据的维度,当这种情况出现时,也就容易出现过拟合现象。

    那根据这个原理,我们的解决方法也很明显:

    1. 增加数据样本
    2. 降低数据的特征:特征提取/特征选择
    3. 正则化

    一般在业务中,数据非常珍贵,不是想增加就能增加的。而降低数据的特征,也就是降低数据的维度,去掉不重要的特征,或者把特征映射到另一空间,提取更有效的特征(如PCA等),这一节我们主要介绍下正则化中的L2正则化。

    正则化模型

    正则化模型中,我们一般是在损失函数中增加一个和模型参数相关的惩罚项,如下:

    [hat{W}=underset{w}{argmin}(L(W)+lambda P(W)) ]

    其中(L(W))代表损失函数,(P(W))代表关于参数的惩罚项,(lambda>0)是超参数,控制惩罚项的惩罚力度。

    从直观上也可以这么解释,比如在梯度下降的学习过程中,每个参数都根据不同的不同的梯度学习,学习的速率各不相同,非常有可能出现某些参数在训练过程中导致权重很大,这就会使得虽然模型中有很多参数,但是真正影响模型预测结果的参数只有权重高的那几个。根据模型定义我们需要对右边的损失函数取最小值,在学习过程中也会限制参数取到较大的值,如果(lambda)越大,很明显惩罚力度也就越高。

    而当我们采用解析解去求时,引入正则项可以使(X^TX)由半正定矩阵变为正定矩阵,从而可逆。

    一般讲到正则化时,会有L1和L2范式两种,L1又被称为Lasso,L2被称为Ridge,中文叫做岭回归。

    1. L1(Lasso):(P(W)=left | W ight |_{1})
    2. L2(Ridge 岭回归):(P(W)=left | W ight |_{2}^2=W^TW)

    从频率派观察

    我们结合上一节最小二乘法估计的结果,得到损失函数如下:

    [egin{aligned} J(W)&=underset{w}{argmin}(L(W)+lambda P(W))\ &=underset{w}{argmin}sum_{i=1}^{n}left | W^Tx_{i}-y_{i} ight |^2+lambda left | W ight |_{2}^2\ &=underset{w}{argmin};W^TX^TW^TX-2W^TX^TY+Y^TY+lambda W^TW\ &=underset{w}{argmin};W^TX^TW^TX-2W^TX^TY+Y^TY+lambda W^TW end{aligned} ]

    接下来我们求偏导得到:

    [egin{aligned} &frac{partial J(W)}{partial w}=2X^TXW^T-2X^TY+2lambda W^T=0\ &(X^TX+lambda I)W^T=X^TY\ &W^T=(X^TX+lambda I)^{-1}X^TY end{aligned} ]

    可以看到当我们加入L2正则化后,原来的解析式中变为(X^TX+lambda I),而一个半正定矩阵加上一个单位矩阵乘以大于0的系数,成为了一个正定矩阵,必然可逆。

    从贝叶斯派观察

    为了计算方便,我们假设有个噪声是服从正太分布的,即(epsilon sim N(0,sigma^2)),这样在每一个样本上我们加上这个噪声,则可以得到:

    1. 假设存在噪声服从正态分布:(epsilon sim N(0,sigma^2))
    2. 每个数据点添加噪声:(Y=W^TX+epsilon)
    3. 于是得到Y的分布:(y_{i}sim N(W^TX,sigma^2))
    4. 进一步得到:(P(Y|X;W)=frac{1}{sqrt{2pi }sigma}exp(-frac{(y_{i}-W^TX)^2}{2sigma^2}))
    5. 假设先验概率(P(W))服从正太分布:(w_{i}sim N(0,sigma_{0}^2))
    6. 进一步得到:(P(W)=frac{1}{sqrt{2pi }sigma_{0}}exp(-frac{left | W ight |^2}{2sigma_{0}^2}))
    7. 后验概率公式:(P(W|Y)=frac{P(Y|W)P(W)}{P(Y)})

    于是我们根据最大后验概率估计得到:

    [egin{aligned} hat{W}_{MAP}&=underset{w}{argmin}P(W|Y)\ &=underset{w}{argmax}P(Y|W)P(W)\ &=underset{w}{argmax}sum_{i=1}^{n}log(frac{1}{sqrt{2pi }sigma}exp(-frac{(y_{i}-W^TX)^2}{2sigma^2})cdot frac{1}{sqrt{2pi }sigma_{0}}exp(-frac{left | W ight |^2}{2sigma_{0}^2}))\ &=underset{w}{argmax}sum_{i=1}^{n}(-2pi -sigma-sigma_{0}-frac{(y_{i}-W^TX)^2}{2sigma^2}-frac{left | W ight |^2}{2sigma_{0}^2})\ &=underset{w}{argmin}sum_{i=1}^{n}((y_{i}-W^TX)^2+frac{sigma^2}{sigma_{0}^2}left | W ight |^2) end{aligned} ]

    到这里我们发现:左半部分就是最小二乘法的损失函数,右半部分当(lambda=frac{sigma^2}{sigma_{0}^2})时,和之前的推到结果完全一致。

    也就是说正则化的最小二乘法(LSE)等价于噪声(epsilon sim N(0,sigma^2)),并且先验概率分布(w_{i}sim N(0,sigma_{0}^2))的MAP。

  • 相关阅读:
    R语言:常用统计检验
    用R语言的quantreg包进行分位数回归
    使用adagio包解决背包问题
    手机上的微型传感器
    JS常用字符串、数组的方法(备查)
    Threejs 纹理贴图2--凹凸贴图、法线贴图
    Three.js 纹理贴图1--旋转的地球
    Three.js 帧动画
    Three.js光源、相机知识梳理
    Three.js 点、线、网络模型及材质知识梳理
  • 原文地址:https://www.cnblogs.com/Epir/p/13123498.html
Copyright © 2011-2022 走看看