軟件缺陷是軟件開發和維護過程中不可避免的.隨著現代軟件規模的不斷變大,軟件缺陷的數量以及修復難度隨之增加,為企業帶來了巨大的經濟損失.修復軟件缺陷,成為了開發人員維護軟件質量的重大負擔.軟件缺陷自動修復技術有希望將開發者從繁重的調試中解脫出來,近年來成為熱門的研究領域之一.搜集了94篇該領域最新的高水平論文,進行了詳細的分析和總結.基于缺陷修復技術在補丁生成階段所使用的技術手段不同,系統性地將軟件自動修復技術分為4大類,分別是基于啟發式搜索、基于人工模板、基于語義約束和基于統計分析的修復技術.特殊地,根據對近幾年最新研究的總結,首次提出了基于統計分析的技術分類,對已有分類進行了補充和完善.隨后,基于對已有研究的分析,總結了該領域研究所面臨的關鍵挑戰及對未來研究的啟示.最后,對缺陷修復領域常用的基準數據集和開源工具進行了總結.
面對人工標注大量樣本費時費力,一些稀有類別樣本難于獲取等問題,零樣本圖像分類成為計算機視覺領域的一個研究熱點。首先,對零樣本學習,包括直推式零樣本學習和歸納式零樣本學習進行了簡單介紹;其次,重點介紹了基于空間嵌入零樣本圖像分類方法和基于生成模型零樣本圖像分類方法以及它們的子類方法,并對這些方法的機制、優缺點和適用場景等進行了分析和總結;然后,簡單介紹了零樣本圖像分類常用數據集和評估方法,并對典型零樣本圖像分類方法進行了性能比較;接著,指出了現有零樣本圖像分類中存在的領域漂移、樞紐點和語義鴻溝等問題及相應的解決思路;最后,對零樣本圖像分類未來發展趨勢和研究熱點,如判別性區域的準確定位、生成高質量不可見類視覺特征、廣義零樣本圖像分類等進行了探討。
摘要: 圖像修復是計算機視覺領域中極具挑戰性的研究課題。近年來,深度學習技術的發展推動了圖像修復性能的顯著提升,使得圖像修復這一傳統課題再次引起了學者們的廣泛關注。文章致力于綜述圖像修復研究的關鍵技術。由于深度學習技術在解決“大面積缺失圖像修復”問題時具有重要作用并帶來了深遠影響,文中在簡要介紹傳統圖像修復方法的基礎上,重點介紹了基于深度學習的修復模型,主要包括模型分類、優缺點對比、適用范圍和在常用數據集上的性能對比等,最后對圖像修復潛在的研究方向和發展動態進行了分析和展望。
基于信息檢索的軟件缺陷定位方法是當前軟件缺陷定位領域中的一個研究熱點.該方法主要分析缺陷報告文本和程序模塊代碼,通過計算缺陷報告和程序模塊間的相似度,選取與缺陷報告相似度最高的若干程序模塊,將其推薦給開發人員.本文對近些年國內外研究人員在該綜述主題上取得的成果進行了系統的梳理和總結. 首先,給出研究框架并闡述影響方法性能的三個重要因素:數據源、檢索模型和場景應用;其次,依次對這三個影響因素的已有研究成果進行總結;然后,總結基于信息檢索的軟件缺陷定位研究中常用的性能評測指標和評測數據集;最后總結全文并對未來值得關注的研究方向進行展望。
在軟件開發過程中,軟件缺陷(software bug)難以避免.對需求理解的偏差、不合理的軟件開發過程,亦或 開發人員的疏忽,均有可能在軟件項目內引入軟件缺陷.這些含有缺陷的軟件產品在部署后,可能會產生無法預 測的行為或結果,甚至會對人們的生產和生活方式產生重大影響.當檢測到軟件內存在缺陷時,開發人員需要借 助軟件調試定位并修復缺陷.傳統的軟件調試方法主要借助手工調試,在可疑代碼處設置程序斷點,隨后重復執 行失敗的測試用例,并觀察程序斷點處的變量取值,不斷縮小可疑代碼的搜索范圍,直至定位到缺陷代碼.這種 方法完全通過人工的方式完成,存在缺陷定位代價高、對缺陷報告信息利用不充分、費時費力等問題.因此,研 究人員針對自動化軟件缺陷定位方法展開深入研究,試圖減輕開發人員負擔的同時,提高缺陷定位的效率與精度.
已有的缺陷定位方法按照是否需要執行測試用例,可分為兩類:動態缺陷定位方法和靜態缺陷定位方法[1]. 其中,動態缺陷定位方法通過搜集測試用例的執行行為和運行結果,重點對被測程序的內在結構進行分析,以確 定缺陷語句在被測程序內的可能位置;靜態缺陷定位方法通過分析缺陷報告和程序模塊的文本內容并提取特 征,基于特定模型確定可疑的程序模塊,并將其推薦給開發人員以輔助定位.動態缺陷定位方法基于測試用例的 覆蓋信息定位缺陷,通常可獲得比靜態缺陷定位方法更好的性能[2].然而在軟件維護階段,開發人員有時并不能 獲得足夠的測試用例[3],僅能搜集到缺陷報告的信息.靜態缺陷定位方法由于不需要搜集測試用例的執行信息, 不會受到程序規模和編程語言等因素的影響,具有缺陷定位代價低和方法可擴展性強等特點,也頗受關注.其 中,基于信息檢索的缺陷定位(Information Retrieval-based Bug Localization,簡稱 IRBL)是目前靜態缺陷定位 研究中的熱點,也是本綜述重點關注的研究問題. IRBL 可視為概念定位(concern localization)[4]或特征定位(feature localization)5]的一個特例.當需要定 位的概念或特征都為缺陷時,概念定位或特征定位又被稱為缺陷定位.
IRBL 輸入為一個缺陷報告,輸出為所有 與該缺陷報告所述缺陷相關的程序模塊.該問題在研究時面臨缺陷報告和程序模塊詞匯不匹配和表示方式差 異較大等問題,大部分研究人員從文本挖掘角度設計解決方案.為了對該研究問題進行系統的分析、總結和比 較,我們首先在 IEEE Explore、ACM Digital Library、Elsevier、Springer、CNKI 等學術論文數據庫中進行檢 索,檢索時采用的英文關鍵詞包括 bug localization、fault localization、information retrieval、bug localisation 等; 然后,通過人工審查的方式移除掉與綜述主題無關的論文,并通過查閱相關論文的參考文獻和相關研究人員發 表的論文列表來進一步識別出遺漏的論文;最終,我們篩選出與該研究問題直接相關的高質量論文共 87 篇(截 止到 2019 年 12 月).
我們首先對每年發表的相關論文的累計總數進行統計,結果如圖 1 所示.不難看出,每年發表的論文數整體 上呈上升趨勢.在 2013 年之前,每年發表的論文數較少(介于 0 至 4 篇).但在 2013 年之后,隨著公開的數據集 和共享的實驗代碼的不斷增多,針對 IRBL 方法的研究逐漸成為靜態軟件缺陷定位領域內的一個主流研究方 向.在最近 3 年,每年發表的論文總數平均可以達到 13 篇以上.隨后我們基于論文發表源對相關論文進行分類, 并按照論文數從大到小進行排序,最終結果如表 1 所示(該表僅列出 CCF 推薦列表中論文數大于 1 的會議和 期刊),其中在軟件工程領域權威期刊或會議上發表的論文數總結如下:ICSE 會議(5 篇)、ESEC/FSE 會議(4 篇)、ISSTA 會議(3 篇)、ISSRE 會議(2 篇)、TSE 期刊(5 篇)等.基于已搜索到的相關論文,我們對 IRBL 方法的已有研究工作進行了系統總結,并提出一個研究框架,從 3 個影響因素出發,對不同類型的方法進行系統 的分析和比較,同時對常用的性能評測指標和評測數據集進行歸納.
論文剩余內容安排如下:第 2 節總結 IRBL 方法的研究框架,并識別出三個重要的影響因素(數據源、檢索 模型和場景應用);第 3 節到第 5 節分別對這三個影響因素進行詳細的分析與總結;第 6 節介紹常用的性能評 測指標;第 7 節介紹常用的評測數據集;最后總結全文并對未來可能值得關注的研究問題進行展望.
近年來,互聯網技術的蓬勃發展極大地便利了人類的日常生活,不可避免的是互聯網中的信息呈井噴式爆發,如何從中快速有效地獲取所需信息顯得極為重要.自動文本摘要技術的出現可以有效緩解該問題,其作為自然語言處理和人工智能領域的重要研究內容之一,利用計算機自動地從長文本或文本集合中提煉出一段能準確反映源文中心內容的簡潔連貫的短文.探討自動文本摘要任務的內涵,回顧和分析了自動文本摘要技術的發展,針對目前主要的2種摘要產生形式(抽取式和生成式)的具體工作進行了詳細介紹,包括特征評分、分類算法、線性規劃、次模函數、圖排序、序列標注、啟發式算法、深度學習等算法.并對自動文本摘要常用的數據集以及評價指標進行了分析,最后對其面臨的挑戰和未來的研究趨勢、應用等進行了預測.
//crad.ict.ac.cn/CN/10.7544/issn1000-1239.2021.20190785
21世紀互聯網快速發展,文本數據呈指數級增長,用戶如何快速有效地從海量信息中提煉出所需的有用資料,已經成為一個亟待解決的問題.自動文本摘要(automaticsummarization)技術,又被稱為自動文摘,它的出現恰逢其時,為用戶提供簡潔而不丟失原意的信息,可以有效地降低用戶的信息負擔、提高用戶的信息獲取速度,將用戶從繁瑣、冗余的信息中解脫出來,節省了大量的人力物力,在信息檢索、輿情分析、內容審查等領域具有較高的研究價值.
早期的文本摘要普遍是通過人工來完成的,文本數據量的激增使得這項工作日漸繁重且效率低下,逐漸不能滿足用戶的需求.近年來,隨著對非結構化文本數據研究的進展,自動文摘任務得到了廣泛的關注和研究,其已成為自然語言處理領域的研究熱點之一.學術界涌現出大量圍繞算法技術、數據集、評價指標和系統的相關工作,這些工作在一定程度上取得了較好的效果,快速應用到金融、新聞、醫學、媒體等各個領域,如社交媒體摘要[1]、新聞摘要[2]、專利摘要[3]、觀點摘要[4]以及學術文獻摘要[5].盡管如此,目前計算機自動產生的摘要還遠不能達到人工摘要的質量,在該任務上還有很大的提升空間,仍需要相關研究者進一步探索有效的自動文摘技術.
目前已有一些文獻對自動文摘任務進行了調研和評估.在早期的工作中,萬小軍等人[6]首次將自動文摘的研究工作從內容表示、權重計算、內容選擇、內容組織4個角度進行了深度剖析,并對發展趨勢進行了展望,為之后的研究工作打下了良好的基礎.王俊麗等人[7]則主要針對抽取式自動文摘的圖排序算法進行了介紹.曹洋等人[8]重點分析了3種主要的機器學習算法在自動文摘中的應用.此外,還有一些相關的研究工作,但他們基本僅針對自動文摘中的單個技術方向進行詳細綜述,經過調研發現目前尚缺乏對自動文摘任務進行全面的研究綜述.
基于此,為了便于研究者在現有研究工作的基礎上取得更好的進展,非常有必要對目前自動文摘的研究成果進行全面的分析和總結.因此,我們查閱整理了近年來學術界相關的研究工作,包括自然語言處理、人工智能等相關領域的國際會議和學術期刊,對這些研究成果按照摘要產生的技術算法進行了詳細的分類以及優缺點的對比與總結.除此之外,本文對自動文本摘要研究常用的數據集、評價方法進行歸納總結,最后對自動文摘任務未來的研究趨勢進行展望與總結.
隨著人工智能技術的深入發展,自動駕駛已經成為人工智能技術的典型應用,近十年得到了長足的發展,作為一類非確定性系統,自動駕駛車輛的質量和安全性得到越來越多的關注.對自動駕駛系統,特別是自動駕駛智能系統(如感知模塊,決策模塊,綜合功能及整車)的測試技術得到了業界和學界的深入研究.本文調研了56篇相關領域的學術論文,分別就感知模塊、決策模塊、綜合功能模塊及整車系統的測試技術、用例生成方法和測試覆蓋度量等維度對目前已有的研究成果進行了梳理,并描述了自動駕駛智能系統測試中的數據集及工具集.最后,對自動駕駛智能系統測試的未來工作進行了展望,為該領域的研究人員提供參考.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6266&flag=1
在軟件的開發和維護過程中,與代碼對應的注釋經常存在缺失、不足或者與代碼實際內容不匹配等問題,但手工編寫代碼注釋對開發人員來說費時費力,且注釋質量難以保證,因此亟需研究人員提出有效的代碼注釋自動生成方法.代碼注釋自動生成問題是當前程序理解研究領域的一個研究熱點,論文對該問題進行了系統綜述.主要將已有的自動生成方法細分為三類:基于模板的方法、基于信息檢索的方法和基于深度學習的方法.論文依次對每一類方法的已有研究成果進行了系統的梳理、總結和點評.隨后分析了已有的實證研究中經常使用的語料庫和主要的注釋質量評估方法,以利于針對該問題的后續研究可以進行合理的實驗設計.最后總結全文,并對未來值得關注的研究方向進行了展望.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6258&flag=1
隨著軟件項目的復雜度和軟件產品迭代頻率的不斷提升,程序理解在整個軟件開發環節的重要性也日益 提高.最近的一項研究工作[1]表明:開發人員平均需要花費 59%的時間在程序理解上.無疑高質量的代碼注釋是 提高開發人員程序理解效率的關鍵[2].但開發人員由于項目開發預算有限、編程經驗不足或者對代碼注釋的重 視程度不夠,經常會造成代碼注釋的缺失、不足或者與代碼實際內容不匹配等問題.雖然借助一些工具(例如 JavaDoc[3]和 Doxygen?)可以輔助生成代碼注釋模板,但仍然不能自動生成與代碼實現功能和目的相關的描述. 如果由開發人員手工輸入代碼注釋則費時費力,并且注釋的質量很難得到保障.除此之外,已有的代碼注釋也需 要隨著相關代碼的持續演化而保持同步更新[4].因此亟需研究人員設計出有效的代碼注釋自動生成(code comment generation)方法.
代碼注釋自動生成是當前程序理解領域的一個研究熱點[5].代碼注釋可以描述相關代碼的實現功能和實 現目的.高質量的代碼注釋有助于提高代碼的可讀性和可理解性,因此在軟件開發和維護過程中具有重要的作 用.代碼注釋自動生成問題可以認為是將基于編程語言實現的代碼自動翻譯成基于自然語言描述的文本,同時 希望自動生成的注釋不僅可以描述代碼實現的功能,而且還可以給出代碼的實現目的或開發人員的設計意圖 等.例如:開發人員通過閱讀如下兩段注釋“uploads log files to the backup server”和“formats decimal values as scientific notation”,就可以直接對相關代碼的目的產生清晰的認識,而不需要再深入的去理解代碼的具體實現 細節.
代碼注釋的自動生成在很多軟件工程相關任務中都能起到重要的作用.例如:當開發人員新加入某個項目 的開發團隊,或者需要評估項目內的某個模塊是否需要使用新的類庫時,需要通過閱讀和理解代碼,來盡快熟悉 大規模軟件項目內的某個程序模塊.開發人員在審查某個程序模塊的時候,需要盡快了解該模塊的核心代碼變 更.在軟件的開發和維護過程中,開發人員需要盡快定位到自己感興趣的代碼段上.不難看出,高質量的代碼注 釋有助于協助開發人員提高上述任務的完成效率.
但代碼注釋自動生成問題在研究時也面臨諸多嚴峻挑戰:首先高質量的代碼注釋離不開對代碼結構和語 義的高質量分析,尤其是代碼語義分析在當前軟件工程領域仍然是一個開放問題.其次有時候如果僅分析代碼 本身,并不足以生成高質量的代碼注釋.因此還需要研究如何有效利用項目缺陷跟蹤系統和版本控制系統內的 領域知識和來在 Stack Overflow 和 Github 的眾包知識.最后當前對生成的代碼注釋進行質量評估時,主要采用 手工評估方法和自動評估方法.但使用手工評估方法打分時,受限于專家對編程語言和領域知識的熟悉程度,容 易存在主觀性較強的問題.而自動評估方法一般使用來自機器翻譯研究領域的評測指標,雖然可以自動給出生 成注釋的質量評分,但代碼注釋自動生成問題與機器翻譯問題相比,仍存在一定的差異性[6].
論文剩余內容的結構安排如下:第 1 節給出了綜述的整體研究框架,隨后第 2 節到第 4 節分別介紹基于模 板的生成方法、基于信息檢索的生成方法和基于深度學習的生成方法的相關研究工作,并進行了點評.第 5 節 總結了常用的代碼注釋語料庫.第 6 節將常用的代碼注釋質量評估方法分為兩類,并分別進行了分析.最后對該 領域未來值的關注的研究方向進行了展望
摘 要 圖像自動標注技術是減少圖像數據與內容之間“語義鴻溝”的其中一種最有效途徑,對于幫助人類理解圖像內容,從海量圖像數據中檢索感興趣的信息具有重要現實意義.通過研究近20年公開發表的圖像標注文獻,總結了圖像標注模型的一般性框架;并通過該框架結合各種具體工作,分析出在圖像標注研究過程中需要解決的一般性問題;將各種圖像標注模型所采用的主要方法歸為9種類型,分別為相關模型、隱Markov模型、主題模型、矩陣分解模型、近鄰模型、基于支持向量機的模型、圖模型、典型相關分析模型以及深度學習模型,并對每種類型的圖像標注模型,按照“基本原理介紹—具體模型差異—模型總結”3個層面進行了研究與分析.此外,總結了圖像標注模型常用的一些數據集、評測指標,對一些比較著名的標注模型的性能進行了比較,并據此對各種類型的標注模型做了優缺點分析.最后,提出了圖像標注領域一些開放式問題和研究方向.
深度學習在計算機視覺領域取得了重大成功,超越了眾多傳統的方法.然而,近年來深度學習技術被濫用在假視頻的制作上,使得以Deepfakes為代表的偽造視頻在網絡上泛濫成災.這種深度偽造技術通過篡改或替換原始視頻的人臉信息,并合成虛假的語音,來制作色情電影、虛假新聞、政治謠言等.為了消除此類偽造技術帶來的負面影響,眾多學者對假視頻的鑒別進行了深入的研究,并提出一系列的檢測方法幫助機構或社區來識別此類偽造視頻.盡管如此,目前的檢測技術仍然存在依賴特定分布數據、特定壓縮率等眾多的局限性,遠遠落后于假視頻的生成技術.并且,不同的學者解決問題的角度不同,使用的數據集和評價指標均不統一.迄今為止,學術界對深度偽造與檢測技術仍缺乏統一的認識,深度偽造和檢測技術研究的體系架構尚不明確.在本綜述中,我們回顧了深度偽造與檢測技術的發展,并對現有研究工作進行了系統的總結和科學的歸類.最后,我們討論了深度偽造技術蔓延帶來的社會風險,分析了檢測技術的諸多局限性,并探討了檢測技術面臨的挑戰和潛在研究方向,旨在為后續學者進一步推動深度偽造檢測技術的發展和部署提供指導.
近年來,以 Deepfakes [1]為代表的換臉技術開始在網絡興起.此類技術可將視頻中的人臉替換成目標人物, 從而制作出目標人物做特定動作的假視頻.隨著深度學習技術的發展,自動編碼器、生成對抗網絡等技術逐漸 被應用到深度偽造中.由于 Deepfakes 技術只需要少量的人臉照片便可以實現視頻換臉,一些惡意用戶利用互聯網上可獲取的數據生成眾多的假視頻并應用在灰色地帶,如將色情電影的女主角替換成女明星,給政客、公司高管等有影響力的人偽造一些視頻內容,從而達到誤導輿論,贏得選取,操縱股價等目的.這些虛假視頻內容 極其逼真,在制作的同時往往伴隨著音頻的篡改,使得互聯網用戶幾乎無法鑒別.如果這些深度偽造的內容作為新聞素材被制作傳播,這會損害新聞機構的聲譽和公眾對媒體的信心.更深層次的,當遇到案件偵查和事故取證時,如果缺乏對 Deepfakes 類虛假影像資料的鑒別,將對司法體系產生巨大的挑戰.盡管深度偽造技術有其積極的一面,如“復活”一些去世的人進行影視創作,以及 Zao APP[2]提供大眾換臉娛樂服務等,但是目前負面影響遠遠大于正面,擁有鑒別此類深度偽造視頻的能力變得尤為重要.
為了盡量減少深度偽造技術帶來的影響,消除虛假視頻的傳播,學術界和工業界開始探索不同的深度偽 造檢測技術.相繼有學者構造數據集,展開對 Deepfakes 檢測的多角度研究.臉書公司也聯合微軟一起舉辦全 球 Deepfakes 檢測競賽[3]以推動檢測技術的發展.然而這些 Deepfakes 檢測工作各有側重,存在眾多局限性.針 對本領域的綜述工作還比較缺乏,只有針對早期圖像篡改工作的一些總結[4][5],亟需對現有工作進行系統的整 理和科學的總結、歸類,以促進該領域的研究.
本文首先在第1節中介紹深度偽造的各種相關技術,在第2節中列舉了當下深度偽造研究的數據集,接著 在第 3 節中對現有的深度偽造檢測技術進行系統的總結和歸類.第 4 節我們討論了深度偽造生成和檢測技術 的雙面對抗性,第 5 節我們總結了面臨的挑戰和未來可行的研究方向.最后,在第 6 節,我們對全文的工作進行 總結.
//www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=6140&flag=1
目標檢測的任務是從圖像中精確且高效地識別、定位出大量預定義類別的物體實例。隨著深度學習的廣泛應用,目標檢測的精確度和效率都得到了較大提升,但基于深度學習的目標檢測仍面臨改進與優化主流目標檢測算法的性能、提高小目標物體檢測精度、實現多類別物體檢測、輕量化檢測模型等關鍵技術的挑戰。針對上述挑戰,本文在廣泛文獻調研的基礎上,從雙階段、單階段目標檢測算法的改進與結合的角度分析了改進與優化主流目標檢測算法的方法,從骨干網絡、增加視覺感受野、特征融合、級聯卷積神經網絡和模型的訓練方式的角度分析了提升小目標檢測精度的方法,從訓練方式和網絡結構的角度分析了用于多類別物體檢測的方法,從網絡結構的角度分析了用于輕量化檢測模型的方法。此外,對目標檢測的通用數據集進行了詳細介紹,從4個方面對該領域代表性算法的性能表現進行了對比分析,對目標檢測中待解決的問題與未來研究方向做出預測和展望。目標檢測研究是計算機視覺和模式識別中備受青睞的熱點,仍然有更多高精度和高效的算法相繼提出,未來將朝著更多的研究方向發展。
在過去的幾年里,自然語言處理領域由于深度學習模型的大量使用而得到了發展。這份綜述提供了一個NLP領域的簡要介紹和一個快速的深度學習架構和方法的概述。然后,篩選了大量最近的研究論文,并總結了大量相關的貢獻。NLP研究領域除了計算語言學的一些應用外,還包括幾個核心的語言處理問題。然后討論了目前的技術水平,并對該領域今后的研究提出了建議。