YOLO: What is better? multiple networks per label or multiple labels in single network?In Neural Networks and deep neural networks what does label-dropout meanBatching in Recurrent Neural Networks (RNNs) when there is only a single instance per time step?What is the way to modify a neural network classifier to deal with sample points from outside of the label set?

Initiative: Do I lose my attack/action if my target moves or dies before my turn in combat?

Was there a shared-world project before "Thieves World"?

What is the most expensive material in the world that could be used to create Pun-Pun's lute?

Can't get 5V 3A DC constant

How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?

Don’t seats that recline flat defeat the purpose of having seatbelts?

Coordinate my way to the name of the (video) game

What happens to Mjolnir (Thor's hammer) at the end of Endgame?

Read line from file and process something

Does a large simulator bay have standard public address announcements?

bldc motor, esc and battery draw, nominal vs peak

Can someone publish a story that happened to you?

Random Forest different results for same observation

Why did some of my point & shoot film photos come back with one third light white or orange?

How much cash can I safely carry into the USA and avoid civil forfeiture?

Is it idiomatic to construct against `this`

Why was the Spitfire's elliptical wing almost uncopied by other aircraft of World War 2?

Re-entry to Germany after vacation using blue card

What happened to Captain America in Endgame?

How do I check if a string is entirely made of the same substring?

Can an Area of Effect spell cast outside a Prismatic Wall extend inside it?

How exactly does Hawking radiation decrease the mass of black holes?

Farming on the moon

Contradiction proof for inequality of P and NP?



YOLO: What is better? multiple networks per label or multiple labels in single network?


In Neural Networks and deep neural networks what does label-dropout meanBatching in Recurrent Neural Networks (RNNs) when there is only a single instance per time step?What is the way to modify a neural network classifier to deal with sample points from outside of the label set?













1












$begingroup$


I would like to use a YOLOv3 network,load in the preexisting trained weights, then retrain the ending layer to recognize say, 20 labels.



Would adding labels to a single network in training reduce its accurary?



Would it be better to train multiple models on 5,10 and 5 labels respectively.



e.g.



Model A : recognizes 5 labels (ferrari,honda,ford,toyota,tesla)
Model B : regonzies 10 labels (store front / stopsign, speed sign, super charger station , etccc. )
Model C : recongizes 5 labels (pedestrian, dog, marathon runner, bicycler, scooter rider)


OR



Model D: Recognizes 20 labels (all labels above put together)


Would Model D be as accurate as Model A,B,C put together?










share|improve this question











$endgroup$
















    1












    $begingroup$


    I would like to use a YOLOv3 network,load in the preexisting trained weights, then retrain the ending layer to recognize say, 20 labels.



    Would adding labels to a single network in training reduce its accurary?



    Would it be better to train multiple models on 5,10 and 5 labels respectively.



    e.g.



    Model A : recognizes 5 labels (ferrari,honda,ford,toyota,tesla)
    Model B : regonzies 10 labels (store front / stopsign, speed sign, super charger station , etccc. )
    Model C : recongizes 5 labels (pedestrian, dog, marathon runner, bicycler, scooter rider)


    OR



    Model D: Recognizes 20 labels (all labels above put together)


    Would Model D be as accurate as Model A,B,C put together?










    share|improve this question











    $endgroup$














      1












      1








      1





      $begingroup$


      I would like to use a YOLOv3 network,load in the preexisting trained weights, then retrain the ending layer to recognize say, 20 labels.



      Would adding labels to a single network in training reduce its accurary?



      Would it be better to train multiple models on 5,10 and 5 labels respectively.



      e.g.



      Model A : recognizes 5 labels (ferrari,honda,ford,toyota,tesla)
      Model B : regonzies 10 labels (store front / stopsign, speed sign, super charger station , etccc. )
      Model C : recongizes 5 labels (pedestrian, dog, marathon runner, bicycler, scooter rider)


      OR



      Model D: Recognizes 20 labels (all labels above put together)


      Would Model D be as accurate as Model A,B,C put together?










      share|improve this question











      $endgroup$




      I would like to use a YOLOv3 network,load in the preexisting trained weights, then retrain the ending layer to recognize say, 20 labels.



      Would adding labels to a single network in training reduce its accurary?



      Would it be better to train multiple models on 5,10 and 5 labels respectively.



      e.g.



      Model A : recognizes 5 labels (ferrari,honda,ford,toyota,tesla)
      Model B : regonzies 10 labels (store front / stopsign, speed sign, super charger station , etccc. )
      Model C : recongizes 5 labels (pedestrian, dog, marathon runner, bicycler, scooter rider)


      OR



      Model D: Recognizes 20 labels (all labels above put together)


      Would Model D be as accurate as Model A,B,C put together?







      neural-network image-recognition yolo






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 10 at 0:15







      Ryu S.

















      asked Apr 9 at 10:20









      Ryu S.Ryu S.

      63




      63




















          1 Answer
          1






          active

          oldest

          votes


















          0












          $begingroup$

          It depends specially on data size and model capacity.



          Therefore, we cannot give a definite "yes" or "no" prior to any experiment. However, we can enumerate possible cases, causes, and ways to improve, regardless of any specific model or dataset.



          1. If the number of data points per category is insufficient, which is frequently the case in reality, a single model for combined categories performs better, since the effect of data shortage will be attenuated by sharing a model among different but related tasks, i.e. shared knowledge. However, we should not forget about the capacity of model, if model capacity is not enough for the combined task (which depends on the architecture and size of the model), this sharing would backfire as the model spreads its limited capacity across multiple tasks and becomes "jack of all trades, and master of none". Therefore, this approach is favorable if model capacity permits, which is less of a concern for neural networks with flexible size constraints.


          2. If the number of data points per category is sufficient, which is rarely the case, or model capacity is limited (for example, when model performance stops improving when trained on more than 10% of data), single model per category is better since no capacity will be wasted on different (although related) tasks. From a different point of view, although this choice might be less favorable in terms of model accuracy, but it allows parallel development on smaller tasks, i.e. faster production, which could be a justified benefit for the cost we pay in terms of model accuracy.


          Both approaches



          We can also combine the two approaches. First we train a model on combined categories, second we feed a part (or parts) of the trained model (such as a layer, the final prediction, etc.) to a specific model that will be trained on one category. This is exactly what a pre-trained model does for us, it is trained on a more general task with more data (possibly even a different but related task), and then we use it for a specific task.



          In your case, you can go for three levels:



          1. The pre-trained YOLO which is already built,

          2. Training MyYOLO on all categories (for example, by using one input from the last layer of YOLO, and one input directly from image), and

          3. Training MyYOLO2 on specific categories (for example, by using one input from MyYOLO and one input directly from image). Noting that at each level, weights of previous model remain constant to serve a constant input.





          share|improve this answer











          $endgroup$












          • $begingroup$
            I am planning on using the pretrained yolov3 weights
            $endgroup$
            – Ryu S.
            Apr 10 at 0:14










          • $begingroup$
            @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
            $endgroup$
            – Esmailian
            Apr 10 at 12:00











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "557"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48952%2fyolo-what-is-better-multiple-networks-per-label-or-multiple-labels-in-single-n%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0












          $begingroup$

          It depends specially on data size and model capacity.



          Therefore, we cannot give a definite "yes" or "no" prior to any experiment. However, we can enumerate possible cases, causes, and ways to improve, regardless of any specific model or dataset.



          1. If the number of data points per category is insufficient, which is frequently the case in reality, a single model for combined categories performs better, since the effect of data shortage will be attenuated by sharing a model among different but related tasks, i.e. shared knowledge. However, we should not forget about the capacity of model, if model capacity is not enough for the combined task (which depends on the architecture and size of the model), this sharing would backfire as the model spreads its limited capacity across multiple tasks and becomes "jack of all trades, and master of none". Therefore, this approach is favorable if model capacity permits, which is less of a concern for neural networks with flexible size constraints.


          2. If the number of data points per category is sufficient, which is rarely the case, or model capacity is limited (for example, when model performance stops improving when trained on more than 10% of data), single model per category is better since no capacity will be wasted on different (although related) tasks. From a different point of view, although this choice might be less favorable in terms of model accuracy, but it allows parallel development on smaller tasks, i.e. faster production, which could be a justified benefit for the cost we pay in terms of model accuracy.


          Both approaches



          We can also combine the two approaches. First we train a model on combined categories, second we feed a part (or parts) of the trained model (such as a layer, the final prediction, etc.) to a specific model that will be trained on one category. This is exactly what a pre-trained model does for us, it is trained on a more general task with more data (possibly even a different but related task), and then we use it for a specific task.



          In your case, you can go for three levels:



          1. The pre-trained YOLO which is already built,

          2. Training MyYOLO on all categories (for example, by using one input from the last layer of YOLO, and one input directly from image), and

          3. Training MyYOLO2 on specific categories (for example, by using one input from MyYOLO and one input directly from image). Noting that at each level, weights of previous model remain constant to serve a constant input.





          share|improve this answer











          $endgroup$












          • $begingroup$
            I am planning on using the pretrained yolov3 weights
            $endgroup$
            – Ryu S.
            Apr 10 at 0:14










          • $begingroup$
            @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
            $endgroup$
            – Esmailian
            Apr 10 at 12:00















          0












          $begingroup$

          It depends specially on data size and model capacity.



          Therefore, we cannot give a definite "yes" or "no" prior to any experiment. However, we can enumerate possible cases, causes, and ways to improve, regardless of any specific model or dataset.



          1. If the number of data points per category is insufficient, which is frequently the case in reality, a single model for combined categories performs better, since the effect of data shortage will be attenuated by sharing a model among different but related tasks, i.e. shared knowledge. However, we should not forget about the capacity of model, if model capacity is not enough for the combined task (which depends on the architecture and size of the model), this sharing would backfire as the model spreads its limited capacity across multiple tasks and becomes "jack of all trades, and master of none". Therefore, this approach is favorable if model capacity permits, which is less of a concern for neural networks with flexible size constraints.


          2. If the number of data points per category is sufficient, which is rarely the case, or model capacity is limited (for example, when model performance stops improving when trained on more than 10% of data), single model per category is better since no capacity will be wasted on different (although related) tasks. From a different point of view, although this choice might be less favorable in terms of model accuracy, but it allows parallel development on smaller tasks, i.e. faster production, which could be a justified benefit for the cost we pay in terms of model accuracy.


          Both approaches



          We can also combine the two approaches. First we train a model on combined categories, second we feed a part (or parts) of the trained model (such as a layer, the final prediction, etc.) to a specific model that will be trained on one category. This is exactly what a pre-trained model does for us, it is trained on a more general task with more data (possibly even a different but related task), and then we use it for a specific task.



          In your case, you can go for three levels:



          1. The pre-trained YOLO which is already built,

          2. Training MyYOLO on all categories (for example, by using one input from the last layer of YOLO, and one input directly from image), and

          3. Training MyYOLO2 on specific categories (for example, by using one input from MyYOLO and one input directly from image). Noting that at each level, weights of previous model remain constant to serve a constant input.





          share|improve this answer











          $endgroup$












          • $begingroup$
            I am planning on using the pretrained yolov3 weights
            $endgroup$
            – Ryu S.
            Apr 10 at 0:14










          • $begingroup$
            @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
            $endgroup$
            – Esmailian
            Apr 10 at 12:00













          0












          0








          0





          $begingroup$

          It depends specially on data size and model capacity.



          Therefore, we cannot give a definite "yes" or "no" prior to any experiment. However, we can enumerate possible cases, causes, and ways to improve, regardless of any specific model or dataset.



          1. If the number of data points per category is insufficient, which is frequently the case in reality, a single model for combined categories performs better, since the effect of data shortage will be attenuated by sharing a model among different but related tasks, i.e. shared knowledge. However, we should not forget about the capacity of model, if model capacity is not enough for the combined task (which depends on the architecture and size of the model), this sharing would backfire as the model spreads its limited capacity across multiple tasks and becomes "jack of all trades, and master of none". Therefore, this approach is favorable if model capacity permits, which is less of a concern for neural networks with flexible size constraints.


          2. If the number of data points per category is sufficient, which is rarely the case, or model capacity is limited (for example, when model performance stops improving when trained on more than 10% of data), single model per category is better since no capacity will be wasted on different (although related) tasks. From a different point of view, although this choice might be less favorable in terms of model accuracy, but it allows parallel development on smaller tasks, i.e. faster production, which could be a justified benefit for the cost we pay in terms of model accuracy.


          Both approaches



          We can also combine the two approaches. First we train a model on combined categories, second we feed a part (or parts) of the trained model (such as a layer, the final prediction, etc.) to a specific model that will be trained on one category. This is exactly what a pre-trained model does for us, it is trained on a more general task with more data (possibly even a different but related task), and then we use it for a specific task.



          In your case, you can go for three levels:



          1. The pre-trained YOLO which is already built,

          2. Training MyYOLO on all categories (for example, by using one input from the last layer of YOLO, and one input directly from image), and

          3. Training MyYOLO2 on specific categories (for example, by using one input from MyYOLO and one input directly from image). Noting that at each level, weights of previous model remain constant to serve a constant input.





          share|improve this answer











          $endgroup$



          It depends specially on data size and model capacity.



          Therefore, we cannot give a definite "yes" or "no" prior to any experiment. However, we can enumerate possible cases, causes, and ways to improve, regardless of any specific model or dataset.



          1. If the number of data points per category is insufficient, which is frequently the case in reality, a single model for combined categories performs better, since the effect of data shortage will be attenuated by sharing a model among different but related tasks, i.e. shared knowledge. However, we should not forget about the capacity of model, if model capacity is not enough for the combined task (which depends on the architecture and size of the model), this sharing would backfire as the model spreads its limited capacity across multiple tasks and becomes "jack of all trades, and master of none". Therefore, this approach is favorable if model capacity permits, which is less of a concern for neural networks with flexible size constraints.


          2. If the number of data points per category is sufficient, which is rarely the case, or model capacity is limited (for example, when model performance stops improving when trained on more than 10% of data), single model per category is better since no capacity will be wasted on different (although related) tasks. From a different point of view, although this choice might be less favorable in terms of model accuracy, but it allows parallel development on smaller tasks, i.e. faster production, which could be a justified benefit for the cost we pay in terms of model accuracy.


          Both approaches



          We can also combine the two approaches. First we train a model on combined categories, second we feed a part (or parts) of the trained model (such as a layer, the final prediction, etc.) to a specific model that will be trained on one category. This is exactly what a pre-trained model does for us, it is trained on a more general task with more data (possibly even a different but related task), and then we use it for a specific task.



          In your case, you can go for three levels:



          1. The pre-trained YOLO which is already built,

          2. Training MyYOLO on all categories (for example, by using one input from the last layer of YOLO, and one input directly from image), and

          3. Training MyYOLO2 on specific categories (for example, by using one input from MyYOLO and one input directly from image). Noting that at each level, weights of previous model remain constant to serve a constant input.






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Apr 10 at 11:59

























          answered Apr 9 at 13:06









          EsmailianEsmailian

          3,846420




          3,846420











          • $begingroup$
            I am planning on using the pretrained yolov3 weights
            $endgroup$
            – Ryu S.
            Apr 10 at 0:14










          • $begingroup$
            @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
            $endgroup$
            – Esmailian
            Apr 10 at 12:00
















          • $begingroup$
            I am planning on using the pretrained yolov3 weights
            $endgroup$
            – Ryu S.
            Apr 10 at 0:14










          • $begingroup$
            @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
            $endgroup$
            – Esmailian
            Apr 10 at 12:00















          $begingroup$
          I am planning on using the pretrained yolov3 weights
          $endgroup$
          – Ryu S.
          Apr 10 at 0:14




          $begingroup$
          I am planning on using the pretrained yolov3 weights
          $endgroup$
          – Ryu S.
          Apr 10 at 0:14












          $begingroup$
          @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
          $endgroup$
          – Esmailian
          Apr 10 at 12:00




          $begingroup$
          @RyuS. Nice. We cannot give a definite "yes" or "no", I updated the answer in this regard. Hope it helps.
          $endgroup$
          – Esmailian
          Apr 10 at 12:00

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Data Science Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48952%2fyolo-what-is-better-multiple-networks-per-label-or-multiple-labels-in-single-n%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

          Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

          Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High