神经网络验证中线性近似的示例引导合成
在机器学习领域,神经网络凭借其在图像分类、自然语言处理和控制等众多任务中的出色表现,成为了备受青睐的模型选择。然而,神经网络也存在一些问题,在输入存在少量噪声或看似微不足道的扰动时,它可能会对输入进行错误分类,这引发了人们对其在安全关键系统中部署的担忧。因此,大量的研究工作提出了验证技术,以证明神经网络对这些扰动具有鲁棒性,或者满足某些特定规范。
线性近似的重要性
在神经网络验证技术中,网络激活函数的线性近似对于验证的精度和可扩展性至关重要。对于任意激活函数 σ(x),线性近似可以看作是一个系数生成函数 G(l, u) → ⟨al, bl, au, bu⟩,其中 l 和 u 是实数,对应区间 [l, u],al、bl、au 和 bu 是线性上下界的实值系数,需满足以下条件:
[
\forall x \in [l, u]. a_l \cdot x + b_l \leq \sigma(x) \leq a_u \cdot x + b_u
]
许多关于神经网络验证的开创性工作都手动设计了这样的 G(l, u) 函数,并且后续的工作也基于这些手动设计的近似展开。此外,线性近似不仅在神经网络验证中有用,还在严格全局优化和验证等领域有应用。
手动设计线性近似的局限性
然而,手动设计 G(l, u) 函数是一项繁琐、容易出错且需要专家知识的工作。目前,专家们仅为最常见的激活函数(如 ReLU、sigmoid、tanh、max - pooling 和普通 LSTM 中的激活函数)设计了近似,无法处理诸如 Swish、GELU、Mish 和 LiSHT 等新的前沿激活函数。
<
超级会员免费看
订阅专栏 解锁全文
1100

被折叠的 条评论
为什么被折叠?



