【问题标题】:Why I am retrieving high value loss for neural network regression为什么我要为神经网络回归检索高价值损失
【发布时间】:2021-08-30 09:06:06
【问题描述】:

我有以下格式的数据,包含 80 个实例。我需要预测两个参数的延迟和准确度

   No   Model   Technique       Latency  Accuracy
0   1   Net     Repartition     31308.4   0.99   
1   2   Net     Connection      30338.2   0.79   
2   3   MobiNet Repartition     20360.1   0.89  

 predictors=data.drop(['Latency','Accuracy'], axis = 1)
    target=data[['Latency', 'Accuracy']]
    predictors_cat_converted=pd.get_dummies(predictors, prefix=['Model', 'Technique'])
    
    pre_norms = (predictors_cat_converted-predictors_cat_converted.mean()/predictors_cat_converted.std())
    
    def regression():
      model=Sequential()
      model.add(Dense(50, activation= 'relu',input_shape=(n_cols,)))
      model.add(Dense(50, activation='relu'))#hidden layer
      model.add(Dense(2))#output
    
      model.compile(optimizer='adam',loss='mean_squared_error')
      return model
    
    model=regression()
    model.fit(pre_norms, target,validation_split=.3,epochs=100,verbose=1)
    

输出检索高价值损失

    Epoch 1/100
    2/2 [==============================] - 1s 275ms/step - loss: 256321162.6667 - val_loss: 262150224.0000
    Epoch 2/100
    2/2 [==============================] - 0s 23ms/step - loss: 246612645.3333 - val_loss: 262146176.0000
    Epoch 3/100
    2/2 [==============================] - 0s 22ms/step - loss: 251778928.0000 - val_loss: 262142000.0000
    Epoch 4/100
    2/2 [==============================] - 0s 26ms/step - loss: 252470826.6667 - val_loss: 262137664.0000
    Epoch 5/100
    2/2 [==============================] - 0s 25ms/step - loss: 255799392.0000 - val_loss: 262133200.0000
    Epoch 6/100

【问题讨论】:

    标签: machine-learning neural-network regression conv-neural-network


    【解决方案1】:

    您的数据非常少,只有 2 列、80 行和 2 个目标变量。你所能做的就是:

    1. 添加更多数据。
    2. 标准化您的数据,然后将其提供给神经网络。
    3. 如果神经网络不能提供良好的准确性,请尝试随机森林或 XGBoost。

    我还想补充一件事,就是你的神经网络架构是错误的。具有 2 个输出和 softmax 激活的密集层在这里不会给您带来好的结果。您必须使用 TensorFlow 的Funtional API 并制作 1 输入 2 输出的神经网络架构。

    【讨论】:

    • 非常感谢 @AdarshWase,我会尝试 Random Forect 或 XGBoost
    【解决方案2】:

    您的目标变量之一达到了相当大的值。如您的数据摘录所示,“延迟”达到 30,000 和 20,000 左右的值。 显然,如果您的模型在一开始就做出了非常错误的预测,那么 f.e.如果它预测您的延迟为“1”,则 MSE 将非常高。

    您可以像处理输入一样对目标进行标准化,以使您的网络更容易学习目标。你的 MSE 和因此你的损失应该小得多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-28
      • 2019-06-27
      • 2020-03-27
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多