4
$\begingroup$

I have an image dataset where objects may belong to one of the hundred thousand classes. I want to know what kind of neural network architecture should I use in order to achieve this.

$\endgroup$
2
$\begingroup$

Classification tasks with a large number of classes are usually handled with hierarchical softmax to reduce the complexity of the final layer. This is useful, for example, in applications such as word embedding where you have hundreds of thousands of classes (words), like in your case.

$\endgroup$
1
$\begingroup$

A large one!

In all seriousness, imagenet had roughly 1000 classes and did not require anything special from the top submissions. Depending on how deep(contextually) these classes are, you may want to do something like multi-label classification. Your biggest problems will likely be differentiating between classes, as well as class distribution.

Good luck!

$\endgroup$
  • 1
    $\begingroup$ I agree with @hisairnessag3 also remember to apply one-hot encoding, multi-hot encoding or sparse categorical depending on your dataset structure. $\endgroup$ – Simbarashe Timothy Motsi Jun 26 '18 at 20:52
1
$\begingroup$

As you can imagine and as it has already been said, a large one for your network to tune weights and biases. But I wanted to nuance this statement with two points

First : you can use an Autoencodeur to pre-process your images. It can reduce dimensionality and so improve the learning capability and efficiency (in a generalization point of view). This kind of NN takes your images as inputs, encode and then decode them to provie new representation of your initial images. Dealing with the decoded dataset can allow you to consider less hidden layer with less hidden nodes and then speed your work up.

Second : architecture is sure a thing to deal with image recognition, but you can also play on the input representation (that is what the autoencoder aforesaid is about). You can look at PCA (Principal Component Analysis). It allows to reduce dimensionality to a certain number of components (that you specify). It is often used in face recognition where inputs and targets are various.

All that to say that architecture is sure a thing when dealing with large datasets, but there also few tools to reshape the inputs so that then can be more easily learnt.

And by doing so you can improve the capability of your network as much in term of time computation as in quality and accuracy of prediction

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.