您的位置:首页 > 娱乐 > 八卦 > pytorch学习(十):损失函数与反向传播

pytorch学习(十):损失函数与反向传播

2024/12/23 7:01:02 来源:https://blog.csdn.net/weixin_52307528/article/details/140903595  浏览:    关键词:pytorch学习(十):损失函数与反向传播

损失函数(Loss Function)

损失函数是衡量模型预测值与真实值之间差异的一个函数。在训练神经网络时,我们的目标是找到一组参数(如权重和偏置),使得模型的预测尽可能接近真实值,即最小化损失函数的值。不同的学习任务会使用不同的损失函数。

常见的损失函数包括:

均方误差(MSE)

均方误差用于回归问题,衡量的是模型预测值与真实值之间差异的平方的平均值。其公式为:

其中:

  • n 是样本数量。
  • yi​ 是第 i 个样本的真实值。
  • y^​i​ 是第 i 个样本的预测值。

MSE 的值越小,表示模型的预测越准确。

交叉熵损失(Cross-Entropy Loss)

交叉熵损失主要用于分类问题,特别是多分类问题。它衡量的是两个概率分布之间的差异。在二分类问题中,其公式可以简化为:

在多分类问题中,通常与 softmax 函数结合使用,其公式为:

其中:

  • n 是样本数量。
  • M 是类别数量。
  • yic​ 是一个二值指标(0 或 1),如果样本 i 的真实类别是 c 则为 1,否则为 0。
  • y^​ic​ 是观测样本 i 属于类别 c 的预测概率。

注意,在多分类问题的公式中,每个样本 i 都有一个对应的概率分布 y^​i​,其中包含样本 i 属于每个类别 c 的预测概率 y^​ic​。

交叉熵损失的值越小,表示模型的预测概率分布与真实类别分布越接近。

pytorch常用的损失函数:

nn.L1loss:

nn.MESloss : 

nn.CrossEntropyLoss

反向传播(Backpropagation)

反向传播是一种用于训练神经网络的算法,特别是用于计算梯度下降中的梯度。它利用链式法则(Chain Rule)来计算损失函数相对于网络中每个权重的梯度,然后使用这些梯度来更新权重,以减少损失函数的值。

反向传播的基本步骤包括:
  1. 前向传播:输入数据通过网络进行前向传播,计算每一层的输出,直到得到最终输出(预测值)。

  2. 计算损失:使用损失函数计算预测值与真实值之间的差异。

  3. 反向传播

    • 计算损失函数关于网络输出的梯度。
    • 使用链式法则逐层反向计算损失函数关于每一层参数的梯度。
    • 更新每一层的参数(权重和偏置),通常使用梯度下降或更先进的优化算法(如Adam、RMSprop等)。
  4. 迭代:重复上述过程,直到满足停止条件(如损失函数值小于某个阈值、迭代次数达到上限等)。

反向传播算法是神经网络训练的关键,它使得神经网络能够通过学习自动调整其内部参数,以更好地完成任务。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com