kernel_initializer、激活函数和回归优化器的最佳排列



我正在使用kernel_initializer='normal'和优化器='adam'来找到最佳回归解决方案。我在训练数据上的准确率接近0.94。我想测试其他一些kernel_initializer、激活函数和优化器组合,但我不确定kernel_ininitializer和激活函数是否适用于回归。请建议


# create model
model = Sequential()
model.add(Dense(13, input_dim=13, kernel_initializer='normal', activation='relu'))
model.add(Dense(6, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss='root_mean_squared_error', optimizer='adam')

好吧,这可能不是一个好主意。你追求的是一个相当小的利润率在性能;钓鱼;为了获得好的结果,您基本上将验证作为训练集,依靠数据中的微小变化来为模型设计提供信息。

一些提示:

  • Glorot初始值设定项(默认值(通常是最好的。然而,差异确实很小,尤其是在这样一个微小的模型中
  • relu激活有助于对抗消失梯度。模型中有三层,你可能就没有了。在这里,它实际上取决于数据的性质;即使是线性激活也可能有意义
  • 对于正则回归(即预测数字,而不是二进制输出(,您可能需要在输出层使用线性回归。它是默认的,但最好将其明确化
  • 其他优化器可能会提高转换率,但通常不会提高性能。Adam听起来是一个合理的选择——sgd也会这样做,但速度较慢,ftrl在语言输入等稀疏数据上效果最好

最新更新