【深度学习】李宏毅2021/2022春深度学习课程笔记 - Self-supervised Learning(自监督式学习)

news2024/11/26 0:42:31

文章目录

  • 一、芝麻街与进击的巨人
  • 二、Self-supervised Learning
  • 三、BERT
    • 3.1 Masking Input
    • 3.2 Next Sentence Prediction
    • 3.3 GLUE 任务集
    • 3.4 How to use BERT
      • 3.4.1 Case1
      • 3.4.2 Case2
      • 3.4.3 Case3
      • 3.4.4 Case4
    • 3.5 Training BERT is challenging!
    • 3.6 Pre-Training a Seq2Seq Model
    • 3.7 Why does BERT work?
    • 3.8 To Learning More BERT
    • 3.9 Multi-lingual BERT
  • 四、GPT
    • 4.1 Predict Next Token
    • 4.2 How to use GPT?
    • 4.3 To Learn More GPT
  • 五、 Beyond Text
    • 5.1 Image - SimCLR
    • 5.2 Image - BYOL
    • 5.3 Speech


一、芝麻街与进击的巨人

在这里插入图片描述

实际上,BERT是很巨大的模型,他的参数可以达到340M

在这里插入图片描述

但即使如此,还是有很多比BERT更大的模型

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


二、Self-supervised Learning

在Self-supervised中,没有标签y,Self-supervised的做法是将数据x分为两个部分,只拿其中一部分作为输入。
由于不需要标签y,所以之前Self-supervised都叫做 unsupervised learning ,Yann LeCun 在2019年4月30日正式将其正名为 Self-supervised Learning

在这里插入图片描述


三、BERT

接下来,就拿BERT这个模型解释一下什么是 Self-supervised

3.1 Masking Input

在训练的时候,BERT的输入是Mask的,如下图所示,输入“台湾大学”中的“湾”字被Mask了,通常Mask有两种方式,一种是替换为特殊的Mask符,还有一种是随机替换为另一个中文字符。BERT的输出会连接线性层,最后经过SoftMax函数归一化,输出属于每个中文字符的概率。损失的计算就是用交叉熵损失。

在这里插入图片描述

3.2 Next Sentence Prediction

预测两个句子是不是应该被接在一起

在这里插入图片描述

给BERT一些有标注的资料,BERT就可以做各式各样的下游任务

在这里插入图片描述

3.3 GLUE 任务集

最有名的测试BERT模型好坏的任务集是GLUE,它里面总共有9个任务,我们一般看BERT模型在这9个任务集上的平均表现

在这里插入图片描述

下图可以看出,模型在GLUE任务集上的平均表现(蓝色虚线)越来越好,并逐渐超过人类的表现(黑线)

在这里插入图片描述

3.4 How to use BERT

3.4.1 Case1

输入:序列
输出:类别
举例:输入“Happy”,输出“positive”;输入“Sad”,输出“negative”

如下图所示,线性层的参数是随机初始化的,而BERT的参数是预训练后得到的

在这里插入图片描述

事实证明,预训练的BERT模型,比随机初始化的BERT模型表现更好

在这里插入图片描述

3.4.2 Case2

输入:序列
输出:序列(长度和输入一样)
例子:词性标注

在这里插入图片描述

3.4.3 Case3

输入:两个序列
输出:类别
例子:输入两个句子,输出它们之间的关系:矛盾、相似

在这里插入图片描述
在这里插入图片描述

3.4.4 Case4

问答系统:输入一篇文章和一个问题,输出问题的答案。(答案一定是出现在文章里的某个片段)

输出是两个整数,代表了答案在文章中的起始位置和结束位置

在这里插入图片描述

找开始位置

在这里插入图片描述

找结束位置

在这里插入图片描述

3.5 Training BERT is challenging!

在这里插入图片描述

3.6 Pre-Training a Seq2Seq Model

将序列做一些扰动,再输入Encoder,Decoder的任务是输出和扰动前的序列越接近越好

在这里插入图片描述

那么怎么扰动呢?有很多方法,如下图所示,实验表明,把这些扰动的方法都用上效果是比较好的

在这里插入图片描述

3.7 Why does BERT work?

为什么BERT有用呢?

BERT可以实现一词多义。如下图所示,同样的”果“字,由于上下文的不同,它的Embedding也不同

