什么是梯度下降呢?
梯度下降是一种参数优化的方法,他的使用对象是一个函数,如果函数是凸的,且不考虑计算资源的耗费,是可以得到最优解的。如果函数非凸,则要多次随机初始化参数,防止陷入局部最优解。
除了梯度下降,还有什么找函数最优解的方法吗?
1.最小二乘法 -> 获得解析解 。 这种方法在数据集比较小的时候用,当数据集大的时候用其他的方法,因为数据集大的时候对矩阵求逆 耗费时间。
2.牛顿法 : 少数几次迭代就能得到不错的解,但是 一次迭代时所花时间较多。因为 要对 海森矩阵求逆要花很多时间。
3.拟牛顿法 :与牛顿法的不同 ( 不能求得矩阵的逆 ,因此求 伪逆)
如何使用梯度下降法呢?
首先,要有优化目标: 在机器学习中,我们常说的优化目标 称之为 损失函数。
其次,对损失函数求导,要用到微积分的知识。
最后,更新参数, 这里套用了一个固定的公式。
这是梯度下降的简单形式,直观上明白梯度下降是在做什么:
这是一般的梯度下降公式的推导:
这是矩阵形式的推导,看起来较为简洁: