《深度学习》—— 神经网络模型中的损失函数及正则化惩罚和梯度下降
文章目录
- 前言
- 一、损失函数
- 二、正则化惩罚
- 三、梯度下降
前言
- 在神经网络中,损失函数、正则化惩罚和梯度下降是三个关键的概念,它们共同作用于网络的训练过程,以提升网络的性能和泛化能力。
- 神经网络模型结构如下图所示:
- 在构建好一个神经网络模型后,为了让模型得出的结果更加的准确,那么必须对模进行训练,找到最接近真实结果的模型
- 定义损失函数用来判断模型预测的结果和真实值的误差,在对损失函数添加正则化惩罚项,提高对输入数据的拟合效果,达到好的泛化能力
- 为了达到最小的误差值,需要运用梯度下降的方法来找到模型中最优的权重参数
一、损失函数
- 损失函数是用来评估神经网络预测值与实际值之间差异的函数。通过最小化损失函数的值,网络可以学习到如何更好地进行预测。不同类型的任务需要不同类型的损失函数,常见的损失函数包括:
- 交叉熵损失函数
- 均方差损失函数
- 0-1损失函数
- 平均绝对差损失函数
- 合页损失函数
- 示例:多分类的情况下,如何计算损失值呢?
- softmax交叉熵损失函数多用于实现分类问题,用于多分类公式如下:
- yi表示第 i 个预测的结果值
- 下面是猫、狗、羊的照片,标签分别为0、1、2
- 如果我们传入猫的照片进行训练,训练过程如下图所示:
- 首先先对训练后的各目标结果进行e的指数倍放大
- 再将其值进行归一化,得到各个结果的概率
- 最后通过损失函数计算出每个标签结果上的损失值
- 由于我们输入的是猫的照片进行训练,所以只需要关注第一个输出神经元的结果,如果损失值越小,说明越靠近真实结果,模型的效果也就越好
- softmax交叉熵损失函数多用于实现分类问题,用于多分类公式如下:
二、正则化惩罚
-
正则化是一种减少过拟合的技术,它通过向损失函数中添加一个正则化项来实现。正则化项通常是对模型参数(如权重)的某种形式的惩罚,旨在限制模型的复杂度,从而提高其泛化能力。常见的正则化方法包括:
-
L1正则化:向损失函数中添加权重绝对值的和作为惩罚项。L1正则化有助于产生稀疏的权重矩阵,即许多权重为零,这有助于模型的解释性,并可能减少计算量。
-
公式如下:
-
L2正则化:向损失函数中添加权重平方和的一半作为惩罚项。L2正则化有助于减小权重的值,从而防止模型过于复杂,避免过拟合。
-
公式如下:
- 各参数的含义与L1正则化中的相同
-
-
下面通过一个实例来说明为什么要增加正则化惩罚:
- w1和w2与输入的乘积都为1,但w2 与每一个输入数据进行计算后都有数据,使得w2会学习到每一个特征信息。
- 而w1只和第1个输入信息有关系,容易出现过拟合现象,因此w2的效果会比w1 好
- 因此需要引入正则化惩罚项来避免第一种权重值的情况
三、梯度下降
- 损失函数具有良好的梯度信息,使得优化算法(如梯度下降)能够有效地更新模型参数
- 在神经网络中,我们希望通过调整网络参数(如权重和偏置)来降低损失函数的值。梯度下降算法通过计算损失函数关于网络参数的梯度,并沿着梯度的反方向更新参数,从而逐步逼近损失函数的最小值。
- 具体步骤如下:
- 1.计算梯度:首先,需要计算损失函数关于每个参数的梯度。这通常通过反向传播算法(Backpropagation)来实现,该算法从网络的输出层开始,逐层计算梯度,直到到达输入层。
- 2.更新参数:然后,使用计算得到的梯度来更新网络的参数。更新规则通常遵循以下形式:
- 3.重复迭代:不断重复上述步骤,直到满足某个停止条件(如达到最大迭代次数、损失函数值低于某个阈值或梯度接近于零)
- 用下图来解释梯度下降的过程:
- 参数取不同的初始值,可能会得到不同的最小损失值,但是每个初始的参数只是得到了此模型局部的最小损失值
- 就好像当你处在一个谷底时,只会认为此时的位置是最低的,但并不知道其他的低谷处还有更低的位置
- 梯度下降就是通过不断地寻找梯度方向和计算得到不同的损失值,直到找到最优和满足条件的值为止