从导数到梯度下降算法

梯度下降是机器学习中寻找极值点的基础算法,它的思想也很简单。想象你站在山巅,山脉的起伏就带代表着,想要到达山谷的办法就是寻找下山最陡峭的地方,沿着这条路向下走,直到无法再向下。

在介绍梯度下降算法前,我们先直到什么是梯度,而梯度我们又应该先知道什么是导数
1.导数

这是导数的标准定义,导数表示变量在指定位置的变化程度,变化快慢
导数是高中就学习过的知识,也是微积分中重要的微分。导数的大小代表了函数的平缓或陡峭。

2.偏导数

当我们把函数扩展到N维欧氏空间,变量的增多催生了偏导数的概念,偏导数表示函数在某一个轴上的变换快慢。

3.方向导数

偏导数只能表示了函数在某一轴方向上的变化快慢,那考虑n维空间中的某一方向的变化快慢,就引入了方向导数的概念。
方向导数是一个数,它反映的就是f在l方向上的变化率。
考虑2维空间的方向函数推导



4.梯度

方向导数表示了函数在某一个方向的变换快慢,那我们想在n维空间中找到函数在哪个方向的变化最多怎么办?
为了解决这个问题引入了梯度概念。

梯度表示函数在变量空间的某一处,沿着哪个方向的变化率最大。

考虑2维空间

总结一下:
1.梯度是一个向量,即有方向,有大小
2.梯度的方向驶最大方向导数的方向
3.梯度的大小是最大方向导数的值

5.梯度下降算法
很容易联想,既然我们有了梯度,就有了在数据集中解决寻找极值点的办法。

我们需要的就是随机生成在函数上的一个点,然后寻找这个点在某个方向上的梯度方向,每次沿着梯度方向的反方向进行更新,知道这个点收敛。

这是我们一直函数方程的办法,但事实上我们不可能根据完全模拟出函数的方程,如果可以的话,我们也就不需要这么麻烦的办法去找极值了。我们可以采用求导的办法去寻找极值点。

考虑,我们对数据集的拟合方程为:

我们定义损失函数为:

因此有


前面提到梯度下降算法的更新为

由上面两式可以得到,针对离散点击的更新规则为


考虑把求和公式拿到外面


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值