我有一个使用2个隐藏层的前馈神经网络(FFNN)进行回归任务,但很容易出现过拟合问题(在第2-5轮时,具体取决于#隐藏单元数)。 (ReLU、Adam、MSE、每层相同数量的隐藏单元、tf.keras)
32个神经元:
128个神经元:
我将调整隐藏单元的数量,但为了限制搜索空间,我想知道上下限应该是什么。
据我所知,最好拥有一个太大的网络并尝试通过L2正则化或随机失活(dropout)来规范化,而不是降低网络的能力——因为更大的网络会有更多的局部最小值,但实际的损失值会更好。
如果网络从一开始就出现过拟合问题, 是否有必要尝试通过例如随机失活来规范化它?
如果是这样,我可以增加上下限。如果不是,我会降低它们。
model = Sequential()
model.add(Dense(n_neurons, 'relu'))
model.add(Dense(n_neurons, 'relu'))
model.add(Dense(1, 'linear'))
model.compile('adam', 'mse')