损失函数
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
以上是关于损失函数的主要内容,如果未能解决你的问题,请参考以下文章