正在加载图片...
460 工程科学学报,第42卷,第4期 2:while i<iterations 预训练时的准确率阈值为0.6;正式训练时的迭代 3: 计算b,上的损失,更新网络参数; 学习次数上限为4000.另外,在本实验的数据集 4: ifi%100=0 then 中,测试集占70%(其中,恶意样本和良性样本各 5: 保存当前网络参数到文件中: 有700个),测试集占30%(其中,恶意样本和良性 6: i=i%计1; 样本各有300个). 3.4算法学习结果 在正式训练过程中,由于保存了训练过程中 如图2所示,当强化学习模型在训练集上迭 不同迭代次数的强化学习模型.当正式训练结束 代500次之后,测试集上的准确率接近于90%左 之后,分别用这些保存下来的网络参数初始化强 右.图3展示了测试集上查准率和召回率随迭代 化学习模型,然后分别对测试集上的数据进行测 次数的变化情况,可以看到准确率曲线(实线)的 试,查看不同迭代次数下的强化学习模型的表现, 变化趋势,和召回率曲线(虚线)的变化趋势往往 从中选择一个表现最好的模型 相反.在迭代2000次之前,查全率能维持在80% 3实验结果 左右,查准率能接近100%.这里可以通过查看混 淆矩阵,来评价模型的计算性能.如表1所示,这 3.1数据来源 里选择了迭代次数2000次后的模型,其中,TP表 实验选用的数据集包含了2万多条Windows 示正确预测恶意样本的数量,FP表示错误预测恶 平台下的API调用序列数据在实际使用中,从 意样本的数量,FN表示错误预测良性样本的数 中选取了3000条良性软件的API调用序列和2411 量,TN表示正确预测良性样本的数量,基于此,可 条恶意软件的API调用序列(共有3种不同类型 以计算查准率为:P=TP/TP+FP)=257/257+4)=98.1%: 的恶意软件) 查全率为:R=TP(TP+FN)=257/(257+43)=85.7%. 3.2数据预处理的结果 数据集中的每一条数据都是API调用序列, 1.000 但是不同数据之间序列长度不统一,需要进行初 0.889 步的处理.这里包括两个步骤:统计所有API的个 0.778 0.667 数,计算API函数的信息增益值,删去低增益的 君0.556 API函数;利用One-Hot编码将每一个原始序列数 星044 据编码成长度为400的序列数据.在选取的数据 0.333 集中,根据信息增益由大到小排序.经检查,发现 0.222 信息增益值低的API函数,在良性与恶意样本中 0.111 出现比率都较低.因此,这些API函数从信息增益 0 05001000150020002500300035004000 的角度来说,对于分类的贡献较小,只有少部分的 Number of interations 样本含有这些API函数.这里所选取的信息增益 图2测试集上的准确率 阈值为0.0001,信息增益值低于该阈值的都将被去 Fig.2 Accuracy in the test dataset 除.经过这样的操作后,数据集中的API函数,由 1.000 过滤前的946个,调整为信息增益过滤之后的 0.889 828个 0.778 3.3参数设置 0.667 在经过实验测试后,强化学习模型训练时所 0.556 20.444 需的参数设置为:特征提取网络、策略网络、分类 0.333 网络输入数据的维度分别为828、1084、128:特征 0.222 提取网络、策略网络、分类网络中隐含层神经元 0.111-Precision -=Recall 数目分别为128、128、128:分类网络输出张量的 0 5001000150020002500300035004000 维度为2;超参数y为0.4:特征提取网络、策略网 Number of interations 络、分类网络的学习率为0.005、0.01、0.005;延迟 图3测试集上查准率和查全率随迭代次数的变化 奖励的偏置项为0.8:每次训练的样本数目为16: Fig.3 Precision and recall in the test dataset2: while i<iterations 3: 计算 bi 上的损失,更新网络参数; 4: if i % 100=0 then 5: 保存当前网络参数到文件中; 6: i=i % n+1; 在正式训练过程中,由于保存了训练过程中 不同迭代次数的强化学习模型. 当正式训练结束 之后,分别用这些保存下来的网络参数初始化强 化学习模型,然后分别对测试集上的数据进行测 试,查看不同迭代次数下的强化学习模型的表现, 从中选择一个表现最好的模型. 3    实验结果 3.1    数据来源 实验选用的数据集包含了 2 万多条 Windows 平台下的 API 调用序列数据[15] . 在实际使用中,从 中选取了 3000 条良性软件的 API 调用序列和 2411 条恶意软件的 API 调用序列(共有 3 种不同类型 的恶意软件). 3.2    数据预处理的结果 数据集中的每一条数据都是 API 调用序列, 但是不同数据之间序列长度不统一,需要进行初 步的处理. 这里包括两个步骤:统计所有 API 的个 数,计算 API 函数的信息增益值,删去低增益的 API 函数;利用 One-Hot 编码将每一个原始序列数 据编码成长度为 400 的序列数据. 在选取的数据 集中,根据信息增益由大到小排序. 经检查,发现 信息增益值低的 API 函数,在良性与恶意样本中 出现比率都较低. 因此,这些 API 函数从信息增益 的角度来说,对于分类的贡献较小,只有少部分的 样本含有这些 API 函数. 这里所选取的信息增益 阈值为 0.0001,信息增益值低于该阈值的都将被去 除. 经过这样的操作后,数据集中的 API 函数,由 过滤前 的 946 个 ,调整为信息增益过滤之后 的 828 个. 3.3    参数设置 在经过实验测试后,强化学习模型训练时所 需的参数设置为:特征提取网络、策略网络、分类 网络输入数据的维度分别为 828、1084、128;特征 提取网络、策略网络、分类网络中隐含层神经元 数目分别为 128、128、128;分类网络输出张量的 维度为 2;超参数 γ 为 0.4;特征提取网络、策略网 络、分类网络的学习率为 0.005、0.01、0.005;延迟 奖励的偏置项为 0.8;每次训练的样本数目为 16; 预训练时的准确率阈值为 0.6;正式训练时的迭代 学习次数上限为 4000. 另外,在本实验的数据集 中,测试集占 70%(其中,恶意样本和良性样本各 有 700 个),测试集占 30%(其中,恶意样本和良性 样本各有 300 个). 3.4    算法学习结果 如图 2 所示,当强化学习模型在训练集上迭 代 500 次之后,测试集上的准确率接近于 90% 左 右. 图 3 展示了测试集上查准率和召回率随迭代 次数的变化情况,可以看到准确率曲线(实线)的 变化趋势,和召回率曲线(虚线)的变化趋势往往 相反. 在迭代 2000 次之前,查全率能维持在 80% 左右,查准率能接近 100%. 这里可以通过查看混 淆矩阵,来评价模型的计算性能. 如表 1 所示,这 里选择了迭代次数 2000 次后的模型,其中,TP 表 示正确预测恶意样本的数量,FP 表示错误预测恶 意样本的数量,FN 表示错误预测良性样本的数 量,TN 表示正确预测良性样本的数量. 基于此,可 以计算查准率为:P=TP/(TP+FP)=257/(257+4)=98.1%; 查全率为:R=TP/(TP+FN)=257/(257+43)=85.7%. 1.000 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0 0 500 1000 1500 2000 Number of interations 2500 3000 3500 4000 Accuracy 图 2    测试集上的准确率 Fig.2    Accuracy in the test dataset 1.000 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0 500 Precision Recall 1000 1500 2000 Number of interations 2500 3000 3500 4000 Ratio 图 3    测试集上查准率和查全率随迭代次数的变化 Fig.3    Precision and recall in the test dataset · 460 · 工程科学学报,第 42 卷,第 4 期
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有