日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

读论文系列(二)Convolutional Neural Networks over Tree Structures for Programming Language Processing

發布時間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读论文系列(二)Convolutional Neural Networks over Tree Structures for Programming Language Processing 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列文章目錄

讀論文系列(一)Automated software vulnerability detection with machine learning


文章目錄

  • 系列文章目錄
  • Keywards
  • Overall Architecture(整體架構)
  • Representation Learning for AST Nodes
    • Vector representations(embeddings) 向量表示的大致過程
    • 連續二叉樹的提出
    • Coding Layer
    • Tree-based Convolutional Layer
    • Dynamic Pooling
    • The “Continuous Binary Tree” Model
    • Experiments
      • result


Keywards


抽象語法樹(AST)
樹卷積神經網絡(TBCNN)Tree-Based Convolutional Neural Network
連續二叉樹

Overall Architecture(整體架構)



AST節點首先被表示為一個分布式實值向量
tree-based convolution kernel 基于樹的卷積核,在AST上滑動提取提取程序的結構信息
通過dynamic pooling來收集信息
加上一個隱藏層
輸出層最后使用softmax

Representation Learning for AST Nodes


Vector representations(embeddings) 向量表示的大致過程



對于每個非葉節點p及其直接子節點 c1 …cn

葉子節點ci的權重矩陣

偏執bias

li是葉節點的權重系數

連續二叉樹的提出


原因:非葉節點的子節點數目不同,導致葉子節點的權重矩陣不同
為了克服這一問題,引出連續二叉樹
只有兩個權重矩陣作為模型參數

Wi 是兩個參數矩陣根據節點位置的線性組合

Coding Layer


在對所有的特征進行預訓練后,將其丟進模型進行訓練
對于葉子節點,只是將預訓練階段學習的向量表示
對于非葉節點p,它有兩種表示法:在預訓練階段學習的表示法
編碼的表示法
其公式如下

組合參數

Tree-based Convolutional Layer



我的理解是:
這個虛線三角形是一個特殊的卷積核,通過在樹上滑動來提取特征(一般卷積是個矩陣的kernel,但在該模型中,則表示為樹的深度,如圖,深度設置為2)
滑動到底層沒有那么多的節點的時候,就填0
輸出

維數為卷積核的個數

Dynamic Pooling


在卷積之后,提取AST中的結構特征,并生成新的樹。新樹的形狀和大小與原始樹完全相同,但在不同的程序中有所不同。因此,提取的特征不能直接輸入到固定大小的神經層。動態池用于解決這個問題。


最簡單的方法可能是將所有特征匯集到一個向量中。我們稱之為單向池。具體來說,每個維度的最大值取自基于樹的卷積檢測的特征。我們還提出了一種替代方案,即三向池,根據特征在AST中的位置,將特征池分成三個部分:頂部、左下方和右下方(圖2b)。正如我們將從實驗結果中看到的,簡單的單向池和三向池一樣有效。因此,我們在實驗中采用了單向池。
合并后,特征完全連接到隱藏層,然后饋送到輸出層(softmax)進行監督分類。通過動態池過程,整個AST的結構特征以短路徑到達輸出層。因此,可以通過反向傳播有效地訓練它們。

The “Continuous Binary Tree” Model


在我們的模型中,我們將任何子樹視為“二叉”樹,無論其大小和形狀如何。也就是說,我們只有三個權矩陣作為卷積的參數,兩個用于編碼。我們稱之為連續二叉樹。

直接貼圖
卷積的三個參數



Wconv 和三個參數的系數關系
參數計算


所有參數

Experiments

關于數據集部分,論文原文給了明確解釋

result


總結

以上是生活随笔為你收集整理的读论文系列(二)Convolutional Neural Networks over Tree Structures for Programming Language Processing的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。