Body: <p><strong>TLTR:</strong>
  I'm developing a CNN for a classification task. The data contains multiple classes some of which are very similar to each other and I know these meta-classes. In such a situation is it a good approach to use 2 Levels of CNNs:
  1. Level detect the meta-classes.
  2. Level detect the classes within the classified meta class (of Level 1).</p>
  
  <p><br>
  <strong>Example:</strong>
  Suppose I try to classify the following 9 classes:</p>
  
  <p>Apple Tree, Plum Tree, Cherry Tree, Sports car, SUV car, Coupe car, Dog, Cat, Wolf</p>
  
  <p>Now I could of course use one network on these classes and get a classification output for all of them. But the output (softmax) percentage e.g. for an apple tree would be for probably high for any tree class.
  Thus is it a good approach to train and use 2 level of CNNs, like this:</p>
  
  <ol>
  <li>Level classify tree, car, animal
  --> Trained with all images</li>
  <li>Level classify what kind of tree, car, animal --> trained only with the subsample of trees, cars, animals</li>
  </ol>
  
  <p>So images are checked by CNN Level 1 and then depending on its classification with appropriate CNN Level 2.</p>
  
  <p>So the questions are:</p>
  
  <ul>
  <li>Is this a good approach ?
  
  <ul>
  <li>Does it help in terms of prediction quality/accuracy of the subclasses?</li>
  <li>Is it easier for an CNN to detect the specific features of a subclass if the input is limited (like in level 2) ?</li>
  </ul></li>
  </ul>
  
  <p>Or use another approach ?</p>
  
  <p>Thanks
  Swad</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-03T12:02:58.027Z
Comments.Text: That may work or may be not so good. In my experience CNN with fine classification, many classes, works better then CNN with few bigger classes. If number of classes is less then 1000 I'd start with flat classification. Only experiments would tell which is better, but my intuition the single flat classification will be better.
Comments.UserDisplayName: mirror2image
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-09T13:47:56.583Z
Comments.Text: It is less than 100classes so'll try flat model. thanks for your hint.
Comments.UserDisplayName: swad
Tags: <convolutional-neural-networks><classification>
Title: Classification of classes within meta-classes
UserDisplayName: swad
ThreadText: # Classification of classes within meta-classes
  
  (Asked by: username_0 on 2019-04-03)
  
  **TLTR:**
  I'm developing a CNN for a classification task. The data contains multiple classes some of which are very similar to each other and I know these meta-classes. In such a situation is it a good approach to use 2 Levels of CNNs:
  1. Level detect the meta-classes.
  2. Level detect the classes within the classified meta class (of Level 1).
  
  **Example:**
  Suppose I try to classify the following 9 classes:
  
  Apple Tree, Plum Tree, Cherry Tree, Sports car, SUV car, Coupe car, Dog, Cat, Wolf
  
  Now I could of course use one network on these classes and get a classification output for all of them. But the output (softmax) percentage e.g. for an apple tree would be for probably high for any tree class.
  Thus is it a good approach to train and use 2 level of CNNs, like this:
  
  1. Level classify tree, car, animal
     --> Trained with all images
  2. Level classify what kind of tree, car, animal --> trained only with the subsample of trees, cars, animals
  
  So images are checked by CNN Level 1 and then depending on its classification with appropriate CNN Level 2.
  
  So the questions are:
  
  * Is this a good approach ?
    + Does it help in terms of prediction quality/accuracy of the subclasses?
    + Is it easier for an CNN to detect the specific features of a subclass if the input is limited (like in level 2) ?
  
  Or use another approach ?
  
  Thanks
  Swad
  
  **Tags:** convolutional-neural-networks, classification
  > **Comments:**
  > **username_1**: That may work or may be not so good. In my experience CNN with fine classification, many classes, works better then CNN with few bigger classes. If number of classes is less then 1000 I'd start with flat classification. Only experiments would tell which is better, but my intuition the single flat classification will be better.  
  > **username_0**: It is less than 100classes so'll try flat model. thanks for your hint.  
  
  ---
  
  ## 0 answers
  
  