python - 为 Keras ANN 选择层/函数 - 线性回归

标签 python keras neural-network

当我运行线性回归 ANN(预测加州房价)时,我得到了大量的损失数据和 0 准确度。任何人都可以针对此类问题提出更好的激活函数吗?

https://drive.google.com/file/d/1dcUuTVVDGwxHn2O5qqJk0wgiEf83MslN/view?usp=sharing

我尝试了从 0.1 到 10 的损失率的多次迭代,尝试了使用 ReLU 3 中子的 2 层,尝试将历元增加到 10K,尝试了 softmax。

from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam


model = Sequential()
model.add(Dense(2, input_shape=(6,), activation='relu'))
model.add(Dense(3, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.add(Dense(1, activation='linear'))
model.compile(Adam(lr=0.5),
          loss='mean_squared_error',
          metrics=['accuracy'])


model.fit(X_train, y_train, epochs=10000, verbose=2,     validation_split=0.4)

纪元 60/10000 - 1s - 损失:48621637708.0739 - acc:0.0000e+00 - val_loss:49522900789.2154 - val_acc:0.0000e+00

最佳答案

您在这里缺少一些关于深度学习的基本知识。准确性是用于分类的指标,但您想要做的是回归,即不预测类标签,而是预测连续值。深度学习领域中有两种不同的东西。因此,softmax 作为输出层不会对你有太大帮助。在这种情况下,您的指标也应该是 MSE。

高于 1.0 的学习率也非常罕见,Adam 的默认值为 0.001。一般来说,如果您不确定学习率,请坚持使用默认值。所以也许错误就在那里,尝试降低学习率并再试一次。

Softmax 激活作为中间层激活也是不常见的,我建议用 ReLU 替换它。您使用的神经元数量也非常少,添加更多神经元也会有所帮助。

关于python - 为 Keras ANN 选择层/函数 - 线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58581680/

相关文章:

python - 如何结合 5 个训练模型的权重来更准确地预测测试数据集?

python - 如何加速 Keras model.predict?

python - CNN with keras,精度保持不变,没有提高

python - dropout 中的 keep_prob 值以及通过 dropout 获得最差结果

machine-learning - 估计人工神经网络的神经元数量和层数

python - 如何在 mac 中配置 scitools.std?

python - Pygame - 设计代码

python - 如何在 python 中运行 chmod?

python - 使用 distutils 编译 :/usr/lib is added as a file to compile

python - torch 错误 : multi-target not supported in CrossEntropyLoss()