【深度学习原理】如何利用梯度下降法,寻找损失函数最小值?

梯度下降(Gradient Descent)是用于寻找函数最小值的一种优化算法。我们常常利用梯度下降法来使损失函数Loss function的值尽可能小,即让神经网络的预测值(实际输出)和标签值(预期的输出)尽可能接近。在这个过程中,网络参数——各层的权值与偏重将得到调整,这也正是神经网络的训练原理。可见熟悉梯度下降的原理对于理解神经网络相当重要。
本文将从损失函数概念、梯度下降原理 & 为什么沿梯度负方向函数值下降最快、梯度更新公式三个方面展开。

一、什么是损失函数(Loss function)?

损失函数通常为多元函数,其自变量包括网络中包含的所有的权重w、以及所有的偏置b,有的地方也将其称作代价函数(Cost function),这里只介绍均方误差损失函数(MSE):
L o s s F u n c t i o n = ∑ j = 1 m ∥ y ⃗ j p r e d i c t − y ⃗ j l a b e l ∥ 2 2 m LossFunction = \sum_{j=1}^{m} \frac{\Vert \vec y_{j_{predict}}- \vec y_{j_{label}} \Vert ^2}{2m} LossFunction=j=1m2my jpredicty jlabel2

  1. 分子是预测向量(实际输出)与标签向量(期望输出)之差的二范数的平方,即两个向量中对应元素之差的平方和,是一个标量;
  2. j 次求和再除以m,代表对 j 个输入向量得到的 j 个二范数平方项求均值;
  3. 分母上的2主要是为了在对二范数的平方项求导时,消去系数,简化形式。

损失函数的值减小,意味着神经网络的预测值(实际输出)和标签值(预期的输出)越接近。

二、梯度下降求解损失函数最小值

2.1 什么是梯度?

多元函数的梯度类似于一元函数导数:对多元函数各变量依次求一阶偏导,然后将各偏导值组合成一个一维列向量,就得到了该多元函数梯度。损失函数通常为多元函数,其梯度如下:
∇ L ( w 11 2 , w 12 2 , ⋯   , w k j l , b 1 2 , b 2 2 , ⋯   , b k l ) \nabla L(w^2_ {11},w^2_ {12},\cdots,w^l_ {kj},b^2_ {1},b^2_ {2},\cdots,b^l_ {k}) L(w112,w122,,wkjl,b12,b22,,bkl)

= ( ∂ L ∂ w 11 2 , ∂ L ∂ w 12 2 , ⋯   , ∂ L ∂ w k j l , ∂ L ∂ b 1 2 , ∂ L ∂ b 2 2 , ⋯   , ∂ L ∂ b k l ) T = (\frac{\partial L}{\partial w^2_ {11}},\frac{\partial L}{\partial w^2_ {12}},\cdots,\frac{\partial L}{\partial w^l_ {kj}},\frac{\partial L}{\partial b^2_ {1}},\frac{\partial L}{\partial b^2_ {2}},\cdots,\frac{\partial L}{\partial b^l_ {k}})^T =(w112L,w122L,,wkjlL,b12L,b22L,,bklL)T

对于神经网络结构 & 符号约定有疑惑的可以参考我的这篇文章——【深度学习原理】神经网络结构 & 符号约定

2.2 为什么损失函数的函数值,沿梯度的负方向下降最快?

梯度的负方向:因为梯度是一个向量,具有方向性。这里的下降是指损失函数值的减小。
那么为什么沿梯度的负方向损失函数值减小最快呢?这里主要利用多元函数的一阶泰勒展开(一阶形式还是比较简单的)和向量点积公式来证明:
《【深度学习原理】如何利用梯度下降法,寻找损失函数最小值?》

三、权重 & 偏置的梯度更新公式

《【深度学习原理】如何利用梯度下降法,寻找损失函数最小值?》
这里只给出了第 l l l层的网络参数——权重(矩阵)与偏置(向量)的梯度下降更新公式,其他层梯度更新公式同理可得,对符号有疑惑的请参考:【深度学习原理】神经网络结构 & 符号约定

后记、如何求解梯度更新公式中的梯度?

有了梯度更新公式,其中损失函数对各参数的梯度又该如何求解呢?事实上由于神经网络中参数(权重W和偏置b)通常较多,要想直接求解损失函数对这些参数的梯度,难度极大,所以在实际训练网络时,我们通常采用反向误差传播,即BP算法,巧妙地利用预测值与标签值的残差,从输出层到输入层反向地求解出损失函数对各层网络参数的梯度。

为避免文章过于冗长,本文跳过了神经网络基本结构,损失函数、激活函数的具体形式及其优劣,梯度下降的变种算法,以及优化梯度求解的BP反向误差传播算法等问题,相关内容我会在后续的学习中逐步更新,欢迎关注~

    原文作者:hennyxu
    原文地址: https://blog.csdn.net/hennyxu/article/details/103173168
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