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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> TBCNN -> 正文阅读

[人工智能]TBCNN

    • TBCNN – 基于树的卷积神经网络

      TBCNN: A Tree-Based Convolutional Neural Network for Programming Language Processing

      • 一种用于编程语言处理的基于树的卷积神经网络

      • Abstract:

        • 由于当前还没有将深度神经网络应用于编程语言处理, 提出TBCNN模型来对基于ASTs的编程语言进行建模, 提取丰富的信息
        • 在模型中首先通过基于ASTs的编码准则来预训练获得program vector, 然后通过树型卷积来捕捉树的一些有用特征, 并且引入了三路池化(3-way pooling)和连续二叉树(continous binary tree)来处理不同形状大小的ASTs
        • 通过与基准方法对比, 这个方法可以更好更快地完成程序分类任务, 同时预训练出来的program vector也能提高训练的速度
      • Introduction:

        • 编程语言和自然语言的区别: 程序包含丰富而明确的结构信息, 编程语言中的源代码往往遵循固定僵化的语法结构, 而且通过复杂的控制流和数据流, 批次之间的代码块之间可能存在依赖关系
          1. 提出“编码准则”学习ast中每个节点的向量表示,作为预训练阶段;
          2. 提出了基于树的卷积方法提取程序的局部结构特征;
          3. 引入“连续二叉树”和“三路池化”的概念,使模型适用于不同结构和大小的树;

      整体模型

      jQp8zQ.png

      • Pretraining

        • 对于一个节点 p p p 和它的所有孩子 c 1 , c 2 , . . . , c i c_1, c_2,...,c_i c1?,c2?,...,ci? ,用一下式子来表示 p p p 的coded vector

          ? v e c ( p ) ≈ t a n h ( ∑ i l i W c o d e , i v e c ( c i ) + b c o d e ) vec(p)\approx tanh(\sum_il_iW_{code,i}vec(c_i)+b_{code}) vec(p)tanh(i?li?Wcode,i?vec(ci?)+bcode?)

        • 定义 v e c ( p ) vec(p) vec(p) p p p 的 coded vector 的距离的平方

          ? d = ∣ ∣ v e c ( p ) ? t a n h ( ∑ i l i W c o d e , i v e c ( c i ) + b c o d e ) ∣ ∣ 2 2 d=\left|\left|vec(p)-tanh(\sum_il_iW_{code,i}vec(c_i)+b_{code}) \right|\right|_2^2 d=vec(p)?tanh(i?li?Wcode,i?vec(ci?)+bcode?)22?

        • 同时, 通过将一个随机一个节点( p p p 或者 p p p 的某一个孩子) 换成一个随机的symbol 来完成负采样, 把这个负样本和其coded vector之间的距离计为 d c d_c dc?

        • 目标: m i n i m i z e W c o d e l , W c o d e r , b c o d e m a x ( d ? d c + △ ) minimize_{W^l_{code}, W^r_{code},b_code} max(d-d_c+\triangle) minimizeWcodel?,Wcoder?,bc?ode?max(d?dc?+)

      • Coding layer

        • 对于非叶子结点, p = W c o m b 1 v e c ( p ) + W c o m b 2 t a n h ( ∑ i l i W c o d e , i v e c ( x i ) + b c o d e p =W_{comb1}vec(p)+W_{comb2}tanh(\sum_il_iW_{code,i}vec(x_i)+b_{code} p=Wcomb1?vec(p)+Wcomb2?tanh(i?li?Wcode,i?vec(xi?)+bcode?
      • Tree-based consolution layer

        jQp1JS.png

        用固定深度的树型卷积核划过整个树结构, 假定对应节点的向量表示是 x 1 , x 2 , . . . x n x_1, x_2, ... x_n x1?,x2?,...xn?, 那么这个卷积层的输出是

        y = t a n h ( ∑ n W c o d e , i ? x i + b c o d e ) y=tanh(\sum_nW_{code,i}*x_i+b_{code}) y=tanh(n?Wcode,i??xi?+bcode?)

        而由于孩子节点的数量不固定并且树的形状和大小不固定, 这一步需要同时用zero-paddings和连续二叉树的概念

        • 连续二叉树 continuous binary tree

          把目标子树看作是一个二叉树(无论原本是什么形状和大小), 使用三个基本的权重矩阵 W c o n v l e f t , W c o n v r i g h t , W c o n v t o p W^{left}_{conv}, W^{right}_{conv}, W^{top}_{conv} Wconvleft?,Wconvright?,Wconvtop?.

          对于子树中的某一个节点 x i x_i xi?, 其权重矩阵 W c o n v W_{conv} Wconv? 是这三个基本权重矩阵的线性组合

      • Three-way pooling

        ? jQp3Rg.png

        卷积层之后会得到一个形状和大小不变的新树, 因此不能直接接到hidden layer和output layer

        用三路池化讲特征池化成三个部分

      • SGDM 优化器算法

        • 向后传播算法
      • Hiden layer and output layer — softmax

        归一化 s o f t m a x i = e i ∑ j e j softmax_i =\frac{e^i}{\sum_je^j} softmaxi?=j?ejei?

      ?

      • 实验和实验结果
        • 向量表示成功地捕获了AST节点的有意义特征
        • 神经编程语言处理, 对程序进行分类是有效可行的
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:54:12  更:2022-07-04 22:57:13 
 
开发: 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/26 1:50:45-

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