对于变分自编码器VAE的重构损失使用均方差MSE还是二分类交叉熵的思考

文章讨论了在变分自编码器(VAE)中,重构损失函数可以采用均方差损失(MSE)或二分类交叉熵(BCE)。MSE通常用于连续数据,而BCE适合二元分布。尽管Mnist数据集的像素值在0-1之间,理论上BCE可以适用,但选择哪种损失函数取决于具体任务和数据特性。对于其他非Mnist数据集,同样需要考虑数据分布来决定合适的损失函数。
摘要由CSDN通过智能技术生成

当前网络上的关于VAE模型损失函数尤其是重构损失这里,有的使用均方差损失MSE,有的使用二分类交叉熵。那么,到底该使用哪一种或者说两者都可以?

一、均方差损失

loss_MSE = torch.nn.MSELoss(reduction = ‘sum’)
这个自不必说,是合理的

二、交叉熵

loss_BCE = torch.nn.BCELoss(reduction = ‘sum’)

F.binary_cross_entropy(x_reconst, x, size_average=False)
理论上来说,交叉熵适用于伯努利分布这样的二元概率分布。当前网上给出的VAE模型使用的数据是minist手写数字数据集。

Mnist数据集

Mnist数据集分为两部分,60000张训练集和10000张测试集。图片为28X28个像素。Mnist数据集把代表一张图片的二维数据转开成一个向量,长度为28X28=784。训练集是一个形状为[60000, 784]的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点,图片里的某个像素的强度值介于0-1之间。
那么,对于每个值在[0, 1]区间的minist数据集的训练,用交叉熵做重构损失是否合理呢?对于其它非minist数据集呢?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值