首页 > 编程知识 正文

matlab中ikine怎么用(simulink中mask是什么)

时间:2023-05-05 03:21:51 阅读:64406 作者:4928

我最近真的晕mask了。 还是需要仔细看看哦

1、填充掩码:处理非定长序列,区分填充和非填充部分。 例如,在RNN等模型和Attention机制中的应用等

2、序列掩码:防止传输解码器的掩码矩阵、BERT的[掩码]位、XLNet的掩码矩阵等标签的泄漏

PS :填充掩码和序列掩码的非正式命名

嗯,上面的说明还很模糊。 还是要具体解读

稍后读具体论文,有错误就改正

RNN的掩码

RNN等模型本身可以直接处理不定长度数据,因此不需要提前通知序列长度。 以下是pytorch上的LSTM定义。

nn.lstm(input_size,hidden_size,*args,**kwargs ) ) ) ) ) 65 )

但是,在实践中,为了batch训练,通常将不定长度的数组填充到相同的长度,用掩码来区分非填充部分和填充部分。

的目的是防止RNN只作用于实际长度的语句,而处理无用的填充部分,从而使RNN的输出和隐藏状态成为语句的实际最后一位。 并且,对于token级别的任务,也可以在mask中忽略与填充部分对应的loss。

但是,在pytorch中,对于mask的具体实现形式不是用mask矩阵,而是用句子长度的列表来实现的,但本质是相同的。 如下所述,sentence_lens表示这个batch中每个语句的实际长度。

在Attention中屏蔽

Attention机制还必须忽略填充节的影响。 在此,以transformer encoder的自我保护为例。

防止标签泄漏

在语言模型中,往往需要根据上一个单词预测下一个单词,但在对LM应用self attention或同时使用上下文信息时,为了不遗漏预测的标签信息,mask需要“覆盖”它。 不同的屏蔽方式也支持一篇包装。 这里选择几种典型的。

传输器掩码

传输器包含编码器和解码器,在编码器中,自我确认的填充掩码如上所述,但解码器无法看到标签的泄漏,即在t时刻不能看到t时刻以后的信息,因此

序列掩码通常通过生成对应于要掩码的部分的上三角矩阵来实现。

在Transformer的Decoder中,不考虑填充掩码,由4个词构成的句子[A、b、c、D]在计算相似度scores后,得到下面的第一个图,去掉scores的上三角区域掩码,即负的

在自证明中,q和k必须在点积之后通过掩码进行softmax,因此对于屏蔽部分,必须设置为负无穷大,以使掩码之后的输出为0。

BERT的掩码

BERT实际上是Transformer的编码器,它用[Mask]标签代替了Masked LM,也就是随机选择数组的token的一部分,以便在语言模型的训练中使用上下文信息并且不泄露标签信息

该波Mask操作,思想直接,实现简单,效果惊人。

标签: NLP、变换器、序列、掩码、确认、掩码、填充、作用

资料来源: https://www.cn blogs.com/gaowenxingxing/p/13709013.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。