Recently, I've started to learn more about CNNs to use them in some computer vision tasks.
At the moment, I have roughly good knowledge about different parts of a CNN such as layers, solvers, loss functions, forward and backward passes, initialization methods and hyper parameters.
But, there is still a question in my mind that I do not have a suitable answer for it.
Whenever I read a paper, I notice that authors are trying to use their own CNN architecture to do some specific tasks. They put some layers together to generate the intended output. For example, it is very common to have multiple convolutional layers to obtain a hierarchy of image features in different scales and abstraction levels.
But in many cases, they put some fully connected layers successively at the very end of the network to feed the last classifier (e.g. softmax layer).
What is the role of these multiple FC layers exactly and how should I think about them and their quantity? Is this also another hyper parameter?
In general, how should we start thinking about the architecture of the CNN in a specific task such as let's say image segmentation?
Thanks for all the attentions.