向量范数是定义了向量的相似于长度的性质,知足正定,齐次,三角不等式的关系就称做范数。html
通常分为L0、L一、L2与L_infinity范数。vim
1. 监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化偏差。最小化偏差是为了让咱们的模型拟合咱们的训练数据,而规则化参数是防止咱们的模型过度拟合咱们的训练数据。机器学习
2. 由于参数太多,会致使咱们的模型复杂度上升,容易过拟合,也就是咱们的训练偏差会很小。但训练偏差小并非咱们的最终目标,咱们的目标是但愿模型的测试偏差小,也就是能准确的预测新的样本。因此,咱们须要保证模型“简单”的基础上最小化训练偏差,这样获得的参数才具备好的泛化性能(也就是测试偏差也小),而模型“简单”就是经过规则函数来实现的。另外,规则项的使用还能够约束咱们的模型的特性。这样就能够将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具备人想要的特性,例如稀疏、低秩、平滑等等。要知道,有时候人的先验是很是重要的。前人的经验会让你少走不少弯路,这就是为何咱们平时学习最好找个大牛带带的缘由。一句点拨能够为咱们拨开眼前乌云,还咱们一片晴空万里,醍醐灌顶。对机器学习也是同样,若是被咱们人稍微点拨一下,它确定能更快的学习相应的任务。只是因为人和机器的交流目前尚未那么直接的方法,目前这个媒介只能由规则项来担当了。函数
3. 知识点2的主要内容就是阐述了正则化或者是规则项的做用:post
通常来讲,监督学习能够看作最小化下面的目标函数:性能
L(yi,f(xi;w)) :衡量咱们的模型(分类或者回归)对第i个样本的预测值f(xi;w)和真实的标签yi以前的偏差。由于咱们的模型是要拟合咱们的训练样本的嘛,因此咱们要求这一项最小,也就是要求咱们的模型尽可能的拟合咱们的训练数据。学习
:但正如上面说言,咱们不只要保证训练偏差最小,咱们更但愿咱们的模型测试偏差小,因此咱们须要加上第二项,也就是对参数w的规则化函数Ω(w)去约束咱们的模型尽可能的简单。测试
OK,到这里,若是你在机器学习浴血奋战多年,你会发现,哎哟哟,机器学习的大部分带参模型都和这个不但形似,并且神似。是的,其实大部分无非就是变换这两项而已。优化
规则化函数Ω(w)也有不少种选择,通常是模型复杂度的单调递增函数,模型越复杂,规则化值就越大。好比,规则化项能够是模型参数向量的范数。然而,不一样的选择对参数w的约束不一样,取得的效果也不一样,但咱们在论文中常见的都汇集在:零范数、一范数、二范数、迹范数、Frobenius范数和核范数等等。这么多范数,到底它们表达啥意思?具备啥能力?何时才能用?何时须要用呢?今天就让咱们了解一下L0、L一、L2这3个最多见的范数以及他们的做用。编码
OK,来个一句话总结:L1范数和L0范数能够实现稀疏,L1因具备比L0更好的优化求解特性而被普遍应用。
你们对稀疏规则化趋之若鹜的一个关键缘由在于它能实现特征的自动选择。通常来讲,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然能够得到更小的训练偏差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
另外一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的几率是y,而后咱们收集到的数据x是1000维的,也就是咱们须要寻找这1000种因素究竟是怎么影响患上这种病的几率的。假设咱们这个是个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b(固然了,为了让y限定在[0,1]的范围,通常还得加个Logistic函数)。经过学习,若是最后学习到的w*就只有不多的非零元素,例如只有5个非零的wi,那么咱们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但若是1000个wi都非0,医生面对这1000种因素,累觉不爱。
1. L2范数(欧式距离):指向量各元素的平方和而后求平方根。
它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。这用的不少吧,由于它的强大功效是改善机器学习里面一个很是重要的问题:过拟合。至于过拟合是什么,上面也解释了,就是模型训练时候的偏差很小,但在测试的时候偏差很大,也就是咱们的模型复杂到能够拟合到咱们的全部训练样本了,但在实际预测新的样本的时候,糟糕的一塌糊涂。通俗的讲就是应试能力很强,实际应用能力不好。擅长背诵知识,却不懂得灵活利用知识。例以下图所示(来自Ng的course):
上面的图是线性回归,下面的图是Logistic回归,也能够说是分类的状况。从左到右分别是欠拟合(underfitting,也称High-bias)、合适的拟合和过拟合(overfitting,也称High variance)三种状况。能够看到,若是模型复杂(能够拟合任意的复杂函数),它可让咱们的模型拟合全部的数据点,也就是基本上没有偏差。对于回归来讲,就是咱们的函数曲线经过了全部的数据点,如上图右。对分类来讲,就是咱们的函数曲线要把全部的数据点都分类正确,以下图右。这两种状况很明显过拟合了。
2. 为何L2范数能够防止过拟合?
3. L2范数的益处
从学习理论的角度来讲,L2范数能够防止过拟合,提高模型的泛化能力。
从优化或者数值计算的角度来讲,L2范数有助于处理 condition number很差的状况下矩阵求逆很困难的问题。
L2范数如何解救病态矩阵?如何加速病态矩阵的求解?L2范数之解救矩阵病态
4. 来个一句话总结:L2范数不但能够防止过拟合,提高模型的泛化能力,还可让咱们的优化求解变得稳定和快速。
使用机器学习方法解决实际问题时,咱们一般要用L1或L2范数作正则化(regularization),从而限制权值大小,减小过拟合风险。特别是在使用梯度降低来作目标函数优化时,很常见的说法是, L1正则化产生稀疏的权值, L2正则化产平生滑的权值。
这个角度从权值的更新公式来看权值的收敛结果。
首先来看看L1和L2的梯度(导数的反方向):
因此(不失通常性,咱们假定:wi等于不为0的某个正的浮点数,学习速率η 为0.5):
L1的权值更新公式为wi = wi - η * 1 = wi - 0.5 * 1,也就是说权值每次更新都固定减小一个特定的值(好比0.5),那么通过若干次迭代以后,权值就有可能减小到0。
L2的权值更新公式为wi = wi - η * wi = wi - 0.5 * wi,也就是说权值每次都等于上一次的1/2,那么,虽然权值不断变小,可是由于每次都等于上一次的一半,因此很快会收敛到较小的值但不为0。
下面的图很直观的说明了这个变化趋势:
L1能产生等于0的权值,即可以剔除某些特征在模型中的做用(特征选择),即产生稀疏的效果。
L2能够得迅速获得比较小的权值,可是难以收敛到0,因此产生的不是稀疏而是平滑的效果。
这个角度从几何位置关系来看权值的取值状况。
直接来看下面这张图: