形式化可信人工智能方向相关研究介绍

近年来, 具有严格数学基础的形式化方法已经被公认为开发高可靠软硬件系统的有效方法. 目标是对形式化方法在不同系统的应用进行不同维度的分类, 以更好地支撑可信软硬件系统的设计。首先从系统的特征出发, 考虑6种系统特征: **顺序系统、反应式系统、并发与通信系统、实时系统、概率随机系统以及混成系统。**同时, 这些系统又运行在众多应用场景, 分别具有各自的需求. 考虑 4 种应用场景: 硬件系统、通信协议、信息流以及人工智能系统. 对于以上的每个类别, 介绍和总结其形式建模、性质描述以及验证方法与工具. 这将允许形式化方法的使用者对不同的系统和应用场景, 能够更准确地选择恰当的建模、验证技术与工具, 帮助设计人员开发更加可靠的系统。

基于深度神经网络的人工智能系统得到了飞快的发展以及越来越广泛的应用, 智能系统的正确性也因此受到越来越多的关注. 关于深度神经网络的可信性和安全性已经有了很多研究, 文献[332]为这些研究提供了完整的综述. 本节首先从深度神经网络的定义和基本原理入手; 然后对深度神经网络的攻击方式和性质进行分类, 主要关注安全性以外的其他性质; 最后简要概述这些性质的验证方法和工具.
1 深度神经网络定义
人工神经网络, 简称神经网络, 是一种模仿生物神经网络(动物中的中枢神经系统, 特别是大脑)的结构和功能的数学模型或计算模型, 用于对函数进行估计或近似. 经过几十年的发展, 神经网络理论在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域取得了广泛的成功. 深度神经网络是深度学习的一种框架, 它是具备至少1个隐藏层的神经网络. 与浅层神经网络类似, 深度神经网络也能够为复杂非线性系统提供建模, 但多出的隐藏层为模型提供了更多抽象层次, 因此提高了模型的抽象能力. 神经网络的基本结构可以分为 3 层: 输入层、隐藏层、输出层, 各层由神经元和神经元之间的权值组成.
2 深度神经网络的工作原理及特点
在深度神经网络中, 信号从一个神经元传入到下一个神经元之前是通过线性加权和来计算的, 而进入下一层神经元需要非线性的激活函数, 继续往下传递, 如此循环下去. 由于这些非线性函数的反复叠加, 才使得神经网络有足够的能力来抓取复杂的特征. 如果不使用(非线性)激活函数, 每一层输出都是输入的线性函数. 因此, 无论神经网络有多少层, 输出都是输入的线性函数, 这样就和只有一个隐藏层的效果是一样的, 无法逼近复杂的非线性函数. 这就是为什么激活函数都是非线性的. 比较常用的激活函数包括 Sigmoid、tanh 和 ReLU 函数.
在这里插入图片描述

深度神经网络具有以下特点.
(1) 神经网络与传统的参数模型最大不同之处在于, 它是数据驱动的自适应技术, 不需要对问题模型做
任何先验假设. 在解决问题的内部规律未知或难以描述的情况下, 神经元可以通过对样本的学习训练, 获取数据之前隐藏的函数关系. 适用于解决一些利用假设和现存理论难以解释, 却具备足够多数据和观察变量的问题.

(2) 神经元具备泛化能力. 神经网络可以通过对输入样本数据的学习训练, 获得隐藏在数据内部的规律, 并利用学习到的规律来预测未来的数据.

(3) 神经网络是一种具有普遍适用性的函数逼近器. 它能以任意精度逼近任何非线性函数. 传统的预测
模型由于存在各种限制, 不能对复杂的变量函数进行有效的估计. 神经网络的内部函数形式比传统的统计方法更为灵活、有效.

(4) 神经网络算法是非线性的方法. 神经元之间相互制约和相互影响, 使得整个网络从输入空间到输出
空间形成了非线性映射, 可用于处理一些环境信息十分复杂、知识背景不清楚和推理规则不明确的问题.

3 深度神经网络的攻击和性质分类
我们对神经网络的可能攻击方式和期望满足的性质进行分类.

首先, 神经网络可能遇到的攻击有以下几类.

