正则化&&逻辑回归

正则化:简单性

查看如下泛化曲线,该曲线显示的是训练集和验证集相对于训练迭代次数的损失。算法

clipboard.png
上图显示的是某个模型的训练损失逐渐减小,但验证损失最终增长。换言之,该泛化曲线显示该模型与训练集中的数据过拟合。根据奥卡姆剃刀定律,或许咱们能够经过下降复杂模型的复杂度来防止过拟合,这种原则称为正则化机器学习

通常来讲,监督学习能够看作最小化下面的目标函数.其中,第一项L(yi,f(xi;w)) 衡量咱们的模型(分类或者回归)对第i个样本的预测值f(xi;w)和真实的标签yi以前的偏差.第二项,也就是对参数w的规则化函数Ω(w)去约束咱们的模型尽可能的简单函数

clipboard.png

咱们不只要保证训练偏差最小,咱们更但愿咱们的模型测试偏差小,因此咱们须要加上第二项,也就是对参数w的规则化函数Ω(w)去约束咱们的模型尽可能的简单,机器学习的大部分带参模型都和这个不但形似,并且神似。是的,其实大部分无非就是变换这两项而已。对于第一项Loss函数,若是是Square loss,那就是最小二乘了;若是是Hinge Loss,那就是著名的SVM了;若是是exp-Loss,那就是牛逼的 Boosting了;若是是log-Loss,那就是Logistic Regression了;还有等等。不一样的loss函数,具备不一样的拟合特性,这个也得就具体问题具体分析的性能

在这以前,咱们都是以最小化损失(经验风险最小化)为目标:
clipboard.png学习

但训练损失小并非咱们的最终目标,咱们的目标是但愿模型的测试损失小,也就是能准确的预测新的样本。因此,咱们须要保证模型“简单”的基础上最小化训练偏差,这样获得的参数才具备好的泛化性能。如今是以最小化损失和复杂度为目标,这称为结构风险最小化测试

clipboard.png

如今,咱们的训练优化算法是一个由两项内容组成的函数:一个是损失项,用于衡量模型与数据的拟合度,另外一个是正则化项,用于衡量模型复杂度。优化

详细理解正则化
L1范数和L0范数能够实现稀疏,L1因具备比L0更好的优化求解特性而被普遍应用。L1会趋向于产生少许的特征,而其余的特征都是0,而L2会选择更多的特征,这些特征都会接近于0spa

这里,只考虑 L2 正则化公式来量化复杂度,该公式将正则化项定义为全部特征权重的平方和:.net

clipboard.png

在这个公式中,接近于 0 的权重对模型复杂度几乎没有影响,而离群值权重则可能会产生巨大的影响。
例如,某个线性模型具备如下权重:{w1 = 0.2, w2 = 0.5, w3 = 5, w4 = 1, w5 = 0.25, w6 = 0.75}3d

L2 正则化项为各权重平方和: 26.915

可是 w3的平方值为 25,几乎贡献了所有的复杂度。全部 5 个其余权重的平方和对 L2 正则化项的贡献仅为 1.915。因此咱们让L2范数的规则项||W||2最小,可使得W的每一个元素都很小,都接近于0。,但与L1范数不一样,它不会让它等于0,而是接近于0,这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为何越小的参数说明模型越简单?我也不懂,个人理解是:限制了参数很小,实际上就限制了多项式某些份量的影响很小(看上面线性回归的模型的那个拟合的图),这样就至关于减小参数个数。这里也一句话总结下:经过L2范数,咱们能够实现了对模型空间的限制,从而在必定程度上避免了过拟合。

简化正则化:lambda

模型开发者经过如下方式来调整正则化项的总体影响:用正则化项的值乘以名为 lambda(又称为正则化率)的标量。也就是说,模型开发者会执行如下运算:

clipboard.png

执行 L2 正则化对模型具备如下影响

  • 使权重值接近于 0(但并不是正好为 0)
  • 使权重的平均值接近于 0,且呈正态(钟形曲线或高斯曲线)分布。

增长 lambda 值将加强正则化效果。 例如,lambda 值较高的权重直方图可能会如图所示。

clipboard.png

下降 lambda 的值每每会得出比较平缓的直方图

clipboard.png

在选择 lambda 值时,目标是在简单化和训练数据拟合之间达到适当的平衡:

  • 若是您的 lambda 值太高(注重考虑正则,模型偏向于优化复杂模型),则模型会很是简单,可是您将面临数据欠拟合的风险。您的模型将没法从训练数据中得到足够的信息来作出有用的预测。
  • 若是您的 lambda 值太低(注重考虑训练损失),则模型会比较复杂,而且您将面临数据过拟合的风险。您的模型将因得到过多训练数据特色方面的信息而没法泛化到新数据。

