0


牛津大学出品:随机噪声对抗训练

引言

该论文出自于牛津大学,主要是关于对抗训练的研究。目前已经有研究表明使用单步

  1. F
  2. G
  3. S
  4. M
  5. \mathrm{FGSM}
  6. FGSM进行对抗训练会导致一种严重的过拟合现象,在该论文中作者经过理论分析和实验验证重新审视了对抗噪声和梯度剪切在单步对抗训练中的作用。作者发现对于大的对抗扰动半径可有效避免过拟合现象。基于该观察结果,作者提出了一种随机噪声对抗训练
  7. N
  8. -
  9. F
  10. G
  11. S
  12. M
  13. \mathrm{N\text{-}FGSM}
  14. N-FGSM,实验表明该方法不仅提供了单步对抗训练的减少计算开销的好处,而且也不会受到过拟合现象的影响。论文里没有提供相关源代码,本文最后一节是关于该论文算法的一个简单实现。

论文链接:https://arxiv.org/abs/2202.01181

预备知识

给定一个参数为

  1. θ
  2. \theta
  3. θ的分类器
  4. f
  5. θ
  6. :
  7. X
  8. Y
  9. f_\theta:\mathcal{X}\rightarrow \mathcal{Y}
  10. fθ​:XY,一个对抗扰动集合
  11. S
  12. \mathcal{S}
  13. S。如果对于任意的对抗扰动
  14. δ
  15. S
  16. \delta\in \mathcal{S}
  17. δ∈S,有
  18. f
  19. θ
  20. (
  21. x
  22. +
  23. δ
  24. )
  25. =
  26. f
  27. θ
  28. (
  29. x
  30. )
  31. f_\theta(x+\delta)=f_\theta(x)
  32. fθ​(x+δ)=fθ​(x),则可以说
  33. f
  34. θ
  35. f_\theta
  36. fθ​在点
  37. x
  38. X
  39. x\in \mathcal{X}
  40. xX关于对抗扰动集合
  41. S
  42. \mathcal{S}
  43. S是鲁棒的。对抗扰动集合
  44. S
  45. \mathcal{S}
  46. S的定义为
  47. S
  48. =
  49. {
  50. δ
  51. :
  52. δ
  53. ϵ
  54. }
  55. \mathcal{S}=\{\delta:\|\delta\|_\infty\le \epsilon\}
  56. S={δ:∥δ∥∞​≤ϵ}为了使得神经网络模型能够在
  57. \ell_\infty
  58. ℓ∞​范数具有鲁棒性。对抗训练在数据集
  59. D
  60. =
  61. {
  62. (
  63. x
  64. i
  65. ,
  66. y
  67. i
  68. )
  69. }
  70. i
  71. =
  72. 1
  73. :
  74. N
  75. \mathcal{D}=\{(x_i,y_i)\}_{i=1:N}
  76. D={(xi​,yi​)}i=1:N​上修正类别训练进程并最小化损失函数,其中对抗训练的目标为
  77. min
  78. θ
  79. i
  80. =
  81. 1
  82. N
  83. max
  84. δ
  85. L
  86. (
  87. f
  88. θ
  89. (
  90. x
  91. i
  92. +
  93. δ
  94. )
  95. ,
  96. y
  97. i
  98. )
  99. s
  100. .
  101. t
  102. .
  103. δ
  104. ϵ
  105. \min\limits_{\theta}\sum\limits_{i=1}^N\max\limits_{\delta} \mathcal{L}(f_\theta(x_i+\delta),y_i)\quad \mathrm{s.t.}\quad \|\delta\|_\infty \le \epsilon
  106. θmini=1N​δmaxL(fθ​(xi​+δ),yi​)s.t.∥δ∥∞​≤ϵ其中
  107. L
  108. \mathcal{L}
  109. L是图片分类器的交叉熵损失函数。由于找到内部最大化的最优解是非常困难的,对抗训练最常见的方法就是通过
  110. P
  111. G
  112. D
  113. \mathrm{PGD}
  114. PGD来近似最坏情况下的对抗扰动。虽然这已经被证明可以产生鲁棒性模型,但是计算开销随着
  115. P
  116. G
  117. D
  118. \mathrm{PGD}
  119. PGD迭代数量而线性增加。因此,当前的工作专注于通过一步逼近内部最大化最优解来降低对抗训练的成本。

假设损失函数对于输入的变化是局部线性的,那么可以知道对抗训练内部最大化具有封闭形式的解。

  1. G
  2. o
  3. o
  4. d
  5. f
  6. e
  7. l
  8. l
  9. o
  10. w
  11. \mathrm{Goodfellow}
  12. Goodfellow利用这一点提出了
  13. F
  14. G
  15. S
  16. M
  17. \mathrm{FGSM}
  18. FGSM,其中对抗扰动遵循梯度符号的方向,
  19. T
  20. r
  21. a
  22. m
  23. e
  24. r
  25. \mathrm{Tramer}
  26. Tramer等人建议在
  27. F
  28. G
  29. S
  30. M
  31. \mathrm{FGSM}
  32. FGSM之前添加一个随机初始化。然而,这两种方法后来都被证明容易受到多步攻击,具体公式表示为
  33. δ
  34. =
  35. ψ
  36. (
  37. η
  38. +
  39. α
  40. s
  41. i
  42. g
  43. n
  44. (
  45. x
  46. i
  47. L
  48. (
  49. f
  50. θ
  51. (
  52. x
  53. i
  54. +
  55. η
  56. )
  57. ,
  58. y
  59. i
  60. )
  61. )
  62. )
  63. \delta=\psi\left(\eta+\alpha \cdot \mathrm{sign}(\nabla_{x_i} \mathcal{L}(f_\theta(x_i+\eta),y_i))\right)
  64. δ=ψ(η+α⋅sign(∇xi​​L(fθ​(xi​+η),yi​)))其中,
  65. η
  66. \eta
  67. η服从概率分布
  68. Ω
  69. \Omega
  70. Ω。当
  71. ψ
  72. \psi
  73. ψ是投影到
  74. \ell_\infty
  75. ℓ∞​操作,并且
  76. Ω
  77. \Omega
  78. Ω是均匀分布
  79. [
  80. ϵ
  81. ,
  82. ϵ
  83. ]
  84. d
  85. [-\epsilon,\epsilon]^d
  86. [−ϵ,ϵ]d
  87. d
  88. d
  89. d是输入空间的维数。

  1. N
  2. -
  3. F
  4. G
  5. S
  6. M
  7. \mathrm{N\text{-}FGSM}
  8. N-FGSM对抗训练

在进行对抗性训练时,一种常见的做法是将训练期间使用的干扰限制在

  1. ϵ
  2. -
  3. \epsilon \text{-}\ell_\infty
  4. ϵ-ℓ∞​范围。其背后原理是,在训练期间增加扰动的幅度可能不必要地降低分类精度,因为在测试时不会评估约束球外的扰动。虽然通过剪裁或限制噪声大小来限制训练期间使用的扰动是一种常见做法,但是由于梯度剪切是在采取梯度上升步骤后执行的,所以剪切点可能不再进行有效的对抗训练。基于上述动机,作者主要探索梯度剪裁操作和随机步长中噪声的大小在单步方法中获得的鲁棒性的作用。作者本文中提出了一种简单有效的单步对抗训练方法
  5. N
  6. -
  7. F
  8. G
  9. S
  10. M
  11. \mathrm{N\text{-}FGSM}
  12. N-FGSM,具体的计算公式如下所示:
  13. δ
  14. N
  15. -
  16. F
  17. G
  18. S
  19. M
  20. =
  21. η
  22. +
  23. α
  24. s
  25. i
  26. g
  27. n
  28. (
  29. x
  30. i
  31. L
  32. (
  33. f
  34. θ
  35. (
  36. x
  37. i
  38. +
  39. η
  40. )
  41. )
  42. ,
  43. y
  44. i
  45. )
  46. \delta_{\mathrm{N\text{-}FGSM}}=\eta+\alpha \cdot \mathrm{sign}(\nabla_{x_i}\mathcal{L}(f_\theta(x_i+\eta)),y_i)
  47. δN-FGSM​=η+α⋅sign(∇xi​​L(fθ​(xi​+η)),yi​)其中
  48. η
  49. \eta
  50. η是从均分布
  51. [
  52. k
  53. ,
  54. k
  55. ]
  56. d
  57. [-k,k]^d
  58. [−k,k]d中采样得来。由于
  59. N
  60. -
  61. F
  62. G
  63. S
  64. M
  65. \mathrm{N\text{-}FGSM}
  66. N-FGSM不涉及梯度剪裁,可以发它扰动的期望平方范数大于
  67. R
  68. S
  69. -
  70. F
  71. G
  72. S
  73. M
  74. \mathrm{RS\text{-}FGSM}
  75. RS-FGSM。相关算法流程图,引理和定理的证明如下所示。

引理1(对抗扰动的期望): 已知

  1. N
  2. -
  3. F
  4. G
  5. S
  6. M
  7. \mathrm{N}\text{-}\mathrm{FGSM}
  8. N-FGSM的对抗扰动如下定义:
  9. δ
  10. N
  11. -
  12. F
  13. G
  14. S
  15. M
  16. =
  17. η
  18. +
  19. α
  20. s
  21. i
  22. g
  23. n
  24. (
  25. x
  26. (
  27. f
  28. (
  29. x
  30. +
  31. η
  32. )
  33. ,
  34. y
  35. )
  36. )
  37. \delta_{\mathrm{N}\text{-}\mathrm{FGSM}}=\eta + \alpha\cdot \mathrm{sign}(\nabla_x \ell(f(x+\eta),y))
  38. δN-FGSM​=η+α⋅sign(∇x​ℓ(f(x+η),y))其中
  39. η
  40. Ω
  41. \eta\sim \Omega
  42. η∼Ω,分布
  43. Ω
  44. \Omega
  45. Ω是均匀分布
  46. U
  47. (
  48. [
  49. k
  50. ϵ
  51. ,
  52. k
  53. ϵ
  54. ]
  55. d
  56. )
  57. \mathcal{U}\left([-k\epsilon,k\epsilon]^d\right)
  58. U([−kϵ,kϵ]d),并且对抗扰动步长为
  59. α
  60. >
  61. 0
  62. \alpha > 0
  63. α>0,则有
  64. E
  65. [
  66. δ
  67. N
  68. -
  69. F
  70. G
  71. S
  72. M
  73. 2
  74. 2
  75. ]
  76. =
  77. d
  78. (
  79. k
  80. 2
  81. ϵ
  82. 2
  83. 3
  84. +
  85. α
  86. 2
  87. )
  88. ,
  89. E
  90. [
  91. δ
  92. N
  93. -
  94. F
  95. G
  96. S
  97. M
  98. 2
  99. ]
  100. d
  101. (
  102. k
  103. 2
  104. ϵ
  105. 2
  106. 3
  107. +
  108. α
  109. 2
  110. )
  111. \mathbb{E}[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2^2]=d\left(\frac{k^2\epsilon^2}{3}+\alpha^2\right),\quad \mathbb{E}[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2]\le \sqrt{d\left(\frac{k^2\epsilon^2}{3}+\alpha^2\right)}
  112. E[∥δN-FGSM​∥22​]=d(3k2ϵ2​+α2),E[∥δN-FGSM​∥2​]≤d(3k2ϵ2​+α2)​