在这里插入图片描述

接下来做个实验看看是不是真的可以做到识别同一个字在不同句子里的多义现象。可以输入不同句子,计算同一个字的相似度

在这里插入图片描述

然后根据相似度绘制热力图。如下图所示,可以看到A和B区有较为明显的区别。说明BERT可以识别出一词多义的情况。

在这里插入图片描述

3.8 To Learning More BERT

在这里插入图片描述

3.9 Multi-lingual BERT

Multi-lingual BERT 指的是不同语言训练而成的BERT模型,如下图所示

在这里插入图片描述


四、GPT

4.1 Predict Next Token

Predict Next Token 是生成式的,它可以根据输入的Token预测下一个Token,然后再用预测的Token作为输入继续往下预测Token,直到预测出现终止符停止

在这里插入图片描述

为什么通常GPT和独角兽放在一起呢?是因为GPT最有名的例子就是生成了一篇和独角兽有关的假新闻。

在这里插入图片描述

4.2 How to use GPT?

在这里插入图片描述

在这里插入图片描述

事实证明,GPT的正确率比较低

在这里插入图片描述

4.3 To Learn More GPT

在这里插入图片描述


五、 Beyond Text

实际上,自监督式学习能做的还可以更多,不只是文字方面,还可以是语音识别和图像识别方面

在这里插入图片描述

5.1 Image - SimCLR

在这里插入图片描述

5.2 Image - BYOL

在这里插入图片描述

5.3 Speech

在这里插入图片描述

Speech 领域的 GLUE:SUPERB

在这里插入图片描述

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

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

相关文章

ERP是什么意思?

“ERP到底是一个怎么样的存在?为何有那么多的方面?如何学习?” 本文从ERP起源讲起,结合制造业离散制造与流程制造的ERP系统区别,详解ERP概念。 文章有点长,但如果你耐心看完,相信你会对ERP有一…

elasticsearch 基本语法(常见的RESTFUL API)

一 . ES的基本语法 文章目录一 . ES的基本语法1.Query String 语法2.Query DSL 语法3. Full-text queries 全文检索4. Phrase search 短语搜索5.Query and filter 查询和过滤6. Compound queries 查询7.HighLight search(高亮显示)测试数据内容:PUT /product/_doc/1…

科研试剂 Dextran-DBCO;葡聚糖-二苯并环辛烯;生物可降解高分子聚合物

DBCO修饰的葡聚糖聚 Dextran-DBCO 葡聚糖-二苯并环辛烯 名称:DBCO修饰葡聚糖 英文名称:Dextran-DBCO 外观状态:白色粉末 溶剂:DMSO等常规有机溶剂。 性状:基于不同的分子量,呈白色/类白色固体粉末&…

python爬虫(一)

一、理论 (1)URL管理器:网页之间的链接很复杂,a指向b,b指向a,如果不对其进行管理则可能导致重复爬取、循环爬取,因此单独用该模块进行管理。URL管理器有两个功能,分别是URL队列管理&…

神策营销云平台化应用实践

营销云是一个业务系统,需要贴合客户的实际业务场景,以平台化 分层设计撬动场景发挥价值主张。本文将详细介绍神策营销云在数字化转型浪潮中的沉淀。点击文末“阅读原文”立即观看完整版演讲回放。一、神策营销云产品理念“营销云是一个业务系统”&#…

规范有效的需求变更管理,分7步走。

1、建立需求基线 需要提前建立需求基线,需求基线是需求变更的依据,并需制定双方皆认可的需求变更流程。 需对用户需求进行明确分析,颗粒度越小越好。基准文件定位范围越详细,双方对需求越清晰,用户交流顺畅&#xff0c…

Go语言context包源码剖析

context包的作用 context包是在go1.7版本中引入到标准库中的 context可以用来在goroutine之间传递上下文信息,相同的context可以传递给运行在不同goroutine中的函数,上下文对于多个goroutine同时使用是安全的,context包定义了上下文类型&am…

两数之和【每日一题】

⭐前言⭐ ※※※大家好!我是同学〖森〗,一名计算机爱好者,今天让我们进入刷题模式。若有错误,请多多指教。更多有趣的代码请移步Gitee 👍 点赞 ⭐ 收藏 📝留言 都是我创作的最大的动力! 合抱之木…

