MATLAB AutoEncoder如何扩展数据?

时间:2018-04-17 22:54:50

标签: matlab deep-learning autoencoder

我在AutroEcnoder的文档中发现:

  

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

     

Autoencoders尝试在输出中复制输入。为了它   为了可能,输入数据的范围必须与范围相匹配   解码器的传递函数。 trainAutoencoder自动   训练自动编码器时,将训练数据缩放到此范围。   如果在训练自动编码器时缩放数据,则预测,   编码和解码方法也可以缩放数据。

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

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

我发现factor_1的均值不为0且标准占卜不是1的事实。那么标准化数据的程序是什么?

1 个答案:

答案 0 :(得分: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);