损失函数

Posted latencytime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了损失函数相关的知识,希望对你有一定的参考价值。

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

均方误差

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

 

以上是关于损失函数的主要内容,如果未能解决你的问题,请参考以下文章

损失函数与鲁棒性

各个模型的损失函数

损失函数选择

机器学习中常见的损失函数

损失函数(loss function)

机器学习中的损失函数(Loss Function)介绍说明