l1范数正则化

ML_6机器学习重要概念补充

老子叫甜甜 提交于 2020-04-05 17:14:40
学习目标 sklearn中的Pipeline 偏差与方差 模型正则化之L1正则、L2正则 一、sklearn中的Pipeline 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。多项式回归是线性回归模型的一种,其回归函数关于回归系数是线性的。其中自变量x和因变量y之间的关系被建模为n次多项式。 如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。 多项式回归的思路是:添加一个特征,即对于X中的每个数据进行平方。 import numpy as np import matplotlib.pyplot as plt x = np.random.uniform(-3, 3, size=100) X = x.reshape(-1, 1) y = 0.5 + x**2 + x + 2 + np.random.normal(0, 1, size=100) plt.scatter(x, y) plt.show() from sklearn.linear_model import LinearRegression lin

转载:正则化

南楼画角 提交于 2020-03-04 00:14:08
原文链接:https://blog.csdn.net/qq_20412595/article/details/81636105 一、Why & What 正则化 我们总会在各种地方遇到正则化这个看起来很难理解的名词,其实它并没有那么高冷,是很好理解的 首先,从使用正则化解决了一个什么问题的角度来看:正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error),其实就是使用训练数据训练的模型在测试集上的表现(或说性能 performance)好不好 如上图,红色这条“想象力”过于丰富上下横跳的曲线就是过拟合情形。结合上图和正则化的英文 Regularizaiton-Regular-Regularize,直译应该是:规则化(加个“化”字变动词,自豪一下中文还是强)。什么是规则?你妈喊你6点前回家吃饭,这就是规则,一个限制。同理,在这里,规则化就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀。正则化,看起来,挺不好理解的,追其根源,还是“正则”这两字在中文中实在没有一个直观的对应,如果能翻译成规则化,更好理解。但我们一定要明白,搞学术,概念名词的准确是十分重要,对于一个重要唯一确定的概念,为它安上一个不会产生歧义的名词是必须的,正则化的名称没毛病,只是从如何理解的角度,要灵活和类比。

正则化可以防止过拟合的原因

北城以北 提交于 2020-02-29 22:33:18
一、 过拟合 首先我们需要明白什么是过拟合,由下图可知,对于(2)图则是出现了非常明显的过拟合。 从图中我们可以发现过拟合的特征,具有非常强的 非线性 特征,几乎让训练误差接近于0。 二、 正则化的思路 对于正则化,我们则是想要降低这种非线性的特征。这是我们的目的,我们来观察一下我们的非线性特征产生的原因——激活函数。 我们选取tanh的函数进行分析,从图中可以看出,非线性特征需要在于当x远大于0的时候,y的结果趋向于正负一而与x的产生非线性关系。 而从图中可以看出,当z(横轴)接近0时,非线性特征并没有特别明显,换句话说,函数更具有线性特征。 因此我们这里采取的方案就是想要z更加接近0,以此削弱非线性特征。 而以上讨论的z则是神经网络中每一层网络通过Z [l] =W [l] A [l] +b [l] 计算得来的。 若是想要Z更加接近于0,由于A是通过计算出来的,我们只可以通过优化W和b让Z更加接近于0。 至此,我们已经发现了我们的目的,即让 W和b更加接近于0。 三、 正则化的实施 我们来看正则化的究竟做了什么? $J=\frac{1}{\mathrm{m}} \sum_{\mathrm{i}}^{m} L\left(\widehat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m}\|w\|^{2}$ 从这个式子里,我们看到,为了让J

正则化方法:L1和L2 regularization、数据集扩增、dropout

情到浓时终转凉″ 提交于 2020-02-29 06:22:44
正则化方法:L1和L2 regularization 本文是 《Neural networks and deep learning》概览 中第三章的一部分,讲机器学习/深度学习算法中常用的正则化方法。(本文会不断补充) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。 为了防止overfitting,可以用的方法有很多,下文就将以此展开。有一个概念需要先说明,在机器学习算法中,我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些

过拟合及解决方法

耗尽温柔 提交于 2020-02-28 03:13:24
转载来源:https://blog.csdn.net/u010899985/article/details/79471909 一.过拟合 在训练数据不够多时,或者over-training时,经常会导致over-fitting(过拟合)。其直观的表现如下图所所示。 在这里插入图片描述 随着训练过程的进行,模型复杂度,在training data上的error渐渐减小。可是在验证集上的error却反而渐渐增大——由于训练出来的网络过拟合了训练集,对训练集以外的数据却不work。 在机器学习算法中,我们经常将原始数据集分为三部分:训练集(training data)、验证集(validation data)、测试集(testing data)。 1.validation data是什么? 它事实上就是用来避免过拟合的。在训练过程中,我们通经常使用它来确定一些超參数(比方,依据validation data上的accuracy来确定early stopping的epoch大小、依据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?由于假设在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing

正则化如何防止过拟合

≯℡__Kan透↙ 提交于 2020-02-27 04:53:17
在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。    为了防止overfitting,可以用的方法有很多,下文就将以此展开。有一个概念需要先说明,在机器学习算法中,我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小、根据validation data确定learning rate等等)。那为啥不直接在testing data上做这些呢?因为如果在testing data做这些,那么随着训练的进行,我们的网络实际上就是在一点一点地overfitting我们的testing data,导致最后得到的testing accuracy没有任何参考意义。因此,training data的作用是计算梯度更新权重,validation

02-04 线性回归