训练时攻击(training-time attack): 攻击者试图通过在训练集里掺入恶意的数据, 从而影响训练出来的神经网络.
测试时攻击(test-time attack): 攻击者试图构造对抗性的测试案例(adversarial example), 使得神经网络做出错误的判断. 这是最常见也是研究最广泛的攻击方式.
模型提取攻击(model extraction attack): 攻击者通过对一个模型询问, 试图获取同样的模型. 这可能会造成商业数据或个人隐私数据的泄露. 深度神经网络的性质可以分为以下几类[333].
输入-输出的鲁棒性. 这种正确性性质强调: 如果输入没有很大的改变, 输出也不应有很大的改变.
这个定义对应着大多数对抗性攻击, 通过对输入微小的扰动来误导神经网络得出错误的判断. 此外,
我们还可以把鲁棒性定义为: 如果输入相似, 则神经网络的输出相似.
输入-输出关系. 这种正确性性质规定: 当神经网络的输入满足条件 P 时, 输出应当满足条件 Q.
系统正确性. 这种定义方式的主要思想是: 一个神经网络应该考虑为一个更大系统的一部分. 例如,
神经网络可以作为这个系统的感知部件. 因此, 神经网络的正确性应当从整个系统的正确性考虑. 例
如, 整个系统的正确性可以通过 STL 等时序逻辑公式描述. 在这个定义下, 神经网络的对抗样本是一
个可以造成整个系统违反 STL 公式的样本. 同样地, 在对抗样本上进行重新训练的目标是, 使得系统
在更多情况下能够满足设置的 STL 公式. 这种对抗和重新训练的概念被称为语义对抗深度学习(semantic adversarial deep learning)[334].
语义不变性. 对于一些应用, 输入空间 X 可以被分为多个等价类, 记为 X1,X2,X3,…. 正确性的定义是,神经网络对于每个等价类都必须得到同样的输出. 这里, 等价类的划分通常和领域相关. 例如, 在图像识别领域, 我们可以说在一个图片里对一个物体进行平移和缩放将得到同一个等价类的图片.
单调性. 在一些应用里, 输入空间 X 和输出空间 Y 上存在自然的偏序. 例如, 如果神经网络用于决定一个贷款申请是否应该被批准, 那么仅仅增加申请人的输入应当只会增加批准的可能性.
公平性. 近期神经网络的公平性越来越受到关注. 我们期望神经网络在做出判断时不会受到某些因
素(例如年龄、种族等)的影响. 这种公平性的定义有多种方式, 例如, 可以要求神经网络给出某个输
出的概率与某些敏感的特征在统计意义下是独立的; 而另一种描述方式则依赖因果模型, 定义为神
经网络对于某个输入是公平的, 如果对这个输入修改某些敏感特征后, 神经网络的输出保持不变.
4 深度神经网络的验证
深度神经网络的输入/输出常常受到环境、设备及安全等因素的限制, 并且在实际应用中, 也面临着实际任务需求的限制. 因此, 如果在一些安全攸关应用领域使用深度神经网络, 例如商用飞机防撞、大规模发电厂、化工厂控制等, 我们必须对部署的神经网络进行形式验证, 以确保其能够安全运行. 深度神经网络形式验证主要涉及验证网络的输出是否满足给定的安全性质规约. 考虑到实际应用中深度神经网络的非线性、高度复杂等特性, 对其进行形式验证极具挑战性.

目前已有的神经网络验证工具包括 Reluplex[335]、Planet[336]、ReluVal[337]等. Reluplex 和 Planet 是两个基于SMT 求解器的神经网络验证工具, 使用 Davis-Putnam-Logemann-Loveland (DPLL)算法的体系结构来分割案例和排除冲突子句. Reluplex 扩展了 Simplex 算法中的规则, 首先, 通过主元规则找到线性约束的解; 然后再调整赋值, 使每一个 ReLU 激活函数的输入输出匹配. Planet 采用线性近似的方法对神经网络进行过近似, 并通过逻辑公式判断 ReLU 和 max-pooling 节点的条件是否被满足. ReluVal 使用区间算术来验证神经网络的性质, 在给出运算符输入值的上下界后, 都可以得到输出结果的上近似范围, 并且这种上近似的计算可以随神经网络递进.

ERAN (ETH robustness analyzer for neural networks)是苏黎世联邦理工大学开发的神经网络鲁棒性的验证工具, 针对多种扰动实现了多个验证算法, 例如基于 zonotopes 抽象域的 DeepZono[338]和基于 DeepPoly 抽象域[339]的方法. 其他神经网络鲁棒性验证工具包括 Fast-Lin[340]和 CROWN[341], 其中 Fast-Lin 仅考虑 ReLU 激活函数的情况, 并利用了 ReLU 网络的特性; CROWN 针对更一般的神经网络, 使用激活函数的线性或二次函数上下界对其进行逼近.

