吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

简介: 吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

今天带来第二周课程的笔记:梯度下降与正规方程。


主要内容:

  • 多维特征
  • 多变量梯度下降
  • 梯度下降法实践
  • 正规方程


多维特征Multiple Features


还是利用房价模型的例子,增加了更多的特征,比如:房间楼层、房间数量、地理位置等,构成了一个含有多个变量的模型


image.png

n:代表的是特征的数量

x(i):代表第i个训练实例,是特征矩阵中的第i行,是一个向量vector

image.png


多变量梯度下降


算法目标


与单变量线性回归类似,在多变量线性回归中,构建一个代价函数,则这个代价函数是所有建模误差的平方和,即:


image.png

image.pngimage.png



Python代码


给定特征矩阵X,输出y,学习率θ,求代价函数J

import numpy as np
def computeCost(X,y,theta):
  inner = np.power(((X * theta.T) - y), 2)  # 求解每个平方项
  return np.sum(inner) / (2 / len(X))   # 求和再除以2*len(X)


梯度下降法实践


特征缩放


面对多维度特征问题,我们需要保证这些特征具有相近的尺度,帮助梯度下降算法更快地收敛。


以房价问题为例,假设仅用两个特征,房屋的尺寸和数量,以两个参数分别为横纵坐标,假设尺寸在0-2000平方英尺,数量在0-5之间。


绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。


image.png

image.png

image.png


学习率问题


梯度下降算法的每次迭代受到学习率的影响


  • 如果学习率过小,则达到收敛所需的迭代次数会非常高,收敛速度非常慢
  • 如果学习率过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛


常用学习率包含:α=0.01,0.03,0.1,0.31,3,10α=0.01,0.03,0.1,0.31,3,10


特征和多项式回归


如房价预测问题,


image.png

同时房屋面积=宽度 * 深度


image.png

在实际拟合数据的时候,可能会选择二次或者三次方模型;如果采用多项式回归模型,在运行梯度下降法之前,特征缩放很有必要。

image.png

正规方程 Normal Equation


梯度下降缺点


需要多次迭代才能达到局部最优解


image.png

正规方程demo


正规方程具有不可逆性


正规方程就是通过求解下面例子中的方程找出使得代价函数最小参数θ


image.png


不可逆矩阵不能使用正规方程求解


Normal Equation VS Gradient Descent


梯度下降和正规方程的比较:

image.png


参数θ求解过程

6.jpg

image.png


至此,第一周的课程笔记完毕!


系列文章:


吴恩达《Machine Learning》精炼笔记 1:监督学习与非监督学习

相关文章
|
SQL 消息中间件 Kafka
流数据湖平台Apache Paimon(二)集成 Flink 引擎
流数据湖平台Apache Paimon(二)集成 Flink 引擎
1453 0
|
存储 SQL 大数据
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
一篇文章搞懂数据仓库:三种事实表(设计原则,设计方法、对比)
|
9月前
|
人工智能 PyTorch 算法框架/工具
Ascend Extension for PyTorch是个what?
Ascend Extension for PyTorch 是针对华为昇腾处理器的PyTorch框架适配插件,旨在让PyTorch开发者能充分利用昇腾AI处理器的强大计算能力。此扩展通过最小化对原生PyTorch的改动,实现了对昇腾NPU的支持,包括动态图特性、自动微分等功能的完整继承,并提供了与原生PyTorch一致的使用体验。项目详情及源码可在昇腾社区获取。
Ascend Extension for PyTorch是个what?
|
6月前
|
存储 运维 BI
万字长文带你深入广告场景Paimon+Flink全链路探索与实践
本文将结合实时、离线数据研发痛点和当下Paimon的特性,以实例呈现低门槛、低成本、分钟级延迟的流批一体化方案,点击文章阅读详细内容~
|
9月前
|
存储 消息中间件 SQL
流存储Fluss:迈向湖流一体架构
本文整理自阿里云高级开发工程师罗宇侠在Flink Forward Asia 2024上海站的分享,介绍了湖流割裂的现状与挑战,Fluss湖流一体架构的设计与优势,以及未来规划。内容涵盖湖流割裂的现状、Fluss架构详解、湖流一体带来的收益,以及未来的生态扩展和技术优化。
891 11
流存储Fluss:迈向湖流一体架构
|
Ubuntu 安全 程序员
一文带你了解软件版本号
【9月更文挑战第3天】
2815 12
一文带你了解软件版本号
|
并行计算 Linux 异构计算
JAX 中文文档(一)(1)
JAX 中文文档(一)
739 0
|
SQL 关系型数据库 MySQL
Flink mysql-cdc connector 源码解析
在 Flink 1.11 引入了 CDC 机制,CDC 的全称是 Change Data Capture,用于捕捉数据库表的增删改查操作,是目前非常成熟的同步数据库变更方案。Flink CDC Connectors 是 Apache Flink 的一组源连接器,是可以从 MySQL、PostgreSQL 数据直接读取全量数据和增量数据的 Source Connectors.
Flink mysql-cdc connector 源码解析
|
Oracle NoSQL 关系型数据库
实时计算 Flink版操作报错合集之报错ClassCastException异常如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
444 0
|
NoSQL 关系型数据库 MongoDB
Flink cdc报错问题之升级2.3.0报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。