神经网络的学习曲线

时间:2018-11-06 21:55:38

标签: matlab machine-learning neural-network octave

我正在尝试查找在八度执行的神经网络模型的最佳参数,该模型用于二进制分类和122个特征(输入)和25个隐藏单位(1个隐藏层)。为此,我有4个矩阵/向量:

size(X_Train): 125973 x 122
size(Y_Train): 125973 x 1
size(X_Test): 22543 x 122
size(Y_test): 22543 x 1

我已经使用了20%的训练集来生成验证集(XValYVal

size(X): 100778 x 122
size(Y): 100778 x 1
size(XVal): 25195 x 122
size(YVal): 25195 x 1
size(X_Test): 22543 x 122
size(Y_test): 22543 x 1

目标是生成NN的学习曲线。我已经(艰难地xD)了解到,这非常耗时[strong],因为我为此使用了XvalX的完整大小。

我不知道是否有其他解决方案。我正在考虑减小训练向量X的大小(例如,像5000个样本),但是我不知道是否可以这样做,或者结果是否会偏颇,因为我只会使用训练集的一部分?

最好

1 个答案:

答案 0 :(得分:1)

以上参数的总数约为3k(122 * 25 + 25 * 1),对于一个示例来说,这并不庞大。由于示例数量很多,因此您可能希望使用随机梯度下降或小批量而不是梯度下降。

请注意,Matlab和Octave通常较慢,尤其是在使用循环时。 您需要编写使用矩阵运算而不是循环的代码,以便在Matlab / Octave中管理速度。