美文网首页
基于深度学习的安卓恶意软件检测(二)

基于深度学习的安卓恶意软件检测(二)

作者: 4v3r9 | 来源:发表于2019-01-17 16:21 被阅读19次

在上一节中介绍了安卓恶意应用检测的背景知识,本节将介绍项目用到的传统机器学习算法和深度学习算法.

1 随机森林算法

随机森林是一种著名的集成学习方法,被广泛应用于数据分类和非参数回归.随机森林以决策树为基本分类器,它包含多个由Bagging集成学习技术训练得到的巨册书;当输入待分类的样本时,最终的分类结果由单个决策树的输出结果投票决定.


随机森林算法的运行过程

2 自适应提升算法

自适应提升算法(AdaBoost, Adaptive Boosting的缩写)是一种机器学习算法,由Yoav Freund 和 Robert Schapire 提出。AdaBoost的自适应在于前一个分类器分错的样本会被用来训练下一个分类器.它是一种提升算法,可以将精度较低的弱分类器提升为更好的强分类器;且比相比较现有其他算法,不易出现过拟合现象.

从权重分配的思路来看,AdaBoost可以说是"奖惩分明"--分类效果好的分类器即赋予较高的权重,效果不好的分类器则赋予较低的权重,其在训练每个弱分类器的时候即对其正确率进行评估,并利用每个弱分类器的正确率为基础计算其应被分配的权重.

3 梯度提升决策树算法

梯度提升决策树(Gradient Boosting Decision Tree, GBDT)与随机森林算法一样,都是将决策树的模型组合起来,总体的效果比单个决策树要好.随机森林将决策树以随机化的方式组合起来,而GBDT组合的方式称为提升(Boosting).

提升方法实际采用加法模型(即基函数的线性组合)与前向分步算法.以决策树为基函数的提升方法成为提升树(boosting tree).提升树模型可以表示为决策树的加法模型.

4 逻辑回归算法

逻辑回归算法是数据挖掘中经常被用到的分类方法,尤其适用于两分类问题(例如我们系统所解决的良性-恶意应用问题).逻辑回归算法的一个优势是它是基于概率的分类算法,并且很容易被扩展到多累问题.更重要的是大多数无约束最优化技术都可以应用到逻辑回归的求解过程中.

5 深度学习算法

5.1 传统自编码器

自编码器(auto encoders)是一种尽量还原输入信号的审计网络,主要利用神经网络具有层次结构的特点.它是一种无监督学习模型.

构建一个3层网络模型如图所示,每层网络模型的输出作为下一层网络的输入,取最右边的输出作为提取的特征.网络训练过程分为预训练和微调两部分,首先自左向右进行逐层训练获得网络初始化参数,然后通过反向传播算法对全局网络参数进行微调,得到每一层的网络权重和隐含编码,达到无监督特征提取的效果.


自编码神经网络
5.2 栈式降噪自编码器

传统的自编码器在不加任何约束的情况下,很容易将输入数据直接复制输出,或者只产生微小的改变,这使模型表现较差,会产生一定的重构误差;当训练数据和测试数据相差较大不符合同一分布时,训练效果也不佳;针对这一问题,Vincent P.提出了新的算法——降噪自编码(Denoising Autoencoders,dA)算法,其模型结构如图所示.

降噪自编码器原理

其核心思想是:在传统自编码学习的基础上将含有一定统计特性的噪声加到输入数据对样本进行破坏改造,通过随机映射对每个输入量x按照一定的破坏率把初始输入x破坏为x'.相当于以一定的概率分布去随机擦除原始输入矩阵,使得部分冗余特征丢失,再利用x'训练隐藏层和重构层,将擦除后的数据尽可能还原重构出原始数据.

擦除后的破损数据是很有用的,因为擦除时将部分输入噪声擦出掉了,使得破损数据训练出来的权重噪声比较小,从而达到降噪的功能;由于部分数据被擦除,破损数据在一定程度上减轻了训练数据与测试数据的差距.降噪自编码弥补了传统自编码存在的一些缺陷,在去除噪声后获得真正没有被污染过的输入数据的过程中,迫使编码器去学习输入信号更加鲁棒的表达,能够提高系统的鲁棒性和泛化能力.

栈式(堆叠)降噪自编码神经网络(Stacked Denoising Autoencoders, SdA)是一个由多层降噪自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入.使用这样的网络能够得到更加深层次的特征表达.

相关文章

网友评论

      本文标题:基于深度学习的安卓恶意软件检测(二)

      本文链接:https://www.haomeiwen.com/subject/qtzbdqtx.html