吴恩达机器学习系列一(线性回归)

本文介绍了机器学习的基本概念,包括有监督学习和无监督学习的定义。重点讲解了线性回归,阐述了训练集、监督学习算法的工作原理、代价函数和梯度下降法。同时,讨论了矩阵和向量的概念及其运算,以及在多元线性回归中的应用。还提到了特征缩放、学习率和正规方程在优化模型中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是机器学习

Arthur Samuel (1959):在没有明确设置的情况下,使计算机具有学习能力的研究领域

Tom Mitchell(1998):计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高

举例:

通过人工把邮箱里的邮件标记为垃圾邮件与否,使程序能够自动识别垃圾邮件

T:分类邮件是否是垃圾邮件

E:观察邮件的标签是否是垃圾邮件

P:正确归类的邮件的比例

机器学习算法

有监督学习(Supervised learning)

定义

给算法一个数据集,且数据集中的每个样本都被告知了正确答案(有标签),通过数据集进行学习得到预测的正确的值。

回归算法分类算法

无监督学习(Unsupervised learning)

定义

给算法一个数据集,数据集中的每个样本都没有标签或者有相同的标签。

无监督学习可以把这些数据分为不同的簇

聚类算法

线性回归(Linear regression)

有监督学习

训练集标识符(training set)

m = 训练样本的数量training example

x's = 输入变量 / 特征features

y's = 输出变量 / 目标变量(要预测的) “target” variable

(x,y) = 一个训练样本

(x^(i),y^(i)) = 第i个训练样本

监督学习算法是如何工作的

以房价预测为例子

h:假设函数 -->>这是学习算法的目的 —>>预测y关于x的函数

代价函数

线性回归的整体目标函数,即是确定 θ 0 、 θ 1 \theta_0 、 \theta_1 θ0θ1的值,使得平均误差【 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2} 2m1i=1m(hθ(x(i))y(i))2】最小。/ 训练集中预测值和真实值的差的平方的和最小的1/2m最小的 θ 0 、 θ 1 \theta_0 、 \theta_1 θ0θ1

定义一个代价函数(平均误差代价函数):

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1) = \frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2

关于 θ 0 和 θ 1 \theta_0和\theta_1 θ0θ1对函数 J ( θ 0 、 θ 1 ) J(\theta_0 、 \theta_1) J(θ0θ1)求最小值

代价函数作用

代价函数 J ( θ 0 , θ 1 ) J(\theta_{0},\theta_{1}) J(θ0,θ1)的图像:

在这里插入图片描述

在这里插入图片描述

梯度下降

一种可以用于最小化代价函数 J J J的算法

也可用于更一般的函数

在这里插入图片描述

梯度下降算法

repeat until 收敛{
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( f o r j = 0 a n d j = 1 ) \theta_{j} := \theta_{j}-\alpha\frac{\partial}{{\partial}\theta_{j}}J(\theta_{0},\theta_{1}) \quad (for \quad j = 0\quad and\quad j=1) θj:=θjαθjJ(θ0,θ1)(forj=0andj=1)
}

α \alpha α:学习率,用来控制梯度下降时,我们迈出多大的步子;梯度下降的速度

如果 α \alpha α过小,收敛速度太慢;如果 α \alpha α过大,则有可能无法得到收敛值

如果到达局部最优值,就不再改变

同时更新 θ 0 、 θ 1 \theta_0 、 \theta_1 θ0θ1

t e m p 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) temp0 := \theta_{0}-\alpha\frac{\partial}{{\partial}\theta_{0}}J(\theta_{0},\theta_{1}) temp0:=θ0αθ0J(θ0,θ1)

t e m p 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) temp1 := \theta_{1}-\alpha\frac{\partial}{{\partial}\theta_{1}}J(\theta_{0},\theta_{1}) temp1:=θ1αθ1J(θ0,θ1)

θ 0 : = t e m p 0 \theta_{0}:=temp0 θ0:=temp0

θ 1 : = t e m p 1 \theta_{1}:=temp1 θ1:=temp1

梯度下降法用于线性回归

线性回归算法:

repeat until 收敛{

θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_{0} := \theta_{0}-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}) θ0:=θ0αm1i=1m(hθ(x(i))y(i))

θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \theta_{1} := \theta_{1}-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}){\cdot}x^{(i)} θ1:=θ1αm1i=1m(hθ(x(i))y(i))x(i)

}

同步更新 θ 0 , θ 1 \theta_{0},\theta_{1} θ0,θ1

由于线性回归的代价函数总是一个碗型,因此没有局部最优,因此总会收敛至全局最优

这时也叫“Batch”梯度最优;因为每一步下降都使用了所有的训练样本数据。

矩阵和向量

矩阵

以数字组成的矩形阵列,并写在方括号内

矩阵的维数 = 矩阵的行数 × 列数

A i j A_{i}{j} Aij表达的是第i行第j列的元素

向量

向量是特殊的矩阵

是一个n×1的矩阵(只有一列)

y i y_{i} yi表示第i个元素

运算

矩阵加法

只有维度相同的两个矩阵才能相加

