吴恩达机器学习(二)—— 线性回归


线性回归是利用数理统计中回归分析来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。
如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

一、单变量线性回归

单变量线性回归(Univariate linear regression)又称一元线性回归(Linear regression with one variable)。

1.1 监督学习算法工作流程

在这里插入图片描述

1.2 线性回归模型表示

假设函数(Hypothesis) h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x,其中θ是模型参数,x是输入变量/特征。y是输出/目标变量。
在这里插入图片描述

1.3 代价函数

代价函数(Cost function)也叫平方误差函数平方误差代价函数。它的作用是为我们的训练样本 ( x x x y y y) 选择 θ 0 , θ 1 \theta_{0}, \theta_{1} θ0,θ1,使得 h θ ( x ) h_{\theta}(x) hθ(x)更接近于 y y y
代价函数:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
其中,m是训练样本的数量。我们的目标是 m i n i m i z e minimize minimize J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1)
得到 θ 0 , θ 1 \theta_{0}, \theta_{1} θ0,θ1的值。

1.4 梯度下降

梯度下降(Gradient descent)是一个用来求函数极小值的算法,将使用梯度下降算法来求出代价函数 J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1)的最小值。但当选择不同的初始参数组合,可能会找到不同的局部最小值。梯度下降算法的实现:
Repeat until convergence { θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( \left\{\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad(\right. {θj:=θjαθjJ(θ0,θ1)( for j = 0 j=0 j=0 and j = 1 ) } \left.j=1)\right\} j=1)}
其中, α \alpha α是学习率,用来控制梯度下降时的步长。若 α \alpha α很大,则说明梯度下降会很迅速;若 α \alpha α很小,则说明梯度下降会很缓慢。并且上式中 θ 0 , θ 1 \theta_{0}, \theta_{1} θ0,θ1需同时更新(Simultaneous update)。
在这里插入图片描述

对于上图来说,只有一个参数 θ 1 \theta_{1} θ1,当运行梯度下降接近局部最小值时,导数项 d d θ 1 J ( θ 1 ) \frac{d}{d \theta_{1}} J\left(\theta_{1}\right) dθ1dJ(θ1) 越小,步长 α \alpha α 会自动减小,直到到达最低点 ( α = 0 ) (\alpha=0) (α=0),不需要另外减小 α \alpha α

梯度下降的缺点:
1.只能知道导数方向,不知道与最优点的距离;
2.不能保证全局最优性。

1.5 线性回归的梯度下降

线性回归模型:
h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x
代价函数:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
梯度下降算法:
Repeat until convergence { θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( \left\{\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right)(\right. {θj:=θjαθjJ(θ0,θ1)( for j = 0 j=0 j=0 and j = 1 ) } \left.j=1)\right\} j=1)}

用梯度下降算法实现线性回归模型代价函数的最小化:
min ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \min _{\theta_{0}, \theta_{1}} J\left(\theta_{0}, \theta_{1}\right) θ0,θ1minJ(θ0,θ1)
推导可得 θ 0 , θ 1 \theta_{0}, \theta_{1} θ0,θ1 的更新公式:

∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) 2 \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right)=\frac{\partial}{\partial \theta_{j}} \frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}=\frac{\partial}{\partial \theta_{j}} \frac{1}{2 m} \sum_{i=1}^{m}\left(\theta_{0}+\theta_{1} x^{(i)}-y^{(i)}\right)^{2} θjJ(θ0,θ1)=θj2m1i=1m(hθ(x(i))y(i))2=θj2m1i=1m(θ0+θ1x(i)y(i))2

{ θ 0 j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) θ 1 j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) \left\{\begin{array}{ll} \theta_{0} \quad j=0: & \frac{\partial}{\partial \theta_{0}} J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \\ \theta_{1} \quad j=1: & \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x^{(i)}\end{array}\right. {θ0j=0:θ1j=1:θ0J(θ0,θ1)=m1i=1m(hθ(x(i))y(i))θ1J(θ0,θ1)=m1i=1m(hθ(x(i))y(i))x(i)

Repeat until convergence { θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) } \left\{\begin{array}{l}\theta_{0}:=\theta_{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \\ \theta_{1}:=\theta_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x^{(i)}\end{array}\right\} {θ0:=θ0αm1i=1m(hθ(x(i))y(i))θ1:=θ1αm1i=1m(hθ(x(i))y(i))x(i)}

二、多变量线性回归

2.1 多维特征

假设函数 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n = θ T X h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n}=\theta^{T} X hθ(x)=θ0+θ1x1+θ2x2++θnxn=θTX, 其中 n n n 是特征数量, θ \theta θ 是模型参数, x x x 是输入变量/特征, θ \theta θ x x x 都是 n + 1 n+1 n+1 维向量。
X = [ x 0 x 1 ⋯ x n ] θ = [ θ 0 θ 1 ⋯ θ n ] X=\left[\begin{array}{c} x_{0} \\ x_{1} \\ \cdots \\ x_{n} \end{array}\right] \quad \theta=\left[\begin{array}{c} \theta_{0} \\ \theta_{1} \\ \cdots \\ \theta_{n} \end{array}\right] X=x0x1xnθ=θ0θ1θn

2.2 多变量梯度下降

Hypothesis : 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}+\ldots+\theta_{n} x_{n} :hθ(x)=θTX=θ0+θ1x1+θ2x2++θnxn
Parameters : θ 0 , θ 1 , … , θ n : \theta_{0}, \theta_{1}, \ldots, \theta_{n} :θ0,θ1,,θn
Cost function: J ( θ ) = J ( θ 0 , θ 1 , … , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=J\left(\theta_{0}, \theta_{1}, \ldots, \theta_{n}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ)=J(θ0,θ1,,θn)=2m1i=1m(hθ(x(i))y(i))2
Gradient descent: Repeat { θ j : = θ j − α ∂ ∂ θ j J ( θ ) } \left\{\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta)\right\} {θj:=θjαθjJ(θ)}
New algorithm ( n ≥ 1 ) : (n \geq 1): (n1): Repeat { θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ) } \left\{\theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i))}\right\} {θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i))}

2.2.1 特征缩放

特征缩放(Feature scaling)是为了确保特征在一个相近的范围内, 使得算法更快收敛。可以使用均值归一化的方法实现特征缩放。
均值归一化:
x n = x n − μ n S n x_{n}=\frac{x_{n}-\mu_{n}}{S_{n}} xn=Snxnμn
其中, μ n \mu_{n} μn 是平均值, S n S_{n} Sn 是标准差。

2.2.2 学习率

在这里插入图片描述

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们可以通过绘制迭代次数和代价 函数的图来观察算法在何时趋于收敛。如果在一次迭代中, J ( θ ) J(\theta) J(θ) 的值小于 1 0 − 3 ε \frac{10^{-3}}{\varepsilon} ε103, 则可以说此次迭代是收敛的。 学习率 α \alpha α 的选择:
α \alpha α 太小收敛很慢;
α \alpha α 太大:每一次迭代中 J ( θ ) J(\theta) J(θ) 可能不总是下降的,可能会导致最后不收敛;
选择 α \alpha α 时, 可以尝试 … , 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1 , … \ldots, 0.001,0.003,0.01,0.03,0.1,0.3,1, \ldots ,0.001,0.003,0.01,0.03,0.1,0.3,1, 等值。

2.3 特征和多项式回归

多项式回归可以用线性回归的方法来拟合,非常复杂的函数,甚至是非线性函数都可以。
在这里插入图片描述

假设函数 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 = θ 0 + θ 1 ( h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}=\theta_{0}+\theta_{1}( hθ(x)=θ0+θ1x1+θ2x2+θ3x3=θ0+θ1( feature ) + θ 2 (  feature  ) 2 + θ 3 (  feature  ) 3 )+\theta_{2}(\text { feature })^{2}+ \theta_{3}(\text { feature })^{3} )+θ2( feature )2+θ3( feature )3 。其中, x 1 = ( x_{1}=( x1=( feature ) , x 2 = (  feature  ) 2 , x 3 = (  feature  ) 3 ), x_{2}=(\text { feature })^{2},x_{3}=(\text { feature })^{3} )x2=( feature )2x3=( feature )3

2.4 正规方程

正规方程(Normal Equation)是一种求 θ \theta θ 的解析解法, 它是通过求解方程 ∂ ∂ θ j J ( θ j ) = 0 \frac{\partial}{\partial \theta_{j}} J\left(\theta_{j}\right)=0 θjJ(θj)=0 来找出使 得代价函数最小的参数的 θ \theta θ 不需要进行特征缩放。 使用正规方程解出: θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy
θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy 的推导过程:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ)=2m1i=1m(hθ(x(i))y(i))2
将上式转化为矩阵表达形式:
J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) = 1 2 ( θ T X T − y T ) ( X θ − y ) = 1 2 ( θ T X T X θ − θ T X T y − ( y T X ) T − y T y ) \begin{aligned} J(\theta) &=\frac{1}{2}(X \theta-y)^{T}(X \theta-y)=\frac{1}{2}\left(\theta^{T} X^{T}-y^{T}\right)(X \theta-y) \\ &=\frac{1}{2}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} y-\left(y^{T} X\right)^{T}-y^{T} y\right) \end{aligned} J(θ)=21(Xθy)T(Xθy)=21(θTXTyT)(Xθy)=21(θTXTXθθTXTy(yTX)TyTy)

接下来对 J ( θ ) J(\theta) J(θ) 求偏导(提示: d A B d B = A T , d X T A X d X = 2 A X \frac{d A B}{d B}=A^{T}, \frac{d X^{T} A X}{d X}=2 A X dBdAB=AT,dXdXTAX=2AX )
∂ J ( θ ) ∂ θ = 1 2 ( 2 X T X θ − X T y − ( y T X ) T − 0 ) = 1 2 ( 2 X T X θ − X T y − X T y − 0 ) = X T X θ − X T y  令  ∂ J ( θ ) ∂ θ = 0 ,  则  θ = ( X T X ) − 1 X T y \begin{array}{c} \frac{\partial J(\theta)}{\partial \theta}=\frac{1}{2}\left(2 X^{T} X \theta-X^{T} y-\left(y^{T} X\right)^{T}-0\right) \\ =\frac{1}{2}\left(2 X^{T} X \theta-X^{T} y-X^{T} y-0\right) \\ =X^{T} X \theta-X^{T} y \\ \text { 令 } \frac{\partial J(\theta)}{\partial \theta}=0, \text { 则 } \theta=\left(X^{T} X\right)^{-1} X^{T} y \end{array} θJ(θ)=21(2XTXθXTy(yTX)T0)=21(2XTXθXTyXTy0)=XTXθXTy  θJ(θ)=0,  θ=(XTX)1XTy

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

梯度下降正规方程
需要选择 α \alpha α不需要选择 α \alpha α
需要多次迭代一次运算得出
当特征数量n大时也能较好适用需要计算 ( X T X ) − 1 \left(X^{T} X\right)^{-1} (XTX)1, 当特征数量n大时会很慢
适应于各种类型的模型只适用于线性模型,不适合Logisic回归等其他模型
  • 15
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值