大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归
第十五节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回归的更多相关文章
- 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)
大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...
- 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
第十四节过拟合解决手段L1和L2正则 第十三节中, ...
- 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)
第二十六节决策树系列之Cart回归树及其参数(5) 上一节我们讲了不同的决策树对应的计算纯度的计算方法, ...
- 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...
- 大白话5分钟带你走进人工智能-第32节集成学习之最通俗理解XGBoost原理和过程
目录 1.回顾: 1.1 有监督学习中的相关概念 1.2 回归树概念 1.3 树的优点 2.怎么训练模型: 2.1 案例引入 2.2 XGBoost目标函数求解 3.XGBoost中正则项的显式表达 ...
- 大白话5分钟带你走进人工智能-第35节神经网络之sklearn中的MLP实战(3)
本节的话我们开始讲解sklearn里面的实战: 先看下代码: from sklearn.neural_network import MLPClassifier X = [[0, 0], [1, 1]] ...
- 大白话5分钟带你走进人工智能-第36节神经网络之tensorflow的前世今生和DAG原理图解(4)
目录 1.Tensorflow框架简介 2.安装Tensorflow 3.核心概念 4.代码实例和详细解释 5.拓扑图之有向无环图DAG 6.其他深度学习框架详细描述 6.1 Caffe框架: 6.2 ...
- 大白话5分钟带你走进人工智能-第四节最大似然推导mse损失函数(深度解析最小二乘来源)(2)
第四节 最大似然推导mse损失函数(深度解析最小二乘来源)(2) 上一节我们说了极大似然的思想以及似然函数的意义,了解了要使模型最好的参数值就要使似然函数最大,同时损失函数(最小二乘)最小,留下了一 ...
- 大白话5分钟带你走进人工智能-第三节最大似然推导mse损失函数(深度解析最小二乘来源)(1)
第三节最大似然推导mse损失函数(深度解析最小二乘来源) 在第二节中,我们介绍了高斯分布的 ...
随机推荐
- 用js来实现那些数据结构—目录
首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做<学习JavaScript数据结构和算法>(第二版),人民邮电出版社出版的这本书.github ...
- 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)
学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获. chart 安装前的准备 作为准备工作,安装之前需要先清楚 chart 的使用方法.这些信息通常记 ...
- Java学习方向
又过了一段日子了,项目比之前要熟悉很多了,有很多要学的东西要提上日程了. 个人感觉java基础很重要,只有基础扎实了,才能更好的写出代码和提升自己,需要好好的学习,以下是大概需要学习的方向 # jav ...
- Laravel 框架 基础(一)
Laravel 框架 laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化 Eloquent 全局作用域.可选择的认证脚手架.中间件组. ...
- js流程语句
一.跳转语句1.break; 终止整个循环,不再进行判断2.continue; 终止本次循环,接着去判断是否执行下次循环 二.选择(判断)结构1.if 如果 if(条件1) ...
- 读《图解HTTP》有感-(确保WEB安全的HTTPS)
写在前面 该章节分析当前使用的HTTP协议中存在的安全性问题,以及采用HTTPS协议来规避这些可能存在的缺陷 正文 1.HTTP的缺点 1.1.由于HTTP不具备加密功能,所以在通信链路上,报文是以明 ...
- Unity文档阅读 第一章 入门
Before you learn about dependency injection and Unity, you need to understand why you should use the ...
- Using variables inside Postman and Collection Runner
Variables are among the most powerful features in Postman. Using variables in your Postman requests, ...
- mvc上传图片
长时间没有接触mvc,有点生疏了,这次mvc上传图片功能完成后,简单地总结下. 我围绕这三块介绍,首先是前台form表单: <style> #file_name { width: 400p ...
- Java 读书笔记 (六) 引用类型
Java里使用long类型的数据要在数值后面加上L,否则会作为整型解析. 引用类型 引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址, 所指向的内存中保存着变量所表示的一个值或一组值. i ...