L2 正则化可能会致使对于某些信息缺少的特征,模型会学到适中的权重。L2 正则化下降较大权重的程度高于下降较小权重的程度。随着权重愈来愈接近于 0.0,L2 将权重“推”向 0.0 的力度愈来愈弱。L2 正则化会使类似度高(存在噪点)两个特征的权重几乎相同

逻辑回归:Logistic Regression

逻辑回归会生成一个介于 0 到 1 之间(不包括 0 和 1)的几率值,而不是确切地预测结果是 0 仍是 1。以用于检测垃圾邮件的逻辑回归模型为例。若是此模型推断某一特定电子邮件的值为 0.932,则意味着该电子邮件是垃圾邮件的几率为 93.2%。更准确地说,这意味着在无限训练样本的极限状况下,模型预测其值为 0.932 的这组样本实际上有 93.2% 是垃圾邮件,其他的 6.8% 不是垃圾邮件。

逻辑回归模型如何确保输出值始终落在 0 和 1 之间。巧合的是,S 型函数生成的输出值正好具备这些特性,其定义以下:

clipboard.png

S型函数会产生如下曲线图:

clipboard.png

若是 z 表示使用逻辑回归训练的模型的线性层的输出,则 S 型(z) 函数会生成一个介于 0 和 1 之间的值(几率)。用数学方法表示为:

clipboard.png

其中:

  • y' 是逻辑回归模型针对特定样本的输出。
  • z 是 b + w1x1 + w2x2 + … wNxN

    - “w”值是该模型学习的权重和误差。
       - “x”值是特定样本的特征值。

请注意,z 也称为对数概率,由于 S 型函数的反函数代表,z 可定义为标签“1”(例如“狗叫”)的几率除以标签“0”(例如“狗不叫”)的几率得出的值的对数:

clipboard.png

假设咱们的样本是{x, y},y是0或者1,表示正类或者负类,x是咱们的m维的样本特征向量。那么这个样本x属于正类,也就是y=1的“几率”能够经过下面的逻辑函数来表示:

clipboard.png

这里θ是模型参数,也就是回归系数,σ是sigmoid函数。实际上这个函数是由下面的对数概率(也就是x属于正类的可能性和负类的可能性的比值的对数)变换获得的:

clipboard.png

逻辑回归与线性回归的不一样点在于:为了将线性回归输出的很大范围的数,例如从负无穷到正无穷,压缩到0和1之间,这样的输出值表达为“可能性”才能说服广大民众。。另外,对于二分类来讲,能够简单的认为:若是样本x属于正类的几率大于0.5,那么就断定它是正类,不然就是负类。因此说,LogisticRegression 就是一个被logistic方程归一化后的线性回归,仅此而已。

逻辑回归的损失函数

线性回归的损失函数是平方损失。逻辑回归的损失函数是对数损失函数,定义以下:

clipboard.png

其中:

  • (xy)ϵD 是包含不少有标签样本 (x,y) 的数据集。
  • “y”是有标签样本中的标签。因为这是逻辑回归,所以“y”的每一个值必须是 0 或 1。
  • “y'”是对于特征集“x”的预测值(介于 0 和 1 之间)。

对数损失函数的方程式与 Shannon 信息论中的熵测量密切相关。它也是似然函数的负对数(假设“y”属于伯努利分布)。实际上,最大限度地下降损失函数的值会生成最大的似然估计值。

上图中,当接近其中一个条形时,损失就会变得越大,并且变化速度很是惊人。这些渐近线的做用是很是重要的。不然,在指定的数据集上,模型会尽量更紧密地拟合数据,让损失接近于0. 所以,大多数逻辑回归模型会使用如下两个策略之一来下降模型复杂性:

  • L2 正则化。
  • 早停法,即,限制训练步数或学习速率。

正则化在逻辑回归建模中极其重要。若是没有正则化,逻辑回归的渐近性会不断促使损失在高维度空间内达到 0.

假设您向每一个样本分配一个惟一 ID,且将每一个 ID 映射到其本身的特征。若是您未指定正则化函数,模型会变得彻底过拟合。这是由于模型会尝试促使全部样本的损失达到 0 但始终达不到,从而使每一个指示器特征的权重接近正无穷或负无穷当有大量罕见的特征组合且每一个样本中仅一个时,包含特征组合的高维度数据会出现这种状况。幸运的是,使用 L2 或早停法能够防止出现此类问题。

逻辑回归特色:容易扩展到庞大的数据中;预测速度快,可用于延迟时间极短的预测若是咱们须要非线性逻辑回归,可添加特征交叉乘积来实现。

相关文章
相关标签/搜索