第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归

上一节中我们讲解了L1和L2正则的概念,知道了L1和L2都会使不重要的维度权重下降得多,重要的维度权重下降得少,引入L1正则会使不重要的w趋于0(达到稀疏编码的目的),引入L2正则会使w的绝对值普遍变小(达到权值衰减的目的)。本节的话我们从几何角度再讲解下L1和L2正则的区别。

L1正则是什么?|W1|+|W2|,假如|W1|+|W2|=1,也就是w1和w2的绝对值之和为1 。让你画|W1|+|W2|=1的图形,刚好是下图中方形的线。

仔细思考一下,用一个分类函数去讨论,比如第二象限,W1小于零,W2大于零,此时这个绝对值就等于W2-W1=1,在第一象限里面,它俩都大于零,就把绝对值脱掉,变成W1+W2=1,所以,这是一个分类讨论的例子。所以根据4个象限的取值不同,画出图中所示的L1正则项等高线的图。

L2正则是什么?,画出其图形刚好是个圆形。

无论是L1正则还是L2正则,最后的最优解一定是出现在损失函数和正则等高线的焦点上。为什么呢,我们反推一下,如果不在焦点,假如说这是一个二维空间,这个例子里面有两个W,假如不加正则,能够使损失函数达到最小值的点也就是目标函数最优解的地方,如果加上了L1正则或者L2正则,原来只使损失函数达到最小值的地方,还能使目标函数达到最小值吗? 肯定不能,那么最优解得点它在哪?

假设新的最优点在下图位置:

因为圆圈是L2正则的等高线,所以L2没变小,谁变大了,损失项是不是变大了?因为损失函数等高线越往外值越大,所以上图中这个假设的最优点的损失项,肯定比焦点上的损失项要大。

假设新的最优点在下图位置:

虽然损失项没变大,但是这个正则项是不是变大了?所以最优解一定会出现在它们的相切的位置,也就是焦点的位置。

又因为L1正则的等高线图形是这种方形的,所以最优解更容易出现在轴上。

此时W1=0,W2=1。这个图在很多书里面都出现过。但是特别讨厌的就是没有一本书给你解释这个图是怎么个意思?实际上方形和圆形是L1,L2正则的等高线。 而这些彩色的圆圈是loss的等高线,它想解释的是为什么L1正则更容易导致某些W变为零,本质上是因为它在空间里面形成的等高线是尖的,在轴上它会扎到loss的等高线上,而这个圆乎乎的东西L2正则的等高线它不会扎。所以L2正则你再怎么加,再不重要的特征,也不会让它到零。这个是由它的几何特性决定的,L2它就是一个圆乎乎的东西,L1是一个很尖锐的东西。

接下来我们讨论下Ridge回归与Lasso回归,  Ridge回归(岭回归)的公式如下:

                                                                         

你发现它就是一个线性回归,加了一个L2正则。再来看下 Lasso回归,它就是一个线性回归,加了一个L1正则。

α是什么?α是取决于你有多重视正则项,也就是多重视模型简单程度的,值越大,说明我越想得到简单的模型。假如你把α调成了很大比如100,就证明我只想要一个简单的模型,模型错的多离谱,我并不在乎。假如我们调成了一个0.01,可能简单性我不是那么重视,也重视。但是模型一定得相对做好。所以α一般会调到多大?是大于1还是小于1的?一定是小于1的。默认α通常会0.1,0.01,也可以是0.001

我们再看下面关于α的变化与W的对应变化的图:

这十条线代表10个W,当这个α调到10的-10次方的时候,几乎你可以认为它压根就没加L2正则。这会L2正则影响极小的时候,你发现此时模型训练出来的W都是一个特别大的权重的模型(200,150,-100等),因为它只追求了损失函数一定要最低。但你看随着把α的权重越调越大的话,这些线都迅速地被收起来了。仅仅将α调到0.01的时候,此时W就变得很小了,你可以想象α的系数才0.01,因此也不会对错误率影响很大。当然这个例子一定是一个特殊情况,现实情况可能不会那么完美,它不一定会有这么大作用。但是你可以看到哪怕你α只设了一点点,就比不设强很多,它就能大幅度的简化掉你模型原来没有用的大权重,与此同时又没带来太高的错误率,没带来太高的损失,所以通常都会加L2正则。。

Ridge回归(岭回归)和Lasso回归两种方式的结合,叫Elastic Net,也就是对损失函数同时增加L1和L2正则。公式如下:

                                          

  α是超参数,  ρ是一个新的超参数,它是一个0到1之间的数,当ρ值为0的时候, L1正则就被干掉了。当ρ值为1的时候,L2正则被干掉了,当ρ值为0.5或0.6,0.7的时候,就变成了一个两种正则的混合形式,它兼备了L1跟L2两项特点。那么底下这张图解释下Elastic Net与Lasso回归的对比:

