为 Keras ANN-线性回归选择层/函数
Posted
技术标签:
【中文标题】为 Keras ANN-线性回归选择层/函数【英文标题】:Picking layers/functions for Keras ANN- Linear Regression 【发布时间】:2020-02-23 04:09:36 【问题描述】:当我运行线性回归 ANN(预测加州房价)时,我得到了大量的损失数字和 0 准确度。任何人都可以为此类问题建议任何更好的激活函数。
https://drive.google.com/file/d/1dcUuTVVDGwxHn2O5qqJk0wgiEf83MslN/view?usp=sharing
我尝试了从 0.1 到 10 的损失率的多次迭代,尝试了 2 层 ReLU 3 个中子,尝试将 epoch 增加到 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
【问题讨论】:
【参考方案1】:您在这里遗漏了一些关于深度学习的基本知识。准确度是用于分类的指标,但您要做的是回归,即不预测类别标签而是预测连续值。深度学习领域有两种不同的东西。因此,softmax 作为输出层不会对您有太大帮助。在这种情况下,您的指标也应该是 MSE。
高于 1.0 的学习率也非常少见,Adam 的默认值为 0.001。一般来说,如果您不确定学习率,请坚持使用默认值。所以也许错误就在那里,尝试降低学习率并再试一次。
Softmax 激活作为中间层激活也不常见,我建议用 ReLU 替换它。您使用的神经元数量也非常少,多加几个也会有所帮助。
【讨论】:
谢谢 :) 进行了更改,但还没有大的改进。以上是关于为 Keras ANN-线性回归选择层/函数的主要内容,如果未能解决你的问题,请参考以下文章