wangzhuo2019 / SSAN

Domain Generalization via Shuffled Style Assembly for Face Anti-Spoofing, CVPR2022.
MIT License
93 stars 22 forks source link

大佬,收敛后的Loss有个疑问 #4

Closed gaoxiaoluo closed 2 years ago

gaoxiaoluo commented 2 years ago

epoch:305, mini-batch:1800, lr=0.0001, binary_loss=0.0015, constra_loss=-0.9984, adv_loss=0.0002, Loss=-0.9967 大佬,目前模型loss基本已经收敛,adv_loss为啥接近0呢?我的理解:接近0说明域判别器能够对content feature进行域标签分类,而我们期待的是提取域无关的特征迷糊判别器,adv_loss不应该为0。不知道哪里出了问题。请大佬指教,非常感谢

wangzhuo2019 commented 2 years ago

Hi,这里的adv利用了GRL层使得原本应该是两步迭代优化的对抗生成过程,合为一步,具体来说,GRL做了一个梯度的反转(加负号),所以从前向传播来看,L_adv应该趋向于0,让判别器能够更好地做域判别,但是在反向传播的时候GRL加了负号,使得网络(非判别器的主体部分)其实朝着梯度反方向进行优化。具体可以看一下GRL的论文:Unsupervised Domain Adaptation by Backpropagation, ICML2015.

gaoxiaoluo commented 2 years ago

恩恩,谢谢大佬的回复,GRL的前面的梯度取反,最终判别器无法正确分类。所以经过多轮迭代后的结果不应该是判别器无法正确分类吗?loss越来越大啊,不应该是为0吧?

wangzhuo2019 commented 2 years ago

HI,由于GRL层的存在,网络(非判别器的主体部分)优化方向是与鉴别器优化方向相反。此外,梯度下降会不断使得loss下降。具体优化过程可以看一下GRL的论文。

timjoy3 commented 1 year ago

epoch:305, mini-batch:1800, lr=0.0001, binary_loss=0.0015, constra_loss=-0.9984, adv_loss=0.0002, Loss=-0.9967 大佬,目前模型loss基本已经收敛,adv_loss为啥接近0呢?我的理解:接近0说明域判别器能够对content feature进行域标签分类,而我们期待的是提取域无关的特征迷糊判别器,adv_loss不应该为0。不知道哪里出了问题。请大佬指教,非常感谢

兄弟,你的对比损失函数也是负的吗?我训练出来的对比损失为负的,虽然也会下降,但是会发生震荡,请问这个情况正常吗