成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在軟件缺陷預測中使用軟件可視化和遷移學習

人工智能 新聞
將源代碼根據字符的ASCII十進制數對應到像素,排列成像素矩陣,獲取源代碼的圖像。
論文的數據集和代碼已開源:https://zenodo.org/record/3373409#.YrpiEBVBxHW。

文章的動機是避開源代碼的中間表示,將源代碼表示為圖像,直接提取代碼的語義信息以改進缺陷預測的性能。

首先,看到如下圖所示的motivation示例。File1.java和File2.java兩個示例中,雖然都包含了1個if語句、2個for語句和4個函數調用,但代碼的語義和結構特征是不相同的。為驗證將源代碼轉換成圖像是否有助于區分不同的代碼,作者進行了實驗:將源代碼根據字符的ASCII十進制數對應到像素,排列成像素矩陣,獲取源代碼的圖像。作者指出,不同的源代碼圖像存在差異。

Fig. 1 Motivation Example

文章主要的貢獻如下:

將代碼轉換成圖像,從中提取語義和結構信息;

提出一種端到端的框架,結合自注意力機制和遷移學習實現缺陷預測。

文章提出的模型框架如圖2所示,分為兩個階段:源代碼可視化和深度遷移學習建模。

Fig. 2 Framework

1.源代碼可視化

文章將源代碼轉換成6個圖像,過程如圖3所示。將源代碼字符的10進制ASCII碼轉換成8bit無符號整數向量,按行和列對這些向量進行排列,生成圖像矩陣。8bit整數直接對應到灰度等級。為解決原始數據集較小的問題,作者在文章中提出了一種基于顏色增強的數據集擴充方法:對R、G、B三個顏色通道的值進行排列組合,產生6個彩色圖。這里看著挺迷的,變換了通道值后,語義和結構信息應該有所改變吧?但是作者在腳注上進行了解釋,如圖4所示。

Fig. 3 源代碼可視化流程

Fig. 4 文章腳注2

2.深度遷移學習建模

文章使用DAN網絡來捕獲源代碼的語義和結構信息。為增強模型對重要信息的表達能力,作者在原始DAN結構中加入了Attention層。訓練與測試流程如圖5所示,其中conv1-conv5來自于AlexNet,4個全連接層fc6-fc9作為分類器。作者提到,對于一個新的項目,訓練深度學習模型需要有大量的標簽數據,這是困難的。所以,作者首先在ImageNet 2012上訓練了一個預訓練模型,使用預訓練模型的參數作為初始參數來微調所有卷積層,進而減少代碼圖像和ImageNet 2012中圖像的差異。

Fig. 5 訓練與測試流程

3.模型訓練和預測

對Source項目中有標簽的代碼和Target項目中無標簽的代碼生成代碼圖像,同時送入模型;二者共享卷積層和Attention層來提取各自的特征。在全連接層計算Source和Target之間的MK-MDD(Multi Kernel Variant Maximum Mean Discrepancy)。由于Target沒有標簽,所以只對Source計算交叉熵。模型使用mini-batch隨機梯度下降沿著損失函數訓練模型。對每一個<source, target>對的500個epoch,根據最好的F-measure從中選出一個epoch。

在實驗部分,作者選擇了PROMISE數據倉庫中所有開源的Java項目,收集了它們的版本號、class name、是否存在bug的標簽。根據版本號和class name在github中下載源碼。最終,共采集了10個Java項目的數據。數據集結構如圖6所示。

Fig. 6 數據集結構

對于項目內缺陷預測,文章選擇如下baseline模型進行對比:

對于跨項目缺陷預測,文章選擇如下baseline模型進行對比:

總結一下,雖然是兩年前的論文了,但感覺思路還是比較新奇的,避開AST等一系列代碼中間表示,直接將代碼轉換成圖像提取特征。但是還是比較疑惑,代碼轉換成的圖像真的包含源代碼語義和結構信息嗎?感覺可解釋性不太強,哈哈。后面需要做實驗分析下吧。

責任編輯:張燕妮 來源: 安全學術圈
相關推薦

2013-09-30 09:32:12

2021-02-20 09:14:35

PythonPygal可視化

2015-02-09 14:49:58

NEC管理軟件

2012-12-25 10:43:04

IBMdW

2011-06-23 10:39:43

ibmdw虛擬化敏捷開發

2011-08-08 15:36:57

2014-02-21 11:30:08

數據可視化大數據

2010-01-13 13:04:25

minicom軟件

2025-04-02 07:37:29

2022-04-01 15:39:13

機器學習讓孩子們軟件交付

2010-09-17 10:18:59

ODTOPhone

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2017-09-11 13:33:44

大數據數據可視化決策樹

2015-08-20 10:00:45

可視化

2019-12-12 13:50:27

strace追蹤系統調用Linux

2013-09-29 10:05:24

2014-05-28 15:23:55

Rave

2022-08-04 18:34:18

Ubuntuaptupgrade 命令

2017-10-14 13:54:26

數據可視化數據信息可視化

2020-05-08 13:44:26

Spark架構RDD
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产九九九九 | 欧美精品久久久久久久久久 | 国产一区二区三区久久久久久久久 | 欧美日韩精品久久久免费观看 | 在线成人精品视频 | 精品国产黄色片 | 一区欧美 | 午夜看片网站 | 精品国产高清一区二区三区 | 国产精品资源在线 | 中文字幕日韩三级 | 久久亚洲国产 | 国产高清一区二区 | 精品三级在线观看 | 成人国产一区二区三区精品麻豆 | 91影院在线观看 | 日本精品视频 | 日本黄色大片免费 | 免费看片国产 | 99pao成人国产永久免费视频 | 中文亚洲视频 | 色综合色综合网色综合 | www国产精 | 三级av在线 | 久久久久免费精品国产小说色大师 | 日韩在线不卡 | 特级特黄特色的免费大片 | 亚洲精品一 | 91爱啪啪 | 欧美一区二区在线免费观看 | 日韩欧美三级 | 九九国产在线观看 | 欧美一区 | 中文字幕精品一区二区三区在线 | 欧美久久久 | 久热电影 | 亚洲一区二区久久 | 久久久久久久久久久国产 | 国产精品免费在线 | 亚洲精品一区二区三区 | 欧美老妇交乱视频 |