大憨熊 提交于 2020-02-25 21:30:00
文章目录 线性回归 线性回归学习目标 线性回归引入 线性回归详解 线性模型 一元线性回归 一元线性回归的目标函数 均方误差最小化——最小二乘法 多元线性回归 均方误差最小化——最小二乘法 均方误差最小化——牛顿法 均方误差最小化——拟牛顿法 多项式回归 对数线性回归 局部加权线性回归 正则化 L1正则化 L2正则化 弹性网络 线性回归流程 输入 输出 流程 线性回归优缺点 优点 缺点 小结 线性回归   线性回归是比较经典的线性模型,属于监督学习中预测值为连续值的回归问题。   线性回归针对的是一个或多个特征与连续目标变量之间的关系建模,即线性回归分析的主要目标是在连续尺度上预测输出,而非分类标签,即预测值为连续值。 线性回归学习目标 线性模型 一元线性回归和多元线性回归 多项式回归和对数线性回归 线性回归的L1正则化和L2正则化 线性回归流程 线性回归优缺点 线性回归引入   相信我们很多人可能都有去售楼处买房而无奈回家的行为,就算你没去过售楼处,相信你也应该听说过那令人叹而惊止的房价吧?对于高房价你没有想过这房价是怎么算出来的呢?难道就是房地产商拍拍脑门,北京的一概1000万,上海的一概800万,杭州的一概600万吗?看到这相信你应该有动力想要学好机器学习走向人生巅峰了。   其实仔细想想这房价大有来头,首先房价不可能只和地区有关,北京有1000万的房子,又会有800万

常见的距离算法和相似度(相关系数)计算方法

三世轮回 提交于 2020-02-15 15:29:27
背景:数据挖掘/机器学习中的术语较多,而且我的知识有限。之前一直疑惑正则这个概念。所以写了篇博文梳理下 摘要:   1.正则化(Regularization)     1.1 正则化的目的      1.2 结构风险最小化(SRM)理论     1.3 L1范数(lasso),L2范数(ridge),ElasticNet     1.4为什么说L1是稀疏的,L2是平滑的?   2.归一化 (Normalization)     2.1归一化的目的     2.1归一化计算方法       2.2.spark ml中的归一化     2.3 python中skelearn中的归一化 知识总结: 1.正则化(Regularization) 1.1 正则化的目的:我的理解就是平衡训练误差与模型复杂度的一种方式,通过加入正则项来避免过拟合(over-fitting)。(可以引入拟合时候的龙格现象,然后引入正则化及正则化的选取,待添加) 1.2 结构风险最小化(SRM)理论:    经验风险最小化 + 正则化项 = 结构风险最小化   经验风险最小化(ERM),是为了让拟合的误差足够小,即:对训练数据的预测误差很小。但是,我们学习得到的模型,当然是希望对未知数据有很好的预测能力(泛化能力),这样才更有意义。当拟合的误差足够小的时候,可能是模型参数较多,模型比较复杂,此时模型的泛化能力一般

正则化

 ̄綄美尐妖づ 提交于 2020-02-03 01:45:31
文章来源 本文是作者摘抄 且行且安~ 的文章, 当时由于不懂w变化,故留用于以后随时查看,【侵删】 目录 一、Why & What 正则化 1 概念 2、先讨论几个问题: 二、一般正则项 三、深入理解 一、Why & What 正则化 我们总会在各种地方遇到正则化这个看起来很难理解的名词,其实它并没有那么高冷,是很好理解的 首先,从使用正则化解决了一个什么问题的角度来看:正则化是为了防止过拟合, 进而增强泛化能力。用白话文转义,泛化误差(generalization error)= 测试误差(test error),其实就是使用训练数据训练的模型在测试集上的表现(或说性能 performance)好不好 过拟合 如上图,红色这条“想象力”过于丰富上下横跳的曲线就是过拟合情形。结合上图和正则化的英文 Regularizaiton-Regular-Regularize,直译应该是:规则化(加个“化”字变动词,自豪一下中文还是强)。什么是规则?你妈喊你6点前回家吃饭,这就是规则,一个限制。同理,在这里,规则化就是说给需要训练的目标函数加上一些规则(限制),让他们不要自我膨胀。正则化,看起来,挺不好理解的,追其根源,还是“正则”这两字在中文中实在没有一个直观的对应,如果能翻译成规则化,更好理解。但我们一定要明白,搞学术,概念名词的准确是十分重要,对于一个重要唯一确定的概念

L1和L2:损失函数和正则化

a 夏天 提交于 2020-01-29 16:08:52
作为损失函数 L1范数损失函数    L1 范数损失函数 ,也被称之为最小绝对值误差。总的来说,它把目标值$Y_i$与估计值$f(x_i)$的 绝对差值 的总和最小化。 $$S=\sum_{i=1}^n|Y_i-f(x_i)|$$ L2范数损失函数    L2 范数损失函数 ,也被称为最小平方误差,总的来说,它把目标值$Y_i$与估计值$f(x_i)$的 差值的平方和 最小化。 $$S=\sum_{i=1}^n(Y_i-f(x_i))^2$$ L1损失函数 L2损失函数 鲁棒 不是很鲁棒 不稳定性 稳定解 可能多个解 总是一个解    总结一下 :L2范数loss将误差平均化( 如果误差大于1,则误差会放大很多 ),模型的误差会比L1范数来得大,因此模型会对样本更加敏感,这就需要调整模型来最小化误差。如果有个样本是一个异常值,模型就需要调整以适应单个的异常值,这会牺牲许多其他正常的样本,因为这些正常的样本的误差比这单个的异常值的误差小。 作为正则化   我们经常会看见损失函数后面添加一个额外项,一般为 L1-norm , L2-norm ,中文称作 L1正则化 和 L2正则化 ,或者 L1范数 和 L2函数 。   L1正则化和L2正则化可以看做是损失函数的 惩罚项 。所谓『惩罚』是指对损失函数中的某些参数做一些限制。 防止模型过拟合而加在损失函数后面的一项。 L1正规化