实线为什么是岭回归,因为随着α增大,w归到0上去了。所以加的是L1正则,L1正则会使W为0,因L2正则它都不着急归为零,但都会使w通通变小,所以你加了L1正则的时候w迅速的缩到0了。Elastic Net它也能让这个w缩进去,但它缩的比原来晚了一些。比如原来这个蓝线Lasso回归很快使w变为0,很快缩到0,而Elastic Net相对很慢才使w变为0,缩的较慢。实际上它的应用不是特别多,为什么不是特别多?因为超参数不好调,你永远找不到一个最合适的ρ,来平衡他们的关系,并且还能说明白了为什么你要选这个ρ。如果你说那我就成败论英雄,我就试哪个ρ对训练集最好,我就选哪个ρ,这本身是不是就是一种过拟合,就相当于你去迎合你的训练集的概念上去了。

大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归的更多相关文章

  1. 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)

              大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out  of  bag  data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...

  2. 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则

                                                                               第十四节过拟合解决手段L1和L2正则 第十三节中, ...

  3. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)

                                                    第二十六节决策树系列之Cart回归树及其参数(5) 上一节我们讲了不同的决策树对应的计算纯度的计算方法, ...

  4. 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)

                                                        大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...

  5. 大白话5分钟带你走进人工智能-第32节集成学习之最通俗理解XGBoost原理和过程

    目录 1.回顾: 1.1 有监督学习中的相关概念 1.2  回归树概念 1.3 树的优点 2.怎么训练模型: 2.1 案例引入 2.2 XGBoost目标函数求解 3.XGBoost中正则项的显式表达 ...

  6. 大白话5分钟带你走进人工智能-第35节神经网络之sklearn中的MLP实战(3)

    本节的话我们开始讲解sklearn里面的实战: 先看下代码: from sklearn.neural_network import MLPClassifier X = [[0, 0], [1, 1]] ...

  7. 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)

    目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...

  8. 大白话5分钟带你走进人工智能-第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2)

    第四节  最大似然推导mse损失函数(深度解析最小二乘来源)(2) 上一节我们说了极大似然的思想以及似然函数的意义,了解了要使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小,留下了一 ...

  9. 大白话5分钟带你走进人工智能-第三节最大似然推导mse损失函数(深度解析最小二乘来源)(1)

                                                    第三节最大似然推导mse损失函数(深度解析最小二乘来源)        在第二节中,我们介绍了高斯分布的 ...

随机推荐

  1. 用js来实现那些数据结构—目录

    首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做<学习JavaScript数据结构和算法>(第二版),人民邮电出版社出版的这本书.github ...

  2. 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)

    学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获. chart 安装前的准备 作为准备工作,安装之前需要先清楚 chart 的使用方法.这些信息通常记 ...

  3. Java学习方向

    又过了一段日子了,项目比之前要熟悉很多了,有很多要学的东西要提上日程了. 个人感觉java基础很重要,只有基础扎实了,才能更好的写出代码和提升自己,需要好好的学习,以下是大概需要学习的方向 # jav ...

  4. Laravel 框架 基础(一)

    Laravel 框架 laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化 Eloquent 全局作用域.可选择的认证脚手架.中间件组. ...

  5. js流程语句

    一.跳转语句1.break; 终止整个循环,不再进行判断2.continue; 终止本次循环,接着去判断是否执行下次循环 二.选择(判断)结构1.if 如果               if(条件1) ...

  6. 读《图解HTTP》有感-(确保WEB安全的HTTPS)

    写在前面 该章节分析当前使用的HTTP协议中存在的安全性问题,以及采用HTTPS协议来规避这些可能存在的缺陷 正文 1.HTTP的缺点 1.1.由于HTTP不具备加密功能,所以在通信链路上,报文是以明 ...

  7. Unity文档阅读 第一章 入门

    Before you learn about dependency injection and Unity, you need to understand why you should use the ...

  8. Using variables inside Postman and Collection Runner

    Variables are among the most powerful features in Postman. Using variables in your Postman requests, ...

  9. mvc上传图片

    长时间没有接触mvc,有点生疏了,这次mvc上传图片功能完成后,简单地总结下. 我围绕这三块介绍,首先是前台form表单: <style> #file_name { width: 400p ...

  10. Java 读书笔记 (六) 引用类型

    Java里使用long类型的数据要在数值后面加上L,否则会作为整型解析. 引用类型 引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址, 所指向的内存中保存着变量所表示的一个值或一组值. i ...