| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【深度学习 九】transformer -> 正文阅读 |
|
[人工智能]【深度学习 九】transformer |
1?transformer的encoder-decoder结构:结构内部: ? 2?encoder:2.1? 输入部分embedding和postitional encoding(位置编码) ? 为什么需要位置编码:如RNN每一time steps共享一套参数,串行输入输出,而transformer采用可以并行出入几个单词或者一串句子,优点是处理效率高,缺点是无法表示时序关系,所以要对输入的embedding加上postitional encoding。 ?最终输入的数据: ?2.2?注意力机制?2.2.1 基本的注意力机制 cv中: ?如上图,判断婴儿和(左上、左下、右上、右下)四个区域哪个点乘的结果越大说明:距离越靠近越相似也就是越关注,再和V相乘得到attention value。 ?nlp中: ? ?2.2.2?TRM中的注意力 通过三个权重矩阵WQ,WK,WV和x点乘得到q,k,v,如下图: ? q*k得到score,除以8(由上面的注意力公式可知,如果q*k值很大,softmax在反向传播时的值就很小,所以除8避免梯度消失)。 比如下图第一个单词thinking,对应的q1、k1、v1,q1*k1/8=14,q1*k1/8=12,...,softmax之后再和每一个v1,v2,...相乘,再求和作为thinking输出z1。 ? ? ?Multi-head Attention整体流程: ?2.2.3残差和LayNorm ? ?为什么用残差网络(为什么残差网络可以把网络做的很深):?加了个1,所以缓解了梯度消失。 为什么用layer normal:BN在nlp中不太适用,LN更适合nlp中的序列信息。都是为了让网络收敛的更快。BN是对每个特征x1,x2,...做均值方差,LN是对序列做均值方差。 如下图,LN是对‘我爱中国共产党’做均值方差;BN是对‘我’‘今’做,对于同一类的特征(比如体重、身高等)可以用,在nlp中就不适用了。 ? ?2.3 前馈神经网络? ?feed forward:两层的全连接。 ?3 decoder?decoder和encoder有以下一些不同: ? ?3.1 masked multi-head attention? ?为什么mask:遮盖掉后面的词,模拟真实的预测过程。 ?3.2 交互层:?encoder输出的值去和每一个decoder交互: ?encoder的输出生成的是k,v矩阵,q矩阵来自于decoder: ? ?注:encoder的q是embedding来的,是已知的,而decoder输出的q是预测的,也就是结果预测的词。 ?transformer整个过程: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/27 12:34:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |