标签:相关 重点 解决 过拟合 一个 重要 现在 正方形 sqrt
从效果上来看, 正则化通过, 对ML的算法的任意修改, 达到减少泛化错误, 但不减少训练误差的方式的统称
训练误差
这个就损失函数什么的, 很好理解.
泛化错误
假设 我们知道 预测值 和 真实值 之前的 "误差" , 这就是泛化错误
- 跟训练数据没关系, 就是在用模型预测的时候, 给预测值 "加" 是一个项来修正模型
类似于 给 模型的预测值, 加上了一个 "修正项"
损失函数 = Loss + 正则化项
举个线性回归的栗子
L1: 损失函数 = \(J(\beta) = ||X \beta -y||^2 +||\beta||_1\)
L2: 损失函数 = \(J(\beta) = ||X \beta -y||^2 +||\beta||_2\)
即通过在等式中, 添加正则化项, 来抑制模型中的系数防止过拟合, 正则化的假设是,较小的权重对应更简单的模型.
一般化: 通常是通过范数 来定义正则化项的:
\(J(w) = L(w) + ||w||_p\)
范数 (Norm) 是一种定义向量(矩阵) 大小的方法. (\(矩阵_{mn} \rightarrow R\) 的某映射), 关于定义性质之类的暂时不细整了, 用到再说.
\(||x||_p = (\sum \limits _{i=1} ^n|x_i|^p)^{\frac {1}{p}}\)
是如何其作用的? 又举个L1栗子.
假设参数只有两个 \(w=(w_1, w_2), 且有约束 ||w||_1 = 1\)
只两个元素w1, w2, 是为了在二维下可以画个图表示一波
即: \(|w_1| +| w_2| = 1, 即 w_2 = 1-|w_1|\) , 在2维坐标下,不就是个以(0,0)为中心, 边长为1的正方形旋转45度嘛. 四个顶点分别为(1,0), (0,1), (-1,0), (0,-1)
显然最低点在(0,0), 要到达这个点, 也要是该函数的负梯度, 或者称梯度下降.
\(-\nabla_w \ L_1(w) = sign(w)\) 就是看正负号.
再来举个L2的栗子,条件约束为 \(||w||_2 = 1\)
即 \(w_1^2 + w_2^2 = 1\) 极值也是负梯度方向 可很快找到, 画出来就是一个单位圆,圆心是(0,0), 半径为1
\(-\nabla_w \ L_2(w) = -w\)
在任何一点的负梯度,也是朝向圆心的呀.
总结一波, 对于加了正则化项: \(cost = J(w) + ||w||_p\) 而言, 总体最小, 即每项都要最小, 即向负梯度方向运动. 则 \(J(w)\) , \(||w||_p\) 达到最小, 即 二者的等值线,都朝各自负梯度方向运动, 相当于是原来是一力量, 现在是两个力量. 从数量上来说, 加了 正则项后, 求解出来的 w 变小了(各分量值), 如:
\(y = w_1x_1 + w_2 x_2\)
可以将一些权值缩小到0, 很稀疏
不容易计算, 在零点连续但不可导,需要分段求导
执行隐式变量选择.意味着一些特征对结果影响等于0, 类似于删除特征
对于其提供稀疏的解决方案, 应用于特征很多的场景, 忽略了很多 0 权值的特征, 计算复杂降低, 感觉比PCA还稳,因为它是线性组合, 而非直接干掉.
后来也取名为: Lasso 回归
L1 对异常值有较好的抵抗力
case1: L1 线性回归
\(min \ \sum \limits _{i=1}^n (y_i - \sum_{j=1}^p X_{ij} \beta_j)^2 + \lambda \sum \limits _{j=1}^p |\beta_j|\)
看作两股力量 \(min = A + B\)
L2 对异常值非常敏感
后来取名为 Ridge 回归
case1: L1 线性回归
\(min \ \sum \limits _{i=1}^n (y_i - \sum_{j=1}^p X_{ij} \beta_j)^2 + \lambda \sum \limits _{j=1}^p \beta_j^2\)
会使得参数值比较小, 但不至于像L1, 参数为0.
L1, L2 各有各好处, 如果结合起来用就变成了Elastic Net. 大致类似这样:
\(min \ \sum \limits _{i=1}^n (y_i - \sum_{j=1}^p X_{ij} \beta_j)^2 + \lambda_1 \sum \limits _{j=1}^p |\beta_j|\lambda_2 \sum \limits _{j=1}^p \beta_j^2\)
但这样的话, 计算的复杂度和调参将变成一门艺术, 嗯, 大概就是, 用意念, 艺术性地调参.
其实就分别对应加了 L1, L2, (L1+L2) 的正则函数.
\(Lasso \ \sum \limits _{i=1}^n (y_i - \sum_{j=1}^p X_{ij} \beta_j)^2 + \lambda \sum \limits _{j=1}^p |\beta_j| = ||y-X\beta||^2 + \lambda||\beta||_1\)
\(Ridge \ ||y-X \beta||^2 + \lambda ||\beta||^2\)
此时求解:
\(\beta_{ridge} = (X'X + \lambda I)^{-1} X'y\)
L2 求解出就比不加多个 入 项
X‘ 表示 X 转置 和 ^T 是一样的
如果 \(\lambda\) 特别小, 相当于又回退到了 不加L2
如果 \(\lambda\) 特别大, 总体又要最小, 对 \(||\beta||^2\) 而言, \(\beta\) 要很小, 也就是说, 模型参数没啥用了.
Lasso (L1正则) 能将一些系数设置为0, 执行变量选择, 而 Ridge (L2正则) 只是弱化系数
如果存在少量重要参数而其余影响小时, L1 , 如果先验认为多个同等重要的特征, 用L2比较好.
就结合了 L1, L2
标签:相关 重点 解决 过拟合 一个 重要 现在 正方形 sqrt
原文地址:https://www.cnblogs.com/chenjieyouge/p/11974148.html