首页 > 编程知识 正文

神经网络拟合多元函数(神经网络交叉熵损失函数)

时间:2023-05-03 11:55:34 阅读:92166 作者:3041

不同的损失函数可以用于不同的目标。 本文介绍几个例子中非常常用的损失函数。 本文中提到的一些参数属于tensorflow或keras实现的细节。

损失函数的简要介绍

损失函数有助于优化神经网络的参数。 我们的目标是通过优化神经网络的参数(权重)将神经网络的损失降到最小。 用神经网络将目标(实际)值和预测值匹配,经过损失函数可以计算出损失。 然后,采用梯度下降法优化网络权重,使损失最小化。 这就是我们训练神经网络的方法。

均方根误差

mldxtg执行回归任务时,可以选择此损失函数。 kkdhy,这个损失是通过计算实际(目标)值和预测值之间的平方误差的平均值来计算的。

例如,有一个神经网络,可以获取房屋的相关数据并预测价格。 在这种情况下,可以使用MSE (均方根误差)损失。 基本上,如果输出是实数,则使用此损耗函数。

二元交叉熵

如果mldxtg执行二元分类任务,则可以选择此损失函数。 使用二元交叉熵(BCE )损失函数,可以在一个输出节点中将数据分为两类。 必须使用sigmoid激活函数,以便输出值在[0-1]的范围内。

例如,有获取大气相关数据,预测是否会下雨的神经网络。 如果输出大于0.5,网络将其分类为下雨; 输出小于0.5时,网络分类为不下雨。 也就是说,概率得分值越大,下雨的机会越大。

在训练网络时,如果标签下雨,输入网络的目标值必须是1,否则为0。

重要的是,在使用BCE损耗函数时,节点的输出介于(0-1)之间。 这意味着最终输出必须使用sigmoid激活函数。 因为sigmoid函数可以将任意实数值转换为(01 )的范围。 (即输出概率值)

如果不想显示在最后一个层中使用sigmoid激活函数,可以通过将from logits设置为true作为损耗函数的参数,在内部调用sigmoid函数以将其应用于输出值。

多分类交叉熵

如果mldxtg执行多种分类任务,则可以选择此损失函数。 在使用多分类交叉熵(CCE )损耗函数的情况下,输出节点的数量必须与这些类相同。 最后一层的输出必须使用softmax激活函数,以便每个节点输出[0-1]之间的概率值。

例如,有读取图像并分类为猫和狗的神经网络。 如果猫节点高概率得分,则将图像分类为猫,否则分类为狗。 基本上,如果某个类别节点以最高概率获得分数,则所有图像都会被分类到该类别中。

为了在训练时提供目标值,需要进行一次热编码。 如果图像是猫,则目标向量为1,0;如果图像是狗,则目标向量为0,1。 基本上,目标向量的大小与类的数量相同,与实际类相对应的索引位置为1,其他位置均为零。

如果不想在最后一个级别显示softmax激活函数的使用,请将from logits设置为true,以便在内部调用softmax函数并将其应用于输出值。 和上述情况一样。

稀疏分类交叉熵

该损失函数与多分类交叉熵基本相同,但有很小的变化。

使用稀疏多分类交叉熵(SCCE )损失函数时,不需要one-hot形式的目标向量。 例如,如果对象图像是猫,则只需要传递0,否则只需要传递1。 基本上,任何类都只需要传递该类的索引。

这些是最重要的损失函数。 训练神经网络时,可能会使用这些损失函数之一。

以下链接是Keras中所有可用丢失函数的源代码。

653https://Github.com/Keras-Team/Keras/Blob/c 658993 CF 596 FBD 39CF 800873 BC 457 E69 CFB0CDB/Keras /后端/Numpy _ Back

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。