您可以在此模型的奇数预测上得到改进吗?我能得到的最好结果是50%,无论我的神经网络有多深。
from tensorflow import keras
X=[]
Y=[]
n=100
for i in range (n):
X+=[i]
Y+=[(-1)**i]
if Y[i]<0:
Y[i]=0
model = keras.Sequential([
keras.layers.Flatten(input_shape=(1, )),
keras.layers.Dense(2, activation=tf.nn.softmax),
keras.layers.Dense(1, activation=tf.nn.softmax)
])
model.compile(loss='binary_crossentropy', optimizer="adamax",metrics=['binary_accuracy'])
model.fit(X, Y, epochs=100,batch_size=10)
答案 0 :(得分:2)
这不是一件微不足道的任务,请您可能会希望如此。您可以在this SO线程中找到一种工作模型。此外,这仍然是一个活跃的研究领域(称为奇偶校验问题)。如果不输入整数,而是数字的二进制表示形式,则网络的精度可能会提高。否则,您的网络将(很可能)无法解决此任务。
您也可以在this SE线程中找到有关与算术运算有关的神经网络问题的更多信息。根据您想深入了解此问题的程度,过去也有很多关于此问题的论文(例如this或that)。
通常,如果为网络提供二进制表示形式而不是十进制形式,则可以进行算术运算。您甚至可以确定ANN执行该类特定任务所需的确切神经元数量。
答案 1 :(得分:0)
为完成FlashTek的答案,神经网络在特定的算术运算方面存在问题,即乘法,除法和派生运算,请参见 https://stats.stackexchange.com/questions/217703/can-deep-neural-network-approximate-multiplication-function-without-normalizatio 和Can't approximate simple multiplication function in neural network with 1 hidden layer
这是因为神经网络是其一部分的数学框架,它们是广义线性模型(GLM)(https://en.wikipedia.org/wiki/Generalized_linear_model,http://mikkyang.com/blog/neural-networks-and-generalized-linear-models/index.html)和加权 总和 模型(WSM)(https://en.wikipedia.org/wiki/Weighted_sum_model),请注意,在GLM和WSM中,张量(矩阵,向量)之间没有乘法仅涉及乘以标量权重。这就是为什么神经网络无法应用于或不足以解决具有特定结构(涉及乘法,除法...)的数学问题的原因