zoukankan      html  css  js  c++  java
  • Globally-Robust Neural Networks

    Leino K., Wang Z. and Fredrikson M. Globally-robust neural networks. In International Conference on Machine Learning (ICML), 2021.

    本文是一种可验证的鲁棒方法, 并且提出了一种globally-robust的概念, 但是实际看下来并不觉得有特别出彩的地方.

    主要内容

    对于网络(f : mathbb{R}^{n} ightarrow mathbb{R}^{m}), 其中(m)表示共有m个不同的类别. 则prediction可以表示为

    [F(x) = mathop{arg max} limits_{i} f_i(x). ]

    普通的local robustness采用如下方式定义:

    (F)被称为在点(x)满足(epsilon)-locally-robust, 当对于任意的样本(x')满足

    [|x'-x| Rightarrow F(x) = F(x'). ]

    这种定义方式并不恰当, 因为倘若这个性质对于所有的点都成立, 那么所有的样本都会被判定为同一个类别, 从而得到的是一个退化的(F).

    作者给出的globally-robust的定义是可以对于所有(x)有效的.
    首先假设一个新的类别(perp), 以及关系

    [c_1 mathop{=}limits^{perp} c_2, ]

    当且仅当

    [c_1 = c_2 | c_1=perp | c_2 = perp . ]

    则globally-robust是这么定义的:
    (F)(epsilon)-globally-robust的, 如果对于任意的(x_1, x_2), 有下列推论成立

    [|x_1 - x_2| le epsilon Rightarrow F(x_1) mathop{=}limits^{perp} F(x_2). ]

    换言之, (F)关于所有点的预测, 要么其是locally-robust, 要么是属于(perp)的, 故可以将(perp)理解为所有不满足locally-robust的点.

    接下来作者给出了这样模型的构造方法:
    假设

    [frac{|f_i(x_1) - f_i(x_2)|}{|x_1 - x_2|} le K_i, i=1,2,cdots, m, ]

    (f_i)的全局Lipschitz常数为(K_i).

    [y_i = f_i(x), j=F(x), ]

    定义

    [y_{perp} = max_{i ot= j} {y_i + (K_i + K_j) epsilon }. ]

    背后的直觉是, 根据Lipschitz常数的性质, 有

    [y_i -K_i epsilon le f_i (x') le y_i + K_i epsilon, \ y_j -K_j epsilon le f_j (x') le y_j + K_j epsilon, ]

    所以

    [f_i(x') - f_j(x') le y_i + (K_i + K_j) epsilon -y_j = y_{perp} - y_j. ]

    所以(y_{perp})反映了最坏的情况, 如果(y_{perp} > y_j), 便有可能存在(x', |x'-x| le epsilon), 但是(F(x') ot= F(x)).
    当然了, 这个是一个非常宽泛的情况.
    进一步定义:

    [ar{f}_i^{epsilon} (x) = f_i(x), i =1,2,cdots, m, \ ar{f}_{perp}^{epsilon}(x) = y_{perp}, ]

    所以最后的模型是:

    [ar{F}^{epsilon}(x) = mathop{arg max} limits_{i, perp} ar{f}_{*}^{epsilon}(x). ]

    并由如下的性质:

    定理1: 如果(ar{F}^{epsilon}(x) ot = perp), 则 (ar{F}^{epsilon}(x) = F(x)), 且(ar{F}^{epsilon})(x)处是(epsilon)-locally-robust的.

    这是显然的, 因为这说明在(epsilon)的ball内, 找出比上面情况更坏的点.

    定理2: (ar{F}^{epsilon / 2}(x))(epsilon)-globally-robust的.

    只需证明不可能存在(x_1, x_2, |x_1 - x_2| le epsilon), (ar{F}^{epsilon/2}(x_1)=c_1 ot= c_2 =ar{F}^{epsilon/2}(x_1)),
    根据上面的定理可知:

    [F(x_1) = c_1 ot = c_2 = F(x_2). ]

    任取

    [x_3 in B(x_1, epsilon /2) cap B(x_2, epsilon /2), ]

    注: 这里(B)是闭球.
    则根据定理1有(F(x_1) = F(x_3) = F(x_2)), 矛盾.

    所以, 我们这么构造的模型就符合作者的定义了, 但是还存在下面的问题:

    1. 全局Lipschitz常数的估计问题: 作者采用简单粗暴的逐层计算并相乘, 放得很宽;
    2. 如果Lipschitz常数过大, 这个模型并不会有效, 显然所有的样本都会被判断为(perp), 作者最后采用的损失函数是TRADES的一个变种:

      [mathcal{L}_T(x,y) = mathcal{L}_{CE}(f(x), y) + lambda cdot mathrm{D}_{KL}(ar{f}^{epsilon}(x)| f(x)). ]

    代码

    原文代码

  • 相关阅读:
    大话设计模式笔记(二十)の命令模式
    大话设计模式笔记(十九)の桥接模式
    大话设计模式笔记(十八)の单例模式
    大话设计模式笔记(十七)の迭代器模式
    反射的使用及其使用场景
    linq的简单使用
    XML的简单使用
    log4net的简单使用
    token
    axios在vue中的简单封装及应用
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/15045618.html
Copyright © 2011-2022 走看看