吴恩达《cs229-机器学习》:1、梯度下降法与一元线性回归

1. 泰勒级数的一阶展开

  泰勒级数(Taylor series)用级数来表示一个函数,这些相加的项由函数在某一点的导数求得。泰勒级数是以于1715年发表了泰勒公式的英国数学家布鲁克·泰勒(Sir Brook Taylor)的名字来命名的,在近似计算中有重要作用。
【定义】 如果函数 f ( x ) f(x) f(x)在点 x = x 0 x=x_0 x=x0具有任意阶导数,则可以得到 f ( x ) f(x) f(x) x 0 x_0 x0点的泰勒级数为
f ( x ) = ∑ n = 0 ∞ f ( n ) ( x 0 ) n ! ( x − x 0 ) n = f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ( x − x 0 ) 2 + ⋯ + f ( n ) ( x 0 ) n ! ( x − x 0 ) n + ⋯ \begin{aligned} f(x)&=\sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n\\ &=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2}(x-x_0)^2+\cdots+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+\cdots \end{aligned} f(x)=n=0n!f(n)(x0)(xx0)n=f(x0)+f(x0)(xx0)+2f(x0)(xx0)2++n!f(n)(x0)(xx0)n+显然,如果 x x x非常接近 x 0 x_0 x0,即 x − x 0 x-x_0 xx0很小时,我们可以用泰勒级数的一阶展开来近似表示 f ( x ) f(x) f(x),即
f ( x ) ≈ f ( x 0 ) + f ′ ( x 0 ) ( x − x 0 ) . f(x)\approx f(x_0)+f'(x_0)(x-x_0). f(x)f(x0)+f(x0)(xx0).

2. 梯度下降法

(1)问题描述

对于某函数: J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)
希望: min ⁡ θ 0 , θ 1 J ( θ 0 , θ 1 ) \min \limits_{\theta_0,\theta_1}J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)
步骤:

  • 从某个 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1的初值开始(例如 θ 0 = 0 \theta_0=0 θ0=0 θ 1 = 0 \theta_1=0 θ1=0);
  • 持续改变 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1来减小 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1),直到得到我们希望的最小值。

(2)梯度下降算法

重复直至收敛 { \{ {
θ 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 ({\rm for}\ j=0\ {\rm and}\ j=1) θj:=θjαθjJ(θ0,θ1)(for j=0 and j=1)
} \} }


正确的方法:同时更新
temp0 : = θ 0 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) :=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) :=θ0αθjJ(θ0,θ1)
temp1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) :=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) :=θ1αθjJ(θ0,θ1)
θ 0 : = \theta_0:= θ0:=temp0
θ 1 : = \theta_1:= θ1:=temp1


不正确的方法:分别更新
temp0 : = θ 0 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) :=\theta_0-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) :=θ0αθjJ(θ0,θ1)
θ 0 : = \theta_0:= θ0:=temp0
temp1 : = θ 1 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) :=\theta_1-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1) :=θ1αθjJ(θ0,θ1)
θ 1 : = \theta_1:= θ1:=temp1


  • α \alpha α:学习速率,更新参数的幅度大小

3. 梯度下降线性回归

  对于一元线性回归问题,有

h θ ( x ) = θ 0 + θ 1 x J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] 2 \begin{aligned} h_{\theta}(x)&=\theta_0+\theta_1x\\ J(\theta_0,\theta_1)&=\frac{1}{2m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]^2 \end{aligned} hθ(x)J(θ0,θ1)=θ0+θ1x=2m1i=1m[hθ(x(i))y(i)]2


对代价函数求偏导,可以得到
∂ ∂ θ 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 ) \begin{aligned} \frac{\partial}{\partial \theta_0}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]\\ \frac{\partial}{\partial \theta_1}J(\theta_0,\theta_1)&=\frac{1}{m}\sum_{i=1}^m[h_{\theta}(x^{(i)})-y^{(i)}]x^{(i)}\end{aligned} θ0J(θ0,θ1)θ1J(θ0,θ1)=m1i=1m[hθ(x(i))y(i)]=m1i=1m[hθ(x(i))y(i)]x(i)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值