自编码器和神经网络参数数的过拟合



我有2类的1100序列。其中400来自一个class 1, 700来自class 2。我使用了2神经元的一个隐藏层自动编码器来捕捉我的特征。我的初始特征是每个序列的三角图。所以,对于每个序列,我有6860三格。因此,我的大多数输入向量都是稀疏向量。

现在,如果我计算这个网络的参数,我有

6860 * 2 = 13720 paramters (1st layer)
2 * 6860 = 13720 parameters (2nd layer)
-----------------------------------------
           27440 parameters (in total)

现在,与我的数据点数量相比,这是太多的参数了。因此,我在layer 1->hidden layerhidden layer->output layer上使用了一个dropout值0.98,这使得每层参数的数量为13720 * 0.02 = 274,总参数为548

现在,经过训练,我在我的500序列的测试数据上尝试了编码器,并提取了二维数据的隐藏层。然后我用这些数据在另一个5个神经元的单隐层神经网络上进行分类。我的结果真的很好,因为我得到了大约90%的精度。

我的问题是我在我的自动编码器过拟合吗?我使用另一个神经网络是不是过拟合了?我担心我的数据点太少了。我使用dropout是否合理?

尝试在关闭dropouts的情况下增加隐藏层的大小,直到您完全拟合数据,然后使用该隐藏层的大小,您可以开始增加dropouts参数,以感受模型的行为。

你可能还想添加一个alpha参数来调整权重更新。

你可能很幸运地把你的一些参数聚集在一起。

最新更新