我一直在研究 UFLDL 教程(在 matlab/octave 中):
http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
并且一直在不同的数据集上尝试稀疏自动编码器。我尝试在时间序列数据上运行它并遇到了问题。由于输入数据有负值,sigmoid 激活函数 (1/1 + exp(-x)) 是不合适的。当替换为 tanh 时,优化程序 minfunc (L-BFGS) 失败(步长低于 TolX)。我大幅降低了 TolX 常数,没有任何变化。我将输出层更改为线性,保留输入层 sigmoid,但这不是一个可取的解决方案。自动编码器的输出按常数 (0.5) 放大,这会增加成本函数。所以....简而言之:
为什么 Tanh 激活函数不适用于 L-BFGS?(或者还有什么问题)?
..我错过了什么?到处都读到它说激活函数是可以互换的。我知道有解决方法(重新调整数据,使用 FFT 系数等),但我不明白为什么这不起作用。
无论如何,提前感谢任何回答的人!第一次在这里发帖,我越来越多地阅读这些类型的论坛,并且发现它们越来越有用..