此外, 还有许多工作从不同的角度和方向对神经网络的验证进行了探索. Seshia 等人[333]对深度神经网络的形式规范进行了综述. 关于 DNN 的设计、(对抗)分析和验证的大量文献给出了各种性质, 在展现这些性质的同时, 关于两种不同的角度进行了讨论: 第 1 种是基于性质含义和相关的语义行为类型, 第 2 种是基于由轨迹集定义出发的轨迹理论. Dreossi 等人[342]提出了一种形式化的神经网络(和机器学习模型)的鲁棒性对抗分析问题的规约, 将对抗性输入生成问题表述为一个形式化的验证问题, 包括对抗干扰的可容许限制、距离限制和目标行为限制. 这种统一的形式鲁棒性公式可以概括不同例子中的鲁棒性定义、不同的对抗环境(黑盒、白盒攻击)和不同的对抗生成技术. 在清晰地描述不同的对抗目标的同时, 也便于不同技术和对抗分析方法(基于形式化方法和基于优化等)之间的比较.

Dutta 等人借助于局部搜索及混合整数线性规划, 提出了计算网络输出集合上近似的迭代算法[343]. 首先, 随机选取输入集合的一个初始样本, 利用局部搜索的方法来估计神经网络输出的上下界. 局部搜索往往不能得到神经网络输出的全局上下界, 而是局部上下界. 基于搜索到的局部上下界构建一个混合整数线性规划, 此规划的一个可行解将改善此局部上下界. 如果此规划无解, 则算法终止, 返回的上下界为全局上下界; 如果有解, 再利用局部搜索的方法来估计神经网络输出的上下界, 迭代此过程.

Ruan 等人证明了大多数已知的 DNN 层都是 Lipschitz 连续的, 无论其层深、激活功能和神经元数量, 且提出一种基于全局优化的自适应嵌套优化算法来进行可达性分析, 解决神经网络的安全性和鲁棒性验证[344]. 通过神经网络的 Lipschitz 常数来计算一系列上下界, 最终收敛到神经网络输出集的极值.

利用抽象解释来验证深度神经网络的基本思想是: 利用合适的抽象域(比如 boxes、zonotopes 和 polyhedra)来上近似神经网络的输入集及其计算过程, 得到神经网络输出集的上近似, 并验证其是否满足给定性质. Li等人[345]利用符号传播技术提高了基于抽象解释的 DNN 验证的精度, 利用神经网络中大量存在的仿射变换, 通过将节点值表示为符号变量的仿射表达式, 通过线性变换传播的方式来避免了直接在隐藏层进行区间计算所产生的误差; 同时, 更精确的数值上下界也会减轻 ReLU 激活函数和 max-pooling 层的计算量.

对基于精确可达性分析的方法, 如何高效计算出神经网络的输出集, 则是验证问题的核心, 比如利用面-顶点关联矩阵(FVIM)来表示凸集组合结构的完整编码[346]. FVIMs 结构对于集合操作具有非常有用的性质. 可以直接利用集合的顶点来确定输入集合是否跨越了 ReLU 函数在神经元中的负输入和正输入范围, 从而避免使用线性规划进行判断, 更高效地解决问题. 当输入集跨越了 ReLU 函数的两个输入范围时, 也可以将其快速划分为两个子集. 该方法的另一个特性是支持从输出到输入的回溯, 允许计算导致安全性质被违反的完整输入集.

针对一个黑盒神经网络, Xue 等人基于可能近似正确学习的理论(PAC learning)以及场景优(scenario optimization), 提出了计算“黑盒”系统(包括大规模非线性深度神经网络)安全特征输入集下近似的线性规划方法[347]

当神经网络仅作为系统中的一部分时, 例如一个信息物理融合系统包含了复杂的机器学习组件, 整个系统的安全性验证问题则更加复杂. Dreossi 等人提出一个复合框架[348]来解决 CPSML 证伪问题. 通过时序逻辑伪造器和机器学习分析器共同收集信息, 合作搜索闭环系统中违反目标特性的行为和 ML 组件的输入空间, 找到系统中不满足 STL 的执行路径. 通过结合系统正确性的概念、证伪技术和 STL 性质的检验,Dreossi 等人构造了 VerifAI 工具链[349], 并将其应用于基于神经网络的飞机滑行系统的找错和改善[350].

ReachNN[351]工具考虑基于神经网络的控制器的验证问题. 该工具首先从神经网络计算一个 Bernstein多项式的近似, 类似于知识蒸馏(knowledge distillation)的技术, 并通过基于 Lipschitz 连续性质的理论计算和自适应采样技术得到近似的误差估计. 从这个多项式近似, 进而可以计算整个控制系统可达集的上近似. 与之前的方法不同, 这种方法可以处理多种激活函数, 并具备更好的可扩展性和计算效率.

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值