我有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 layer
和hidden layer->output layer
上使用了一个dropout值0.98
,这使得每层参数的数量为13720 * 0.02 = 274
,总参数为548
。
现在,经过训练,我在我的500
序列的测试数据上尝试了编码器,并提取了二维数据的隐藏层。然后我用这些数据在另一个5个神经元的单隐层神经网络上进行分类。我的结果真的很好,因为我得到了大约90%
的精度。
我的问题是我在我的自动编码器过拟合吗?我使用另一个神经网络是不是过拟合了?我担心我的数据点太少了。我使用dropout是否合理?
尝试在关闭dropouts的情况下增加隐藏层的大小,直到您完全拟合数据,然后使用该隐藏层的大小,您可以开始增加dropouts参数,以感受模型的行为。
你可能还想添加一个alpha参数来调整权重更新。
你可能很幸运地把你的一些参数聚集在一起。