Learning Boolean Circuits with Neural Networks