nn dependability kit
1.0.0
NN依赖性kit是一种开源研究工具,可帮助工程神经网络,以实现安全至关重要的领域。
C.-H。 Cheng,C.-H。黄和G.Nührenberg。 NN依赖性KIT:用于安全至关重要自主驾驶系统的工程神经网络。 https://arxiv.org/abs/1811.06746
GNU AFFERO通用公共许可证(AGPL)版本3
请参阅nn_depentability_kit_manual.pdf
示例作为jupyter笔记本,以允许对概念的分步理解。
有四个包裹在NNDETABINABY下,即
pytorch + numpy + matplotlib + jupyter
[测试案例生成] Google优化研究工具
[验证 /静态分析]纸浆(基于Python的MILP连接器到CBC和其他求解器)
[运行时验证] DD(使用Python实施的二进制决策图)
使用要求.txt安装依赖项来运行大多数笔记本电脑(不包括张量)。
# init submodule for saliency
cd nndependability/metrics/saliency-source/
git submodule init
git submodule update
cd ..
ln -s saliency-source/saliency saliency
cd ../../
cd models/SSD-Tensorflow/
git submodule init
git submodule update
# prepare weights
cd checkpoints/
unzip ssd_300_vgg.ckpt.zip
cd ../
# install custom changes to module SSD-Tensorflow that allows using saliency
git apply ../ssd_tensorflow_diff.diff
cd ../../
为了对神经网络进行正式验证,有两个通常的问题。
在NN依赖性套件中,我们建议用户继续进行以下步骤。

由于完整网络的输入只能导致黄色网络输入的某些值,如果无法在黄色网络上证明安全属性,我们的进一步建议是用培训数据为完整的网络提供供应完整的网络,以便基于访问量的输入来得出更严格的过度透视。可以在Neuron n^17_ {1}中找到一个示例,其中通过所有可用的培训数据运行网络,我们知道训练数据使得n^17_ {1}的输出由[-0.1,0.6]绑定。因此,我们可以将记录的绑定用作黄色网络的输入约束来执行正式验证。
验证的正确性是基于一个假设,即无法将神经元值放在创建的间隔之外,这是假定保证的证明。可以在运行时轻松监视该假设。