热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

吴恩达《机器学习》课程笔记——第八章:正则化

上一篇※※※※※※※※【回到目录】※※※※※※※※下一篇8.1过拟合问题我们首先来解释一下什么叫欠拟合和过拟合。左边的图:该模型是一个线性模型,不能很好

上一篇  ※※※※※※※※  【回到目录】  ※※※※※※※※  下一篇


8.1 过拟合问题

我们首先来解释一下什么叫欠拟合和过拟合。

左边的图:该模型是一个线性模型,不能很好地拟合出训练集,有较大的偏差,这就是欠拟合;ps:当然,对于数据集较为简单的情况,我们也可以采取取对数等预处理方式,从而使得线性模型能较好的拟合出数据,但不太常用。

中间的图:增加了一个特征?之后,该模型可以较好的拟合出训练集;

右边的模型:增加过多的特征?,虽然模型非常好的拟合了,但是由于过于强调去拟合训练集的数据,丢失了算法的本质:预测新数据。当我们拿该模型去预测其他的测试集数据时,效果会较差,存在高方差问题,这就是过拟合。

除了回归问题,分类问题中也存在这样的情况:(从左到右依次为欠拟合、拟合恰当、过拟合)

过拟合问题出现的根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。

因此,解决过拟合问题的方式有:

1、降低特征维度:丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA);

2、正则化: 保留所有的特征,但是减少这些特征的大小(白话说叫让多余的特征没有存在感)。

3、增加训练数据:使用较大的训练数据也可以减少过拟合问题,但是一般收集数据集比较麻烦。

 


8.2 代价函数

在上面的回归问题中,出现过拟合问题的模型为:ℎ?(?) = ?0 + ?1?1 + ?2?22 + ?3?33 + ?4?44  。从前面的三个例子中我们知道,正是因为高阶项导致了过拟合的产生,如果我们能使这些高阶项的系数(如?3、?4)变为0的话,那么就可以较好的拟合了。

因此,一定程度上减小这些参数 ? 的值,就是正则化的基本方法。因此我们将所有的特征带入惩罚过程,并让代价函数的最优化程序来决定惩罚的程度。

修改后的代价函数:

其中,? 称为正则化系数。注意:j 是从1开始的,我们不对 ?0 进行惩罚。

增加正则化项可以使 ? 减小的原因在于:优化过程中,为了使代价函数尽可能的小,在? 的值较大的情况下,所有的  ? 都得在一定程度上减小。

正则化后的模型与原模型对比如下:

 

如果 ? 取得过大,那么所有的参数都最小化了,使得模型变成了 ℎ?(?) = ?0 ,变成了欠拟合。所以对于正则化,我们需要选取一个合理的  ? 。


8.3 线性回归的正则化

对于线性回归问题,我们之前介绍过两种学习算法:梯度下降和正规方程。接下来介绍将正则化加入到两种学习算法中的细节。

1、梯度下降

因为未对?0 进行正则化,因此梯度下降算法被分开处理(?0 为一部分,其他的?为一部分):

整理第二个式子:

对于未增加正则化项的式子:

可以看出:正则化线性回归的梯度下降,其变化主要在于:每次在原有的更新规则基础上令 ? 值减少了一个额外的值。 

2、正规方程

我们同样也可以利用正规方程来求解正则化线性回归模型:

公式中矩阵的维度为:(n+1,n+1)。


8.4 Logistic回归的正则化

在第七章中,我们学习了多种优化算法:基础的为梯度下降,以及一些高级优化算法(见7.6)。

在这些高级优化算法中,你需要做的是设计好代价函数 J(?) ,然后调用高级优化算法去最小化 J(?) 。 

与线性回归一样,我们也需要修改代价函数,即在代价函数中添加正则化项:

1、梯度下降

 

这看起来和线性回归的梯度下降过程一样,然而我们需要注意的是:在逻辑回归中,h?(x) = g(?TX),与线性回归完全不同。

2、高级优化算法

我们依旧可以用 fminuc 函数等高级优化算法来求解代价函数最小化的参数,值得注意的是参数?0的更新规则与其他情况不同。


 

 

如果这篇文章帮助到了你,或者你有任何问题,欢迎扫码关注微信公众号:一刻AI  在后台留言即可,让我们一起学习一起进步!

以上,就是吴恩达机器学习课程第八章的主要内容。

 

 

 

【重要提示】:本人机器学习课程的主要学习资料包括:吴恩达教授的机器学习课程和黄广海博士的中文学习笔记。感谢吴恩达教授和黄广海博士的知识分享和无私奉献。作为机器学习小白,计划每周末记录一周以来的学习内容,总结回顾。希望大家多多挑错,也愿我的学习笔记能帮助到有需要的人。


转:https://www.cnblogs.com/lky-learning/p/10637592.html



推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 尽管某些细分市场如WAN优化表现不佳,但全球运营商路由器和交换机市场持续增长。根据最新研究,该市场预计在2023年达到202亿美元的规模。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 解决Python中 'NoneType' 对象无属性 'find_all' 错误
    本文详细探讨了在Python编程中遇到的常见错误——'NoneType'对象没有属性'find_all',并深入分析其原因及解决方案。通过理解find_all函数的工作原理和常见用法,帮助读者避免类似问题。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 本文探讨了如何在Hive(基于Hadoop)环境中编写类似SQL的语句,以去除字段中的空格。特别是在处理邮政编码等数据时,去除特定位置的空格是常见的需求。 ... [详细]
author-avatar
闹闹依旧不闹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有