梯度下降原理及Python实现

本文介绍了梯度下降算法的基本概念,并通过一个具体的线性回归问题,使用Python实现了梯度下降算法。通过实例展示了如何求解最优参数,使模型能够对新样本进行准确预测。

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

版权声明:本文为原创文章:http://blog.csdn.net/programmer_wei/article/details/51941358

梯度下降算法是一个很基本的算法,在机器学习和优化中有着非常重要的作用,本文首先介绍了梯度下降的基本概念,然后使用python实现了一个基本的梯度下降算法。梯度下降有很多的变种,本文只介绍最基础的梯度下降,也就是批梯度下降。


实际应用例子就不详细说了,网上关于梯度下降的应用例子很多,最多的就是NG课上的预测房价例子:
假设有一个房屋销售的数据如下:

面积(m^2) 销售价钱(万元)

面积(m^2) 销售价钱(万元)
123 250
150 320
87 180

根据上面的房价我们可以做这样一个图:

这里写图片描述

于是我们的目标就是去拟合这个图,使得新的样本数据进来以后我们可以方便进行预测:
这里写图片描述

对于最基本的线性回归问题,公式如下:
这里写图片描述
x是自变量,比如说房子面积。θ是权重参数,也就是我们需要去梯度下降求解的具体值。

在这儿,我们需要引入损失函数(Loss function 或者叫 cost function),目的是为了在梯度下降时用来衡量我们更新后的参数是否是向着正确的方向前进,如图损失函数(m表示训练集样本数量):
这里写图片描述
下图直观显示了我们梯度下降的方向,就是希望从最高处一直下降到最低出:
这里写图片描述

梯度下降更新权重参数的过程中我们需要对损失函数求偏导数:
这里写图片描述
求完偏导数以后就可以进行参数更新了:
这里写图片描述
伪代码如图所示:
这里写图片描述

好了,下面到了代码实现环节,我们用Python来实现一个梯度下降算法,求解:

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值