【问题标题】:How to evaluate autoencoder performance by mse?如何通过 mse 评估自动编码器的性能?
【发布时间】:2022-01-14 05:21:15
【问题描述】:

我想在 mnist 数据集上训练自动编码器以生成与输入相似的图像。这是我找到的代码:

% Load the training data. 
XTrain = digitTrainCellArrayData;


%% 
% Train an autoencoder with a hidden layer containing 50 neurons. 
hiddenSize = 50;
autoenc = trainAutoencoder(XTrain,hiddenSize,...
        'MaxEpochs', 200, ...
        'L2WeightRegularization', 10^(-3),...
        'SparsityRegularization',1,...
        'SparsityProportion',0.45);  

% Load the test data. 
XTest = digitTestCellArrayData; 

% Reconstruct the test image data using the trained autoencoder. 
xReconstructed = predict(autoenc, XTest);  

现在我想以某种方式评估我的自动编码器的性能,但我不知道该怎么做。我发现here 可以在真实数据集和重建数据集之间使用 MSE。但是,当我尝试这样做时:

mse(XTest - xReconstructed)

我得到错误

Operator '-' is not supported for operands of type 'cell'.

如何使用 mse 正确执行此自动编码器的评估?

【问题讨论】:

    标签: matlab deep-learning neural-network autoencoder


    【解决方案1】:

    生成模型/图像恢复模型主要有两种metrics/loss function

    1. 基于参考
      • l2 损失(~rmse 损失)
      • l1 损失
      • PSNR:峰值信噪比
    2. 基于非参考
      • SSIM:结构相似性指数,
      • MS-SSIM:多尺度 SSIM
        *还有一些指标是两个类的组合(例如混合 SM-SSIM)
        更详细的了解可以阅读this paper

    我认为您遇到的错误可以通过以下方式解决,
    mse(vec1, vec2)
    *这也可能取决于您使用的库。

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 1970-01-01
      • 2022-10-01
      • 2021-03-21
      • 2010-11-29
      • 2012-08-08
      • 2011-12-04
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多