非常简单的问题可以';不能由安来解决吗?Tensorflow神经网络,人工智能

非常简单的问题可以';不能由安来解决吗?Tensorflow神经网络,人工智能,tensorflow,neural-network,artificial-intelligence,Tensorflow,Neural Network,Artificial Intelligence,我不明白为什么这个极其简单的输入输出问题不能通过下面的ANN来学习。我猜我的代码有错误,但我没找到 X = np.array([[ 1., 1., -1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) Y = np.array([[ 1., 1., -5., 1.], [ 1., 1., 1., 1.], [ 1.

我不明白为什么这个极其简单的输入输出问题不能通过下面的ANN来学习。我猜我的代码有错误,但我没找到

X = np.array([[ 1.,  1., -1.,  1.],
              [ 1.,  1.,  1.,  1.],
              [ 1.,  1.,  1.,  1.]])

Y = np.array([[ 1.,  1., -5.,  1.],
              [ 1.,  1.,  1.,  1.],
              [ 1.,  1.,  1.,  1.]])
 


model = Sequential()
model.add(Dense(4, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(16, activation='relu'))
model.add(Dense(4, activation='linear'))
model.compile(loss='mse', optimizer='adam', metrics=['mae'])

erg = model.fit(X,Y, epochs=10, batch_size=1, verbose=1)

就像Matias提到的,您在最后一层中使用softmax激活,它不能用于在数据集中生成结果,因为只有当数据集目标是某种概率时,softmax激活在输出层中作为激活才有用。使用线性而不是softmax应该会有所帮助


model.add(稠密(4,activation='linear'))

softmax激活无法生成目标中的值。softmax生成[0,1]中的值向量,其总和为1,通常仅用于分类任务。这是什么样的任务?我问这是什么任务,分类还是回归?准确度是一个仅适用于分类的度量标准。不,神经网络不是这样工作的,如果你将它用于错误的任务,它根本不会工作。NN不是魔法。@LukasNießen你应该尝试更多的纪元,比如说300甚至500。我相信它会改进,并且会得到你想要的结果。@LukasNießen你应该
mae
应该是模型度量的更好选择,而不是
准确性
。在回归问题中,作为度量的准确性是毫无意义的。@LukasNießen然后尝试训练更多的时期,看看mae是否在降低。