MySQL数据库自动补全工具

MySQL数据库操作起来命令较多,默认无法使用tab键进行补全,所以可以安装一些实用的工具进行日常的操作 方式一:临时使用自动补全功能 mysql -u root -p --auto-rehash 方式二:永久使用自动补全功能 vi /etc/my.cnf [mysql] a…

Qt扫盲-QSqlDatabase理论总结

QSqlDatabase理论总结一、概述二、使用1. 连接数据库2. 数据库驱动3. 自定义数据驱动使用4. 注意事项三、常用的功能一、概述 QSqlDatabase类提供了通过连接访问数据库的接口。QSqlDatabase的一个实例表示一个数据库连接对象。该连接是通过Qt支持的数据库驱动程序来对数据库的…

再学C语言26:分支和跳转——goto语句

goto语句包括两个部分:goto和一个标签名称 goto point1; 为使goto语句工作,程序中必须包含由point1标签定位的其他语句 point1: printf("hello world! \n"); // 标签 冒号 一条语句 示例代码: /* test of goto */ #include &…

高一数学试题-2022年秋期末试卷

一、选择题 已知集合A{x∈N∣−2<x<52}A \{x \in \mathbf{N}| -2 < x < \frac{5}{2}\}A{x∈N∣−2<x<25​}&#xff0c;B{−2,−1,0,1,2,4}B \{-2, -1, 0, 1, 2, 4\}B{−2,−1,0,1,2,4}&#xff0c;则A∩BA \cap BA∩B A. {−1,0,1,2}\{-1, 0, 1, 2\}{−…

什么是AI预训练模型?

什么是预训练模型? 预训练 AI 模型是一种深度学习模型&#xff0c;在大型数据集上进行训练以完成特定任务&#xff0c;它可以按原样使用或定制以满足多个行业的应用需求。 想象一下&#xff0c;试图教一个蹒跚学步的孩子什么是独角兽。 一个好的起点可能是展示该生物的子图像…

[NOIP2017 提高组] 奶酪(C++,并查集)

题目背景 NOIP2017 提高组 D2T1 题目描述 现有一块大奶酪&#xff0c;它的高度为 hhh&#xff0c;它的长度和宽度我们可以认为是无限大的&#xff0c;奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系&#xff0c;在坐标系中&#xff0c;奶酪的下表面…

用纯C实现单链表

前言 什么是单链表&#xff1f;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。链表的创建 需要创建一个小项目工程 创建三个文件 ⭐SListNode.h放单链表的头文件&#xff0c;函数声明 ⭐SListNode.c放单…

springcloud之Gateway服务网关

1.Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式…

游戏行业(北区)客户沙龙丨阿里云用户组北京站

2022 年 8 月 30 日&#xff0c;阿里云在北京举办了第 9 场阿里云用户组&#xff08;AUG&#xff09;活动&#xff0c;活动主题为“游戏行业&#xff08;北区&#xff09;客户沙龙”吸引了众多技术从业者及企业管理者来到现场交流分享。 通过本次活动&#xff0c;参会企业在不同…

Java探针技术详解

简介 在JVM中运行中&#xff0c;类是通过classLoader加载.class文件进行生成的。在类加载器加载.class文件生成对应的类对象之前时&#xff0c;我们可以通过修改.class文件内容&#xff08;就是字节码修改技术&#xff09;&#xff0c;达到修改类的目的。JDK提供了对字节码进行…

rhel配置zfs

rhel配置zfs环境声明ZFS简介ZFS块指针的结构ZFS的存储池布局rhel8/rhel9安装zfs始终在启动时加载OpenZFS模块开机自启zfs服务zfs基本操作查看磁盘创建pool和ZFS文件系统创建一个存储池设置zfs挂载点为多个用户创建起始目录向池中添加更多空间修改文件系统名称删除文件系统修改存…

数据库的存储引擎和事务

Mysql默认使用INNODB存储引擎 数据库中的各表均被&#xff08;在创建表时&#xff09;指定的存储引擎来处理。 服务器可用的引擎依赖于以下因素&#xff1a;MySql的版本、服务器在开发时如何被配置、启动选项 为了解当前服务器中有哪些存储引擎可用&#xff0c;可使用show e…