第一讲 梯度下降

1.     梯度下降

在学习神经网络与机器学习之前,不得不先了解一种迭代方法,那就是梯度下降法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。

在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。这些都会在后面讲解。

2.     梯度下降小述

在学习微积分时,对于一个多元函数,当对其中各个元求偏导数,再把求得的偏导数以向量的形式表示出来,这个向量就是梯度。比如一个具有x和y的函数的两元函数,假设z代表高度,x,y分别代表两个方向,那么就是的梯度,简称为 或者 。那么在点 处的梯度就是

在点 处的梯度具有什么意义呢?简单的来说,这个梯度就是在点处变化最快的方向。

3.     梯度下降算法详解

下面就通过图解梯度下降和详细的数学表示两方面来讲解梯度下降。

3.1    图解梯度下降

如下图1.1所示,当我们选定初始点时,我们通过计算这一点的梯度,来找到下降最快的方向,从而得到新的点,此处的“+”号,并不是代表相加得到,而是代表“更快”的得到最小值。通过迭代,最终找到点,当前点即是最小值点。


图1.1 梯度下降

 

3.2    梯度下降的几个概念

在详细的讲解梯度下降算法以前,有必要先了解几个有关的概念。

1.     步长:步长是指每一次迭代过程后,算法下降的长度。用一个比较典型的例子,假设我们在下山,步长就是在我们确定了最陡的方向后,迈出的那一步的距离。

2.     假设函数:假设函数可认为我们在监督学习中,针对输入的m个样本  ,所要拟合的函数,可认为是最重要得到的那个函数。

3.     损失函数:损失函数是为了衡量拟合程度的好与坏,所以通常损失函数为

3.3  梯度下降法的代数表示

梯度下降法有代数法和矩阵法两种表示方法,本文着重对代数法进行讲解。矩阵法表示可参考网络中其他资源。

1.     代数法的假设函数和代价函数

代数法表示梯度下降之前,要明确两个函数,分别是假设函数和代价函数。

假设函数实际上是我们最终所想得到的函数(回归)。对于线性回归来说,假设函数表示为,其中 为模型参数,也是我们最终所要训练得到的参数。 是每个样本的特征序列。如果假设 ,假设函数可以简化为

对于上述假设函数,我们的损失函数为 ,不难看出,我们是基于最小二乘损失来定义的损失函数,

2.     参数的初始化

所有的参数采用随机初始化。

具体为什么,等到后面讲解多层感知器反向传播的时候,大家就明白了。

3.     梯度下降的算法过程

假设我们有样本集,,...,,损失函数为,对于每个参数 的偏导数如下:

 

上式中,所有的 为1.

 的更新表达式如下:

上式很重要,后面讲解神经网络时,会发现反向传播的根本理论即源于此。

猜你喜欢

转载自blog.csdn.net/tecsai/article/details/79452262