首页 文章

MATLAB AutoEncoder如何扩展数据?

提问于
浏览
0

我在AutroEcnoder的文档中发现:

用于重新缩放输入数据的指示符,指定为由“ScaleData”和true或false组成的逗号分隔对 . 自动编码器尝试在其输出处复制其输入 . 为此,输入数据的范围必须与解码器的传递函数的范围相匹配 . trainAutoencoder在训练自动编码器时自动将训练数据缩放到此范围 . 如果在训练自动编码器时缩放数据,则预测,编码和解码方法也会缩放数据 .

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

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

我发现 factor_1 的意思不是0而且它的标准占卜不是1.所以标准化数据的程序是什么?

1 回答

  • 0
    [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);
    

相关问题