IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2021-InferCode: Self-Supervised Learning of Code Representations by Predicting Subtrees论文笔记 -> 正文阅读

[人工智能]2021-InferCode: Self-Supervised Learning of Code Representations by Predicting Subtrees论文笔记

1)论文题目解读:用自监督学习的方式来进行代码表征的学习,自监督的子任务是预测子树

2)论文思想:InferCode模型类似于bert也是一个预训练模型,可以运用在许多下游任务例如:无监督任务:Code Clustering、Code Clone Detection…;有监督任务:Code Classification,Method Name Prediction…

3)前期准备:使用tree_sitter工具将每个代码片段生成AST(抽象语法树)并从AST中将节点类型为{exper,decl,exper_stmt,condition}的节点抽取子树,并保存至子树词汇表中。

4) 实现步骤:

1.整体实现流程图

在这里插入图片描述

2.学习AST的节点特征
2.1 AST中的每个节点包含其相应的文本特征(token)和类型特征(type),根据他的节点的文本和类型信息初始化Wtype和Wtoken矩阵。如图最左边所示,Wtype和Wtoken进行合并操作后在进行一个线性变化,就形成了节点的初始化embedding

在这里插入图片描述

2.2 通过TBCNN卷积层学习节点信息

在这里插入图片描述

子树特征探测器—基于树的卷积核(固定窗口深度)
由于每个节点包含的子节点树都不同,所以导致权重矩阵里的参数都不能确定。解决方法,初始化三个矩阵Wt,Wr,Wl,卷积核的权重矩阵根据节点在窗口中的深度和位置的不同进行一个线性组合。

在这里插入图片描述
详细的解释可以参考TBCNN的论文TBCNN

3.聚合节点信息
将TBCNN中的最大池化层用attention来代替,初始化attention向量a

在这里插入图片描述

4.预测子树

在这里插入图片描述

5.实验效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.参考文献

1.《InferCode: Self-Supervised Learning of Code Representations
by Predicting Subtrees》
2. 《Convolutional Neural Networks over Tree Structures
for Programming Language Processing》
3.《Distributed Representations of Sentences and Documents》

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:32:41  更:2021-08-22 13:33:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:39:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码