神经网络的损失函数

均方误差

  均方误差(mean square error, MSE)是原始 BP 算法中使用的损失函数,就是将预测值与目标值的差求平方,之后再平均。以下是公式:
ℓ = 1 m ∥ Y ^ [ k ] − Y [ k ] ∥ 2 2 \ell=\frac{1}{m}{\left\|\widehat Y^{[k]}-Y^{[k]}\right\|_2}^2 =m1 Y [k]Y[k] 22   ℓ \ell 为损失值, Y ^ \widehat Y Y Y Y Y 分别为特征值向量(此处不是指矩阵论中的特征向量,是指向网络输入层输入的向量)的预测值向量和目标值向量, m m m 为以上两个向量的维度。
  MSE 至今仍是回归模型常用的损失函数。

交叉熵

  我们已经知道,在分类模型中常常使用 Softmax 作为输出层的激活函数。Softmax 输出的是一组概率值,目标值是一个独热码,数值范围为 [ 0 , 1 ] [0,1] [0,1]。如果使用 MSE 作为损失函数,那么损失值就是一组 − 1 -1 1 1 1 1 的数先平方再求平均,即损失值是一个 0 0 0 1 1 1 的数,损失值的下降空间太过狭小且反向传播求出的梯度值也小,模型收敛速度慢。
-ln x

  这时我们可以考虑 − ln ⁡ x -\ln x lnx 函数,它可以把 [ 0 , 1 ] [0, 1] [0,1] 映射到 [ 0 , ∞ ] [0, \infty] [0,],且其导函数导得值域也大。值得注意的是,当对 − ln ⁡ x -\ln x lnx 使用梯度下降时,会使 x x x 0 0 0 1 1 1 靠近。所以我们只能对目标值向量中分量为 1 1 1 的应用 − ln ⁡ x -\ln x lnx 。基于以上,我们常使用交叉熵(cross entropy, CE)来作为分类模型的损失函数,其表达式如下:
ℓ = − ∑ j = 1 m y j ⋅ ln ⁡ y ^ j \ell=-\sum_{j=1}^{m}{y_j\cdot \ln{\widehat y_j}} =j=1myjlny j   ℓ \ell 为损失值, y ^ j \widehat y_j y j y j y_j yj 分别为特征值向量的预测值向量与目标值向量的第 j j j 个分量, m m m 为以上两个向量的维度。
  在实际应用中,Softmax 与 CE 是搭配使用的。

自定义函数

  我们都知道神经网的预测是一个向量,目标也是一个向量。我们可以在损失函数中为不同的分量配置不同的误差代价,这样代价高的分量会有更高的收敛强度,神经网路就会被推动着向着某一自定义的方向学习。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值