吴恩达《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:监督学习与非监督学习

相关文章
|
2月前
|
运维 网络协议 API
IP地址到底是什么?一张图看懂+命令行/网站查询实操
IP地址是设备联网的“门牌号”,分公网/私网、IPv4/IPv6,用于识别与定位。本文详解其原理、命令行(ipconfig/ifconfig/curl)及在线查询方法,并介绍风控、广告等业务集成场景,助你从理解到实战高效用好IP信息。(239字)
2497 1
IP地址到底是什么?一张图看懂+命令行/网站查询实操
|
12月前
|
机器学习/深度学习 人工智能 机器人
面向人机协作任务的具身智能系统感知-决策-执行链条建模
本文探讨了面向人机协作任务的具身智能系统建模,涵盖感知、决策与执行链条。具身智能强调智能体通过“身体”与环境互动,实现学习与适应,推动机器人技术升级。文章分析了其关键组成(感知、控制与决策系统)、挑战(高维状态空间、模拟鸿沟等)及机遇(仿真训练加速、多模态感知融合等)。通过代码示例展示了基于PyBullet的强化学习训练框架,并展望了通用具身智能的未来,包括多任务泛化、跨模态理解及Sim2Real迁移技术,为智能制造、家庭服务等领域提供新可能。
面向人机协作任务的具身智能系统感知-决策-执行链条建模
|
人工智能 PyTorch 算法框架/工具
Ascend Extension for PyTorch是个what?
Ascend Extension for PyTorch 是针对华为昇腾处理器的PyTorch框架适配插件,旨在让PyTorch开发者能充分利用昇腾AI处理器的强大计算能力。此扩展通过最小化对原生PyTorch的改动,实现了对昇腾NPU的支持,包括动态图特性、自动微分等功能的完整继承,并提供了与原生PyTorch一致的使用体验。项目详情及源码可在昇腾社区获取。
Ascend Extension for PyTorch是个what?
|
Ubuntu 安全 程序员
一文带你了解软件版本号
【9月更文挑战第3天】
5720 12
一文带你了解软件版本号
|
机器学习/深度学习 数据可视化
KAN干翻MLP,开创神经网络新范式!一个数十年前数学定理,竟被MIT华人学者复活了
【10月更文挑战第12天】MIT华人学者提出了一种基于Kolmogorov-Arnold表示定理的新型神经网络——KAN。与传统MLP不同,KAN将可学习的激活函数放在权重上,使其在表达能力、准确性、可解释性和收敛速度方面表现出显著优势,尤其在处理高维数据时效果更佳。然而,KAN的复杂性也可能带来部署和维护的挑战。论文地址:https://arxiv.org/pdf/2404.19756
508 1
|
Linux 开发者 iOS开发
Python中使用Colorama库输出彩色文本
Python中使用Colorama库输出彩色文本
|
数据挖掘 数据处理 索引
数据合并与连接:Pandas中的强大数据整合功能
【4月更文挑战第16天】Pandas是Python数据分析的库,提供数据合并与连接功能。本文聚焦于`merge`和`concat`函数。`merge`基于键合并DataFrame,如示例中`df1`和`df2`按'key'列合并,支持多种连接方式。`concat`则沿轴堆叠DataFrame,如`df3`和`df4`沿行连接。注意合并连接时键的一致性、选择合适连接方式及处理索引和数据结构,以确保数据准确一致。学习这些方法能有效整合多数据源,便于分析。
|
并行计算 Linux 异构计算
JAX 中文文档(一)(1)
JAX 中文文档(一)
1700 0
数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成
数据生成 | MATLAB实现MCMC马尔科夫蒙特卡洛模拟的数据生成
|
编解码
ENVI: 如何添加控制点并基于控制点进行几何校正?
ENVI: 如何添加控制点并基于控制点进行几何校正?
1924 0