我决定在不使用任何库的情况下创建前馈神经网络。我对这个学科还很陌生,并且完全是自学成才。
我的神经网络使用反向传播来设置权重,所有层之间的激活函数(input-hidden1-output)是Sigmoid函数。 假设我尝试用NN解决一个基本问题,例如XOr逻辑门问题。每当我使用完整的训练集(1和0的所有可能组合)时,我的NN都无法以产生期望输出的方式来设置权重。看来它总是停在中间。 (在所有情况下输出均为〜0.5) 另一方面,当我仅迭代一种输入类型(假设为0和1)时,它很快就会学习。
我的成本函数,节点数,隐藏层数或什么问题?我会喜欢一些指导性的话!
答案 0 :(得分:0)
XOR问题不是线性可分离的,并且使单层感知器不合适。但是,在网络中添加隐藏层会使网络捕获非线性特征,这很好。
网络性能差的最合理的原因可能是由于学习该问题的初期曲折。因此,增加迭代次数将解决该问题。
还有另一种可能的尝试是XOR的平滑非线性,因此偏差的作用对于转换参数至关重要,而与权重一样重要(您没有提到)
答案 1 :(得分:-1)
XOR不能用一个隐藏层来解决。因为您不能只用一行来分隔标签(0和1)。您可以将它们用两行分开,然后使用AND门(另一个隐藏层)找到它们的公共区域。 请参阅此帖子以进行澄清:https://medium.com/@jayeshbahire/the-xor-problem-in-neural-networks-50006411840b