我是深度学习领域的新手,我使用对数似然法来比较 MSE 指标。谁能展示如何计算以下 2 个预测输出示例,每个示例有 3 个输出神经元。谢谢
yt = [ [1,0,0],[0,0,1]]
yp = [ [0.9, 0.2,0.2], [0.2,0.8,0.3] ]
我是深度学习领域的新手,我使用对数似然法来比较 MSE 指标。谁能展示如何计算以下 2 个预测输出示例,每个示例有 3 个输出神经元。谢谢
yt = [ [1,0,0],[0,0,1]]
yp = [ [0.9, 0.2,0.2], [0.2,0.8,0.3] ]
MSE 或均方误差只是预测标签和地面实况标签之间的平方差的期望值,表示为
\text{MSE}(\hat{\theta}) = E\left[(\hat{\theta} - \theta)^2\right]
其中theta是ground truth标签,theta^hat是预测标签
我不确定您到底指的是什么,例如理论问题或代码的一部分
作为Python实现
def mean_squared_error(A, B):
return np.square(np.subtract(A,B)).mean()
yt = [[1,0,0],[0,0,1]]
yp = [[0.9, 0.2,0.2], [0.2,0.8,0.3]]
mse = mean_squared_error(yt, yp)
print(mse)
这将给出一个值0.21
如果您使用的是TensorFlow之类的 DL 框架之一,那么它们已经提供了计算张量之间的 mse 损失的函数
tf.losses.mean_squared_error
在哪里
tf.losses.mean_squared_error(
labels,
predictions,
weights=1.0,
scope=None,
loss_collection=tf.GraphKeys.LOSSES,
reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)
参数:
标签:地面实况输出张量,与“预测”相同的维度。
预测:预测的输出。
weights:可选张量,其秩为 0,或与标签的秩相同,并且必须可广播到标签(即所有维度必须为 1,或与相应的损失维度相同)。
范围:计算损失时执行的操作的范围。
loss_collection:将添加损失的集合。
减少:适用于损失的减少类型。
回报:
加权损失浮动张量。如果 reduction 为 NONE,则它的形状与标签相同;否则,它是标量。