繁体   English   中英

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

[英]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 根本没有受过训练。

[回答]

一个简单的答案是

  1. 扩大深度学习model,当你得到适当的损失值时,减少你的model
  2. 标准化您的输入和 output。

但是,我建议您从为 GitHub 中的回归任务设计的其他深度学习模型开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM