机器学习入门之机器学习中的过拟合与正则化详解
小标 2018-09-29 来源 : 阅读 1364 评论 0

摘要:本文主要向大家介绍了机器学习入门之机器学习中的过拟合与正则化详解,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之机器学习中的过拟合与正则化详解,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

     

 本文和大家分享的主要是机器学习中的过拟合和正则化相关内容,一起来看看吧,希望对大家有所帮助。

 用线性回归拟合曲线,或者用逻辑回归确定分类边界时,选择的曲线有多种,如下:

 

 不同曲线,对于样本的表达能力,各不相同。

  曲线1,使用一阶曲线,即直线模型,过于简单,出现大量的错误分类,此时的误差较大,模型欠拟合。

  曲线2,使用高阶曲线,几乎是完美的完成拟合任务,但如此严格的模型,当新的样本与训练样本稍有不同,极有可能出现误判,此时模型过拟合。

  而曲线3,一条相对平滑的曲线,基本能完成拟合任务,同时对于个别噪点也没那么敏感。是一个较为理想的模型。

  如何得到曲线3 ?

  从曲线2的形态来看,显然是受到高阶项的影响过大了。

  假设曲线2的方程为:

  $

  h_\\theta(x) = \\theta^{T}x = \\theta_0 + \\theta_1x + \\theta_2x^2 + \\theta_3x^3 +...+\\theta_nx^n

  $

  如果要减弱高阶项 xnxn 的影响,可以通过减小 θnθn 的值做到。

  即是在求取 θθ 矩阵时,同时要使矩阵内的元素值,尽量的小。

  而 θθ 是通过最小化误差函数计算出来,故而,对J函数做改造——正则化。

  正则化误差函数

  在原有的误差函数的基础上,增加一个正则项,如下:

  $

  J = J + \\frac{\\lambda}{2m}\\sum_{j=1}^{n}\\theta_j^2

  $

  该正则项,是所有 θθ 参数的平方和。 λλ 是正则化参数,可以使用不同的 θθ 值训练模型,对比最后的误差来确定该值。

  加上正则项后,求误差函数最小值时,要能得到最优解,不仅要使样本的误差要最小,同时, θθ 值也要最小才行。

  这样就达到了上一节的要求了。

  而相对应的梯度,通过求导可得到:

  $

  grad_0 = grad_0, (j = 0)

  $

  $

  grad_j = grad_j+\\frac{\\lambda}{m}\\theta_j, (j > 0)

  $

  注意:

  正则项有一点需要注意,该项中并没有将 θ0θ0 计入。

  因为 θ0θ0 这一项的特征为恒为1( x0=1x0=1 ),即为0次方。它只会影响曲线的位置高低,对于模型的曲折程度没有影响,故而不需要做正则化处理。

  是否只能过通正则化解决过拟合现象?

  答案:非也。

  首先需要说明的一点,过拟合的出现的根本原因,是模型中较多的变量,而约束这么多的变量,需要有足够多的训练样本。

  也就是,当训练样本逐渐增多的时候,那么曲线2也会慢慢的往曲线3变化,但要拟合到接近曲线2的状态,需要的样本量将是非常的庞大,而最终训练时的运算量也会很庞大,不是很必要。

  正则化的误差函数、及其偏导数实现

  只列关键部分代码

  1 线性回归

  h = X*theta;

  theta_tmp = theta(2:length(theta),1);

  J = 1/(2*m)*(h-y)’*(h-y) + lambda/(2*m) * sum(theta_tmp.^2);

  grad = 1/m * x’ * (h- y) + (lambda/m)*[0;theta_tmp];

  2 逻辑回归

  h = sigmoid(X*theta);

  theta_tmp = theta(2:length(theta),1);

  J = 1/m * sum(-y.*log(h) - (1-y).*log(1-h)) + lambda/(2*m) * sum(theta_tmp.^2);

  grad = 1/m .* X’ * (h-y) + (lambda/m)*[0;theta_tmp];

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程