标量和矩阵乘法

得到的仍是和原矩阵相同维度的新矩阵

两个矩阵相乘

矩阵向量乘法

在这里插入图片描述

矩阵矩阵乘法

在这里插入图片描述

矩阵乘法特征

A × {\times} ×B ≠ {\neq} = B × {\times} ×A 矩阵乘法不服从交换律

A × {\times} × B × {\times} × C = (A × {\times} ×B) × {\times} ×C = A × {\times} ×(B × {\times} ×C) 服从结合律

单位矩阵

在这里插入图片描述

对任意矩阵A来说:

A ⋅ I = I ⋅ A = A A{\cdot} I = I {\cdot} A = A AI=IA=A

逆和转置

逆矩阵

如果一个矩阵A是m × {\times} ×m的,那么它有一个逆矩阵:

A A − 1 = A − 1 A = I . AA^{-1} = A^{-1}A=I. AA1=A1A=I.

此时A也称为方阵,实际上只有方阵才有逆

不存在逆矩阵的矩阵被称为奇异矩阵或者退化矩阵

矩阵的转置

A --> A T A^{T} AT

在这里插入图片描述

多元线性回归

多元线性回归的假设形式

在这里插入图片描述

x ( i ) x^{(i)} x(i)是一个n维向量,代表第i个训练样本

h θ ( x ) = θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_{\theta}(x) = \theta^{T}x= \theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+{\cdots}+\theta_{n}x_{n} hθ(x)=θTx=θ0+θ1x1+θ2x2++θnxn

在这里插入图片描述

表示为两个向量内积

多元梯度下降法

在这里插入图片描述

可以把 θ 0 , θ 1 , . . . , θ n \theta_{0},\theta{1},...,\theta{n} θ0,θ1,...,θn看做一个n+1维向量 θ \theta θ

因此代价函数 J ( θ 0 , θ 1 , . . . , θ n ) J(\theta_{0},\theta{1},...,\theta{n}) J(θ0,θ1,...,θn)又可以看做 J ( θ ) J(\theta) J(θ)

梯度下降:

repeat {
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , . . . , θ n ) \theta_{j} := \theta_{j}-\alpha\frac{\partial}{{\partial}\theta_{j}}J(\theta_{0},...,\theta_{n}) \quad θj:=θjαθjJ(θ0,...,θn)
} (同步更新每一个 j = 0 , . . . , n j=0,...,n j=0,...,n)

用于多元线性回归的梯度下降函数:

Repeat{

θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \theta_{j} := \theta_{j}-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}){\cdot}x^{(i)}_{j} θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)

} (同步更新 θ j , j = 0 , . . . , n \theta_{j},{\quad}j=0,...,n θjj=0,...,n)

实用技巧

特征缩放

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P8pUpk8V-1606218683152)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201118182308145.png)]

通过特征缩放来减少偏移,使得可以更快地收敛

通常特征缩放的目标是:将每个特征的取值约束在[1,1]的范围内

如果特征值在[-3,3]或[ − 1 3 , 1 3 -\frac{1}{3},\frac{1}{3} 31,31]内,则也不需要缩放

均值归一化

x 1 = x 1 − μ 1 s 1 x_{1} = \frac{x_{1}-\mu_{1}}{s_{1}} x1=s1x1μ1

μ 1 {\mu}_{1} μ1是均值, s 1 s_{1} s1是该特征值的范围(最大值-最小值)】

学习率

保证梯度下降算法正常运行——每一步迭代之后 J ( θ ) J(\theta) J(θ)都会下降

画出代价函数 J ( θ ) J(\theta) J(θ)随迭代步数的变化曲线来判断是否正常运行 以及什么时候停止

在这里插入图片描述

则说明 α \alpha α 过大,通常使用更小的 α \alpha α 就可以解决问题

总之,如果 α {\alpha} α太小,可能会导致收敛太慢;

如果 α {\alpha} α太大, J ( θ ) J(\theta) J(θ)可能会不下降

特征选择和多项式回归

特征

例子:

在这里插入图片描述

当预测价格时,可以创造一个新的特征:Area面积来取代长、宽两个特征

多项式回归

有可能不止使用一元线性来拟合

在这里插入图片描述

此时,特征缩放就更加重要了

正规方程(区别于迭代方法的直接解法)

正规方程法只需要一步就能得到最终值

举例:


在这里插入图片描述

θ = ( X T X ) − 1 X T y \theta = (X^{T}X)^{-1}X^{T}y θ=(XTX)1XTy

( X T X ) − 1 (X^{T}X)^{-1} (XTX)1为X的转置乘以X 再取逆

直接得出最终的最小化代价函数 J ( θ ) J(\theta) J(θ)

使用正则方程时,不需要特征缩放

何时使用梯度下降,何时使用正规方程法?

m个样本量,n个特征

梯度下降算法正规方程法
需要选择学习率 α {\alpha} α不需要选择学习率 α {\alpha} α
需要更多次的迭代不需要迭代
在n非常大的时候也可以运行良好如果n很大就会计算缓慢(O( n 3 ) n^{3}) n3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值