Why do CNNs work on regression problems such as finding bounding boxes in images? My understanding is that each layer in a CNN computers specific features, depending on the type of filter that has been trained, like edges/nodes/patterns etc. I can understand how this can be used in classification problems, but how is this information used when predicting bounding boxes around images. 
I've come across multiple tutorials online, where the process of adding bounding box locations to the output layers, and loss function are discussed, but none explained why this approach works. Are there any resources that could help explain this?
 A: Let me answer with an opposite question: Why shouldn't they work?
Look at it from the math perspective: What does a convolution operation do? It looks at a bunch of local activations from its preceding layer and computes their weighted sum. The same operation is applied in a sliding window fashion over multiple spatial locations. The "usual" fully connected layers for regression do actually the same, except they don't use the same weights everywhere and they do not look only at activations in a small local neighborhood, but as far as arithmetic goes, they compute the same stuff.
When predicting bounding boxes, one usually regresses parameters of "anchor boxes", predefined bounding boxes at various locations. These parameters are often offset and scaling, controlling how should an anchor box be perturbed to match some object.
Convolutions are actually great in this case: it does not matter where in the image an object is located, the offset and scaling of an anchor box in that location should be the same.
