【问题标题】:How does MATLAB AutoEncoder scale data?MATLAB AutoEncoder 如何缩放数据?
【发布时间】:2018-04-17 22:54:49
【问题描述】:

我在 AutroEcnoder 的文档中发现:

重新缩放输入数据的指示符,指定为逗号分隔 由 'ScaleData' 和 true 或 false 组成的对。

自动编码器尝试在其输出处复制其输入。为了它 为了可能,输入数据的范围必须与 解码器的传递函数。自动训练自动编码器 在训练自动编码器时将训练数据缩放到这个范围。 如果在训练自动编码器时对数据进行了缩放,则预测, 编码和解码方法也会对数据进行缩放。

MATLAB 如何做到这一点?当我运行这样的模型时:

hiddenSize1 = 1;
autoenc1 = trainAutoencoder(tdata, hiddenSize1, 'UseGPU',true);
factor_1 = encode(autoenc1, tdata);

我发现factor_1的均值不为0,标准的占卜也不为1,那么标准化数据的流程是什么?

【问题讨论】:

    标签: matlab deep-learning autoencoder


    【解决方案1】:
    [x,t] = wine_dataset;
    
    autoenc = trainAutoencoder(x, 10, 'EncoderTransferFunction', 'logsig', 'ScaleData', true);
    
    encoded_data1 = encode(autoenc, x);
    
    x_scaled = (x-min(x,[],2))./(max(x,[],2)-min(x,[],2));
    
    encoded_data2 = logsig(autoenc.EncoderWeights * x_scaled + autoenc.EncoderBiases);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 2017-08-21
      • 2011-06-28
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多