目录
1. 前言
2.梯度下降法
3.牛顿法
1. 前言
在机器学习与深度学习领域中,通常需要构建模型来进行预测,而损失函数则是代表着当前模型输出的结果与真实结果之间差距的一种量化。由此可知,损失函数越小,模型训练的也就越好。梯度下降法与牛顿法是优化模型,减少损失函数值的两种基本方法,同时两者的本质都是迭代。损失函数通常会有被很多参数制约,在本文中使用
来进行表示和推理(X为向量,可以包含多个权重
和偏差
),当然我们的最终目的是为了求出这些权重
和偏差
。
2.梯度下降法
简单概述一下:依据梯度(一阶导数)和步长,在损失函数曲线上一点点挪动,直到到达损失函数的最小值,此时的
就是我们想要的结果。
具体原理:
泰勒公式一阶展开:
其中
代表此时损失函数的值,
代表下一时刻损失函数的值。两个值之间的偏差为
,偏差理应为负。其中
过小省略掉,
是
处的一阶偏导,
通常是学习率与单位步长的乘积,学习率与单位步长均属于已知信息。
=一阶偏导×学习率
×单位步长方向由
可推导
,依次迭代直到某一时刻
达到最优值,即损失函数的步长往哪个方向挪动,损失函数值都不会减少,此时的
就是模型的最好参数了。
优缺点:
优点:适合特征数较多的场合,如图像分类,语义分割、时间复杂度较低。
缺点:越接近最优值时,学习率应当不断减小,否则损失函数值会在最优值附近来回震荡、需要多次选择单位步长的方向。
3.牛顿法
简单概述一下:是通过求解损失函数的一阶导数为0时的参数(需要二阶导数信息),进而求出损失函数最小值时的参数。
具体原理:
同样的,泰勒公式二阶展开:
其中
代表此时损失函数的值,
代表下一时刻损失函数的值。两个值之间的偏差为
,偏差理应为负。其中
是
处的一阶偏导,
是
处的二阶偏导(海瑟矩阵),
取值不同于梯度下降法的人为设置,而是通过计算求解,求解如下: 对
求导,使其为0:
同样进行迭代,由
可推导
,依次迭代直到某一时刻
达到最优值,即损失函数达到最小值,此时的
就是模型的最好参数了。
优缺点:
优点:收敛快,迭代次数少,无需人为设参。
缺点:不适合特征数较多的环境,对海瑟矩阵求逆时间复杂度高。