证明:

  1. J
  2. e
  3. n
  4. s
  5. e
  6. n
  7. \mathrm{Jensen}
  8. Jensen不等式可知,当时函数
  9. f
  10. (
  11. x
  12. =
  13. x
  14. f(x)=\sqrt{x}
  15. f(x)=x​是凹函数,则有
  16. E
  17. [
  18. f
  19. (
  20. x
  21. )
  22. ]
  23. f
  24. (
  25. E
  26. [
  27. x
  28. ]
  29. )
  30. \mathbb{E}[f(x)]\le f(\mathbb{E}[x])
  31. E[f(x)]≤f(E[x])则以下不等式成立
  32. E
  33. η
  34. [
  35. δ
  36. N
  37. F
  38. G
  39. S
  40. M
  41. 2
  42. ]
  43. E
  44. η
  45. [
  46. δ
  47. N
  48. -
  49. F
  50. G
  51. S
  52. M
  53. ]
  54. \mathbb{E}_\eta[\|\delta_{\mathrm{N-FGSM}}\|_2]\le \sqrt{\mathbb{E}_{\eta}[\|\delta_{\mathrm{N\text{-}FGSM}}\|]}
  55. Eη​[∥δNFGSM​∥2​]≤Eη​[∥δN-FGSM​∥]​以下主要计算期望
  56. E
  57. η
  58. [
  59. δ
  60. N
  61. -
  62. F
  63. G
  64. S
  65. M
  66. ]
  67. \mathbb{E}_{\eta}[\|\delta_{\mathrm{N\text{-}FGSM}}\|]
  68. Eη​[∥δN-FGSM​∥]并将
  69. x
  70. (
  71. f
  72. (
  73. x
  74. +
  75. η
  76. )
  77. ,
  78. y
  79. )
  80. i
  81. \nabla_x \ell(f(x+\eta),y)_i
  82. x​ℓ(f(x+η),y)i​缩写为
  83. (
  84. η
  85. )
  86. i
  87. \nabla(\eta)_i
  88. ∇(η)i​,具体证明步骤如下所示
  89. E
  90. η
  91. [
  92. δ
  93. N
  94. F
  95. G
  96. S
  97. M
  98. 2
  99. 2
  100. ]
  101. =
  102. E
  103. η
  104. η
  105. +
  106. α
  107. s
  108. i
  109. g
  110. n
  111. (
  112. x
  113. (
  114. f
  115. (
  116. x
  117. +
  118. η
  119. )
  120. ,
  121. y
  122. )
  123. )
  124. 2
  125. 2
  126. =
  127. E
  128. [
  129. i
  130. =
  131. 1
  132. d
  133. (
  134. η
  135. i
  136. +
  137. α
  138. s
  139. i
  140. g
  141. n
  142. (
  143. (
  144. η
  145. )
  146. i
  147. )
  148. )
  149. 2
  150. ]
  151. =
  152. i
  153. =
  154. 1
  155. d
  156. E
  157. η
  158. [
  159. (
  160. η
  161. i
  162. +
  163. α
  164. s
  165. i
  166. g
  167. n
  168. (
  169. (
  170. η
  171. )
  172. i
  173. )
  174. )
  175. 2
  176. ]
  177. =
  178. i
  179. =
  180. 1
  181. d
  182. E
  183. η
  184. [
  185. (
  186. η
  187. i
  188. +
  189. α
  190. s
  191. i
  192. g
  193. n
  194. (
  195. (
  196. η
  197. )
  198. i
  199. )
  200. )
  201. 2
  202. s
  203. i
  204. g
  205. n
  206. (
  207. (
  208. η
  209. )
  210. i
  211. )
  212. =
  213. 1
  214. ]
  215. P
  216. η
  217. [
  218. s
  219. i
  220. g
  221. n
  222. (
  223. (
  224. η
  225. )
  226. i
  227. )
  228. =
  229. 1
  230. ]
  231. +
  232. i
  233. =
  234. 1
  235. d
  236. E
  237. η
  238. [
  239. (
  240. η
  241. i
  242. +
  243. α
  244. s
  245. i
  246. g
  247. n
  248. (
  249. (
  250. η
  251. )
  252. i
  253. )
  254. )
  255. 2
  256. s
  257. i
  258. g
  259. n
  260. (
  261. (
  262. η
  263. )
  264. i
  265. )
  266. =
  267. 1
  268. ]
  269. P
  270. η
  271. [
  272. s
  273. i
  274. g
  275. n
  276. (
  277. (
  278. η
  279. )
  280. i
  281. )
  282. =
  283. 1
  284. ]
  285. =
  286. i
  287. =
  288. 1
  289. d
  290. 1
  291. 2
  292. k
  293. ϵ
  294. k
  295. ϵ
  296. k
  297. ϵ
  298. (
  299. η
  300. i
  301. +
  302. α
  303. )
  304. 2
  305. d
  306. η
  307. i
  308. P
  309. η
  310. [
  311. s
  312. i
  313. g
  314. n
  315. (
  316. (
  317. η
  318. )
  319. i
  320. )
  321. =
  322. 1
  323. ]
  324. +
  325. 1
  326. 2
  327. k
  328. ϵ
  329. i
  330. =
  331. 1
  332. d
  333. k
  334. ϵ
  335. k
  336. ϵ
  337. (
  338. η
  339. i
  340. α
  341. )
  342. 2
  343. d
  344. η
  345. i
  346. P
  347. η
  348. [
  349. s
  350. i
  351. g
  352. n
  353. (
  354. (
  355. η
  356. )
  357. i
  358. )
  359. =
  360. 1
  361. ]
  362. =
  363. i
  364. =
  365. 1
  366. d
  367. 1
  368. 2
  369. k
  370. ϵ
  371. α
  372. k
  373. ϵ
  374. α
  375. +
  376. k
  377. ϵ
  378. z
  379. 2
  380. d
  381. z
  382. P
  383. η
  384. [
  385. s
  386. i
  387. g
  388. n
  389. (
  390. (
  391. η
  392. )
  393. i
  394. )
  395. =
  396. 1
  397. ]
  398. +
  399. i
  400. =
  401. 1
  402. d
  403. 1
  404. 2
  405. k
  406. ϵ
  407. α
  408. k
  409. ϵ
  410. α
  411. +
  412. k
  413. ϵ
  414. z
  415. 2
  416. d
  417. z
  418. P
  419. η
  420. [
  421. s
  422. i
  423. g
  424. n
  425. (
  426. (
  427. η
  428. )
  429. i
  430. )
  431. =
  432. 1
  433. ]
  434. =
  435. i
  436. =
  437. 1
  438. d
  439. 1
  440. 2
  441. k
  442. ϵ
  443. α
  444. k
  445. ϵ
  446. α
  447. +
  448. k
  449. ϵ
  450. z
  451. 2
  452. d
  453. z
  454. P
  455. η
  456. [
  457. s
  458. i
  459. g
  460. n
  461. (
  462. (
  463. η
  464. )
  465. i
  466. )
  467. =
  468. 1
  469. ]
  470. +
  471. i
  472. =
  473. 1
  474. d
  475. 1
  476. 2
  477. k
  478. ϵ
  479. α
  480. k
  481. ϵ
  482. α
  483. +
  484. k
  485. ϵ
  486. z
  487. 2
  488. d
  489. z
  490. P
  491. η
  492. [
  493. s
  494. i
  495. g
  496. n
  497. (
  498. (
  499. η
  500. )
  501. i
  502. )
  503. =
  504. 1
  505. ]
  506. =
  507. 1
  508. 2
  509. k
  510. ϵ
  511. α
  512. k
  513. ϵ
  514. α
  515. +
  516. k
  517. ϵ
  518. z
  519. 2
  520. d
  521. z
  522. i
  523. =
  524. 1
  525. d
  526. (
  527. P
  528. η
  529. [
  530. s
  531. i
  532. g
  533. n
  534. (
  535. (
  536. η
  537. )
  538. i
  539. )
  540. =
  541. 1
  542. ]
  543. +
  544. P
  545. η
  546. [
  547. s
  548. i
  549. g
  550. n
  551. (
  552. (
  553. η
  554. )
  555. i
  556. )
  557. =
  558. 1
  559. ]
  560. )
  561. =
  562. d
  563. 6
  564. k
  565. ϵ
  566. [
  567. (
  568. α
  569. +
  570. k
  571. ϵ
  572. )
  573. 3
  574. (
  575. α
  576. k
  577. ϵ
  578. )
  579. 3
  580. ]
  581. =
  582. d
  583. k
  584. 2
  585. ϵ
  586. 2
  587. 3
  588. +
  589. d
  590. α
  591. 2
  592. \begin{aligned}\mathbb{E}_\eta[\|\delta_{\mathrm{N-FGSM}}\|^2_2]&=\mathbb{E}_\eta\|\eta+\alpha \cdot \mathrm{sign}(\nabla_x\ell(f(x+\eta),y))\|_2^2\\&=\mathbb{E}\left[\sum\limits_{i=1}^d(\eta_i+\alpha \cdot \mathrm{sign}(\nabla(\eta)_i))^2\right]\\&=\sum\limits_{i=1}^d \mathbb{E}_\eta[(\eta_i+\alpha \cdot \mathrm{sign}(\nabla(\eta)_i))^2]\\&=\sum\limits_{i=1}^d\mathbb{E}_\eta[(\eta_i + \alpha \cdot \mathrm{sign}(\nabla(\eta)_i))^2|\mathrm{sign}(\nabla(\eta)_i)=1]\cdot\mathbb{P}_\eta[\mathrm{sign}(\nabla (\eta)_i)=1]\\&+\sum\limits_{i=1}^d\mathbb{E}_\eta[(\eta_i + \alpha \cdot \mathrm{sign}(\nabla(\eta)_i))^2|\mathrm{sign}(\nabla(\eta)_i)=-1]\cdot\mathbb{P}_\eta[\mathrm{sign}(\nabla (\eta)_i)=-1]\\&=\sum\limits_{i=1}^d\frac{1}{2 k \epsilon} \int_{-k \epsilon}^{k\epsilon}(\eta_i+\alpha)^2 d\eta_i\cdot\mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=1]+\frac{1}{2 k \epsilon}\sum\limits_{i=1}^d\int_{-k\epsilon}^{k\epsilon}(\eta_i-\alpha)^2d\eta_i \cdot \mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=-1]\\&=\sum\limits_{i=1}^d\frac{1}{2 k\epsilon}\int_{\alpha-k\epsilon}^{\alpha+k\epsilon}z^2dz \cdot \mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=1]+\sum\limits_{i=1}^d\frac{1}{2 k\epsilon}\int_{-\alpha-k\epsilon}^{-\alpha+k\epsilon}z^2dz \cdot \mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=-1]\\&=\sum\limits_{i=1}^d\frac{1}{2 k\epsilon}\int_{\alpha-k\epsilon}^{\alpha+k\epsilon}z^2dz \cdot \mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=1]+\sum\limits_{i=1}^d\frac{1}{2 k\epsilon}\int_{\alpha-k\epsilon}^{\alpha+k\epsilon}z^2dz \cdot \mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=-1]\\&=\frac{1}{2k\epsilon}\int_{\alpha-k\epsilon}^{\alpha+k \epsilon}z^2 dz\sum\limits_{i=1}^d(\mathbb{P}_\eta[\mathrm{sign}(\nabla(\eta)_i)=1]+\mathbb{P}_\eta[\mathrm{sign}(\nabla (\eta)_i)=-1])\\&=\frac{d}{6 k \epsilon}[(\alpha+k \epsilon)^3-(\alpha-k \epsilon)^3]=\frac{d k^2 \epsilon^2}{3}+ d\alpha^2\end{aligned}
  593. Eη​[∥δNFGSM​∥22​]​=Eη​∥η+α⋅sign(∇x​ℓ(f(x+η),y))∥22​=E[i=1d​(ηi​+α⋅sign(∇(η)i​))2]=i=1dEη​[(ηi​+α⋅sign(∇(η)i​))2]=i=1dEη​[(ηi​+α⋅sign(∇(η)i​))2sign(∇(η)i​)=1]⋅Pη​[sign(∇(η)i​)=1]+i=1dEη​[(ηi​+α⋅sign(∇(η)i​))2sign(∇(η)i​)=−1]⋅Pη​[sign(∇(η)i​)=−1]=i=1d2kϵ1​∫−kϵkϵ​(ηi​+α)2dηi​⋅Pη​[sign(∇(η)i​)=1]+2kϵ1i=1d​∫−kϵkϵ​(ηi​−α)2dηi​⋅Pη​[sign(∇(η)i​)=−1]=i=1d2kϵ1​∫α−kϵα+kϵ​z2dzPη​[sign(∇(η)i​)=1]+i=1d2kϵ1​∫−α−kϵ−α+kϵ​z2dzPη​[sign(∇(η)i​)=−1]=i=1d2kϵ1​∫α−kϵα+kϵ​z2dzPη​[sign(∇(η)i​)=1]+i=1d2kϵ1​∫α−kϵα+kϵ​z2dzPη​[sign(∇(η)i​)=−1]=2kϵ1​∫α−kϵα+kϵ​z2dzi=1d​(Pη​[sign(∇(η)i​)=1]+Pη​[sign(∇(η)i​)=−1])=6kϵd​[(α+kϵ)3−(α−kϵ)3]=3dk2ϵ2​+dα2​进而则有
  594. E
  595. η
  596. [
  597. δ
  598. N
  599. -
  600. F
  601. G
  602. S
  603. M
  604. 2
  605. ]
  606. d
  607. (
  608. k
  609. 2
  610. ϵ
  611. 2
  612. 3
  613. +
  614. α
  615. 2
  616. )
  617. \mathbb{E}_\eta[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2]\le\sqrt{d\left(\frac{k^2\epsilon^2}{3}+\alpha^2\right)}
  618. Eη​[∥δN-FGSM​∥2​]≤d(3k2ϵ2​+α2)​证毕。

定理1:

  1. δ
  2. N
  3. -
  4. F
  5. G
  6. S
  7. M
  8. \delta_{\mathrm{N\text{-}FGSM}}
  9. δN-FGSM​是
  10. N
  11. -
  12. F
  13. G
  14. S
  15. M
  16. \mathrm{N\text{-}FGSM}
  17. N-FGSM方法生成的对抗扰动,
  18. δ
  19. F
  20. G
  21. S
  22. M
  23. \delta_{\mathrm{FGSM}}
  24. δFGSM​是
  25. F
  26. G
  27. S
  28. M
  29. \mathrm{FGSM}
  30. FGSM方法生成的对抗扰动,
  31. δ
  32. R
  33. S
  34. -
  35. F
  36. G
  37. S
  38. M
  39. \delta_{\mathrm{RS\text{-}FGSM}}
  40. δRS-FGSM​是
  41. R
  42. S
  43. -
  44. F
  45. G
  46. S
  47. M
  48. \mathrm{RS\text{-}FGSM}
  49. RS-FGSM方法生成的对抗扰动,对于任意的
  50. ϵ
  51. >
  52. 0
  53. \epsilon>0
  54. ϵ>0,则有以下不等式成立
  55. E
  56. η
  57. [
  58. δ
  59. N
  60. -
  61. F
  62. G
  63. S
  64. M
  65. 2
  66. 2
  67. ]
  68. >
  69. E
  70. η
  71. [
  72. δ
  73. F
  74. G
  75. S
  76. M
  77. 2
  78. 2
  79. ]
  80. >
  81. E
  82. [
  83. δ
  84. R
  85. S
  86. -
  87. F
  88. G
  89. S
  90. M
  91. 2
  92. 2
  93. ]
  94. \mathbb{E}_{\eta}[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2^2]>\mathbb{E}_\eta[\|\delta_{\mathrm{FGSM}}\|^2_2]>\mathbb{E}[\|\delta_{\mathrm{RS\text{-}FGSM}}\|^2_2]
  95. Eη​[∥δN-FGSM​∥22​]>Eη​[∥δFGSM​∥22​]>E[∥δRS-FGSM​∥22​]

