本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。
梯度下降算法是机器学习、深度学习中更新模型参数最常用的算法,从公式上看,比较简单,只需要设定更新步长和计算一阶导数即可,但十分好用,其具体公式为:
梯度下降的任务是根据给定的训练数据来学习分布,具体分布情况主要通过更新权重参数w来表示。为了使权重参数更好的表达真实分布,需要让损失函数值不断变小,即让真实标签与预测标签差距最小。
梯度下降推导
大学高数中,都学过泰勒展开式,它是对某可导函数通过各阶导数的组合近似表示该邻域的函数值的数学表达式。表达式如下:
具体不做介绍,根据泰勒余项趋近0,可以舍弃,将上式化简为:
有了泰勒展开,带入损失函数得到:
其中,为参数向量的前进方向,结果也为参数向量,设单位向量,标量,得:
替换原式,向左移动得到:
我们的目标就是让损失函数的值随着模型参数的更新不断变小,即:
两向量的点积可以用模和夹角带代替,标量不变:
为让上式最小,,即认为两向量方向相反,乘积最小,梯度下降最快,;又由于是单位向量,所以:
至此,解出。带入之前的参数更新公式:
由于和模都为标量,化简为: