jwchoi384/Gaussian_YOLOv3

sigma_const hyper parameter

motokimura opened this issue ยท 7 comments

Hi, I talked with you at your poster in ICCV2019!
I just released PyTorch implementation of Gaussian YOLOv3 with training code on COCO dataset. Would it be possible to include link to our repo in third-party-implementations section of your README? If it is okay for you, I can send a pull request to update your README.

Though Gaussian YOLOv3 in our repo shows significant improvement of COCO mAP (2.7 point) on COCO2017 val, this improvement is still smaller than the one reported in your paper (3.1 point).
I'm wondering if this difference comes from the hyper parameter sigma_const set to 0.3 in your implementation (our implementation does not have this parameter).

Do you think sigma_const affects the result a lot?
How did you find the value 0.3 for this parameter?

@motokimura
Hi, I remember you! Nice to meet you!
Thanks for your implementation ๐Ÿ‘
Please send me pull request for update the README.

I experimented with several sigma_const values, and there was some difference.
On BDD validation set (over 200k iteration weight),
sigma_const: 0.1 -> mAP is 18.49-18.65.
sigma_const: 0.2 -> mAP is 18.68-19.11.
sigma_const: 0.3 -> mAP is 18.92-19.14 (and when we reduce the learning rate in on-going training, we can get over 19.7 mAP)
Of those, the value of 0.3 was best.
If sigma is not added to the loss in our C implementation, the training did not work well.
I don't know exactly why, but it seems to be sensitive to variance.
So i added it my model.

Glad to see you there, too! ๐Ÿ˜„
Thank you so much for merging PR!

sigma_const looks more important than I thought.
I agree loss is sensitive to variance with small sigma_const. In our experiments without sigma_const on COCO dataset, we needed gradient clipping to avoid divergence. Also, mAP increased more slowly than when we trained normal YOLOv3 with the same hyper parameters [link]. These may be caused by large magnitude of gradients and sigma_const seems to mitigate this kind of instability of the gaussian loss.

I will try Gaussian YOLOv3 training on COCO again with sigma_const parameter for higher mAP!

@motokimura
I see! Thanks!

I'll let you konw when I got the experiment result! Thanks for your kind answers!

@motokimura , can you open issues in your repo ?

@CuongNguyen218
I enabled issues feature in our repo!
https://github.com/motokimura/PyTorch_Gaussian_YOLOv3/issues

I forgot to enable this feature.
Thanks for your comment!