证明:由引理1可知

  1. E
  2. η
  3. [
  4. δ
  5. N
  6. -
  7. F
  8. G
  9. S
  10. M
  11. 2
  12. 2
  13. ]
  14. =
  15. d
  16. (
  17. k
  18. 2
  19. ϵ
  20. 2
  21. 3
  22. +
  23. α
  24. 2
  25. )
  26. \mathbb{E}_\eta[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2^2]=d\left(\frac{k^2\epsilon^2}{3}+\alpha^2\right)
  27. Eη​[∥δN-FGSM​∥22​]=d(3k2ϵ2​+α2)又因为
  28. E
  29. η
  30. [
  31. δ
  32. R
  33. S
  34. -
  35. F
  36. G
  37. S
  38. M
  39. 2
  40. 2
  41. ]
  42. =
  43. d
  44. (
  45. 1
  46. 6
  47. α
  48. 3
  49. +
  50. 1
  51. 2
  52. α
  53. 2
  54. +
  55. 1
  56. 3
  57. ϵ
  58. 2
  59. )
  60. \mathbb{E}_\eta[\|\delta_{\mathrm{RS\text{-}FGSM}}\|^2_2]=d\left(-\frac{1}{6}\alpha^3+\frac{1}{2}\alpha^2+\frac{1}{3}\epsilon^2\right)
  61. Eη​[∥δRS-FGSM​∥22​]=d(−61​α3+21​α2+31​ϵ2)
  62. E
  63. η
  64. [
  65. δ
  66. F
  67. G
  68. S
  69. M
  70. 2
  71. 2
  72. ]
  73. =
  74. δ
  75. F
  76. G
  77. S
  78. M
  79. 2
  80. 2
  81. =
  82. d
  83. ϵ
  84. 2
  85. \mathbb{E}_\eta[\|\delta_{\mathrm{FGSM}}\|_2^2]=\|\delta_{\mathrm{FGSM}}\|_2^2=d\epsilon^2
  86. Eη​[∥δFGSM​∥22​]=∥δFGSM​∥22​=dϵ2如果令超参数
  87. k
  88. =
  89. 2
  90. k=2
  91. k=2
  92. α
  93. =
  94. ϵ
  95. \alpha=\epsilon
  96. α=ϵ,
  97. α
  98. =
  99. 5
  100. ϵ
  101. 4
  102. \alpha=\frac{5\epsilon}{4}
  103. α=45ϵ​,则有
  104. E
  105. η
  106. [
  107. δ
  108. N
  109. -
  110. F
  111. G
  112. S
  113. M
  114. 2
  115. 2
  116. ]
  117. =
  118. 7
  119. 3
  120. d
  121. ϵ
  122. 2
  123. >
  124. E
  125. η
  126. [
  127. δ
  128. F
  129. G
  130. S
  131. M
  132. 2
  133. 2
  134. ]
  135. =
  136. d
  137. ϵ
  138. 2
  139. >
  140. E
  141. η
  142. [
  143. δ
  144. R
  145. S
  146. F
  147. G
  148. S
  149. M
  150. 2
  151. 2
  152. ]
  153. =
  154. 101
  155. 128
  156. d
  157. ϵ
  158. 2
  159. \mathbb{E}_\eta[\|\delta_{\mathrm{N\text{-}FGSM}}\|_2^2]=\frac{7}{3}d\epsilon^2>\mathbb{E}_\eta[\|\delta_{\mathrm{FGSM}}\|_2^2]=d \epsilon^2 > \mathbb{E}_\eta[\|\delta_{\mathrm{RS-FGSM}}\|_2^2]=\frac{101}{128}d \epsilon^2
  160. Eη​[∥δN-FGSM​∥22​]=37dϵ2>Eη​[∥δFGSM​∥22​]=dϵ2>Eη​[∥δRSFGSM​∥22​]=128101dϵ2证毕。

实验结果

下图表示的是在数据集

  1. C
  2. I
  3. F
  4. A
  5. R
  6. 10
  7. \mathrm{CIFAR10}
  8. CIFAR10(左)和
  9. S
  10. V
  11. H
  12. N
  13. \mathrm{SVHN}
  14. SVHN(右)上比较
  15. N
  16. -
  17. F
  18. G
  19. S
  20. M
  21. \mathrm{N\text{-}FGSM}
  22. N-FGSM
  23. G
  24. r
  25. a
  26. d
  27. A
  28. l
  29. i
  30. g
  31. n
  32. \mathrm{GradAlign}
  33. GradAlign的多步方法在不同的扰动半径下使用神经网络
  34. P
  35. r
  36. e
  37. a
  38. c
  39. t
  40. R
  41. e
  42. s
  43. N
  44. e
  45. t
  46. 18
  47. \mathrm{PreactResNet18}
  48. PreactResNet18的分类准确率。可以发现尽管所有方法都达到干净样本的分类精度(虚线),但
  49. P
  50. G
  51. D
  52. -
  53. 10
  54. \mathrm{PGD\text{-}10}
  55. PGD-10和单步法之间在鲁棒精度方面存在差距,而且,最重要的是
  56. P
  57. G
  58. D
  59. -
  60. 10
  61. \mathrm{PGD\text{-}10}
  62. PGD-10
  63. N
  64. -
  65. F
  66. G
  67. S
  68. M
  69. \mathrm{N\text{-}FGSM}
  70. N-FGSM的计算开销的10倍。

