MATLAB 中的自动编码器

Autoencoder in MATLAB

我的目标是在 Matlab 中训练自动编码器。我正在使用深度学习工具箱。我是自动编码器和 Matlab 的新手,所以如果问题很简单,请耐心等待。

我的输入数据集是一个包含 2000 个时间序列的列表,每个时间序列都有 501 个条目。所以我的输入数据集存储在一个名为 inputdata 的数组中,该数组的维度为 2000*501.

自动编码器应该重现时间序列。这意味着输出应该是 501 个组件的时间序列的 2000 倍。所以,我的理解是输入节点应该是501,输出节点也应该是501。

但是,如果我这样做:

hiddenSize = 100;   
autoenc = trainAutoencoder(y_sorted,hiddenSize);

要训练隐藏层有 100 个节点的自动编码器,我认为自动编码器会自动选择具有 2000 个输入节点。训练这个自动编码器的正确方法是什么?

您好,我还没有尝试使用 Deeplearning 工具箱自己训练自动编码器,但据我所知(https://www.mathworks.com/help/deeplearning/ref/trainautoencoder.html?s_tid=doc_ta),您的输入矩阵应该将样本作为列,features/values 行中的时间序列。您可以通过转置输入矩阵来轻松做到这一点。在 MATLAB 中,这是通过以下方式完成的:

inputdata = inputdata.'