均方误差和交叉熵误差

均方误差个交叉熵误差都是常用的损失函数之一。

首先简要介绍下损失函数:

损失函数是用来表示神经网络性能的“恶劣程度”的指标。即当前神经网络对监督数据在多大程度上不拟合,在多大

程度上不一致。说白了,即所创建的神经网络对输入数据的预测输出值与监督数据(实际输出值)的差距。

均方误差:

 

上面是计算公式,其中yk表示神经网络的预测输出值,tk表示监督数据,k表示数据的维数。前面的1/2是为了求导

的时候可以消去指数下来的2。

下面是Python的简单实现:

# 均方误差
def mean_squared_error(y, t):
    return 0.5 * np.sum((y - t)**2)

交叉熵误差:

 

上面是计算公式,log表示以e为底数的自然对数,yk是神经网络预测输出值,tk是正解标签。并且tk中只有正确解

标签的索引为1,其他都是0(one-hot表示)。

下面是Python的简单实现:

# 交叉熵误差
def cross_entropy_error(y, t):
    delta = 1e-7 # 注意此处为0.0000001 用于防止出现np.log(0)时出现的无穷小 防止出现-inf后无法继续计算
    return -np.sum(t * np.log(y + delta))

 

 

 
posted @ 2020-12-07 16:25  荒唐了年少  阅读(1158)  评论(0编辑  收藏  举报