研究員
  • NEW!
    NEW!  Connect Ideas Across Notes
    Save time and share insights. With Paragraph Citation, you can quote others’ work with source info built in. If someone cites your note, you’ll see a card showing where it’s used—bringing notes closer together.
    Got it
      • Create new note
      • Create a note from template
        • Sharing URL Link copied
        • /edit
        • View mode
          • Edit mode
          • View mode
          • Book mode
          • Slide mode
          Edit mode View mode Book mode Slide mode
        • Customize slides
        • Note Permission
        • Read
          • Only me
          • Signed-in users
          • Everyone
          Only me Signed-in users Everyone
        • Write
          • Only me
          • Signed-in users
          • Everyone
          Only me Signed-in users Everyone
        • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invite by email
        Invitee

        This note has no invitees

      • Publish Note

        Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

        Your note will be visible on your profile and discoverable by anyone.
        Your note is now live.
        This note is visible on your profile and discoverable online.
        Everyone on the web can find and read all notes of this public team.

        Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

        Explore these features while you wait
        Complete general settings
        Bookmark and like published notes
        Write a few more notes
        Complete general settings
        Write a few more notes
        See published notes
        Unpublish note
        Please check the box to agree to the Community Guidelines.
        View profile
      • Commenting
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
        • Everyone
      • Suggest edit
        Permission
        Disabled Forbidden Owners Signed-in users Everyone
      • Enable
      • Permission
        • Forbidden
        • Owners
        • Signed-in users
      • Emoji Reply
      • Enable
      • Versions and GitHub Sync
      • Note settings
      • Note Insights New
      • Engagement control
      • Make a copy
      • Transfer ownership
      • Delete this note
      • Save as template
      • Insert from template
      • Import from
        • Dropbox
        • Google Drive
        • Gist
        • Clipboard
      • Export to
        • Dropbox
        • Google Drive
        • Gist
      • Download
        • Markdown
        • HTML
        • Raw HTML
    Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
    Create Create new note Create a note from template
    Menu
    Options
    Engagement control Make a copy Transfer ownership Delete this note
    Import from
    Dropbox Google Drive Gist Clipboard
    Export to
    Dropbox Google Drive Gist
    Download
    Markdown HTML Raw HTML
    Back
    Sharing URL Link copied
    /edit
    View mode
    • Edit mode
    • View mode
    • Book mode
    • Slide mode
    Edit mode View mode Book mode Slide mode
    Customize slides
    Note Permission
    Read
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Write
    Only me
    • Only me
    • Signed-in users
    • Everyone
    Only me Signed-in users Everyone
    Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Certified Robustness / CR 介紹 如其名,有認證的 Robustness。 之前介紹的防禦都是所謂的 Empirical Defense,沒有任何的理論保證,都是說在某種情境下,然後嘗試供給自己訓練的模型,看看防禦的數值結果。 但是這個數值不是固定的,他會隨著情境的不同,或是更強的攻擊出現而變更差。 所以這個主題就是希望可以在「某些假設之下」,模型遭受各式強烈攻擊可以有的安全下限。 >在這個領域 Certification 有時又叫做 Verification ## 領域的分支 分為 Probabilistic 跟 Deterministic。 - 從先前的內容可以知道將模型搭配上「機率」,可以有不錯的保護效果 - 但是目前這個領域目前還只有 Incomplete 的方法,無法確定一個 model 到底有沒有 ADX - 方法叫做「**RS**」 - 有 Probabilistic,就有 Deterministic 的方法 - 這個目前有 Incomplete 跟 Complete 兩種方法 - Complete 的話雖然可以確定一個 model 有沒有 ADX,但代價是需要很難的工具: 「**MIP 或 SAT**」 - 因為代價太高了,目前並不 scalable - MIP 就是 MILP - Incomplete 只能確保部份的 example 是不是 ADX - 方法目前分為兩支:Linear Relaxation 跟 Lipschitz - Linear Relaxation 顧名思義就是從 MIP relaxation 後得到的解法 - 根據 relaxation 的程度有不同的 bound - 方法有「**LP**」 - 另一個從 LR 分下來的分支叫做 Linear Bound,方法有「**IBP 跟 CROWN**」 - Lipschitz 方法就是去看 Lipschitz constant - Lipschitz constant 較小代表 model 概念上來說變動程度不會很大,robust 程度就比較高 - 目前這個領域有兩派,一個是去算一個 model 的 Lipschitz constant 是多少,或是 bound 在哪 - 另一個是嘗試建構出一個 model,具有特殊的結構可以使他的 Lipschitz constant 在某個 bound 內 - Lipschitz constant 的壞處是 expressive 的能力比較差 :::warning 這週的內容會提到 RS、 Deterministic 的 Complete,以及 Incomplete 中的 LR。 老師說助教下週會介紹 RS 的最新研究,以及有時間的話會提到一些 Lipschitz 的方法 ::: ## CR 想知道什麼 給一個 model $f$,3集一個 example $(x,y)$,和一個範圍 $\epsilon$。 >範圍 $\epsilon$ 就是第一週提到,可以做變動的範圍大小 有兩種 Certification: - Exact Certification: - 如果這個在該範圍下沒有任何 perturbation 可以讓模型犯錯,那麼就要回答 YES - 如果存在的話要回答 NO - 這樣就可以知道這個 model 經過攻擊後的正確率是多少了 - 但從上面可以知道這是個 NP hard 難度 - Relaxed Certification: - 如果這個在該範圍下沒有任何 perturbation 可以讓模型犯錯,那麼就要回答 YES - 跟上面一樣 - 如果「可能」存在的話要回答 NO - 也就是保證只剩一邊 --- # Exact Certification 可以用 MILP 去解; MILP 可以去看我的智慧型汽車導論,有稍微介紹。 ## 問題 model 會使用一個比較 general 的模型表示法: $$ \begin{align} z_1&=x\\ z_{i+1}&=ReLU(W_i z_i+b),\ i=1,...,d-1\\ h_{\theta}(x)&=W_d z_d+b\\ \end{align} $$ $x$ 就是 input,當中每一層的 $x$ 是 $z$,通往下一層配對的權重矩陣是 $W$。 這樣一來我們的問題就可以被描述成一個最佳化問題: $$ \begin{align} \underset{z_1:d}{\text{minimize }}& (e_y-e_{y_{\text{targ}}})^{T}(W_dz_d+b)\\ \text{subject to }&z_{i+1}=ReLU(W_i z_i+b)\\ &||z_1-x||_{\infty}\le \epsilon\\ \end{align} $$ - 上面是一個「target attack」,使用 $l_{\infty}$ 作為範圍。 - $(e_y-e_{y_{\text{targ}}})^{T}(W_dz_d+b)$ ,其實拆成 $e_y ^{T}(W_dz_d+b)-e_{y_{\text{targ}}}^{T}(W_dz_d+b)$ 會比較好理解 - $e_{i}$ 是單位向量,只有 $i$ 這個方向是 1,其他都是 0 - 假設上面最佳化問題真的找到了最佳解 - 如果是大於 0,那就代表不管如何攻擊,一定都會把 $x$ 分類成 $y$,因為在 $y$ 這個 class 的分量比較大 - 如果是小於 0,那就代表一定可以透過攻擊,使 model 把 $x$ 分到 $y_{targ}$ 這個類別,因為 $y_{targ}$ 的分量比較大 ## 轉成 MILP $$ \begin{align} \text{subject to }&z_{i+1}=ReLU(W_i z_i+b)\\ &||z_1-x||_{\infty}\le \epsilon\\ \end{align} $$ 把這兩個限制轉成 MILP 的形式: - $||z_1-x||_{\infty}\le \epsilon$ - 這個比較好處理,根據 $l_{\infty}$ 的定義,就是 $\text{max}(|z_{1,i}-x_{i}|)\le \epsilon$,再拆掉絕對值。 - 不知道為什麼老師講義是寫 $z_1-x\le \epsilon$ 跟 $z_1-x\ge -\epsilon$,理論上這兩個應該是向量才對 - $z_{i+1}=ReLU(W_i z_i+b)$ - 簡潔版:$z=ReLU(x)$,並且我們要知道 $x$ 的上下界 $x\in [l,u]$ - 而 $z=ReLU(x)$ 跟下面的限制是等價的: - $a=\mathbf{1}[[x\ge0]]$,沒錯,是 boolean function - $z\le x-l(1-a)$ - $z\le u\cdot a$ - $z \ge x$ - $z \ge 0$ - 只要把 $x \le 0$ 跟 $x < 0$ 的時候帶進去,就會發現跟 ReLU 是一樣的 - 然後那個 boolean function 就是導致難算的原因,或者說他就是 MILP 中 Integer 的部分,因為他限制了 $a$ 只能是 $\mathbf{1}$ 或 $\mathbf{0}$ - 要怎麼知道 ReLU 中 $x$ 的上下界? - 有很多種方法可以得到,只不過寬鬆的程度不一樣,下面是講義的例子: - 對於某一層 $z$,如果已知 $l\le z \le u$: - 把該層的 $W$ 拆出 $W_+$ 跟 $W_-$,一個只有大於等於 0 的權重,一個則只有小於等於 0 - 於是就可以神奇的得到:$W_+ l - W_- u + b\le Wz+b \le W_+ u - W_- l + b$ - 因為 $W=W_+ + W_-$,所以 $l\le z \le u$ 就可以知道 $(W_+ + W_-)l + b\le Wz+b \le (W_+ + W_-)u + b$ - 好吧我不知道 ## ReLU 的問題 因為那個 boolean function 會導致 Integer Programming,所以目前: - 如果可以確保 $l$ 跟 $u$ 同號,那麼就可以移除 boolean function,就可以從 IP 退化為 LP - 所以有人把 LOSS 中加入 $-tanh(1+l\cdot u)$ 這個項,讓模型比較容易出現 $l$ 跟 $u$ 同號的情形 - 另一個是讓 $W$ 變得更稀疏,這樣 MILP 的 Solver 就可以解更快 :::warning 但是目前來說依舊是非常慢,也不 Scalable,只能跑在小型 model,但是小型 model 往往不是那些有著最佳 robust accuracy 的 model ::: # Convex Relaxation 既然 MILP 那麼難,那麼我們就放鬆一下:)。 ## Convex set 一個範圍是 Convex set ,代表在這個範圍中任取兩點,兩點的中間點也會在這個範圍內。 >[參見WIKI](https://zh.wikipedia.org/zh-tw/%E5%87%B8%E9%9B%86) 一旦範圍是 Convex set,就有一些好性質可以用;但是 $z=ReLU(x)$ 限制的 $z$ 的範圍,不是 Convex set,而是一個「有折角的直線」。 所以我們就把範圍放鬆,把那個「有折角的直線」,多補一條線接在兩端,構成一個三角形,這個範圍內都可以選。 >請參考講義的圖 如果範圍變成那個多邊形,這樣一來限制的範圍就會從原本 ReLU 的範圍,變成: - $z_{i+1}\ge 0$ - 這個是水平等於 0 那條 - $z_{i+1}\ge W_{i}z_i+b$ - 這個是原本的斜直線那條 - $z_{i+1}\le \frac{u_i}{u_i-l_i}(z_i-l_i)$ - 這個是補上去的那條,但我不是很知道他怎麼推導的 這樣一來,問題**就從 MILP 變成 LP** 了,這就是 Convex Set 得到的好性質。 ## Lower Bound of MILP 上面的做法就是放寬限制,讓解的範圍變多了,但這會讓得到的解變成 MILP 的 Lower Bound: $$ \text{Objective(LP)}\le \text{Objective(MILP)} $$ - 如果 LP 解出來大於 0,那麼很安全,MILP 的解一定也大於 0,沒有問題發生 - 如果 LP 解出來小於 0,MILP 的解就有可能大於 0 或小於 0,這就有問題了 - 我們就不知道 MILP 的解到底是哪種情形 --- # Random Smoothness / RS 這個方法的構想很簡單\[Cohen et al. ICML’19\]: - 原本一個 model 在判斷一個 $x$ 是哪一類的時候,就是單純「對那個 $x$」做計算 - RS 方法則是改成以 $x$ 為中心的常態分佈 $\mathcal{N}(x,\sigma^2I)$ 那群點做判斷 - 例如假設在這樣的分佈下,有 80% 的機率是熊貓,15% 機率是長臂猿, 5% 是貓 - 那麼模型就會回傳熊貓 這個方法有效的原因也很直覺,因為攻擊時就是只移動一點點,如果改成用上面的方式,「在一般情況下」攻擊要移動的距離就要很大才會有效 ## 保證半徑 作者有算出一個點的保證半徑,也就是在該半徑內,top class 都可以被正確的回傳: $$ R=\frac{\sigma}{2}({\phi}^{-1}(p_A)-{\phi}^{-1}(p_B)) $$ - $\sigma$ 就是採樣時高斯分佈的標準差,越大的話 $R$ 會越大 - 但是有可能會降低正確率,因為範圍越大,則機率最高的 class 可能不是正確的 class - $p_A$ 是 top class 的占比,$p_A$ 是 second class 的占比 - ${\phi}^{-1}$ 是標準高斯分佈 CDF 的反函數 [**請見WIKI**](https://zh.wikipedia.org/zh-tw/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83#%E7%B4%AF%E7%A9%8D%E5%88%86%E5%B8%83%E5%87%BD%E6%95%B8) - $x\sim \mathcal{N}(0,1)$,則 ${\phi}^{-1}(p)=v\text{ s.t. }\mathbb{P}_x(x\le v)=p$ - 因為 ${\phi}^{-1}$ 是單調的,機率越高 ${\phi}^{-1}$ 值越大 - 所以直白上來說 ${\phi}^{-1}(p_A)-{\phi}^{-1}(p_B)$ 這個是在算兩者的占比的差距 ## 蒙地卡羅 但是對於一個 model 來說,在某個範圍內機率分佈是不知道的,所以就是蒙地卡羅派上用場的時候了。 藉由採樣足夠多的點,求得 $p_A$ 的下限跟 $p_B$ 的上限。 所以上面的公式可以修改成: $$ R=\frac{\sigma}{2}({\phi}^{-1}({p_A}^{↓})-{\phi}^{-1}({p_B}^{↑})) $$ ## Formal Definition 接著把上面的描述轉成數學的形式。 模型就是: $$ f:\mathbb{R}^d\rightarrow y $$ $y$ 是 class 的集合。 我們想將 $f$ 轉換成一個 smoothed classifier $g$: $$ g(x):=\underset{c\in y}{\text{argmax }}\mathbb{P}_{\epsilon}(f(x+\epsilon)=c) $$ >$\epsilon \sim \mathcal{N}(x,\sigma^2\mathbf{1})$ 就是上面說的,以 $x$ 為中心的常態分佈,看看哪個類別的機率最大。 然後只要滿足下面的不等式: $$ \mathbb{P}_{\epsilon}(f(x+\epsilon)=c_A)\ge{p_A}^{↓}\ge{p_B}^{↑}\ge\underset{c\ne c_A}{\max}\mathbb{P}_{\epsilon}(f(x+\epsilon)=c) $$ >右邊那項就是機率第二高的 class,上下箭頭代表上下限。 則: $$ \begin{align} g(x+\delta)=c_A\ \text{for all } ||\delta||_{2}< R\\ R=\frac{\sigma}{2}({\phi}^{-1}({p_A}^{↓})-{\phi}^{-1}({p_B}^{↑})) \end{align} $$ :::info 要注意,並沒有說 $c_A$ 就是正確的 class,而是單純是機率最高的 class ::: :::warning 雖然 $\phi^{-1}$ 的值可以是負的,但是因為有確保 ${p_A}^{↓}\ge{p_B}^{↑}$,加上單調性質,所以可以知道會得到非負的值 ::: ## Gaussian data augmentation 對於固定的 $\sigma$,想要增加半徑的話就是要有較高的 $p_A$ 上限跟較低的 $p_B$ 下限,所以作者有說模型要先訓練成在 gaussian noise 下也有很好的表現會比較好。 ## Certification Procedure 接下來介紹要怎麼用這個 $R$ 來求得 Certified Accuracy。 情境如下: - 首先會給定一個目標半徑 $T$,就是攻擊的半徑 - 採樣時的 $\sigma$ 是給定的 - 然後檢查在測試集中哪些點,用上面的方法算出的 R 滿足兩件事情: - $R\ge T$ - $R$ 半徑內機率最大的點跟 label 是符合的 這樣就可以算出哪些點是分對跟分錯了;下面是演算法: - 先做較小數量的抽量 $n_0$,從這次抽的資料當中,紀錄數量最多的 class 作為 $\hat{c_A}$ - 接著再抽一次較大數量 $n$,然後紀錄 $\hat{c_A}$ 的數量 $n_{C_A}$ - 根據 $n_{C_A}$,抽取數量 $n$,以及一個信賴常數 $\alpha$,計算出 ${p_A}^{↓}$ - 我們至少有 $1-\alpha$ 的信心可以確保 ${p_A}^{↓}$ 是正確的下限 - 如果 ${p_A}^{↓}>\frac{1}{2}$,回傳預測的 $\hat{c_A}$ 作為預測的 class,以及由 ${p_A}^{↓}$ 算出的 $R$ - $R$ 可以由一條公式算出: - $R=\frac{\sigma}{2}({\phi}^{-1}({p_A}^{↓})-{\phi}^{-1}({p_B}^{↑}))\ge R=\frac{\sigma}{2}({\phi}^{-1}({p_A}^{↓})-{\phi}^{-1}(1-{p_A}^{↓}))$ - $=\frac{\sigma}{2}({\phi}^{-1}({p_A}^{↓})+{\phi}^{-1}({p_A}^{↓}))$ (對稱性質) - $=\sigma{\phi}^{-1}({p_A}^{↓})$ - 不然就回傳 $ABSTAIN$,說窩不知道 也就是說,只要結果回傳的不是窩不知道,那麼我們就至少有 $1-\alpha$ 的信心可以確保模型在半徑 R 內,$g(x+\delta)=\hat{c_A}$。 :::warning 但是要注意: - $\hat{c_A}$ 不一定是正確的 class,因為隨著 $\sigma$ 變大,雖然半徑變大了,但是占比最多的 class 很有可能就不會是真正的 label;從講義後面的圖表也可以看到正確率會隨 $\sigma$ 變大而下降。 而會算在 incorrect 的除了上述的分錯之外,回答窩不知道也算在錯,情況有可能是: - $n_0$ 太小,取樣不足 - 第一大跟第二大占比太接近 這兩個原因導致算出的 ${p_A}^{↓}\le\frac{1}{2}$,而得到窩不知道的回答。 ::: ## Increasing Certified Radius 想要提升 $R$ 以增加 Robust 程度,如果在固定 $\sigma$ 的情況下,會跟第二次的 $n$ 以及信心值 $\alpha$ 有關。 作者有推導出 ${p_A}^{↓}$ 有個很緊的 lower bound 是 $\alpha^{\frac{1}{n}}$,也就是說 $\alpha$ 越小,想要提升 ${p_A}^{↓}$(或者說提升$R=\sigma{\phi}^{-1}({p_A}^{↓})$),就需要越大的 $n$,而且 $R$ 的成長幅度很緩慢。 ## Inference 上述是拿來用於驗證的,現在要介紹的是平常用於預測時的算法,或者說 $g$ 本身是如何計算的。 - 一樣進行大數量的取樣,然後紀錄第一第二多的兩種類別 $\hat{c_A}$ 跟 $\hat{c_B}$,以及對應的數量 $n_A$ 跟 $n_B$ - 去做 BinomialPValue 的虛無檢驗 - 要檢驗的是 $\text{BinomialPValue}(n_A, n_A+n_B, 0.5)$ - $\text{BinomialPValue}(i, n, q)$ 的意思是,計算成功機率為 $q$ 的二項式分佈 - 然後給定一個拒絕假設的機率 $\alpha$,選定分佈的某範圍機率加總為 $\alpha$,有分為單尾跟雙尾 - 最後看 $i$ 有沒有在拒絕範圍內,意思就是說 $i$ 有沒有落在那個機率很小的範圍內 - 有的話就代表成功的機率不是 $q$,此時要拒絕虛無假設 - 所以上面想要知道的是 $n_A$ 在 $n_A+n_B$ 中是不是 0.5% - 如果 p 值比 $\alpha$ 大,代表我們接受虛無假說,相信真的是 0.5%,回傳 ABSTAIN 窩不知道 - 相信是 0.5% 代表這兩種 class 數量很接近,model 會無法分出是哪個 class - 否則就是拒絕,相信不是 0.5%,回傳 $\hat{c_A}$ 作者有接著證明拒絕之後回傳的 $\hat{c_A}$,但是犯錯 $\hat{c_A}\ne c_A$ 的機率至多就是 $\alpha$: $$ \begin{align} &\mathbb{P}(\hat{c_A}\ne c_A, \text{ no abstain })\\ = & \mathbb{P}(\hat{c_A}\ne c_A)\cdot\mathbb{P}(\text{ no abstain }| \hat{c_A}\ne c_A)\\ \le & \mathbb{P}(\text{ no abstain }| \hat{c_A}\ne c_A)=\alpha\\ \end{align} $$ --- # Future Research Direction RS 目前只適用 $l_2$ 的距離,如果是其他距離函數就會需要換掉 noise,或是用其他研究方式。 - 例如 $l_1$ 就要改用 [Laplace noise](https://zh.wikipedia.org/wiki/%E6%8B%89%E6%99%AE%E6%8B%89%E6%96%AF%E5%88%86%E5%B8%83) 而不是 Gaussian noise 並且作者有說,如果想要提高 Certified Accuracy,可以根據特定的模型做實驗的修正,例如善用模型的某些特性,可以得到更精確的 Certified Accuracy。 - 因為這篇 paper 是黑盒,也就是完全對模型沒有任何假設 - 老師說其實這也是優點,不一定真的要改成用灰盒 # Is Certified Robustness All We Need \[Wang & Bovik et al. IEEE signal processing magazine’09\] 這篇有提到,其實人類的視覺跟 $l_p$ distance 有很大的差距。 例如範例的圖中,雖然那幾張圖的 $l_2$ 距離都一樣,但是就人眼來看,已經從寫實變成畢卡索了。 # Small Changes Can Be Semantically Meaningful 雖然提到了那麼久的攻擊跟防禦,都是在「微小的改動」上做研究;但其實有時候「微小的改動」卻是有意義的而不是無意或是帶有惡意的。 如果一個模型非常抗擾動,那他有可能就因此對這些「微小的改動」很遲鈍。 - 例如數字辨識,0 跟 8 、5 跟 3 等等,加上顏色配置,可能只差一點點的 pixel # “Breaking” Certified Defenses \[Ghiasi et al. ICLR 2020\] 老師說這其實只是下個很聳動的標題,因為 RS 的理論保證就在那了。 這篇 paper 是透過調整明暗度,來達到人眼看不出來,但是 $l_2$ 的距離卻很大,使得準確率很低。 - 但是調整明暗度這個做法並不是基於 $l_2$ 距離,也就是說這篇 paper 是使用不同的 threat model 了 - 這篇 paper 是想說 RS 只專注於 $l_2$ 意義不大 :::info 老師有提到另一篇也是再說 break Certified Defenses,他是對 Numerical 計算的部分動手腳找到破綻,但是就算是 Edge case :::

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Google Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully