Focal-Loss-Pytorch
                                
                                 Focal-Loss-Pytorch copied to clipboard
                                
                                    Focal-Loss-Pytorch copied to clipboard
                            
                            
                            
                        关于α参数
论文中说 α for class 1 and 1−α for class −1,class 1和class -1应该分别指的是正样本和负样本(背景类),可我看您的实现好像是反的?
@yatengLG 同时还有一句 Finally we note that α, the weight assigned to the rare class, 这是不是更加说明1−α 才应该赋给background
论文是好早之前看过的了,具体细节也忘了。我这里就说下我写的意思以及为什么这么写吧。
- 我这里的确是 α赋予背景类,1-α赋予其他类(正样本,非背景类)。
- 我这里实现的是俩个功能,一个是目标检测时,单抑制背景类;第二个是对不同类分别给予不同的权重。 当时这么写是想统一俩种功能的逻辑,比如单抑制背景类时,α=0.25,意味着我给背景类添加一个0.25的权重,其他类0.75的权重;在不同类别赋予不同权重时,直接[0.25, 0.3, 1, 0.5] 这样,可以很好的理解,第一类赋予0.25权重,第二类赋予0.3权重 .......这样。
按照论文中,1-α赋予负样本,α赋予正样本,也是完全可以的。不过理解可能要变成,α=0.75,赋予正样本,1-α=0.25赋予背景类。
当时写的时候总感觉有点别扭。 理解了算法本身,俩种写法都可以正常使用,没有任何影响的。
我明白您那样写的意思,代码很简洁明了,我仔细看了论文,也看了很多别人的解读,α=0.25是赋予正样本的,这样来看在加大背景类的权重,解释是因为衰减部分(1-pt)**γ把作为easy examples的背景类的loss减小得太多了。另外,请问您用focal loss训练的SSD效果比原来的更好吗,我最近在想办法改进SSD的效果。
效果较之前有明显提高。但是你需要把正则化调高,由于γ参数的影响,过拟合特别明显。
我用focal loss训练出来的SSD效果要差很多,我是先在VOC数据集上训练好SSD后再在别的数据集上微调,用focal loss达不到之前用OHEM的效果。我想再问一下您除了调大正则化之外还有改别的超参数吗,比如学习率,focal loss的α和γ,以及初始化方式等,谢谢!