[英]Picking layers/functions for Keras ANN- Linear Regression
当我运行线性回归 ANN(预测加州房价)时,我得到了大量的损失数字和 0 的准确性。 任何人都可以为此类问题建议更好的激活功能。
https://drive.google.com/file/d/1dcUuTVVDGwxHn2O5qqJk0wgiEf83MslN/view?usp=sharing
我尝试了从 .1 到 10 的损失率的多次迭代,尝试使用 ReLU 3 中子的 2 层,尝试将 epochs 增加到 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)
Epoch 60/10000 - 1s - 损失:48621637708.0739 - acc:0.0000e+00 - val_loss:49522900789.2154 - val_acc:0.0000e+00
你在这里遗漏了一些关于深度学习的基本知识。 准确度是用于分类的指标,但您要做的是回归,即不预测 class 标签而是预测连续值。 深度学习领域有两种不同的东西。 因此,softmax 作为 output 层对你没有多大帮助。 在这种情况下,您的指标也应该是 MSE。
高于 1.0 的学习率也非常少见,Adam 的默认值为 0.001。 一般来说,如果您不确定学习率,请坚持使用默认值。 所以也许错误就在那里,尝试降低学习率并再试一次。
Softmax 激活作为中间层激活也不常见,我建议用 ReLU 替换它。 您使用的神经元数量也非常少,添加更多神经元也会有所帮助。
[现在的情况]
我猜你是根据“housing_median_age、total_rooms、total_bedrooms、population、households、median_income”来预测“median_house_value”的。
你的 model 有大约 30 个参数。 您的输入功能和 output 目标具有不同的范围。 而你的损失表明 model 根本没有受过训练。
[回答]
一个简单的答案是
但是,我建议您从为 GitHub 中的回归任务设计的其他深度学习模型开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.