basic neural networks with backpropagation and gradient descent