Python机器学习 梯度下降法

大家可以参看这篇文章,我认为是全网讲得最好的

https://www.jianshu.com/p/c7e642877b0e

这里进行一下补充:

梯度其实就是梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率,

而在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向

梯度上升就是梯度,梯度下降则是梯度的反方向

寻找山谷的最低点,也就是我们的目标函数终点(什么样的参数能使得目标函数达到极值点)

那么下山分几步走呢?(更新参数)

1):找到当前最合适的方向(求单变量求导,多变量求偏导)

2):走那么ー小步,走快了该"跌倒"了(根据学习率设置梯度速度)

(3):按照方向与步伐去更新我们的参数

梯度下降,目标函数:

批量梯度下降:

容易得到最优解,但是由于毎次考虑所有样本,速度很慢

随机梯度下降:

每次找—个样本,迭代速度快,但不一定每次都朝着收敛的方向

小批量梯度下降法:

每次更新选择一小部分数据来算,实用!

猜你喜欢

转载自blog.csdn.net/qq_41686130/article/details/86729907