吴恩达机器学习课程(第二周)

本文介绍了多元线性回归的基本概念,包括矩阵乘法表示的假设函数和梯度下降法在多变量情况下的应用。同时,探讨了特征缩放、学习率选择的重要性,并对比了梯度下降与正规方程两种参数求解方法。

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

Linear Regression with Multiple Variables

Enviroment Setup Instruction

Setting Up Programming Assignment Enviroment

Access MATLAB Online and Upload the Programminig Exercise Files

由于电脑已经安装好matlab,所以这节略过。

Multivariate Linear Regression

Multiple Features

这节课中,将介绍一种更为有效的线性回归形式,这种形式适用于多个变量,或者多特征量的情况,叫矩阵乘法。
假如说我有四种特征值,那么:
Notation:
nnn = number of features
x(i){x^{(i)}}x(i) = input(features) of ithi^{th}ithtraining example
xj(i){x_j}^{(i)}xj(i) = value of feature j in ithi^{th}ith training example
Hypothesis:
hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4{h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + {\theta _3}{x_3} + {\theta _4}{x_4}hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4

那么我们给出多特征值的线性回归预测公式,为了方便,我们定义x0=1x_0=1x0=1
X=[x0x1x2...xn],θ=[θ0θ1θ2...θn]hθ(x)=θ0x0+θ1x1+...+θnxn=θTX\begin{array}{l} {\bf{X}} = \left[ \begin{array}{l} {x_0}\\ {x_1}\\ {x_2}\\ ...\\ {x_n} \end{array} \right],\theta = \left[ \begin{array}{l} {\theta _0}\\ {\theta _1}\\ {\theta _2}\\ ...\\ {\theta _n} \end{array} \right]\\ {h_\theta }(x) = {\theta _0}{x_0} + {\theta _1}{x_1} + ... + {\theta _n}{x_n} = {\theta ^T}{\bf{X}} \end{array}X=x0x1x2...xn,θ=θ0θ1θ2...θnhθ(x)=θ0x0+θ1x1+...+θnxn=θTX
这就是多元线性回归。

Giadient Descent for Multiple Variables

这节课中,我们将学到如何使用梯度下降法来找的多元线性回归函数的模型参数。
Hypothesis:hθ(x)=θ0x0+θ1x1+...+θnxn=θTX,x0=1Parameters:θ1,θ2,...,θnCostfunction:J(θ0,θ1,...,θn)=12m∑i=1m(hθ(x(i))−y(i))2\begin{array}{l} {\rm{Hypothesis:}}{h_\theta }(x) = {\theta _0}{x_0} + {\theta _1}{x_1} + ... + {\theta _n}{x_n} = {\theta ^T}{\bf{X}},{x_0} = 1\\ {\rm{Parameters:}}{\theta _1},{\theta _2},...,{\theta _n}\\ {\rm{Cost function:}}\\ {\rm{J(}}{\theta _0},{\theta _1},...,{\theta _n}{\rm{) = }}\frac{1}{{2m}}\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)}^2}} \end{array}Hypothesis:hθ(x)=θ0x0+θ1x1+...+θnxn=θTX,x0=1Parameters:θ1,θ2,...,θnCostfunction:J(θ0,θ1,...,θn)=2m1i=1m(hθ(x(i))y(i))2
Gradientdescent:Repeat{θj:=θj−α∂∂θjJ(θ0,...,θn)}(simultaneouslyupdateforeveryj=0,...,n)\begin{array}{l} {\rm{Gradient descent:}}\\ {\rm{ \qquad Repeat\{ }}\\ {\rm{ \qquad }}{\theta _j}: = {\theta _j} - \alpha \frac{\partial }{{\partial {\theta _j}}}J({\theta _0},...,{\theta _n})\\ {\rm{\} \qquad \qquad \qquad (simultaneously\quad update\quad for\quad every\quad j = 0,}}...{\rm{,n)}} \end{array}Gradientdescent:Repeat{θj:=θjαθjJ(θ0,...,θn)}(simultaneouslyupdateforeveryj=0,...,n)
Newalgorithm(n≥1):Repeat{θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))xj(i)(simulraneouslyupdateθjforj=0,...,n)}\begin{array}{l} {\rm{New algorithm(n}} \ge {\rm{1):}}\\ {\rm\qquad\qquad{Repeat\{ }}\\ \qquad\qquad{\theta _j}: = {\theta _j} - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right){x_j}^{(i)}} \\ \qquad \qquad\qquad\qquad(simulraneously\quad{\rm\quad{ update }}\quad{\theta _j}\quad for\quad{\rm{ j = 0,}}...{\rm{,n}})\\ {\rm{\} }} \end{array}Newalgorithm(n1):Repeat{θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)(simulraneouslyupdateθjforj=0,...,n)}

Gradient Descent in Practice I-Feature Scaling

在这节课中,我们将学到特征缩放(feature scaling)的方法

feature Scaling

