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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 项目实训八 -> 正文阅读

[网络协议]项目实训八

作者:recommend-item-box type_blog clearfix

树形解码器的decoder部分

在解码器的每个解码步骤中,树解码器需要预测当前子节点的信息,包括子节点和子节点的分支,节点的分支表示节点与子节点之间的空间关系。我们可以通过节点类别和分支来逐步构建一棵数学树。如下图所示,为了解耦分类和空间关系预测,我们在解码器中设计了两个模块:节点分类模块和分支预测模块。
在这里插入图片描述

节点类模块

节点类模块主要包括两个GRU,一个注意力机制和一个分类器,我们首先使用两个嵌入层去获得父节点 p t p_{t} pt?高维的特征向量 e t p \mathbf{e}_{t}^{\mathrm{p}} etp? e t r \mathbf{e}_{t}^{\mathrm{r}} etr?以及其空间关系 r t r_{t} rt?。节点解码器 s t ? 1 n o d e \mathbf{s}_{t-1}^{\mathrm{node}} st?1node?的先前隐藏状态被视为 G R U 1 n o d e \mathbf{GRU}_{1}^{\mathrm{node}} GRU1node?层的先前隐藏状态。父节点的嵌入层 e t p \mathbf{e}_{t}^{\mathrm{p}} etp?和空间关系节点的嵌入层 e t r \mathbf{e}_{t}^{\mathrm{r}} etr?一起作为 G R U 1 n o d e \mathbf{GRU}_{1}^{\mathrm{node}} GRU1node?的输入,然后就可以得到 G R U 1 n o d e \mathbf{GRU}_{1}^{\mathrm{node}} GRU1node?的当前隐藏状态 S ~ t node? \widetilde{\mathbf{S}}_{t}^{\text {node }} S tnode??
e t p = Emd ? node? ( p t ) \mathbf{e}_{t}^{\mathrm{p}}=\operatorname{Emd}_{\text {node }}\left(p_{t}\right) etp?=Emdnode??(pt?) e t r = E m d r e ( r t ) \mathbf{e}_{t}^{\mathrm{r}}=\mathrm{Emd}_{\mathrm{re}}\left(r_{t}\right) etr?=Emdre?(rt?) s ~ t node? = GRU ? 1 node? ( [ e t p , e t r ] , s t ? 1 node? ) \widetilde{\mathbf{s}}_{t}^{\text {node }}=\operatorname{GRU}_{1}^{\text {node }}\left(\left[\mathbf{e}_{t}^{\mathrm{p}}, \mathbf{e}_{t}^{\mathrm{r}}\right], \mathbf{s}_{t-1}^{\text {node }}\right) s tnode??=GRU1node??([etp?,etr?],st?1node??)
然后,节点注意力机制模块 f att? node? f_{\text {att }}^{\text {node }} fatt?node??被用来在特征映射A上的注意可能性 α t node? {\alpha}_{t}^{\text {node }} αtnode??,通过计算在A上的权重之和来获得节点上下文向量 c t node? \mathbf{c}_{t}^{\text {node }} ctnode??,这里使用 S ~ t node? \widetilde{\mathbf{S}}_{t}^{\text {node }} S tnode??作为query并且A作为key和value。
α t node? = f a t t node? ( A , s ~ t node? ) \boldsymbol{\alpha}_{t}^{\text {node }}=f_{\mathrm{att}}^{\text {node }}\left(\mathbf{A}, \widetilde{\mathbf{s}}_{t}^{\text {node }}\right) αtnode??=fattnode??(A,s tnode??) c t node? = ∑ α t i node? a i \mathbf{c}_{t}^{\text {node }}=\sum \alpha_{t i}^{\text {node }} \mathbf{a}_{i} ctnode??=αtinode??ai?
函数 f att? node? f_{\text {att }}^{\text {node }} fatt?node??如下:
F node? = Q node? ? ∑ l = 1 t ? 1 α l node? \mathbf{F}^{\text {node }}=\mathbf{Q}^{\text {node }} * \sum_{l=1}^{t-1} \boldsymbol{\alpha}_{l}^{\text {node }} Fnode?=Qnode??l=1t?1?αlnode?? e t i node? = V node? T tanh ? ( W att? node? s ~ t node? + U att? node? a i + U ^ F node? f i node? ) e_{t i}^{\text {node }}=V_{\text {node }}^{\mathrm{T}} \tanh \left(\mathbf{W}_{\text {att }}^{\text {node }} \tilde{\mathbf{s}}_{t}^{\text {node }}+\mathbf{U}_{\text {att }}^{\text {node }} \mathbf{a}_{i}+\hat{\mathbf{U}}_{\mathrm{F}}^{\text {node }} \mathbf{f}_{i}^{\text {node }}\right) etinode??=Vnode?T?tanh(Watt?node??s~tnode??+Uatt?node??ai?+U^Fnode??finode??) α t i node? = exp ? ( e t i node? ) ∑ k exp ? ( e t k node? ) \alpha_{t i}^{\text {node }}=\frac{\exp \left(e_{t i}^{\text {node }}\right)}{\sum_{k} \exp \left(e_{t k}^{\text {node }}\right)} αtinode??=k?exp(etknode??)exp(etinode??)?
α t i node? \alpha_{t i}^{\text {node }} αtinode??表示第t步的第i个元素的节点的可能性, e t i node? e_{t i}^{\text {node }} etinode??表示第i步的输出, f i n o d e \mathbf{f}_{i}^{\mathrm{node}} finode?表示函数 F node? \mathbf{F}^{\text {node }} Fnode?的第i个元素,这是以前的注意模块,为了避免过度解析或者解析不足的问题,其余为学习参数。
接着,使用 c t node? \mathbf{c}_{t}^{\text {node }} ctnode?? s ~ t node? \widetilde{\mathbf{s}}_{t}^{\text {node }} s tnode??作为 G R U 2 node? \mathbf{GRU}_{2}^{\text {node }} GRU2node??的输入来计算预测模块隐藏状态 s t node? \mathbf{s}_{t}^{\text {node }} stnode??
s t node? = GRU ? 2 node? ( c t node? , s ~ t node? ) \mathbf{s}_{t}^{\text {node }}=\operatorname{GRU}_{2}^{\text {node }}\left(\mathbf{c}_{t}^{\text {node }}, \widetilde{\mathbf{s}}_{t}^{\text {node }}\right) stnode??=GRU2node??(ctnode??,s tnode??)最后通过父节点 e t p \mathbf{e}_{t}^{\text {p}} etp?,与父节点的关系 e t r \mathbf{e}_{t}^{\text {r}} etr?,节点的隐藏状态 s t node? \mathbf{s}_{t}^{\text {node }} stnode??以及上下文向量 c t node? \mathbf{c}_{t}^{\text {node }} ctnode??的聚合来计算预测节点 o t node? \mathbf{o}_{t}^{\text {node }} otnode??的可能性: h t node? = maxout ? ( W 1 node? [ e t p , e t r , s t node? , c t node? ] ) \mathbf{h}_{t}^{\text {node }}=\operatorname{maxout}\left(\mathbf{W}_{1}^{\text {node }}\left[\mathbf{e}_{t}^{\mathrm{p}}, \mathbf{e}_{t}^{\mathrm{r}}, \mathbf{s}_{t}^{\text {node }}, \mathbf{c}_{t}^{\text {node }}\right]\right) htnode??=maxout(W1node??[etp?,etr?,stnode??,ctnode??]) o t node? = softmax ? ( W 2 node? h t node? ) \mathbf{o}_{t}^{\text {node }}=\operatorname{softmax}\left(\mathbf{W}_{2}^{\text {node }} \mathbf{h}_{t}^{\text {node }}\right) otnode??=softmax(W2node??htnode??)其中W参数为学习参数。
我们使用cross-entropy函数来计算分类的损失函数 L node? = ? ∑ log ? o t node? ? n t \mathcal{L}_{\text {node }}=-\sum \log \mathbf{o}_{t}^{\text {node }} \cdot \mathbf{n}_{t} Lnode??=?logotnode???nt? n t \mathbf{n}_{t} nt?表示第t步节点真实值的独热向量。

上周只进行了模块分析和一部分代码的编写,这周将完成者模块代码的编写。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:44:24  更:2022-05-11 16:45:10 
 
开发: 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 0:49:54-

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