Transformer(未完成)

Transformer

是一个sequence to sequence(seq2seq)的模型

即是一个输入是一个sequence, 输出是一个sequence. 并且输出的sequence的长度由模型来决定.

如语音辨识: 输入是声音信号, 输出是语音识别的文字. 或者翻译: 输入一种语言输出另一种语言.

虽然seq2seq可以解决各式各样的的问题, 但是不见得是最好用的. 针对问题客制化模型会更好, 但是seq2seq还是很厉害的.

很多问题虽然并不觉得是seq2seq的model的问题但是也可以用它硬解.

比如multi-label classification

一个文章可以归类到很多类. seq2seq输入文章, 输出model认为的类别.

Seq2seq 结构!

两大块:encoder, decoder. input一个sequence, 由encoder处理, 处理好的结果给decoder, 然后决定要输出什么样的结果.

seq2seq 的任务就是给一排向量输出另外一排向量.

encoder

encoder里面有很多block, 用来实现不同的功能, 每个block都需要多个layer来实现他们需要的功能.

每个block里面都是输入一个向量, 输出一个向量.

在transformer中 每个block的流程大致是:

先对输入的一排向量或者叫sequence做self-attention.
然后将得到的一组向量再输入给FC fully connected network中,输出一排向量, 这一排就是整个block的输出.

细致来说: transformer对self-attention的应用还有变化:

  1. 会将self-attention输出的向量, 与对应的输入向量相加得到真正的输出. 这样的架构叫做residual connection 残差链接. 得到residual之后在进行normalization(不是batch normalization, 而是layer normalization)

layer normalization: 输入一个向量, 对这个向量的所有dimension维度计算平均值mean m 和标准差 standard variance σ \sigma σ.
然后normalize: x i ′ = x i − m σ x'_i = \frac{x_i - m}{\sigma} xi=σxim

  1. 得到layer normalization之后的输出才是FC的输入. 而FC也同样经过residual的处理. 同样将FC的input和output加起来. 然后在layer normalization.
  2. 输出上一步的结果

这就是一个block的内容.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值