idea:Make sure features are on a similar scale.
当我们把所有特征值都规定到差不多的范围内,收敛的过程就会加快。
E.g.x1x_1x1=size(0-2000 feet2_22)
x2{\quad} x_2x2=number of bedroom(1-5)
处理方法:
x1=size(feet2)2000x2=number  of  bedrooms5\begin{array}{l} {x_1} = \frac{{{\rm{size(fee}}{{\rm{t}}^2}{\rm{)}}}}{{2000}}\\ {x_2} = \frac{{{\rm{number\; of\; bedrooms}}}}{5} \end{array}x1=2000size(feet2)x2=5numberofbedrooms
Get every feature into approximately a  −1≤xi≤1\; - 1 \le {x_i} \le 11xi1range

Mean normalization(均值归一化)

Replace xix_ixiwith xi−μix_i-\mu _ixiμito make features have approximately zero mean(Do not apply to x0=1x_0=1x0=1)
例如:x1=size−10002000x2=#bedrooms−25—0.5≤x1≤0.5,−0.5≤x2≤0.5\begin{array}{l} {x_1} = \frac{{{\rm{size - 1000}}}}{{2000}}\\ {x_2} = \frac{{{\rm{\# bedrooms - 2}}}}{5}\\ — 0.5 \le {x_1} \le 0.5, - 0.5 \le {x_2} \le 0.5 \end{array}x1=2000size1000x2=5#bedrooms20.5x10.5,0.5x20.5
x1=x1−μ1S1,μ1=avg,S1=max⁡−min⁡{{x_1} = \frac{{{x_1} - {\mu _1}}}{{{S_1}}},{\mu _1} = avg,{S_1} = \max - \min }x1=S1x1μ1,μ1=avg,S1=maxmin

Gradient Descent in Practice II-Learning Rate

这节课我们学习的是关于梯度下降算法中的学习率α\alphaα,我们将学到怎么判断梯度下降工作是否正确以及怎么去选择学习率α\alphaα

Making sure gradient descent is working correctly.

在这里插入图片描述
我们直接画出该图,x轴是迭代的次数,y轴是代价函数的值。如果梯度下降正确,那么每一步迭代后,代价函数的值都应该是下降的。
所以当我们的曲线出现不降反升等情况时,我们的学习率就说明设置过高了,如果曲线下降太慢,那说明我们的学习率设置太低了。

Features and Polynomial Regression

这个视频中,将讲到选择特征的方法以及如何得到不同的学习算法。另外会降到多项式回归。
我们在拟合时可以改进一下特征值和假设函数。
我们可以将多个特征值进行结合变成一个,举个例子,我们可以通过x1⋅x2x_1·x_2x1x2变为x3x_3x3

多项式回归

当我们的一条直线无法很好的进行拟合时,我们可以改善一下。
我们可以改为为二次,三次,立方根等形式将其变为曲线进行拟合。
还是要记住,均值归一化是非常重要的。

Computing Parameters Analytically

Normal Equation

这个视频中将讲到正规方程(Normal Equation)。
目前我们寻找参数的方法是使用梯度下降法。与之相反的是,正规方程提供了一种求解θ\thetaθ的解析解法,我们可以一次性的求解参数的最优值。
首相,写出我们的代价函数。
θ∈Rn+1J(θ0,θ1,...,θm)=12m∑i=1m(hθ(x(i))−y(i))2\theta \in \mathbb{R} {^{n + 1}}{\rm{ }}J({\theta _0},{\theta _1},...,{\theta _m}) = \frac{1}{{2m}}\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}} θRn+1J(θ0,θ1,...,θm)=2m1i=1m(hθ(x(i))y(i))2
我们只需求每个参数值的偏导,将结果置零,然后求出该参数值,即可得到能够最小化代价函数的参数值。
∂∂θjJ(θ)=...=0(for  every  j)Solve  for  θ0,θ1,...,θn\begin{array}{l} \frac{\partial }{{\partial {\theta _j}}}J(\theta ) = ... = 0{\rm{(for\; every\; j)}}\\ {\rm{Solve\; for \;}}{\theta _0},{\theta _1},...,{\theta _n} \end{array}θjJ(θ)=...=0(foreveryj)Solveforθ0,θ1,...,θn
下面是我们的计算方法
θ=(XTX)−1XTy\theta = {\left( {{X^T}X} \right)^{ - 1}}{X^T}yθ=(XTX)1XTy

pinv(X'*X)*X'*y

这个方法不需要进行归一化。
优缺点对比

Gradient DescentNormal Equation
Need to chooseα\alphaα.No Need to chooseα\alphaα.
Needs many iteration.Don’t need to iterate.
Works well even when feature is largeNeed to compute$ \left( {{X^T}X} \right)^{ - 1}$
Slow if feature is very large

Normal Equation Noninvertibility

这个视频中将讲到正规方程的不可逆性。
我们在线性代数中学到过,有些矩阵是不可逆的,这些不可逆的矩阵叫做奇异矩阵(singular)或退化矩阵(degenerate)。
但如果$ \left( {{X^T}X} \right)^{ - 1}$是不可逆的怎么办?

一般出现这种情况有两种:

  • 出现了多余特征值(线性相关)
     比如预测房价时我们有了两个特征值,一个是平方英米,一个是平方米
  • 出现了太多特征值(样本数量小于等于特征值数量)
     删除多余特征值,或者进行正则化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值