We present \texttt{secml}, an open-source Python library for secure and explainable machine learning. It implements the most popular attacks against machine learning, including test-time evasion attacks to generate adversarial examples against deep neural networks and training-time poisoning attacks against support vector machines and many other algorithms. These attacks enable evaluating the security of learning algorithms and the corresponding defenses under both white-box and black-box threat models. To this end, \texttt{secml} provides built-in functions to compute security evaluation curves, showing how quickly classification performance decreases against increasing adversarial perturbations of the input data. \texttt{secml} also includes explainability methods to help understand why adversarial attacks succeed against a given model, by visualizing the most influential features and training prototypes contributing to each decision. It is distributed under the Apache License 2.0 and hosted at \url{https://github.com/pralab/secml}.
翻译:我们展示了用于安全和可解释的机器学习的开放源代码 Python 库 。 它针对机器学习实施最受欢迎的攻击, 包括测试- 规避攻击, 以生成针对深神经网络的对抗性实例, 以及针对支持矢量机器和许多其他算法的培训- 时间中毒攻击。 这些攻击能够评估白箱和黑盒威胁模式下学习算法和相应防御的安全性。 为此,\ textt{ secml} 提供内在功能来计算安全评价曲线, 显示相对于输入数据的对立干扰增加的快速分类性能下降 。\ textt{secml} 还包括解释方法, 帮助理解对抗性攻击对特定模式取得成功的原因, 其方法是将最有影响力的特性和培训模型纳入对每项决定的贡献。 它根据Apache lic lic 2.0 分发, 并在\url{https://github.com/ pralab/secm} 。