<p>The problem you described is a pretty well-known multiclassification problem. Instead of assigning a label from a predefined set - you are making a decision for each label separately if you want to assign it to a given image.</p>

<p>In case of <code>keras</code> setup - you could either build a vector of length <code>nb_of_classes</code> with <code>sigmoid</code> activation (model is trained using <code>binary_crossentopy</code> then) or set up multiple outputs (recommended if each label has multiple decisions to make - like predicting a class and some other value) for each class.</p>

<p>To answer your questions:</p>

<ol>
<li><p>From my experience (and knowing how usual loss functions work) if you set up training for only one class - in the ideal scenario, this would lead to assigning 50%-50% (in case of two ground truth classes), 33%-33%-33% (in case of three ground truth classes), etc. As you may see - this might make problems e.g. with setting a threshold for classification. I'd personally choose the strategy with a separate output with <code>sigmoid</code> per class- remember - that having multiple pieces of information about the image should in general lead to better model performance. </p></li>
<li><p>As I mentioned earlier - providing multi-classes might help as you are providing e.g. an implicit class correlations and resolving class conflicts in case of multi-classes assigned.</p></li>
<li><p><a href="https://arxiv.org/pdf/1406.5726.pdf" rel="nofollow noreferrer">Here</a> you have a nice paper about your case.</p></li>
</ol>
Does training a multi-labeling CNNs on single-class data hinder accuracy?
<p>I built a CNN for a multi-label classification, i.e. predicting multiple labels per image.</p>

<p>I noticed that ImageNet and many of the other dataset actually include a set of examples per label. The way they structured the data is such that given a label, there is a list of examples for that label. Namely:
label -> list of images. Also Keras, which I'm using, supports a data structure of a folder per label, and in each folder a list of images as examples fo the label.</p>

<p>The problem I'm concerned about is that many images may actually have multiple labels in them. For example, if I'm classifying general objects a single folder named 'Cars' will have images of cars, but some images of cars will also have people in them (and may hinder the results on the class 'People').</p>

<p>My first question:
1) Can this (i.e. single label per image in ground truth) reduce the potential accuracy of the network?</p>

<p>If this is the case, I thought of instead creating a dataset of the form:
image1,{list of its labels}
image2,{list of its labels}
etc</p>

<p>2) Will such a structure produce better results?</p>

<p>3) What is a good academic paper about this?</p>