正在加载图片...
高洋等:基于强化学习的工控系统恶意软件行为检测方法 459. 后计算得到一个动作选择的概率分布,最后基于 这里需要注意的是,什1时刻的状态完全由1时刻 这个概率分布,使用随机策略来选择一个动作. 的状态和1时刻的动作所决定,并且初始的状态是 这里的策略网络也是一个三层的神经网络.输 确定的,因此ps尸l且p(s+sra)=1. 入是当前状态,=[s1,s2,…,Sn,输出π(als:O)表 2.4.3强化学习模型的训练算法 示当前选择动作的策略,这是一个概率值,其中的 在训练需要的损失函数定义好之后,就可以 日是当前策略网络的网络参数.这里的π(as;O) 根据所需的优化目标来训练整个模型.整个强化 计算得到一个介于0至1之间的实数,用来表示进行 学习模型的训练可以被分为三个阶段:两个预训 Delete操作的概率.在实际使用过程中,策略网络 练阶段以及正式训练阶段 的基本结构与分类网络相同,只是用途不同而已, 预训练过程如算法2所述 一个用于策略选择,另一个则是用于预测分类 2.4训练算法 算法2:预训练过程 当设计好网络模型结构之后,需要为网络选 l:初始化参数.块尺寸batchsize,阈值threshold, 择合适的损失函数.损失函数的值用来评价当 迭代次数上限iterations; 前网络参数与训练集数据的拟合程度,损失函数 2:将数据集均分成n块,每块大小为batchsize, 的值越小,说明拟合的效果越好.在选择一个合适 每一块记为b,(=1,2,…n: 的损失函数的同时,还需要设计一个恰当的优化 3: 预训练特征提取网络和分类网络: 算法 4: 保持策略网络参数不变,并且策略网络 2.4.1特征提取网络和分类网络的损失函数 仅输出Retain: 因为分类网络的分类依据是基于特征提取网 5: 整个训练集上的准确率记为accuracy; 络所提取出来的最终特征,因此,这两个模块在这 6: for i=1 n 里共享同一个损失函数.由于分类网络的输出结 7: 计算b,上的准确率,记为acc: 果是一个概率分布,因此选择使用交叉嫡作为损 6 计算b上的损失,更新网络参数; 失函数.当参与计算的两个概率分布越接近,那么 9 更新accuracy(未经过训练的b,上的 交叉嫡计算结果越小,因此,交叉嫡可以用来衡量 准确率认为是0): 两个概率分布之间的相似程度,基于此,交叉嫡可 10: l; 以做预测任务的损失函数.相关计算公式如下: 11: while accuracy<threshold Los=∑∑ec,Xlog2(PcK) (2) 12: 计算b,上的准确率,记为acc; XED CEC 13: 计算b,上的损失,更新网络参数: 其中:D表示训练集;C是类别的集合,在本文中, 14: 更新accuracy; 有Ce{benign,malicious;Q(c,X)是One-Hot形式的 15: =i%+1; 概率分布,这有Q(benign,X)=1,Q(malicious,X)=0: 16:预训练策略网络: P(cX)是分类网络计算输出的概率分布 17: 保持特征提取网络和分类网络参数不变: 2.4.2策略网络的目标函数 18: for i=1:n 策略网络的目标是做出能够获得最大收益的 19: 计算b,上的损失,更新网络参数 决策.考虑到做出的决策行为是基于概率的,这是 一个随机变量.因此,应该通过期望值来衡量所获 在预训练特征提取网络和分类网络时,施加 得的奖励,对此可以定义目标函数为: 了两个附加条件:1)训练集中所有样本至少经过 J(O)=E[Rz(s1a1…SZa】= 一 次预训练;2)分类网络的预测准确率要高于事 s1al"sLaL 先设定的阈值.设置这两个条件是出于两方面的 (3) Pa(S1a1…sLaL)RL= π(alsrO)RL 考虑:一方面要充分利用到整个训练集的信息,另 sa"sLaL 一方面要使得策略网络的预训练更加有针对性 其中:s1 a...sia红表示状态-动作序列; 预训练完成之后,正式训练过程如算法3所述 Pa(s1a1szau)表示状态-动作序列出现的概率; Rz(s1a1saz)表示状态-动作序列所对应的延迟 算法3:正式训练过程 奖励值;ERz(s1a1…Szaz】表示延迟奖励的期望值. 1: l;后计算得到一个动作选择的概率分布,最后基于 这个概率分布,使用随机策略来选择一个动作. st = [s1,s2, ··· ,sn] π(at |st ; Θ) π(at |st ; Θ) 这里的策略网络也是一个三层的神经网络. 输 入是当前状态 ,输出 表 示当前选择动作的策略,这是一个概率值,其中的 Θ 是当前策略网络的网络参数. 这里的 计算得到一个介于 0 至 1 之间的实数,用来表示进行 Delete 操作的概率. 在实际使用过程中,策略网络 的基本结构与分类网络相同,只是用途不同而已, 一个用于策略选择,另一个则是用于预测分类. 2.4    训练算法 当设计好网络模型结构之后,需要为网络选 择合适的损失函数. 损失函数的值用来评价当 前网络参数与训练集数据的拟合程度,损失函数 的值越小,说明拟合的效果越好. 在选择一个合适 的损失函数的同时,还需要设计一个恰当的优化 算法. 2.4.1    特征提取网络和分类网络的损失函数 因为分类网络的分类依据是基于特征提取网 络所提取出来的最终特征,因此,这两个模块在这 里共享同一个损失函数. 由于分类网络的输出结 果是一个概率分布,因此选择使用交叉熵作为损 失函数. 当参与计算的两个概率分布越接近,那么 交叉熵计算结果越小,因此,交叉熵可以用来衡量 两个概率分布之间的相似程度,基于此,交叉熵可 以做预测任务的损失函数. 相关计算公式如下: Loss = ∑ X∈D ∑ c∈C Q(c,X)log2 (P(c|X)) (2) C ∈ { benign,malicious} ; Q(c,X) Q ( benign,X ) = 1, Q(malicious,X) = 0; P(c|X) 其中:D 表示训练集;C 是类别的集合,在本文中, 有 是 One-Hot 形式的 概率分布,这有 是分类网络计算输出的概率分布. 2.4.2    策略网络的目标函数 策略网络的目标是做出能够获得最大收益的 决策. 考虑到做出的决策行为是基于概率的,这是 一个随机变量. 因此,应该通过期望值来衡量所获 得的奖励,对此可以定义目标函数为: J(Θ)=E[RL(s1a1 ···sLaL)]= ∑ s1a1···sLaL PΘ(s1a1···sLaL)RL = ∑ s1a1···sLaL ∏ t π(at |st ;Θ)RL (3) a1 ··· a1 ··· a1 ··· a1 ··· 其 中 : s1 sLaL 表 示 状 态 – 动 作 序 列 ; PΘ(s1 sLaL ) 表示状态–动作序列出现的概率 ; RL (s1 sLaL ) 表示状态–动作序列所对应的延迟 奖励值;E[RL (s1 sLaL )] 表示延迟奖励的期望值. p(st+1 |st ;at) = 1 这里需要注意的是,t+1 时刻的状态完全由 t 时刻 的状态和 t 时刻的动作所决定,并且初始的状态是 确定的,因此 p(s1 )=1 且 . 2.4.3    强化学习模型的训练算法 在训练需要的损失函数定义好之后,就可以 根据所需的优化目标来训练整个模型. 整个强化 学习模型的训练可以被分为三个阶段:两个预训 练阶段以及正式训练阶段. 预训练过程如算法 2 所述. 算法 2:预训练过程 1: 初始化参数:分块尺寸batchsize,阈值threshold,     迭代次数上限 iterations; ··· , 2: 将数据集均分成 n 块,每块大小为 batchsize,     每一块记为 bi (i=1,2, n); 3: 预训练特征提取网络和分类网络: 4: 保持策略网络参数不变,并且策略网络     仅输出 Retain; 5: 整个训练集上的准确率记为 accuracy; 6: for i=1 : n 7: 计算 bi 上的准确率,记为 acc; 8: 计算 bi 上的损失,更新网络参数; 9: 更新 accuracy (未经过训练的 bi 上的 准确率认为是 0); 10: i=1; 11: while accuracy<threshold 12: 计算 bi 上的准确率,记为 acc; 13: 计算 bi 上的损失,更新网络参数; 14: 更新 accuracy; 15: i=i % n+1; 16:  预训练策略网络: 17: 保持特征提取网络和分类网络参数不变; 18: for i=1 : n 19: 计算 bi 上的损失,更新网络参数. 在预训练特征提取网络和分类网络时,施加 了两个附加条件:1)训练集中所有样本至少经过 一次预训练;2)分类网络的预测准确率要高于事 先设定的阈值. 设置这两个条件是出于两方面的 考虑:一方面要充分利用到整个训练集的信息,另 一方面要使得策略网络的预训练更加有针对性. 预训练完成之后,正式训练过程如算法 3 所述. 算法 3:正式训练过程 1: i=1; 高    洋等: 基于强化学习的工控系统恶意软件行为检测方法 · 459 ·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有