【问题标题】:AI - Learn the best combinationAI - 学习最佳组合
【发布时间】:2020-12-07 08:02:36
【问题描述】:

总参数:48K

输入 X:

array([[ 1964,    12, 32772, ...,     0,  6176,     0],
       [ 1964,    12, 32772, ...,     0,  6841,     0],
       [ 1964,    28, 32772, ...,     0,  6176,     0],
       ...,
       [ 7400,    20, 41565, ...,     0,  8149,     0],
       [ 7400,    20, 41565, ...,     0,  8151,     0],
       [ 7400,    20, 41565, ...,     0,  8150,     0]], dtype=int32)

输出 y:

array([0., 0., 0., ..., 1., 0., 0.])

模型结构:

model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(16, activation="relu"))
model.add(Dense(1, activation=None))

在第一个输入层中,我使用批量标准化,并且我的 acc 从 50 增加到 73,我的意思是这是一个很好的解决方案..

模型编译

model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

我也尝试了“adam”,结果相同。

模型拟合:

history = model.fit(x_train, y_train, batch_size=2048, validation_data=(x_test, y_test), epochs=1000)

我也尝试更多组合,epochs=30000 和批量大小 1024 并获得 acc 78.51。

我也尝试将每一层都加倍,节点*2:

我有 16k 输出 1,所以通过这个解决方案,我得到 6k 校正预测。 @ epochs=30000 和批量大小 1024,优化器 a​​dam @

模型结构:

model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(64, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(1, activation='sigmoid'))

我的简单问题是如何增加 acc 以获得更正确的预测?

【问题讨论】:

  • 这是“百万问题”,没有办法提前确定。您或许也应该尝试增强技术。
  • “图像增强技术”是的,你如何使用这个数据集?
  • 如果您想要针对主要基于图像的 CNN 问题进行稳健的特征提取,则增强主要是一种技术。例如。如果对它们应用某种转换,则可以多次使用特征,从而获得更多的训练数据。虽然这取决于您的数据,但它肯定不适用于所有类型的功能。

标签: python tensorflow keras artificial-intelligence prediction


【解决方案1】:

如果橙色是您的验证损失/准确率,则说明您过度拟合。准确率几乎不会随着 epoch 数的增加而降低,而验证损失会增加。 想想

  • 平衡标签,也许它们不平衡你的准确性并不能告诉你那么多
  • 添加提前停止
  • 调整批量大小
  • 调整激活函数
  • 添加 DropOut
  • 测试其他优化器,例如亚当

你使用了很多隐藏层,一开始就减少它们。我更喜欢从小型网络开始,甚至像逻辑回归或简单的线性模型,然后看看神经网络是否会提高性能。

考虑使用与神经网络不同的方法,例如 CART 方法(例如 XGBOOST)已被证明在处理小特征大小的问题(例如此处为 7)上优于神经网络。

我希望这有助于进一步探索这个问题!

【讨论】:

    猜你喜欢
    • 2012-04-13
    • 1970-01-01
    • 2011-03-15
    • 2011-07-23
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2016-12-02
    • 2010-11-05
    相关资源
    最近更新 更多