How is the initial structure (Neurons and connections between them) chosen? My book only states that we give the connection random weights in the beginning before we train the network.

I think that we would add neurons during the training like this:

1. Start with a completely empty network
2. The first value I generate during the training will not exist
3. Add a neuron to correspond to this value, with a random weight