【疑难杂症】关于Transformer到底是什么
在学习transform的时候,很多视频上来就是一张图开始解释图里面残差网络,self-attention等等巴拉巴拉的意思,然后组装,看也看完了,但是还是不明白transformer和selfattention究竟扮演了甚么样的角色,尤其是transformer,我甚至一度在想这不就是别人做好的自己组装一下嘛。在不断的查询后我找出了以下解释:
一开始做机器翻译,搞出来了RNN这种可以根据单词出现的前后顺序来调整具体意思的网络模型,但是由于句子之间的单词数量并不能一一对应,然后人们就搞出来seq2seq,这样一种基于编码器和解码器的模型,他可以先由encoder提取句子的意思,再用decoder转换意义为目标输出,依靠意义这一本质中介,成功达成了不对等序列之间的转换。
但是意义单元存储的信息有限,如果输入的句子信息太长,就会有很多务必要输入的数据,翻译的精度就下降了,所以就有了注意力机制,它可以在生成每个单词时,有意识的从原始句子中提取生成该单词时最需要的信息,成功摆脱长度限制,但是由于这样的计算方式太慢了,RNN需要一个一个看过去句子里面的单词才能给出输出。人们就进一步给出了
self-attention,因为我attention都已经给句子中每个元素打过分了,那我还需要时间序列干啥呢?于是先提取每个单词的意义,再依据生产顺序选取所需要的信息,这样的话就可以支持并行运算,也很接近人类的翻译方式,到这里,一个基于self-attrntion的encoder和decoder模型,我们就叫他transformer
参考视频链接:
https://www.bilibili.com/video/BV1Zz4y127h1
https://www.bilibili.com/video/BV1MY41137AK
最新文章
- Java JDBC Thin Driver 连接 Oracle 三种方法说明(转载)
- HDU 1022 Train Problem I(栈模拟)
- Rendering Paths
- PowerDesigner里数据表里AUTO_INCREMENT(自增)的设置
- API爬虫--Twitter实战
- 关灯问题 dp
- Linux 网络编程 高级套接字
- asp.net mvc Remote远程验证
- 正则表达式匹配(python)
- Linux命令记录。
- win7 64位iis发生错误w3wp.exe解决方法
- ADO.net参数化查询陷阱
- VBS连接远程Oracle
- python 使用标准库连接linux实现scp和执行命令
- WebService短信网关配置
- Java经典编程题50道之四十四
- 增长java中数组的长度
- Sqlserver 计算两坐标距离函数
- appium 点击物理按键
- Windows 添加用户
热门文章
- 一张图进阶 RocketMQ - 消息发送
- git.exe pull --progress -v --no-rebase ";origin"; master
- MySQL--数据过滤(AND、OR、IN、NOT操作符)
- 02 MySQL_数据库相关的SQL
- 6 zookeeper实现分布式锁
- Linux系统安全与应用
- CentOS删除桌面环境
- 20220724-Java的继承
- 我又造了个轮子:GrpcGateway
- 海纳百川无所不容,Win10环境下使用Docker容器式部署前后端分离项目Django+Vue.js