关于FGSM用于逻辑回归时softplus损失梯度符号推导的疑问
嗨,我完全理解你的困惑——这个推导差异确实容易让人卡壳,咱们一步步拆解问题出在哪:
首先得明确论文里的核心设定:你提到的那篇经典文章中,这里的损失函数是单样本损失,而非你写的带期望的总体风险。也就是说,论文里的$L(\mathbf{x},y,\mathbf{w})$其实是针对单个样本$(\mathbf{x},y)$的损失:
$$L(\mathbf{x},y,\mathbf{w}) = \log(1 + e{-y(\mathbf{w}{\top}\mathbf{x}+b)})$$
而不是对整个数据分布的期望形式。
我们来重新推导单样本损失关于$\mathbf{x}$的梯度:
先计算梯度本身:
$$\nabla_{\mathbf{x}} L(\mathbf{x},y,\mathbf{w}) = \frac{-y\mathbf{w} e{-y(\mathbf{w}{\top}\mathbf{x}+b)}}{1 + e{-y(\mathbf{w}{\top}\mathbf{x}+b)}}$$
观察符号:分母$1 + e{-y(\mathbf{w}{\top}\mathbf{x}+b)}$和指数项$e{-y(\mathbf{w}{\top}\mathbf{x}+b)}$都是正数,所以整个梯度的符号完全由$-y\mathbf{w}$决定:
$$\mathrm{sgn}(\nabla_{\mathbf{x}} L(\mathbf{x},y,\mathbf{w})) = \mathrm{sgn}(-y\mathbf{w}) = -\mathrm{sgn}(y)\mathrm{sgn}(\mathbf{w})$$
那为什么论文里的结论是$\mathrm{sgn}(\nabla_{\mathbf{x}} L(\mathbf{x},y,\mathbf{w})) = -\mathrm{sgn}(\mathbf{w})$呢?这里大概率是论文有上下文的隐含设定:
- 要么是只针对正样本($y=+1$)进行讨论,省略了$\mathrm{sgn}(y)$项;
- 要么是在对抗样本生成的场景中,默认只考虑被模型正确分类的样本,此时$y(\mathbf{w}^{\top}\mathbf{x}+b) > 0$,但这其实不影响梯度的符号项,更可能是论文为了简化表述,在上下文明确$y$符号的前提下省略了相关项。
而你推导的结果,是针对**总体风险(对全数据分布取期望)**的梯度符号,这和论文讨论的FGSM场景完全不同——FGSM是逐个样本生成对抗样本的,只需要计算单个样本的损失梯度,不需要对整个分布取期望,所以你会多出来$\mathrm{sgn}(\mathbb{E}{(\mathbf{x},y)\sim p{\rm data}} y)$这一项。
备注:内容来源于stack exchange,提问作者SEJ

