# Why do we need dropout in deep networks?

I have read some general statements about the usefulness of Dropout but the issue is still very vague to me. It is always said that it prohibits co-adaptability of neurons, but why it should be a bad thing? We build the network of neurons and train all of them together, otherwise what is the point in a connected network? And what we expect is that one specific neuron is activated by a specific input. Dropout exactly opposes this. When we randomly set on and off the neurons, how we do expect that it learn something?

• Thanks for reply, but what is the point in discussing symmetry here? I can not relate it to my question. – Shahriar49 Apr 4 '18 at 23:39

Now, dropout doesn't set the weight to zero completely. Remember, dropout is applied on a whole layer and has a probability associated and can keep changing from batch to batch*. So when we feed our first batch, $n_1, n_2, n_3$ might have there outputs zero, but other neurons still output values. [$n_1, n_2, n_3, n_4,.. n_{10}$ are neurons in some layer]. For next iteration, we might have $n_2, n_4, n_5$ with their outputs zero. The network is forced to learn with such perturbations and eventually adapts to learn even in absence of some data.