任务描述
本关任务:通过学习梯度下降法的相关知识,编写一个计算指定函数取得极值时对应的x的值的程序。
相关知识
为了完成本关任务,你需要掌握:
- 优化算法概述;
- 梯度下降法;
- 梯度消失。
优化算法概述
优化算法的作用是通过不断改进模型中的参数使得模型的损失最小或准确度更高。在神经网络中,训练的模型参数主要是内部参数,包括权值(W)和偏置(B) 。
模型的内部参数在有效训练模型和产生准确结果方面起着非常重要的作用。常见的优化算法分为两类。
- 一阶优化算法。
该算法使用参数的梯度值来最小化损失值。最常用的一阶优化算法是梯度下降。函数梯度可以采用导数dxdy的多变量表达式进行表达,用于表示 y 相对于 x 的瞬时变化率 。 通常为了计算多变量函数的导数,用梯度代替导数,并使用导数来计算梯度 。 - 二阶优化算法。
二阶优化算法使用二阶导数(也称为Hessian
方法)来最小化损失值,以Newton
法和Quasi-Newton
法为代表的二阶优化算法目前最大的困难在于计算复杂度 , 正是由于二阶导数的计算成本较高,因此该方法未得到广泛应用。
梯度下降法
梯度下降法( Gradient Descent
)是机器学习中最常用的优化方法,常常用于求解目标函数的极值。梯度是一个向量,表示函数在该点处的方向导数沿着该方向取得最大值,