损失函数(loss function)

损失函数是表示神经网络性能的“恶劣程度”的指标,即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。以“性能的恶劣程度”为指标可能会使人感到不太自然,但是如果给损失函数乘上一个负值,就可以解释为“在多大程度上不坏”,即“性能有多好”。并且,“使性能的恶劣程度达到最小”和“使性能的优良程度达到最大”是等价的,不管是用“恶劣程度”还是“优良程度”,做的事情本质上都是一样的。这个损失函数可以使用任意函数,但一般用均方误差交叉熵误差等。


1. 均方误差(mean squared error)该值越大说明误差越大,说明神经网络性能越差。

单个样本的均方误差:E=\frac{1}{2}\sum_{k}(y_k-t_k)^2

所有样本的均方误差:E=\frac{1}{2N}\sum_n\sum_k(y_{nk}-t_{nk})^2,就是把单个样本的均方误差累加,并除以样本数量N,进行正规化。

这里,yk 是表示神经网络的输出,tk 表示监督数据,k 表示数据的维数。

比如,yktk 是由如下 10 个元素构成的数据(单个样本)。

>>> y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
>>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]

数组元素的索引从第一个开始依次对应数字“0”“1”“2”……这里,神经网络的输出 y 是 softmax 函数的输出。由于 softmax 函数的输出可以理解为概率,因此上例表示“0”的概率是 0.1,“1”的概率是 0.05,“2”的概率是 0.6 等。t 是监督数据,将正确解标签设为 1,其他均设为 0。这里,标签“2”为 1,表示正确解是“2”。将正确解标签表示为 1,其他标签表示为 0 的表示方法称为 one-hot 表示

现在,我们使用这个函数,来实际地计算一下。

>>> # 设“2”为正确解
>>> t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
>>>
>>> # 例1:“2”的概率最高的情况(0.6)
>>> y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
>>> mean_squared_error(np.array(y), np.array(t))
0.097500000000000031
>>>
>>> # 例2:“7”的概率最高的情况(0.6)
>>> y = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]
>>> mean_squared_error(np.array(y), np.array(t))
0.59750000000000003

这里举了两个例子。第一个例子中,正确解是“2”,神经网络的输出的最大值是“2”;第二个例子中,正确解是“2”,神经网络的输出的最大值是“7”。如实验结果所示,我们发现第一个例子的损失函数的值更小,和监督数据之间的误差较小。也就是说,均方误差显示第一个例子的输出结果与监督数据更加吻合。

2. 交叉熵误差(cross entropy error)该值越大说明误差越大,说明神经网络性能越差。

单个样本的交叉熵误差:E=-\sum t_k\log y_k

所有样本的交叉熵误差:E=-\frac{1}{N}\sum_n\sum_kt_{nk}\log y_{nk},这个式子看起来复杂,其实就是把n个样本的单个样本交叉熵误差进行了累加,然后除以样本数N进行正规化。

这里,log 表示以 e为底数的自然对数(loge)。yk 是神经网络的输出,tk 是正确解标签。并且,tk 中只有正确解标签的索引为 1,其他均为 0(one-hot 表示)。因此,式(4.2)实际上只计算对应正确解标签的输出的自然对数。比如,假设正确解标签的索引是“2”,与之对应的神经网络的输出是 0.6,则交叉熵误差是 -log 0.6 = 0.51;若“2”对应的输出是 0.1,则交叉熵误差为 -log 0.1 = 2.30。也就是说,交叉熵误差的值是由正确解标签所对应的输出结果决定的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值