É um fato bem conhecido que uma rede de uma camada não pode prever a função xor, uma vez que não é linearmente separável. Tentei criar uma rede de duas camadas, usando a função sigmoide logística e backprop, para prever xor. Minha rede possui 2 neurônios (e um viés) na camada de entrada, 2 neurônios e 1 viés na camada oculta e 1 neurônio de saída. Para minha surpresa, isso não irá convergir. se eu adicionar uma nova camada, então eu tenho uma rede de 3 camadas com entrada (2 + 1), hidden1 (2 + 1), hidden2 (2 + 1) e saída, ela funciona. Além disso, se eu mantiver uma rede de duas camadas, mas aumentar o tamanho da camada oculta para 4 neurônios + 1 polarização, ela também converge. Existe uma razão pela qual uma rede de duas camadas com 3 ou menos neurônios ocultos não será capaz de modelar a função xor?