搜尋
首頁科技週邊人工智慧在軟體缺陷預測中使用軟體視覺化和遷移學習

論文的資料集和程式碼已開源: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隨機梯度下降沿著損失函數訓練模型。對每一個對的500個epoch,根據最好的F-measure從中選出一個epoch。

在實驗部分,作者選擇了PROMISE資料倉儲中所有開源的Java項目,收集了它們的版本號碼、class name、是否有bug的標籤。根據版本號碼和class name在github中下載原始碼。最終,共採集了10個Java專案的資料。資料集結構如圖6所示。

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

Fig. 6 資料集結構

對於專案內缺陷預測,文章選擇如下baseline模型進行比較:

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

對於跨專案缺陷預測,文章選擇如下baseline模型進行比較:

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

#總結一下,雖然是兩年前的論文了,但感覺思維還是比較新奇的,避開AST等一系列程式碼中間表示,直接將程式碼轉換成影像擷取特徵。但還是比較疑惑,程式碼轉換成的影像真的包含原始碼語意和結構資訊嗎?感覺解釋性不太強,哈哈。後面要做實驗分析下吧。

#

以上是在軟體缺陷預測中使用軟體視覺化和遷移學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
擁抱面部是否7B型號奧林匹克賽車擊敗克勞德3.7?擁抱面部是否7B型號奧林匹克賽車擊敗克勞德3.7?Apr 23, 2025 am 11:49 AM

擁抱Face的OlympicCoder-7B:強大的開源代碼推理模型 開發以代碼為中心的語言模型的競賽正在加劇,擁抱面孔與強大的競爭者一起參加了比賽:OlympicCoder-7B,一種產品

4個新的雙子座功能您可以錯過4個新的雙子座功能您可以錯過Apr 23, 2025 am 11:48 AM

你們當中有多少人希望AI可以做更多的事情,而不僅僅是回答問題?我知道我有,最近,我對它的變化感到驚訝。 AI聊天機器人不僅要聊天,還關心創建,研究

Camunda為經紀人AI編排編寫了新的分數Camunda為經紀人AI編排編寫了新的分數Apr 23, 2025 am 11:46 AM

隨著智能AI開始融入企業軟件平台和應用程序的各個層面(我們必須強調的是,既有強大的核心工具,也有一些不太可靠的模擬工具),我們需要一套新的基礎設施能力來管理這些智能體。 總部位於德國柏林的流程編排公司Camunda認為,它可以幫助智能AI發揮其應有的作用,並與新的數字工作場所中的準確業務目標和規則保持一致。該公司目前提供智能編排功能,旨在幫助組織建模、部署和管理AI智能體。 從實際的軟件工程角度來看,這意味著什麼? 確定性與非確定性流程的融合 該公司表示,關鍵在於允許用戶(通常是數據科學家、軟件

策劃的企業AI體驗是否有價值?策劃的企業AI體驗是否有價值?Apr 23, 2025 am 11:45 AM

參加Google Cloud Next '25,我渴望看到Google如何區分其AI產品。 有關代理空間(此處討論)和客戶體驗套件(此處討論)的最新公告很有希望,強調了商業價值

如何為抹布找到最佳的多語言嵌入模型?如何為抹布找到最佳的多語言嵌入模型?Apr 23, 2025 am 11:44 AM

為您的檢索增強發電(RAG)系統選擇最佳的多語言嵌入模型 在當今的相互聯繫的世界中,建立有效的多語言AI系統至關重要。 強大的多語言嵌入模型對於RE至關重要

麝香:奧斯汀的機器人需要每10,000英里進行干預麝香:奧斯汀的機器人需要每10,000英里進行干預Apr 23, 2025 am 11:42 AM

特斯拉的Austin Robotaxi發射:仔細觀察Musk的主張 埃隆·馬斯克(Elon Musk)最近宣布,特斯拉即將在德克薩斯州奧斯汀推出的Robotaxi發射,最初出於安全原因部署了一支小型10-20輛汽車,並有快速擴張的計劃。 h

AI震驚的樞軸:從工作工具到數字治療師和生活教練AI震驚的樞軸:從工作工具到數字治療師和生活教練Apr 23, 2025 am 11:41 AM

人工智能的應用方式可能出乎意料。最初,我們很多人可能認為它主要用於代勞創意和技術任務,例如編寫代碼和創作內容。 然而,哈佛商業評論最近報導的一項調查表明情況並非如此。大多數用戶尋求人工智能的並非是代勞工作,而是支持、組織,甚至是友誼! 報告稱,人工智能應用案例的首位是治療和陪伴。這表明其全天候可用性以及提供匿名、誠實建議和反饋的能力非常有價值。 另一方面,營銷任務(例如撰寫博客、創建社交媒體帖子或廣告文案)在流行用途列表中的排名要低得多。 這是為什麼呢?讓我們看看研究結果及其對我們人類如何繼續將

公司競爭AI代理的採用公司競爭AI代理的採用Apr 23, 2025 am 11:40 AM

AI代理商的興起正在改變業務格局。 與雲革命相比,預計AI代理的影響呈指數增長,有望徹底改變知識工作。 模擬人類決策的能力

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境