机器学习

黑客入侵与机器学习沙箱逃逸

0x00、简介

对于攻击者来说,在收集目标数据的过程当中(基础设施扫描、踩点、传递恶意软件),很容易被安全分析师发现。机器学习在防御领域的应用不仅增加了攻击者的成本,而且极大地限制了技术的使用寿命。其实攻击者已经发现了这种趋势,

  •   防御软件以及安全分析人员可以访问大量数据收集和分析

  •   机器学习无处不在,以加速防守成熟度。

攻击者总是处于不利地位,因为我们作为人类试图打败自动学习系统,这些系统利用每一次绕过尝试来更多的了解我们,并预测未来的绕过尝试。然而,正如我们在这里所说的,机器学习不仅仅是在防守方使用。这篇文章将探讨攻击者如何利用收集的很少的数据,使用机器学习技术击溃入侵检测系统。

0x01、传统沙箱逃逸介绍

在讨论机器学习之前,我们需要更仔细的看看我们作为攻击者是如何处理信息的。攻击者在任何给定的主机或网络上收集不到1%的可用信息,并使用少于3%的所收集信息来做出明智的决定(不要太在意百分比),攻击者需要提高他们的数据利用率

线性回归、梯度下降(Linear Regression、Gradient Descent)

首先要明白什么是回归。回归的目的是通过几个已知数据来预测另一个数值型数据的目标值。假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。

机器学习之特征工程、特征选择、归一化方法

1、特征选择

特征选择也被称为变量选择和属性选择,它能够自动地选择数据中目标问题最为相关的属性。是在模型构建时中选择相关特征子集的过程。

特征选择与降维不同。虽说这两种方法都是要减少数据集中的特征数量,但降维相当于对所有特征进行了重新组合,而特征选择仅仅是保留或丢弃某些特征,而不改变特征本身。
降维常见的方法有PCA,SVD,萨蒙映射等,特征选择是丢弃作用小的特征。

为什么要做特征选择?

在有限的样本数目下,用大量的特征来设计分类器计算开销太大而且分类性能差。通过特征选取,删选掉冗余重复的和不相关的特征来进一步降维,获取尽可能小的特征子集,模型仅需少量的样本就可以得到较高的预测准确率。特征选择可以移除那些重复冗余、无关的特征,利于构建复杂度更低、解释性更强的模型。  

1、去除冗余和不相关的特征,减少了特征维度,有利于提高模型的预测能力,构建效率更高的模型。
2、更好地理解数据生成的过程,模型的解释性更强。

特征选择方法有很多,一般分为三类:

自动驾驶中常用的四类机器学习算法

机器学习算法已经被广泛应用于自动驾驶各种解决方案,电控单元中的传感器数据处理大大提高了机器学习的利用率,也有一些潜在的应用,比如利用不同外部和内部的传感器的数据融合(如激光雷达、雷达、摄像头或物联网),评估驾驶员状况或为驾驶场景分类等。在KDnuggets网站发表的一篇文章中,作者Savaram Ravindra将自动驾驶中机器学习算法主要分为四类,即决策矩阵算法、聚类算法、模式识别算法和回归算法。我们跟他一起看看,这些算法都是怎样应用的。

算法概览

我们先设想这样一个自动驾驶场景——汽车的信息娱乐系统接收传感器数据融合系统的信息,如果系统发现司机身体有恙,会指导无人车开往附近的医院。

这项应用以机器学习为基础,能识别司机的语音、行为,进行语言翻译等。所有这些算法可以分为两类:监督学习和无监督学习,二者的区别在它们学习的方法。

监督学习算法利用训练数据集学习,并会坚持学到达到所要求的置信度(误差的最小概率)。监督学习算法可分为回归、分类和异常检测或维度缩减问题。

无监督学习算法会在可用数据中获取价值。这意味着算法能找到数据的内部联系、找到模式,或者根据数据间的相似程度将数据集划分出子集。无监督算法可以被粗略分类为关联规则学习和聚类。

机器学习中数据不平衡问题

可以把问题根据难度从小到大排个序:大数据+分布均衡<大数据+分布不均衡<小数据+数据均衡<小数据+数据不均衡。

说明:对于小数据集,机器学习的方法是比较棘手的。对于需要解决的问题,拿到数据后,首先统计可用训练数据有多大,然后再观察数据分布情况。经验表明,训练数据中每个类别有5000个以上样本,其实也要相对于特征而言,来判断样本数目是不是足够,数据量是足够的,正负样本差一个数量级以内是可以接受的,不太需要考虑数据不平衡问题(完全是经验,没有理论依据,仅供参考)。

