0
点赞
收藏
分享

微信扫一扫

数据分析-神经网络-损失函数

目录

前言

均方误差(MSE)

平均绝对误差(MAE)

二元交叉熵

(tf.keras.losses.binary_crossentropy)

多分类交叉熵

(tf.keras.losses.categorical_crossentropy)

稀疏多分类交叉熵

(tf.keras.losses.sparse_categorical_crossentropy)


前言

损失函数就是神经网络每次迭代的前向计算表达式与真实值的差,是神经网络优化的基础,神经网络模型据此调整权重和bias,使得神经网络模型的输出值向真实值靠近。

  1. 用随机值初始化权重和bias;
  2. 输入样本,模型输出的预测值;
  3. 用损失函数计算预测值和真实值的差;
  4. 对损失函数求导(对权重和bias),沿梯度最大方向将误差回传,修正权重与bias;
  5. goto 2, 直到损失函数值足够小或到迭代次数上限。

均方误差(MSE)

神经网络做回归时,可以选择均方误差作为损失函数(真实值和预测值的平方差的平均值)。

可以认为模型输出为实数时,可使用此损失函数。输出层不使用激活函数。

平均绝对误差(MAE)

神经网络做回归时,除了可以选择均方误差作为损失函数,也可以使用MAE(真实值和预测值差的绝对值的平均值)。

同样模型输出为实数时,可使用此损失函数。

输出层不使用激活函数。

二元交叉熵

(tf.keras.losses.binary_crossentropy

神经网络用于二元分类任务时,输出层一个节点,输出通常使用sigmoid激活函数,输出在(0-1)范围,为样本属于0,1类别的概率。可使用二元交叉熵损失函数。

例如,神经网络对猫狗图像分类。如果输出大于0.5,则网络将其分类为猫(猫的标签为1);如果输出小于0.5,则网络将其分类为狗。即概率得分值越大,猫的机会越大。

多分类交叉熵

tf.keras.losses.categorical_crossentropy

对于多类分类任务,可以选择多分类交叉熵损失函数。使用多分类交叉熵损失函数,输出节点的数量必须与这些类相同。最后一层的输出应该通过softmax激活函数,以便每个节点输出介于(0-1)之间的概率值,所有输出节点的概率之和为1,概率最大的输出对应的类别为该样本的类别。样本的标签为one-hot编码。

例如,在一个多分类神经网络中,它读取图像并将其分类为T恤,背心,鞋子,裙子,裤子。如果鞋子输出节点具有最高概率得分,则将图像分类为鞋子。

稀疏多分类交叉熵

(tf.keras.losses.sparse_categorical_crossentropy

该损失函数与多分类交叉熵基本相同,区别在使用稀疏多分类交叉熵损失函数时,不需要对数据集标签进行one-hot形式的编码,使用标签编码即可。模型输出和多分类交叉熵一样,多少类别就对应多少输出节点。激活函数使用softmax。

待完善......

举报

相关推荐

0 条评论