keras中mean square error均方误差理解

在机器学习的回归问题中,均方误差(MSE)是常用的损失函数。本文聚焦于Keras库中MSE的计算,强调其在处理向量预测时的细节。根据Keras源代码注释,当选择默认的reduction类型时,MSE会以batch_size为权重求平均。通过实例解析,展示MSE如何在(batch_size, a)矩阵中计算,得出每个元素的平均误差。" 108253047,1385204,纯CSS绘制婴儿车教程,"['CSS', 'HTML', 'CSS3', '前端开发', '绘图']

机器学习中,针对不同的问题选用不同的损失函数非常重要,而均方误差就是最基本,也是在解决回归问题时最常用的损失函数。本文就keras模块均方误差的计算梳理了一些细节。

首先看一下均方误差的数学定义 :
均方误差是预测向量与真实向量差值的平方然后求平均,其中n为两个向量所包含的元素的个数。
MSE=1n∑i=1n(Yi−Y^i)2MSE = \frac{1}{n}\sum_{i=1}^n(Y_i - \hat Y_i)^2MSE=n1i=1n(YiY^i)2

需要注意的是,我们发现在上述定义中,真实值与预测值都是两个向量。下面以一个小例子来说明keras中的均方误差计算。

以keras源代码中的注释为例,在选择默认reduction type 为 auto/sum_over_batch_size时,计算结果为(1+1)/ 4 = 0.5

y_true = [[0., 1.], [0., 0.]]
y_pred = [[1., 1.], [1., 0.]]
# Using 'auto'/'sum_over_batch_size' reduction type. 
mse = tf.keras.losses.MeanSquaredError()
mse(y_true, y_pred).numpy()

0.5

例如,在一类线性回归问题中,输出为一个包含a个元素的向量,对于每一个batch,我们计算一次均方误差。此时输入和输出的均为 (batch_size,a)的矩阵,此时的均方误差计算实际上是针对flatten平铺后的两个向量进行运算的,即n = batch_size * a,计算出的均方误差仍然是一个一维的数值,表示了每个元素的平均误差。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值