Validation 验证损失在几次迭代后发散,并在3层深Keras NN上指数超调

Validation 验证损失在几次迭代后发散,并在3层深Keras NN上指数超调,validation,keras,deep-learning,neural-network,Validation,Keras,Deep Learning,Neural Network,全部,, 在这里发布查询,因为我在任何线程上都找不到解决方案。我尝试用4个协变量预测y(0,1之间的比率) 规格 Y:0,1之间的比率 X1:具有4个周期移动平均线的利率 X2:百分比变化 X3:百分比变化 X4:具有4个周期移动平均线的数字 意见:55 在喂给Keras之前,使用minmax scaler在0,1之间缩放X和Y 然而,在最初的几个时期,培训和验证的损失都有所减少,验证损失在之后呈指数级增长 我尝试了以下列表中的多种补救措施,但没有一种有效: 1.L1、L2正则化Xavier初始

全部,, 在这里发布查询,因为我在任何线程上都找不到解决方案。我尝试用4个协变量预测y(0,1之间的比率)

规格

Y:0,1之间的比率 X1:具有4个周期移动平均线的利率 X2:百分比变化 X3:百分比变化 X4:具有4个周期移动平均线的数字 意见:55

在喂给Keras之前,使用minmax scaler在0,1之间缩放X和Y

然而,在最初的几个时期,培训和验证的损失都有所减少,验证损失在之后呈指数级增长

我尝试了以下列表中的多种补救措施,但没有一种有效:

1.L1、L2正则化Xavier初始化、随机初始化

  • 深层活化功能从ReLU到HTAN的变化 乙状结肠

  • 训练和验证数据的不同分支

  • 不同年代不同深层次:1~4 (由于协变量有限,因此尝试次数不超过4次)

  • 不同数目 深层节点数量:4~75

  • 最后我试着用止损法,但也没用。相反,我注意到一个非常奇怪的现象,详细阐述如下:

  • 如果我用300个纪元,超调通常发生在125个纪元左右
  • 如果我把100个纪元放进去,超调通常发生在72个纪元左右
  • 如果我用70个纪元,超调通常发生在25个纪元左右
  • 如果我用25个纪元,超调通常发生在10个纪元左右
  • 我完全处于固定状态,精神错乱。不知道如何前进!任何帮助或指点都将不胜感激

    代码如下:

    '''


    ''

    你能把剩下的代码贴出来吗?损失和精度函数、编译、拟合等。您是否尝试过向密集层添加超过75个节点?(试试200)。另外,请添加数据集的大小和形状
    # First Hidden Layer
    layer1 = Dense(units = 15, input_dim=4, activation='relu')
    model.add(layer1)
    ​
    # Additional Hidden Layer - no need to specify input_dim here, Keras figures this out
    #layer2 = Dense(units=15, activation='relu',  kernel_regularizer=regularizers.l1_l2(l1=1e-7, l2=1e-7), bias_regularizer=regularizers.l2(1e-7), activity_regularizer=regularizers.l2(1e-7))  # L2 Regularization function
    layer2 = Dense(units=25, activation='relu')
    model.add(layer2)
    ​
    ​
    # Specify the output (units = 1)
    model.add(Dense(units = 1, activation='linear'))
    model.summary()