梯度下降法,是迭代算法。
在求最值时,常常用到。
BP网络中,最小化 误差cost function,求解对应网络中的weights,即可用梯度下降法来更新weights.
梯度下降法基本思想:
给定一个函数 f ,假设求 f 最大值(最小值)。初始化函数上的一个点,对该点求导,该点往导数的方向(反方向)移动。直到梯度向量的幅值接近0。迭代公式:
其中, 是梯度的方向,
表示梯度方向上搜索步长。步长太大可能造成结果发散不收敛,步长小的话,收敛速度可能会很慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标看做是ak+1的函数,然后求满足f(ak+1)的最小值的
即可。
函数凹凸性:
当目标函数f 是凸函数时,梯度下降法能求出全局最优解
当f 不是凸函数时,可以将f 近似转化为凸函数
牛顿法,比梯度下降法在求解中需要迭代的次数更少。
牛顿法是二阶收敛,而梯度下降法是一阶收敛。
待续。。。