weiliu89 / caffe

Caffe: a fast open framework for deep learning.
http://caffe.berkeleyvision.org/
Other
4.77k stars 1.67k forks source link

imbalance data, imbalance bbox #521

Open MicBA opened 7 years ago

MicBA commented 7 years ago

Hi.. first thanks for contributing and publish SSD. i have some question in regrade to imbalance data.. in case i have more example from one class (or more), is the SSD know how to penalize each class? or in case i got more prior bbox match in one class then other, isn't that can cause bad performance (especially if i need only the top-1 class detection ) Thanks!

Please use the caffe-users list for usage, installation, or modeling questions, or other requests for help. Do not post such requests to Issues. Doing so interferes with the development of Caffe.

Please read the guidelines for contributing before submitting this issue.

Issue summary

Steps to reproduce

If you are having difficulty building Caffe or training a model, please ask the caffe-users mailing list. If you are reporting a build error that seems to be due to a bug in Caffe, please attach your build configuration (either Makefile.config or CMakeCache.txt) and the output of the make (or cmake) command.

Your system configuration

Operating system: Compiler: CUDA version (if applicable): CUDNN version (if applicable): BLAS: Python or MATLAB version (for pycaffe and matcaffe respectively):

weiliu89 commented 7 years ago

You might try to adjust weight for different class. However, this would require you some understanding of the MultiBoxLossLayer to make the correct changes.

MicBA commented 7 years ago

Hi @weiliu Thank you for the respond!

As i understand the MultiBoxLossLayer, the loss is the sum of the soft-max loss on the classes and L1 loss on the location, is that right ? if i want to add wights, do i need to penalize just the soft-max losses or the total loss per sample in the MultiBoxLossLayer ?

weiliu89 commented 7 years ago

I think setting weight differently for softmax is enough since the bbox is shared by all the classes by default.

MicBA commented 7 years ago

thanks for the respond.

i have something still not clear we try to find match per bbox (with specific class) to preior bbox, in some case we can get match prior to more then one test bbox (think of case we have one object behind another), so in that case we have prior that match 2( or more ) class, isn't sigmoid function suit better then softmax? (i can see in the one-hot class 1 in more then one place)

thanks.

weiliu89 commented 7 years ago

The match ensures that each prior box can only be matched to one ground truth box. One ground truth box might have multiple matched prior boxes though.