栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

吴恩达《机器学习》笔记——第二章

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

吴恩达《机器学习》笔记——第二章

2、Linear regression with one variable(单变量线性回归)
  • 2.1 Model representation(模型描述)
  • 2.2 Cost function(代价函数)
  • 2.5 Gradient descent(梯度下降)
  • 2.6 Gradient descent intuition(梯度下降总结)
  • 2.7 Gradient descent for linear regression(线性回归的梯度下降)

2.1 Model representation(模型描述)

这门课程中的符号表示
m m m: Number of training examples(#Training set)
x ′ s x's x′s: “input” variable / features
y ′ s y's y′s: “output” variable / “target” variable
( x , y ) (x,y) (x,y): one training example
( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)): The i i i’th training example of training set

监督学习算法的工作流程:我们向学习算法提供训练集,学习算法的任务是输出一个函数,通常用 h h h表示,称为假设函数(hypothesis)。假设函数的作用是输入 x x x,输出预测值 y y y。

对于单变量线性回归,假设函数如下表示: h θ ( x ) = θ 0 + θ 1 x h_theta(x)=theta_0+theta_1x hθ​(x)=θ0​+θ1​x

若 x x x是一个列向量,则 θ 1 theta_1 θ1​是一个行向量,对应多变量线性回归。

2.2 Cost function(代价函数)

如何选择参数 θ 0 theta_0 θ0​和 θ 1 theta_1 θ1​?
Idea:选择 θ 0 theta_0 θ0​和 θ 1 theta_1 θ1​,使得对于训练集中的 ( x , y ) (x,y) (x,y), h θ ( x ) h_theta(x) hθ​(x)与 y y y接近。

因此,有了如下最小化问题 min ⁡ θ 0 , θ 1 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 min_{theta_0,theta_1} frac{1}{2m}sum_{i=1}^m(h_theta(x^{(i)})-y^{(i)})^2 θ0​,θ1​min​2m1​i=1∑m​(hθ​(x(i))−y(i))2令 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​)=2m1​∑i=1m​(hθ​(x(i))−y(i))2,则上述最小化问题转化为 min ⁡ J ( θ 0 , θ 1 ) min J(theta_0,theta_1) minJ(θ0​,θ1​), J ( θ 0 , θ 1 ) J(theta_0,theta_1) J(θ0​,θ1​)就是这个线性回归的代价函数。这个代价函数也被称为平方误差(代价)函数。

平方误差函数对于大多数问题,特别是回归问题,都是一个合理的选择。当然也有其它代价函数,只不过在回归问题中常用的是平方误差代价函数。

2.5 Gradient descent(梯度下降)

利用梯度下降法最小化代价函数 J ( θ 0 , θ 1 ) J(theta_0,theta_1) J(θ0​,θ1​),参数更新方向为负梯度方向。它不仅被用在线性回归上,还广泛应用于机器学习的众多领域。本节只是以单变量线性回归为例子来进行说明。
迭代以下步骤直到收敛:
θ j ← θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) theta_jleftarrowtheta_j-alphafrac{partial}{partialtheta_j}J(theta_0,theta_1) θj​←θj​−α∂θj​∂​J(θ0​,θ1​) 正确 (同时更新 θ 0 , θ 1 theta_0,theta_1 θ0​,θ1​): t e m p 0 ← θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) ; t e m p 1 ← θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) temp0leftarrowtheta_0-alphafrac{partial}{partialtheta_0}J(theta_0,theta_1);temp1leftarrowtheta_1-alphafrac{partial}{partialtheta_1}J(theta_0,theta_1) temp0←θ0​−α∂θ0​∂​J(θ0​,θ1​);temp1←θ1​−α∂θ1​∂​J(θ0​,θ1​) θ 0 ← t e m p 0 ; θ 1 ← t e m p 1 theta_0leftarrow temp0;theta_1leftarrow temp1 θ0​←temp0;θ1​←temp1

2.6 Gradient descent intuition(梯度下降总结)

梯度下降算法中的下降步长 α alpha α在机器学习中被称为学习速率(learning rate)。

问题来了: α alpha α取多大呢?固定值,还是自适应?这就和线搜索一样了。

2.7 Gradient descent for linear regression(线性回归的梯度下降)

根据复合函数求导法则,有 ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ; ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x ( i ) frac{partial}{partialtheta_0}J(theta_0,theta_1)=frac{1}{m}sum_{i=1}^m(h_theta(x^{(i)})-y^{(i)}); frac{partial}{partialtheta_1}J(theta_0,theta_1)=frac{1}{m}sum_{i=1}^m(h_theta(x^{(i)})-y^{(i)})*x^{(i)} ∂θ0​∂​J(θ0​,θ1​)=m1​i=1∑m​(hθ​(x(i))−y(i));∂θ1​∂​J(θ0​,θ1​)=m1​i=1∑m​(hθ​(x(i))−y(i))∗x(i)代入梯度下降算法即可。

梯度下降算法会陷入局部最优,但是对于线性回归就没有这个问题。因为线性回归的代价函数是二次函数,所以是一个凸函数。

对于线性回归问题的最小化代价函数,除了使用梯度下降算法迭代求解,还可以通过最小二乘法(吴的课程中称为正规方程组法)直接求解。梯度下降适用于大规模的数据集。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869301.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号