At the moment, I have around 1.000 classes with accuracy and loss that are acceptable. In the long term, there could be more than 100.000 classes. The main problem is that every time a new class is needed, the model needs to be rebuilt.
For this, I made a POC with a Siamese Network with the goal that new classes can be added without the need to rebuild. The results were not what I expected, and probabilities are a must. As far as I know, this could not be done with this network. The conclusion was that this was not the best option for this case.
Before I start implementing, I would appreciate some feedback and second opinion on the following architecture:
The next thing I would do is build a hierarchy chain of CNN’s. The structure is already available in a database and I could automate the build of the CNN’s to a certain level.
The first CNN could have 4 “main” classes. Based on the probability, the next layer will be determined.
Then the second CNN would have 50 to 200 classes. Based on the probability, the next layer will be determined as well.
Then the last layer would be a CNN with up to 1.000 classes. In case there are more, this could be divided even further.
This way, I could gradually build up the model without the need to rebuild everything (last layer). And the first and second layer only needs to be rebuilt if the accuracy and probability start dropping.
I found a paper with a similar proposal, but could not find feedback or experiences of others. Is this something that is feasible? What could be the problems I will face with a structure like this? Or would you tackle this problem in another way?