机器学习之梯度下降算法

1何为梯度
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数 f ( x , y ) f(x,y) f(x,y), 分别对x,y求偏导数,求得的梯度向量就是 ( ∂ f / ∂ x , ∂ f / ∂ y ) T (∂f/∂x, ∂f/∂y)^T (f/x,f/y)T,简称 g r a d f ( x , y ) grad f(x,y) gradf(x,y)或者 ▽ f ( x , y ) ▽f(x,y) f(x,y)。对于在点(x0,y0)的具体梯度向量就是 ( ∂ f / ∂ x 0 , ∂ f / ∂ y 0 ) T (∂f/∂x0, ∂f/∂y0)^T (f/x0,f/y0)T.或者 ▽ f ( x 0 , y 0 ) ▽f(x0,y0) f(x0,y0),如果是3个参数的向量梯度,就是 ( ∂ f / ∂ x , ∂ f / ∂ y , ∂ f / ∂ z ) T (∂f/∂x, ∂f/∂y,∂f/∂z)^T (f/x,f/yf/z)T,以此类推。
2.梯度下降的相关概念

  1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

  2. 特征(feature):指的是样本中输入部分,比如2个单特征的样本( x 0 , y 0 x_0,y_0 x0,y0),( x 1 , y 1 x_1,y_1 x1,y1)( x 0 , y 0 x_0,y_0 x0,y0),( x 1 , y 1 x_1,y_1 x1,y1)则第一个样本特征为 x 0 x_0 x0,第一个样本输出为 y 0 y_0 y0

  3. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)hθ(x)。比如对于单个特征的m个样本( x i , y i x_i,y_i xiyi)( i = 1 , 2 , . . . m i=1,2,...m i=1,2,...m)( x i , y i x_i,y_i xiyi ( i = 1 , 2 , . . . m ) (i=1,2,...m) (i=1,2,...m),可以采用拟合函数如下: h θ ( x ) = θ 0 + θ 1 x h_θ(x)=θ_0+θ_1x hθ(x)=θ0+θ1x

  4. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本( x i , y i x_i,y_i xi,yi ( i = 1 , 2 , . . . m ) (i=1,2,...m) (i=1,2,...m) x i , y i x_i,y_i xi,yi)( i = 1 , 2 , . . . m i=1,2,...m i=1,2,...m),采用线性回归,损失函数为: J ( θ 0 , θ 1 ) = ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(θ_0,θ_1)=\sum_{i=1}^m{(h_θ(x_i)−y_i)}^2 J(θ0,θ1)=i=1m(hθ(xi)yi)2

其中 x i x_i xi表示第 i i i个样本特征, y i y_i yi表示第 i i i个样本对应的输出, h θ ( x i ) h_θ(xi) hθ(xi)为假设函数。

  • 简单举例实现梯度下降( J ( w ) = w 2 + 2 w + 1 J_{(w)}=w^2+2w+1 J(w)=w2+2w+1
 def  J(w):
        return w**2+2*w+1
J(1)
 def  G(w):
        return 2*w+2
G(1)
 epoch = 10
 alpha = 0.1
 w = 1
 epoch = 10
    a =  0.1
    w = 1
    for i in range (epoch):
        w =  w-a*G(w)
        print (w)

计算结果:

在这里插入图片描述
迭代次数越多就会越接近最小值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值