2020机器学习线性模型(7)

作者: zidea | 来源:发表于2020-01-26 20:17 被阅读0次
    machine_learning.jpg

    今天是大年初一,先给大家在此拜个年,祝大家新年里身体健康,万事如意!
    我们今天谈谈什么是回归问题,这里回归问题和分类问题区别。回归问题与分类问题本质上都是要建立映射关系。但是回归问题是连续的,而分类问题是离散的。连续即回归,离散即分类。

    岭回归(Ridge Regression)

    我们为什么需要岭回归呢?有时候我们权重\theta取值很大,导致模型很不稳定,这个应该不难理解当权重很大时,特征稍微有点变动,反应在函数值就会很大。正则化或者也可以叫缩减,问什么叫缩减随后演示中大家就会有所体会。
    J(\theta) = \frac{1}{2N} ||\theta^T X - Y||^2 - \frac{1}{2} \alpha ||\theta||^2

    损失函数里增加了权重的平方和,参数\alpha 决定了缩减的幅度,\alpha 值越大缩减幅度越大,权重的值趋近于 0。

    ||\theta||^2 = \theta_1^2 + \theta_2^2 + \dots + \theta_n^2

    在开始之前我们先简单回顾一下上一次内容,我们在岭回归中是在原有损失函数添加正则项来控制参数\theta 大小,目的就是在减少\theta^TX 与 Y 距离同时,控制参数\theta 不能过大。这正则项使用的是\theta 的 L2 范数,如果使用 L1 范数就是 LASSO ,这里 LASSO 出现在 1996 年要远远晚于 1970 年的领回顾。

    那么我们为什么要添加正则项,其实其作用本质就是防止过拟合,随后例子中我们会发现因为 LASSO 正则项的存在,一些高阶参数会几乎为 0,这样 LASSO 也起到了特征选择和降维的作用。

    \theta_j = \theta_{j} - \alpha(\frac{1}{N} \sum_{i=1}^N(h_{\theta}(x^{(i)}) - y^{(i)})x^{(i)}) + \frac{\lambda}{N} \theta_j

    我们看一看对于添加正则项(L2范数)的损失函数进行求导后得到上面式子。然后我们对这个公式进行整理
    \theta_j = (1-\frac{\alpha \lambda}{N})\theta_j - \alpha(\frac{1}{N} \sum_{i=1}^N(h_{\theta}(x^{(i)}) - y^{(i)})x^{(i)}))

    • \alpha(\frac{1}{N} \sum_{i=1}^N(h_{\theta}(x^{(i)}) - y^{(i)})x^{(i)})) 这一部分和之前对于\theta 求导没有任何变化
    • 而我们重点是看新增(1-\frac{\alpha \lambda}{N})\theta_j 对于求导有什么影响,其中 \alpha\theta 都是较小数,而 N 样本个数又是一个较大数这样一来 (1-\frac{\alpha \lambda}{N})\theta_j 就是一个小于 1 而接近 1 的小数,说明每次迭代都会减少 \theta 值,所以叫做缩减

    然后我们看用矩阵形式直接求 \theta 的公式在添加了正则项的公式是
    \theta = (X^TX + \lambda I)^{-1}X^TY

    这里我们需要注意一下因为X^TX 是一个 n+1 维的方阵,所以这里 I 也是一个 n+1 而且要是对角线上第一个元素为 0 而不是 1 的 n+1 矩阵。
    I = \begin{bmatrix} 0 & 0 & 0 & \cdots & 0 \\ 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots &1 \\ \end{bmatrix}

    这样还有好处就是通过 I 后一些非满秩矩阵和奇异矩阵变得可以逆了,所以我们通常最小二乘法都是带有岭回归的最小二乘法。
    ||\theta||_2^2

    LASSO(Least Absolute Shrinking and Selection Operator)
    字面上意思通过绝对值方式减少参数值并且进行特征选择的操作。这里要说一说稀疏矩阵,有时候我们需要假设一些特征的权重为 0 方便我们通过结果来观察这个特征是否有用。

    我们这里举一个房价预测问题,在房价预估问题中,面积和几室几厅是有线性关系的所以几室几厅特征是冗余的。对于高维 \theta = [\theta_0,\theta_1,\dots,\theta_n] 有时候我们自己进行选择特征是一件比较难的事。其实每一个\theta 可以看做特征的权重。因为我们线性模型写出
    h_{\theta}(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \dots + \theta_n x_n
    我们希望减少\theta 个数,我们可以有这样数学模型描述这个问题
    \begin{cases} \min_{\theta} ||\theta||_0 \\ s.t. \, X \theta = Y \end{cases}
    小数组合特征组合,特征少数特征组合。但是甚至不是一个连续的函数,而且不是凸函数,||\theta||_0 是计数来计算特征数作为损失函数一部分控制\theta的个数是一件难的事,我们可以用||\theta||_1来近视

    J(\theta) = \min_{\theta} \frac{1}{2}||X\theta - Y||^2 + \lambda \sum_{i=1}^n|\theta_j|

    lasso_and_rigide.png

    Ridge L2 范数

    w_1w_2 参数构成空间中,在图上的一圈一圈的蓝色线表示不同 w_0w_1 的损失函数(无约束) y 值相等的等高线。浅黄色区域表示约束的形态为 黄色线表示圆表示 w_1^2 + w_2^2 = k 也就是正则项 L2 范数。我们要在函数上找到离 w_1^2 + w_2^2 = k 函数最近的点。也就是如图上w^* 等高线和圆相切的点。

    LASSO L1 范数

    在 L1 范数作为限制条情况下,L1 范数表示菱形,同样我们要找到一个点与等高线相切。在菱形的顶点与等高线相切概率比其他点要大。可以发现菱形顶点处会有一个维度为 0。

    坐标下降法(Coordinate Descent)是一个简单但却高效的非梯度优化算法。与梯度优化算法沿着梯度最速下降的方向寻找函数最小值不同,坐标下降法依次沿着坐标轴的方向最小化目标函数值。

    coordinate_descent.svg.png

    我们现在一个维度\theta_1轴上,找到一个固定点。这个固定点用黄色线表示,然后在黄色线上找到 \theta_2 的极值点。

    屏幕快照 2020-01-25 下午1.50.05.png

    我们现在 x1 轴上先选择一点,然后 x1 点作为基础移动找到 x2 最优点,如下图蓝色线来表示在 x2 轴上基于 x1 固定点的最优解。


    屏幕快照 2020-01-25 下午1.49.57.png

    当 x2 轴上找到最优点后,在依据找到最优的 x2 点作为基础来在此线上找到 x1 最优点这一次找到第二点 x 轴第二条线。

    屏幕快照 2020-01-25 下午1.49.50.png

    这一次依据新找到的x1上最优解作为 x1 的值来在这条直线上移动 x2 值来得到第二条蓝线表示最优解。

    屏幕快照 2020-01-25 下午1.49.33.png

    最后希望大家关注我们微信公众号


    wechat.jpeg

    相关文章

      网友评论

        本文标题:2020机器学习线性模型(7)

        本文链接:https://www.haomeiwen.com/subject/rglrthtx.html