0、搜集更多的数据

然而实际上,当搜集数据的代价不大时,这种方法是最有效的。

但是需要注意,当搜集数据的场景本来产生数据的比例就是不平衡时,这种方法并不能解决数据比例不平衡问题。

1、采样

采样分为上采样(Oversampling)和下采样(Undersampling),上采样是把小众类复制多份,下采样是从大众类中剔除一些样本,或者说只从大众类中选取部分样本。

关于人工智能、编程以及机器学习

人工智能会让程序员失业吗?

当人工智能逐渐强大,大家开始担心:人工智能下一步又要在哪个领域干掉人类?

AI会让人类程序员失业吗?对此问题持肯定态度的人并不在少数。

比如:美国橡树岭国家实验室在去年底发布的论文《人机混编的代码意味着什么?人类 2040 年还需要亲自编写代码吗? 》中表示:到了2040年,大多数的程序代码将由机器生成。

2040年距今天还有些距离,至少当下,AI没有让程序员失业,而是让程序员更贵了。

前几天刷屏的《AI 时代,为什么程序员这么贵》一文,csdn的蒋总认为:AI的发展,不仅不会使程序员消亡,反而使得各行各业比现在更加需要程序员——程序员的求职范围不再局限于软件或互联网行业,社会总需求激增,人才自然也就更贵了。

笔者对蒋总的观点蛮赞同的,当前的势头也确实如此。

不过,再过5-10年,程序员还会如今日行情吗?

1、决策树

适用条件:数据不同类边界是非线性的,并且通过不断将特征空间切分为矩阵来模拟。特征之间有一定的相关性。特征取值的数目应该差不多,因为信息增益偏向于更多数值的特征。

优点:
  •   直观的决策规则;
  •   可以处理非线性特征;
  •   考虑了变量之间的相互作用。

缺点:
  •   容易过拟合(随机森林、剪枝);
  •   处理缺失数据时的困难;
  •   数据集中属性间的相关性。

2、SVM

适用条件:特征空间大,可以处理非线性的特征。

优点:
  •   可以处理小样本情况下的机器学习问题;
  •   可以处理高维特征;
  •   使用核函数应对非线性特征空间,解决非线性问题;
  •   分类面不依赖所有数据,只与几个支持向量有关

缺点:
  •   对于大量的预测样本,效率会很低;

聚类算法

任务:将数据集中的样本划分成若干个通常不相交的子集,对特征空间的一种划分。

性能度量:类内相似度高,类间相似度低。两大类:1.有参考标签,外部指标;2.无参照,内部指标。

距离计算:非负性,同一性(与自身距离为0),对称性,直递性(三角不等式)。包括欧式距离(二范数),曼哈顿距离(一范数)等等。

1、KNN

k近邻(KNN)是一种基本分类与回归方法。

其思路如下:给一个训练数据集和一个新的实例,在训练数据集中找出与这个新实例最近的k 个训练实例,然后统计最近的k 个训练实例中所属类别计数最多的那个类,就是新实例的类。其流程如下所示:

1、计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);
2、对上面所有的距离值进行排序;
3、选前k 个最小距离的样本;
4、根据这k 个样本的标签进行投票,得到最后的分类类别;
  
KNN的特殊情况是k =1 的情况,称为最近邻算法。对输入的实例点(特征向量)x ,最近邻法将训练数据集中与x 最近邻点的类作为其类别。

(1)一般k 会取一个较小的值,然后用过交叉验证来确定;

(2)距离度量:一般是欧式距离(二范数),或者曼哈顿距离(一范数)

机器学习(九)——逻辑回归与SVM区别

1、LR和SVM有什么相同点

(1)都是监督分类算法,判别模型;

(2)LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题);

(3)两个方法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是很接近的。

2、LR和SVM有什么不同点

(1)本质上是其loss function不同;

区别在于逻辑回归采用的是Logistical Loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。

逻辑回归损失函数:
机器学习(九)——逻辑回归与SVM区别

SVM损失函数:

自动机器学习(AutoML)最新综述

机器学习的应用需要大量的人工干预,这些人工干预表现在:特征提取、模型选择、参数调节等机器学习的各个方面。AutoML 试图将这些与特征、模型、优化、评价有关的重要步骤进行自动化地学习,使得机器学习模型无需人工干预即可被应用。

同步内容
--电子创新网--
粤ICP备12070055号