关于PGD(映射式梯度下降)对抗训练的理解

在生成对抗样本这个应用场景下,对抗样本的最优境界是足以迷惑模型,对人眼却没有产生可视的变化。这意味着样本需要在原样本的L_2或者L_inf球内产生。这时,使用PGD会带来两点不足

一、PGD方法本身最适用于凸集,凸集中只有唯一的本地最优,也即为全局最优,那么本地最优的问题就得以避免。然而,目前观察表明样本空间对于坡度来说并不是凸集,存在多个本地最优,那么遇到非全局最优的本地优化就是难免的

二、除此之外,另有一种小概率情况会带来较差的结果。如果通往一个本地最优点的gradient通道在球内,然而这个本地最优点本身却在球外,那么PGD会在半坡上遇到边界,从而连本地最优也无法达到

**这两点意味着PGD的运行结果是较不稳定的,需要多次随机初始化,取最优的一次作为最终输出,而现实中也确实是这样做的。**在Mnist challenge的榜上,排名很高的PGD使用了50次随机初始化,并且发布PGD攻击的论文里似乎也是直接将多次随机初始化的过程作为PGD攻击算法必要的一部分,没有随机初始化的版本叫做Basic iterative method attack, BIM。这对PGD的最终性能并没有影响,但是所需的多次初始化对于训练时间而言显然是不利的。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用MATLAB实现的投影梯度下降法(PGD)的仿真程序: ```matlab % PGD Algorithm % minimize f(x) subject to x in C % where C is a convex set % Define objective function f(x) f = @(x) (x(1)-1)^2 + (x(2)-2)^2; % Define projection operator onto convex set C C = @(x) [max(min(x(1), 2), -2); max(min(x(2), 2), -2)]; % Set initial point x0 and step size alpha x0 = [3; 3]; alpha = 0.1; % Set maximum number of iterations and tolerance level max_iter = 1000; tol = 1e-6; % Initialize variables iter = 0; x = x0; x_prev = x + tol*10; % PGD Algorithm while norm(x - x_prev) > tol && iter < max_iter % Save current point as previous point x_prev = x; % Compute gradient of f at current point grad_f = [2*(x(1)-1); 2*(x(2)-2)]; % Compute descent direction by projecting negative gradient onto C d = C(x - alpha*grad_f) - x; % Update current point by moving in descent direction x = x + alpha*d; % Increment iteration counter iter = iter + 1; end % Print results fprintf('PGD Algorithm:\n'); fprintf('Iterations: %d\n', iter); fprintf('Minimizer: (%f, %f)\n', x(1), x(2)); fprintf('Minimum value: %f\n', f(x)); ``` 在此示例中,我们定义了目标函数$f(x)=(x_1-1)^2+(x_2-2)^2$,并将其最小化,限制条件为$x$在一个凸集$C$中。我们还定义了一个投影算子$C(x)$,它将点$x$投影到凸集$C$上。在每个迭代中,我们计算$f$在当前点$x$处的梯度,并将其投影到$C$上,以获得下降方向$d$。我们通过将步长$alpha$乘以下降方向$d$来更新$x$的值。最后,我们计算了迭代的次数、最小化器和最小值,并将它们打印出来。 请注意,在实际应用中,需要根据具体问题来定义目标函数和凸集$C$,并根据问题的复杂性和精度要求来调整迭代次数和收敛容差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值