- What are bottleneck features? (Mentioned here https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html).
- Do they change with the architecture that is used?
- Are they final output of Conv. layers before the FC layer?
- Why are they called so?
What are bottleneck features? (Mentioned here https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html).
It's clearly written in the link you gave:
the "bottleneck features" from the VGG16 model: the last activation maps before the fully-connected layers
Do they change with the architecture?
Sure. The author most likely used a pretrained model (trained on a large data and now used only as a feature extractor)
Do are they final output of Conv. layers before the FC layer?
Why are they called so?
Given the input size to VGG the feature maps HxW dimensions are getting twice smaller after every maxpool operation. HxW is smallest on the last conv layer.
First, we need to talk about transfer learning. Imagine you trained a neuronal network over a dataset of images to detect cats, you can use part of the training you have done to work over another detecting something else. That's known as transfer learning.
To do transfer learning, you will remove the last fully connected layer from the model and plug in your layers there. The "truncated" model output is going to be the features that will fill your "model". Those are the bottleneck features.
VGG16 is a pretrain-model over ImageNet catalog that has very good accuracy. In the post you shared, is using that model as a base to detect cat and dogs with a higher accuracy.
Bottleneck features depends on the model. In this case, we are using VGG16. There are others pre-trained models like VGG19, ResNet-50
It's like you are cutting a model and adding your own layers. Mainly, the output layer to decide what you want to detect, the final output.