我正在尝试在MATLAB中训练一个基本的自动编码器 . 我的数据是430个十维点,我的自动编码器代码就像

n_features = 25;
autoenc = trainAutoencoder(data, n_features, ...
    'SparsityRegularization', 1, ...
    'SparsityProportion', 0.1, ...
    'L2WeightRegularization', 0.001, ...
    'MaxEpochs', 1000, ...
    'DecoderTransferFunction','purelin');

正如你所看到的,我正在使用线性解码器 . 当我在我的数据集上运行它时 autoenc 最终只是学习一个常量函数 . 所有输入权重最终都不同,但运行 predict(autoenc, data) 为每个数据点提供相同的向量 . 会发生什么事?

编辑:我再看了一遍,这似乎是一种普遍的现象,自动编码器有时只是简单地学习数据的平均值并称之为一天 . 显然这是一个优化错误,这是一个局部最小值 . Relevant link; somewhat relevant link . 都没有提供满意的答案 . 就我所知,MATLAB的自动编码器仅提供共轭梯度 .