下图表示的是在数据在

  1. C
  2. I
  3. F
  4. A
  5. R
  6. 100
  7. \mathrm{CIFAR100}
  8. CIFAR100(左)和
  9. S
  10. V
  11. H
  12. N
  13. \mathrm{SVHN}
  14. SVHN(右)上的单步方法与网络
  15. P
  16. r
  17. e
  18. a
  19. c
  20. t
  21. R
  22. e
  23. s
  24. N
  25. e
  26. t
  27. 18
  28. \mathrm{PreactResNet18}
  29. PreactResNet18在不同扰动半径上的比较。可以发现该论文的方法
  30. N
  31. -
  32. F
  33. G
  34. S
  35. M
  36. \mathrm{N\text{-}FGSM}
  37. N-FGSM可以匹配或超过现有技术的结果,同时将计算成本降低3倍。

下图表示的是在训练开始(顶部)和结束(底部)的几个时期,对抗扰动

  1. δ
  2. \delta
  3. δ和梯度平均值的可视化图。可以发现当过拟合之后,
  4. F
  5. G
  6. S
  7. M
  8. \mathrm{FGSM}
  9. FGSM
  10. R
  11. S
  12. -
  13. F
  14. G
  15. S
  16. M
  17. \mathrm{RS\text{-}FGSM}
  18. RS-FGSM无法对对抗扰动
  19. δ
  20. \delta
  21. δ进行解释,其梯度也是如此,但是
  22. N
  23. -
  24. F
  25. G
  26. S
  27. M
  28. \mathrm{N\text{-}FGSM}
  29. N-FGSM
  30. P
  31. G
  32. D
  33. -
  34. 10
  35. \mathrm{PGD\text{-}10}
  36. PGD-10却可以避免这种情况的发生。

程序代码

