DeepJIT:用于实时缺陷预测的端到端深度学习框架

VSole2022-07-26 19:54:44

提出了一种用于JIT缺陷预测的端到端深度学习框架,从Commit消息和代码变更中提取特征,基于所提特征来识别缺陷。作者在QT和OPENSTACK上对框架性能进行了评估,在QT下的AUC有10.36-11.02%的进步,在OPENSTACK下有9.51-13.69%的进步。DeepJIT的框架如图1所示,由(1)输入层,(2)特征提取层,(3)特征联合层和(4)输出层组成。

Fig. 1 DeepJIT框架

  • 输入层
  • 对于Commit,基于NLTK提取其单词序列,使用PorterStemmer产生词根,删除停用词以及罕见词(在Commit中出现不到3次的词)。
  • 对于代码变更,同样使用NLTK进行处理。每个变更的文件通过一组删除和添加的代码行表示,每一个代码行被处理为一个单词序列。同时,使用<num>标签表示数字,使用<unk>标签表示未知词,在每一行的开头添加<added><deleted>标签声明该行是添加的还是删除的。
  • 特征提取层

特征提取层的核心是两个分别用于处理Commit向量和代码变更向量的CNN。图2是DeepJIT框架中用于处理Commit的CNN网络结构。给定一个Commit词序列,Commit的矩阵表示M由词的词向量组成,即:。

Fig. 2 用于处理Commit的CNN网络结构

用于处理代码变更的CNN网络结构如图3所示。作者提到,虽然代码变更可以看做是单词序列,但是其与自然语言的区别在于代码是有结构的。代码变更包括(1)不同文件的变更和(2)每个文件中不同种类的变更(添加和删除)。

给定一个代码变更C,涉及不同的文件。包含一系列的删除和添加的代码行。每一个代码行由一个词序列组成。因此,一个文件的代码变更矩阵是一个N x L x d的矩阵,其中N表示文件中的代码变更行数,L表示每一行的词数,d表示词嵌入维度。每一行经过一个CNN提取对应的行向量,行向量组合起来形成文件向量。文件向量再过一个CNN得到对应的表征向量。

C中的每一个文件F的表征向量被拼接起来作为C的表征向量,拼接方式如下。

Fig. 3 用于处理代码变更的CNN网络结构

  • 特征联合层

特征联合层的结构如图4所示。Commit的表征向量和代码变更向量被拼接起来,传入全连接层进行特征融合,最终输出一个概率值。

其中,h表示全连接层输出。

Fig. 4 特征联合层

由于存在缺陷的提交相比于clean提交的数据量差距很大,存在样本不平衡的问题。为此,作者涉及了一个loss function来解决这个问题。

接下来就到了实验部分,数据集如图5所示,评估指标使用AUC。具体的参数设置请参考原文。

Fig. 5 数据集

为说明DeepJIT相对于state-of-art方法的有效性,作者设置了3个评估实验:

  1. 5折交叉验证。
  2. 短周期:JIT模型是使用在一个时间段发生的Commit来训练的。假设较旧的提交更改可能具有不再影响最新提交的特征。
  3. 长周期:受到“更大量的训练数据倾向于在缺陷预测问题中实现更好的性能”的启发,使用在特定时期之前发生的所有提交来训练JIT模型。

图6是为短周期和长周期选择训练集的示例。使用Period 5作为测试数据集。当使用短周期模型时,使用Period 4作为训练数据集;而使用长周期模型时,使用Period 1-4作为训练数据集。

然而,实验结果表明,三种评估方式下模型的性能相差无几,说明基于过去或未来数据的训练之间没有差异

Fig. 6 短周期和长周期选择训练集的示例

除此之外,作者还对(1)DeepJIT是否受益于Commit特征和代码变更特征、(2)人工提取的特征对DeepJIT是否有效以及(3)DeepJIT的时间消耗进行了实验。这里主要看一下是时间消耗的问题(因为我现在实验就面临着训练一次的时间成本很高的情况),如图7所示。作者是在Tesla P100上训练的.

Fig. 7 时间消耗

端到端深度学习框架
本作品采用《CC 协议》,转载必须注明作者和本文链接
提出了一种用于JIT缺陷预测的深度学习框架,从Commit消息和代码变更中提取特征,基于所提特征来识别缺陷。每个变更的文件通过一组删除和添加的代码行表示,每一个代码行被处理为一个单词序列。
工业互联网安全是制造强国和网络强国建设的基石,深度学习因其具有表达能力强、适应性好、可移植性高等优点而可支持“智能自主式”工业互联网安全体系与方法构建,因此促进深度学习与工业互联网安全的融合创新具有鲜明价值。 本文从产业宏观、安全技术、深度学习系统等角度全面分析了发展需求,从设备层、控制层、网络层、应用层、数据层的角度剖析了深度学习应用于工业互联网安全的发展现状;阐述了工业互联网深度学习应用在模
网络攻防对抗不断演化升级,人工智能因其具备自学习和自适应能力,可为自动化网络攻防提供助力,已成为网络攻防的核心关键技术之一。
美国国防高级研究计划局(DARPA)一直处在人工智能研究的前沿,可以说,美国人工智能的发展很大程度上归功于DARPA的支持。从20世纪60年代初至今,在60余年的研究中,从最初的基础研究项目军事应用研究,DARPA在基础研究和应用研究之间建立了平衡,先后进行了自然语言理解、感知和机器人、可解释的人工智能、下一代人工智能、人机融合、基于人工智能的网络攻击与防御技术等领域的研究。
与欺骗攻击相对应,语音欺骗检测是一种识别防御技术,国内外相关人员进行了最新的研究。目前,指纹、人脸和声纹等常见的生物特征已经被大量应用。2017年在瑞典斯德哥尔摩举行的 2017 挑战赛 则重点关注语音回放欺骗攻击。这次的挑战赛吸引了 53 个注册团队,收到了 23 个提交结果。由于输入 ASV 系统的语音的欺骗方法未知,传统的语音欺骗检测系统无法同时检测 LA 和 PA 两种攻击。
只有多方资源申请成功,才会向各方发送start job指令。在任务执行中会收集参与方状态,进行下一步的调度。如果均未出错,则将Job的状态设置为WAITING。各个参与方在收到请求后,将Job状态改为RUNNING。initiator 向各方发送start task的rpc请求。FATE-Flow从整个任务生命周期的管理,上层对外暴露API结构,在整个联邦学习中起着举足轻重的作用。
摘 要:互联网开源信息处理是指从互联网上的公开信息源获取数据并分析处理,进而获得有价值的开源信息的过程。为充分了解国外互联网开源信息处理的研究现状,从开源数据采集、预处理、信息分析、决策支撑、相关系统等角度对近年来国外有关研究进行梳理,总结现有研究存在的普遍性问题,对未来研究进行展望。
一种新的反欺诈系统,用于扫描支付卡,并在各种性能的移动设备和硬件配置中都能很好地工作。
1世纪以来,大数据技术蓬勃发展、军事应用潜力凸显,已逐步成为智能化装备的重要技术基础,成为打赢未来智能化战争和提升国防管理决策质量效率的重要引擎。美军紧盯大数据发展战略机遇,出台了《国防部数据战略》等一系列军事数据战略文件加速军事数据建设,进而谋求以数据为中心的全方位军事优势。文章分析了美军大力推进数据建设的需求动因,总结了美军加快推进数据建设的主要路径和做法,构建了“两维三层”的美军数据战略体系
2022年8月16日,在“2022可信AI峰会”上,中国信息通信研究院云计算与大数据研究所所长何宝宏正式发布并解读了“2022 人工智能十大关键词”。在应用方面,生成式AI既是生产要素,也是生产工具。AI新基建主要包括数据基础设施、算力基础设施和AI软件设施。因此,AI软件设施在近两年成为产业焦点,AI开源框架生态、预训练大模型体系、AI软件平台生态等内
VSole
网络安全专家