Transformer详解一:transformer的由来和先导知识

目录

  • 参考资料
  • 前言
  • 一、预训练
  • 二、神经网络语言模型(NNLM):预测下一个词
    • one-hot编码的缺陷
    • 词向量(word embedding)
  • 三、Word2Vec模型:得到词向量
    • CBOW
    • Skip-gram
    • Word2Vec和NNLM的区别
    • Word2Vec的缺陷
  • 四、ELMO模型:通过预训练得到词向量

参考资料

感谢我的互联网导师:水论文的程序猿
参考资料和图片来源:Transformer、GPT、BERT,预训练语言模型的前世今生(目录)
预训练语言模型的前世今生 - 从Word Embedding到BERT
B站教学视频:预训练语言模型(Transformer、BERT)的前世今生

前言

一、预训练

在这里插入图片描述

通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):

  1. 冻结:浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
  2. 微调:浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化

二、神经网络语言模型(NNLM):预测下一个词

one-hot编码的缺陷

  1. 独热编码无法计算词语之间的相似度(余弦相似度),比如fruit为[1,0,0,0,0,0,0,0], banana为[0,0,0,0,0,0,0,1],这两个词在词义上有从属关系,但是若计算余弦相似度,则为0.

  2. 如果使用独热编码来对词汇进行存储的话,占用的存储空间会很大,3000个词就需要一个3000*3000的独热编码矩阵。

在这里插入图片描述

w1*Q = c1

词向量(word embedding)

神经网络的副产品:词向量

使用Q矩阵来降维,如果Q矩阵足够小,如维度为30001,那么30003000的词向量与Q矩阵相乘就会变成一个3000*1的向量,这就是一个词向量。

词向量优势:可以选择词向量的维度,可以求两个词之间的相似程度

在这里插入图片描述

三、Word2Vec模型:得到词向量

主产品:得到词向量
在这里插入图片描述

CBOW

给出词的上下文,预测到当前词。

Skip-gram

给出一个词得到该词的上下文。

Word2Vec和NNLM的区别

NNNL -> 重点是预测下一词,双层感知机softmax(w2(tanh((w1(xQ)+b1)))+b2)

Word2Vec -> CBOW 和 Skip-gram 的两种架构的重点都是得到一个 Q 矩阵,softmax(w1 (xQ) +b1),得到词向量

Word2Vec的缺陷

词向量无法做到一个单词的多义性。

e.g. 苹果有水果中的苹果和苹果手机两个意思,但是如果在训练时训练出来的词向量是代表水果苹果的意思,那么在应用预测这个词时就只有水果的意思而没有手机的意思。

四、ELMO模型:通过预训练得到词向量

改进无法识别多义词的问题。
在这里插入图片描述
ELMO:可以把词语的上下文信息融合在Q矩阵中,将词的上下文信息叠加起来形成一个词向量,从而解决在不同语境中一个词语可以有不同意思的问题。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/140757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python---练习:把8名讲师随机分配到3个教室

案例:把8名讲师随机分配到3个教室 列表嵌套:有3个教室[[],[],[]],8名讲师[A,B,C,D,E,F,G,H],将8名讲师随机分配到3个教室中。 分析: 一步步来解决。 首先, 要求有3个教室,第一间教室、第二间…

微信小程序真机调试连接状态一直在正常和未链接之间反复横跳?

背景:小程序真机调试的时候,发现真机的network不显示接口调用情况,控制台也没有输出内容。具体如下所示; 解决方法: 1、确保手机端连接的网络和微信开发者工具网络一致,比如用同一个WiFi 2、真机自动调试…

Ubuntu 22.04源码安装cmake 3.27.7

安装参考博客是《ubuntu安装cmake》和《Ubuntu 安装CMake》。 https://cmake.org/download是cmake官网下载的网址。 sudo wget -c https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7.tar.gz可以下载源码,最后显示‘cmake-3.27.7.tar.gz’…

leetcode刷题 - SQL - 中等