该论文并没有提供源码,以下是在

  1. m
  2. n
  3. i
  4. s
  5. t
  6. \mathrm{mnist}
  7. mnist数据集中对论文中代码进行的实现。
  1. import argparse
  2. import logging
  3. import time
  4. import numpy as np
  5. import torch
  6. import torch.nn as nn
  7. import torch.nn.functional as F
  8. import torchvision
  9. from torchvision import datasets, transforms
  10. from torch.utils.data import DataLoader, Dataset
  11. import os
  12. import argparse
  13. defget_args():
  14. parser = argparse.ArgumentParser()
  15. parser.add_argument('--batch-size', default=100,type=int)
  16. parser.add_argument('--data-dir', default='mnist-data',type=str)
  17. parser.add_argument('--epochs', default=10,type=int)
  18. parser.add_argument('--epsilon', default=0.3,type=float)
  19. parser.add_argument('--alpha', default=0.375,type=float)
  20. parser.add_argument('--lr-max', default=5e-3,type=float)
  21. parser.add_argument('--lr-type', default='cyclic')
  22. parser.add_argument('--fname', default='mnist_model',type=str)
  23. parser.add_argument('--seed', default=0,type=int)return parser.parse_args()classFlatten(nn.Module):defforward(self, x):return x.view(x.size(0),-1)defmnist_net():
  24. model = nn.Sequential(
  25. nn.Conv2d(1,16,4, stride=2, padding=1),
  26. nn.ReLU(),
  27. nn.Conv2d(16,32,4, stride=2, padding=1),
  28. nn.ReLU(),
  29. Flatten(),
  30. nn.Linear(32*7*7,100),
  31. nn.ReLU(),
  32. nn.Linear(100,10))return model
  33. classAttack_methods(object):def__init__(self, model, X, Y, epsilon, alpha):
  34. self.model = model
  35. self.epsilon = epsilon
  36. self.X = X
  37. self.Y = Y
  38. self.epsilon = epsilon
  39. self.alpha = alpha
  40. defnfgsm(self):
  41. eta = torch.zeros_like(self.X).uniform_(-self.epsilon, self.epsilon)
  42. delta = torch.zeros_like(self.X)
  43. eta.requires_grad =True
  44. output = self.model(self.X + eta)
  45. loss = nn.CrossEntropyLoss()(output, self.Y)
  46. loss.backward()
  47. grad = eta.grad.detach()
  48. delta.data = eta + self.alpha * torch.sign(grad)return delta
  49. classAdversarial_Trainings(object):def__init__(self, epochs, train_loader, model, opt, epsilon, alpha, iter_num, lr_max, lr_schedule,
  50. fname, logger):
  51. self.epochs = epochs
  52. self.train_loader = train_loader
  53. self.model = model
  54. self.opt = opt
  55. self.epsilon = epsilon
  56. self.alpha = alpha
  57. self.iter_num = iter_num
  58. self.lr_max = lr_max
  59. self.lr_schedule = lr_schedule
  60. self.fname = fname
  61. self.logger = logger
  62. deffast_training(self):for epoch inrange(self.epochs):
  63. start_time = time.time()
  64. train_loss =0
  65. train_acc =0
  66. train_n =0for i,(X, y)inenumerate(self.train_loader):
  67. X, y = X.cuda(), y.cuda()
  68. lr = self.lr_schedule(epoch +(i +1)/len(self.train_loader))
  69. self.opt.param_groups[0].update(lr=lr)# Generating adversarial example
  70. adversarial_attack = Attack_methods(self.model, X, y, self.epsilon, self.alpha)
  71. delta = adversarial_attack.nfgsm()# Update network parameters
  72. output = self.model(torch.clamp(X + delta,0,1))
  73. loss = nn.CrossEntropyLoss()(output, y)
  74. self.opt.zero_grad()
  75. loss.backward()
  76. self.opt.step()
  77. train_loss += loss.item()* y.size(0)
  78. train_acc +=(output.max(1)[1]== y).sum().item()
  79. train_n += y.size(0)
  80. train_time = time.time()
  81. self.logger.info('%d \t %.1f \t %.4f \t %.4f \t %.4f', epoch, train_time - start_time, lr, train_loss/train_n, train_acc/train_n)
  82. torch.save(self.model.state_dict(), self.fname)
  83. logger = logging.getLogger(__name__)
  84. logging.basicConfig(format='[%(asctime)s] - %(message)s',
  85. datefmt='%Y/%m/%d %H:%M:%S',
  86. level=logging.DEBUG)defmain():
  87. args = get_args()
  88. logger.info(args)
  89. np.random.seed(args.seed)
  90. torch.manual_seed(args.seed)
  91. torch.cuda.manual_seed(args.seed)
  92. mnist_train = datasets.MNIST("mnist-data", train=True, download=True, transform=transforms.ToTensor())
  93. train_loader = torch.utils.data.DataLoader(mnist_train, batch_size=args.batch_size, shuffle=True)
  94. model = mnist_net().cuda()
  95. model.train()
  96. opt = torch.optim.Adam(model.parameters(), lr=args.lr_max)if args.lr_type =='cyclic':
  97. lr_schedule =lambda t: np.interp([t],[0, args.epochs *2//5, args.epochs],[0, args.lr_max,0])[0]elif args.lr_type =='flat':
  98. lr_schedule =lambda t: args.lr_max
  99. else:raise ValueError('Unknown lr_type')
  100. logger.info('Epoch \t Time \t LR \t \t Train Loss \t Train Acc')
  101. adversarial_training = Adversarial_Trainings(args.epochs, train_loader, model, opt, args.epsilon, args.alpha,40,
  102. args.lr_max, lr_schedule, args.fname, logger)
  103. adversarial_training.fast_training()if __name__ =="__main__":
  104. main()

运行的实验结果如下所示

标签: 机器学习

本文转载自: https://blog.csdn.net/qq_38406029/article/details/122785285
版权归原作者 鬼道2022 所有, 如有侵权,请联系我们删除。

“牛津大学出品:随机噪声对抗训练”的评论:

还没有评论