【ComfyUI节点】扰动注意力引导Perturbed Attention Guidance

扰动注意力引导 Perturbed Attention Guidance

GitHub - KU-CVLAB/Perturbed-Attention-Guidance: Official implementation of "Perturbed-Attention Guidance"

按照官方介绍,扰动注意力指导显著提高了扩散模型的样本质量,而无需外部条件(例如类标签或文本提示)或额外训练。这在无条件生成设置中特别有价值,因为无分类器指导 (CFG) 不适用。我们的指导可用于增强利用无条件扩散模型的各种下游任务的性能,包括带有空提示的 ControlNet 和超分辨率和修复等图像恢复任务。

论文地址

Perturbed-Attention Guidance

### GSAM注意力机制在深度学习中的应用 GSAM (Sharpness-Aware Minimization with Surrogate Gap Guidance) 作为一种先进的优化器,在处理复杂模型训练过程中引入了独特的注意力机制,以提高模型的鲁棒性和泛化能力。该方法不仅关注损失函数最小值的位置,还特别考虑了损失曲面的形状特性。 #### 关注损失曲面几何特征 传统优化算法通常只追求使损失尽可能小的方向前进;然而,这种做法可能导致找到的是尖锐极小值而非平坦区域内的解。研究表明,位于较平滑区域的参数组合往往具有更好的测试表现和更强的数据扰动容忍度[^1]。 为了实现这一点,GSAM 引入了一种称为“代理间隙”的概念来指导最优化过程。具体来说: - **计算当前权重下的最大上升方向**:对于给定的一组网络参数 \( w \),寻找使得目标函数增加最多的更新向量 \( v_{max} \)。 - **评估两个位置处的目标差异**:比较原始点 \( f(w) \) 和沿 \( v_{max} \) 移动后的点 \( f(w + \epsilon * v_{max}) \) 的取值情况,其中 \( \epsilon \) 是一个小步长超参。 - **调整梯度下降路径**:利用上述两点之间的差距作为额外惩罚项加入到标准SGD或其他一阶梯度法中去,从而促使迭代轨迹远离那些容易过拟合的地方。 ```python def compute_surrogate_gap(model, inputs, labels, epsilon=0.01): # 获取初始预测误差 outputs = model(inputs) loss_fn = nn.CrossEntropyLoss() original_loss = loss_fn(outputs, labels) # 寻找最大上升方向并移动一小步 grad_max = torch.autograd.grad(original_loss, model.parameters(), create_graph=True) perturbed_params = [] for param, g in zip(model.parameters(), grad_max): p_adv = param.data.clone().detach() + epsilon * g.sign() perturbed_params.append(p_adv.requires_grad_()) # 使用对抗样本重新前向传播得到新的loss adv_outputs = model(*perturbed_params)(inputs) new_loss = loss_fn(adv_outputs, labels) return new_loss - original_loss ``` 此代码片段展示了如何在一个简单的神经网络分类任务里实现surrogate gap的计算逻辑。注意这里假设`model`是一个PyTorch风格的对象,并且输入数据已经准备好用于训练循环内部调用[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚梦小课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值