安全算法基础(一)
安全算法是算法的分支之一,还的依靠大量的数学基础进行计算,本文参照兜哥的AI安全样本对抗,做一个简单的算法安全概括,从零学习。
最新的安全算法对于我们常规的攻击样本检测,效果是不理想的,为了探究其原因,决定学习ai安全,神经网络。
常见的对抗样本的方法分为白盒,黑盒,以及真实世界物理攻击,难度依次递增。一下就照着书抄,一下几种方法的检测以及加固。
白盒攻击算法列举:
ILCM(最相似迭代算法)
FGSM(快速梯度算法)
BIM(基础迭代算法)
JSMA(显著图攻击算法)
DeepFool(DeepFool算法) C/W(C/W算法)
常见的黑盒攻击方法列举:
Single Pixel Attack(单像素攻击)
Local Search Attack(本地搜索攻击)
安全算法加固:
Feature squeezing(特征凝结)
Spatial smoothing(空间平滑)
Label smoothing(标签平滑)
Adversarial training(对抗训练)
Virtual adversarial training (虚拟对抗训练)
Gaussian data augmentation (高斯数据增强)
所谓的深度学习,AI算法,也是基于机器不断的学习打造成的模型,这是我基于安全算法模型的理解。对抗模拟样本采用的攻击是百度的AdvBox。
深度学习通常分为2个步骤,训练和预测2个过程,在这之前,首先要做的就是数据预处理,因为算法,不管算什么,都是基于虚拟的建模,所以,我们首先要预处理,将物理的东西,比如图片,汽车,放在我们的平面直角坐标系中,当然是多维的那种,进行关键点位定坐标。完成数据预处理后,就需要定义网络结构,定义网络结构分为2个部分,一个是对网络结构的描述,二是每层网络的具体参数值是什么。说了这么多模糊的概念,那我们就举一个列子。
我们有一个网站,www.axgg.com 访问的时候有2种人,一个是普通用户,一个是黑客,就相当于二进制的0和1。那我们现在设计一个初略的算法需要把这2类用户给统计出来,那我们就引用一个一元一次函数,y=wx+b,w和b是我们的多维变量,当我们的x取同一值,我们y的值若大于超平面,则为黑客,小于则反之。
我说的一元一次方程只是便于大家理解,但是他们是多维的,不是随随便便就计算出来了,因为还要考虑到网络结构参数的赋值。接下来介绍常用的网络层,Dense层、Activation层、Dropout层、Flatten层、Reshape层和Permute层。