损失函数

定义:表示神经网络性能的“恶劣程度”的指标,即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。

均方误差

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

代码实现

def mean_squared_error(y, t):
    return 0.5 * np.sum((y-t)**2)

交叉熵误差

 

代码实现:

def cross_entropy_error(y, t):
    delta = 1e-7
    return -np.sum(t * np.log(y + delta))

mini-batch使用损失函数

  计算损失函数时必须将所有的训练数据作为对象。也就是说,如果训练数据有100 个的话,我们就要把这100 个损失函数的总和作为学习的指标。

以交叉熵为例

  假设数据有N个,tnk 表示第n个数据的第k 个元素的值(ynk 是神经网络的输出,tnk 是监督数据),交叉熵误差表示如下求得平均损失函数:

代码实现:

def cross_entropy_error(y, t):
    if y.ndim == 1:
        t = t.reshape(1, t.size)
        y = y.reshape(1, y.size)
batch_size
= y.shape[0] return -np.sum(t * np.log(y + 1e-7)) / batch_size
原文地址:https://www.cnblogs.com/latencytime/p/11063425.html