1. 176. 第二高的薪水 筛选出第二大 查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。查询结果如下例所示。 666中等的第一题就上强度 强行解法 select max(salary) as SecondHighestSalary from Emp…

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算 在用Allegro进行PCB设计的时候,Cross-section中需要填入对应的信息,一般填入每层的厚度即可,如下图 当PCB需要进行仿真分析的时候,Etch-Factor这个值是必须要填写的,如下图 目前看到的都是90这个值,这是一个理论值。 …

c语言实现两个有序链表的合并

合并两个有序链表是c语言数据结构中比较经典的问题,首先两个链表都是有序的,即节点的顺序是按照各个节点中的值从小到大排序,而且合并之后的新链表中的各个节点顺序也要满足从小到大的排序,具体如下图所示。 思路:用ma…

Java的类与Golang的结构体的区别

Java作为一门面向对象(OOP)的编程语言,它有类(class)的存在,而对于Golang,它不完全遵从OOP编程语言的设计思想,但它也有类似Java类的结构存在,那就是结构体(s…

宝塔开心版hostcli的广告去除

首先感谢hostcli把宝塔7.6剥离了,直接安装我这里是缺少pyenv的包。 直接进入正题吧。 定位到页面左下方的广告位于 /www/server/panel/BTPanel/templates/default/layout.html “退出”按钮下方有条线开始去掉 去掉之前的忘了截图了,就这样吧&#xff…

【数据结构】反射、枚举

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈数据结构 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 反射、枚举 1. 反射1.1 定义1.2 反射…

阿里云配置ECS实例的IPv6地址,开通公网IPv6

1.阿里云ECS服务器开通IPv6地址,开通公网IPv6 1.1.官网教程 配置ECS实例的IPv6地址 1.2.相关截图 1.2.1.专有网络VPC开通IPv6 1.2.2.交换机switch开通IPv6 1.2.3.开通IPv6网关并开通公网宽带 1.2.4.ECS服务器绑定IPv6网关 1.2.5.安全组开通IPv6 1.2.6.主机测试I…

【Docker】深入理解Docker:一种革新性的容器技术

前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…

SpringBoot3基础特性

SpringBoot3基础特性 SpringApplication 自定义banner 类路径添加banner.txt或设置spring.banner.location就可以定制banner推荐网站:Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义。 提示: 可以通过修改配…

工商银行卡安全码怎么看

工商银行的安全码,作为一项至关重要的安全措施,旨在保护用户的银行账户和交易安全。为了查看工商银行的安全码用户需要按照以下步骤操作: 首先,用户需要使用电脑或手机访问工商银行的网上银行平台。在平台首页,用户需要…

『亚马逊云科技产品测评』活动征文|搭建带有“弱”图像处理功能的流媒体服务器

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 本文基于以下软硬件工具: aws ec2 frp-0.52.3 mediamtx-1.3…

leetcode-链表经典题

1.反转单链表 206. 反转链表https://leetcode.cn/problems/reverse-linked-list/这里我们使用创建一个变量cur来遍历原链表,再创建一个新节点newnode,首先使用一个循环来遍历原链表,cur为NULL是循环结束,每次进入循环将cur的下一…

Django(复习篇)

项目创建 1. 虚拟环境 python -m venv my_env ​ cd my_env activate/deactivate ​ pip install django ​2. 项目和app创建 cd mypros django-admin startproject Pro1 django-admin startapp app1 ​3. settings配置INSTALLED_APPS【app1"】TEMPLATES【 DIRS: [os.pat…

测试用例之翻页功能

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

LabVIEW中NIPackageManager功能介绍

LabVIEW中PackageManager功能介绍 使用NIPackage Manager可安装、更新、修复和删除NI软件。 安装NI软件 使用PackageManager浏览和安装NI软件。 1. 在浏览产品选项卡上,单击产品类别以显示该类别中的可用产品。 2. 选择要安装的产品,然后单击…

OpenCV:图像矫正与仿射变换

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

ablation study

文章目录 ablation study1、消融实验思想是什么?2、消融实验意义3、消融实验应用场景举例 ablation study 1、消融实验思想是什么? “消融实验”(ablation study)通常指的是通过逐步移除系统的一部分来评估该系统的贡献。这种方法…