2022李宏毅机器学习深度学习学习笔记第四周--Self-Supervised Learning

2023-11-04

前言

本文要讲的是Self-Supervised Learning自监督学习,首先列举了Self-Supervised Learning的模型有哪些,再通过与Supervised Learning对比讲解了什么是 Self-Supervised Learning,通过四个例子具体讲了BERT怎么用以及为什么BERT有用,最后讲了自监督学习的另外一个模型GPT。

Self-Supervised Learning

模型介绍:
ELMo(Embeddings from Language Models)
BERT(Bidirectional Encoder Representations from Transformers)
ERNIE (Enhanced Representation through Knowledge Integration)
Big Bird(Transformers for Longer Sequences)

什么是Self-Supervised Learning

Supervised Learning就是有一个model,输入是x,输出是y,要有label(标签)才可以训练Supervised Learning,比如让机器看一篇文章,决定文章是正面的还是负面的,得先找一大堆文章,标注文章是正面的还是负面的,正面负面就是label。Self-Supervised Learning就是机器自己在没有label的情况下,想办法做Supervised Learning。比如把没有标注的资料分成两部分,一部分作为模型的输入,一部分作为模型的输出,模型的输出和label越接近越好。

Masking Input

“完形填空”
BERT的架构和Transformer 的Encoder 一样,一般用在自然语言处理上。BERT的输入是一串文字,将文字的一些部分随机盖住,所谓的盖住具体有两种方法,一种就是将句子中的某个字换成一个特殊的符号mask或者另一种做法就是随机把某一个字换成另外一个字,盖住部分的输出乘一个矩阵,做softmax得到一个输出,BERT学习的目标就是输出和湾字越接近越好。
在这里插入图片描述

Next Sentence Prediction

拿出两个句子,句子中加一个特殊的符号代表分隔,如下图,当做BERT的输入,只取CLS的输出乘上一个矩阵,做二元分类问题,两个句子相接则为yes,否则no;但是这个方法不是很有用,可能是太简单了。
我们现在训练的BERT模型其实只会做2件事情:Masked token prediction:预测盖住的词是什么。Next sentence prediction:预测两个句子是不是前后接起来的。
BERT不止做填空和句子连接,也可以被用在Downstream Tasks(一些我们真正在意的任务,需要一些标注资料)下游任务,BERT可以分化成各式各样的任务,这件事叫做fine-tune,产生BERT的过程叫做pre-train预训练。
在这里插入图片描述
想测试Self-Supervised Learning模型的能力,会把它测试在多个任务上,最知名的任务集叫做GLUE(具体如下图,有九个任务)想知道BERT训练出来的模型好不好,把它作用在九个任务上,看平均正确率是多少,代表了Self-Supervised Learning模型好坏。
在这里插入图片描述
黑线代表人类在这个任务上的正确率为1,每个点代表了一个任务,蓝色的虚线代表GLUE分数的平均。可以看到在某些任务上BERT及其改良模型已经超过的人类。
在这里插入图片描述

BERT如何使用

例一
比如,输入一个句子,输出类别,判断一个句子是正面还是负面问题。
BERT没法凭空解决句子分析的问题,还需要提供一些标注资料(提供大量句子,每个句子是正面还是负面)才能够训练BERT的模型。linear部分的参数是随机初始化的,BERT的初始参数是把可以做填空题的BERT的参数拿来当做初始化的参数。
在这里插入图片描述
例二
输入一个序列,输出同样长的序列,比如POS tagging词性标注。
在这里插入图片描述
BERT处理词性标注的问题,输入三个字,每个字对应一个输出向量,把三个输出向量分别做linear transformer乘上一个矩阵,在做softmax判断属于哪一个类别,BERT本体的参数不是随机初始化的参数。
例三
输入两个句子,输出一个类别,在这里举自然语言处理的例子,机器要做的事情就是判断前提和假设是否矛盾。
BERT对这个问题的处理,给它两个句子,句子中间用SEP分隔开,只取CLS的输出,丢到linear transformer(乘一个矩阵)里面,决定输出类别(判断两个句子是否矛盾)
例四
做一个问答系统(QA),即给机器一篇文章,问一个问题,机器会给你答案。
在这里插入图片描述
输入有文章和问题,把输入丢到QA模型里面,如上图,输出两个正整数s,e,表示从文章的第S个字到第e个字串起来就是正确答案。把文章和问题用SEP隔开作为BERT输入,如下图,需要从头开始训练的东西只有两个向量,两个向量的输出和BERT的输出长度是一样的,把橙色的向量和文章的输出向量做inner product,算出三个数值,做softmax得到三个数,d2对应的向量得到的分数最高,那么s=2,起始位置为2。

蓝色部分代表答案结束的位置,蓝色向量和对应的每个黄色向量做inner product,算出三个数值,做softmax得到三个数,d3对应的向量得到的分数最高,那么e=3,结束位置为3。正确答案就是d2 d3。
在这里插入图片描述
BERT 一般pre-trainingEncoder ,也有办法pre-training decoder。
给encoder的输入故意做一些扰动弄坏,decoder的输入希望跟弄坏前的结果一样。弄坏的方法有mass(把一些地方盖起来)、把词汇的顺序弄乱等等。

为什么BERT 有用呢?

输入一串文字,对应的输出向量我们叫它embedding,这些向量代表了输入的字的意思。
在这里插入图片描述
上面说的代表字的意思就是假设把向量划出来,发现意思越相近的字,他们的向量就越接近。很多语言都有一字多义的问题,BERT可以考虑上下文,同一个字,上下文不同,它的向量embedding也不同。
假设考虑果这个字,比如喝苹果汁,苹果电脑都就到BERT里面,计算每个“果”所对应的embedding,计算两个果之间的相似度。
在这里插入图片描述
值偏黄色算出来的值越大,所以自己和自己的相似度最高,对角线为黄色的,前五个果的相似度比较高,后五个果的相似度比较高,前五个果和后五个果的相似度就比较低。
一个词汇的意思可以从它的上下文中看出来,BERT可以从上下文中抽取资讯来预测W2,如下图,像这样的想法在BERT之前就已经有了,叫Word embedding,所以BERT抽出的向量又叫contextualized word embedding。在这里插入图片描述

Multi-lingual BERT 多语言BERT

神奇之处在于拿英文的QA的资料去做训练,它自动就会学做中文的QA的问题。
在这里插入图片描述
在没有BERT之前,最强的问答模型叫QANet,正确率只有78.1,如果用BERT在中文上学会做填空题,在中文的QA资料上做fine-tune ,测试在中文的问题上,正确率只有89.1,如果是多语言的BERT,fine-tune在英文上,测试在中文上也有78.8的正确率。

GPT

Self-Supervised Learning除了BERT还有GPT系列的模型,BERT做的是填空题,GPT做的是预测接下来的token是什么。
举例,训练资料的句子是台湾大学,输入begin of sentence,GPT输出一个embedding,预测下一个出现的token“台”,详细来看就是有一个embedding(h1表示)通过一个linear transform,再通过softmax,得到一个结果。
在这里插入图片描述
后面是一样的,给“台”,预测出“湾”,“湾”预测出“大”
在这里插入图片描述
假设要GPT模型做翻译
给它一段描述,告诉他要做翻译,给出几个例子,让他直接翻译出结果,这个叫做“Few-shot” Learning,但它和一般的“Few-shot” Learning不一样,完全没有调参数的意思,所以叫“In-context” Learning,不做gradient descent;只看一个例子就知道要做翻译这件事叫“one-shot” Learning,直接叙述说要做翻译就看懂的叫“Zero-shot”Learning。
在这里插入图片描述
测试了42个任务,纵轴是正确率,三条实线是42个任务的平均正确率,分别代表了Few-shot、one-shot、Zero-shot,横轴代表了模型的大小。
在这里插入图片描述
Self-Supervised Learning不只可以用在文字上,在图像上、语音上也可以使用。

总结

通过学习了解了什么是自监督学习,是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks)。 其主要的方式就是通过自己监督自己。对于BERT来讲,其自监督训练的部分就是训练 BERT 做简单的填空题,训练好之后的BERT具有了 Word Embedding 的能力,且这里的 Word Embedding 是可以自动地考虑上下文的。这样的预训练好的 BERT 模型,只需要少量的带标签数据集,就可以在无数下游任务 (Downstream Tasks) 中完成微调 (Fine-tune),得到一个个不同的适用于下游任务的性能卓著的model。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022李宏毅机器学习深度学习学习笔记第四周--Self-Supervised Learning 的相关文章

  • 探索人工智能:深度学习、人工智能安全和人工智能编程(文末送书)

    文章目录 学习AI要看的第一本书 人工智能应当以人为本 史蒂芬 卢奇 Stephen Lucci 萨尔汗 M 穆萨 Sarhan M Musa 丹尼 科佩克 Danny Kopec 已故 通晓六点 明白人工智能是怎么回事 基本概念和历史
  • 蒙牛×每日互动合作获评中国信通院2023“数据+”行业应用优秀案例

    当前在数字营销领域 品牌广告主越来越追求品效协同 针对品牌主更注重营销转化的切实需求 数据智能上市企业每日互动 股票代码 300766 发挥自身数据和技术能力优势 为垂直行业的品牌客户提供专业的数字化营销解决方案 颇受行业认可 就在不久前举
  • RT-Thread 内核基础(五)

    使用static修饰全局变量作用 限制作用域 如果全局变量前面加上 static 关键字 那么该变量的作用域将被限制在声明它的源文件中 即它将成为一个文件作用域的静态变量 其它源文件无法访问这个变量 这对于控制变量的可见性和避免命名冲突是有
  • 1.常用单词学习

    1 1 听力练习 第一课 Av264771740 P1 Av736460000 P1 哔哩哔哩 bilibili 有推荐的吗 这个和这个都很推荐 这个多少钱 请给我这个 全部 这些一共多少钱 卫生间在哪呢 一度 願 麻烦再来一次 英語話 会
  • 论文查重部分算不算重复率呢

    大家好 今天来聊聊论文查重部分算不算重复率呢 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 可以借助此类工具 论文查重部分算不算重复率呢 在论文查重过程中 查重部分是否计入重复率是一个关键问题 本文将从七个
  • Java 学习路线 2024 最新版!

    又对上次分享的 Java 学习路线进行了简单修改完善 并增加了免登录下载和黑夜模式 这里重发一下 花了一个月零碎的时间 我根据当下 Java 后端求职和招聘的最新要求 对之前写的 Java 后端学习路线进行了全面的优化和改进 添加图片注释
  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 小白也能学会的创建Git仓库实操

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 毕业设计-基于深度学习的细菌微生物目标检测系统系统 YOLO python 目标检测 人工智能 卷积神经网络 机器学习

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 CBAM模块 2 2 损失函数 三 检测的实现 3 1 数据集 3 2 实验环境搭建 3 3 实验及结果分析 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • 如何快速申请GPT账号?

    详情点击链接 如何快速申请GPT账号 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Gemini以及大模型
  • 如何用GPT进行论文润色与改写?

    详情点击链接 如何用GPT GPT4进行论文润色与改写 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Ge
  • AI在广告中的应用——预测性定位和调整

    营销人员的工作就是在恰当的时间将适合的产品呈现在消费者面前 从而增加他们购买的可能性 随着时间的推移 营销人员能够深入挖掘越来越精准的客户细分市场 他们不仅具备了实现上述目标的能力 而且这种能力还在呈指数级提升 在AI技术帮助下 现在的营销
  • 计算机Java项目|基于SSM的微课学习系统

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 3D点云检测神技 | UFO来了!让PointPillars、PV-RCNN统统涨点!

    作者 AI驾驶员 编辑 智驾实验室 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 3D目标检测 技术交流群 本文只做学术分享 如有侵权 联系删文 在这篇论文中提出了一个关于在3D点云中检测未
  • 深度学习:人脸识别系统 Tensorflow 人脸检测 Python语言 facenet人脸识别算法 毕业设计(源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 手把手教你使用HarmonyOS本地模拟器

    我们通过下面的动图来回顾下手机本地模拟器的使用效果 本期 我们将为大家介绍HarmonyOS本地模拟器的版本演进 并手把手教大家使用HarmonyOS本地模拟器 一 本地模拟器的版本演进 2021年12月31日 经过一个版本的迭代优化 随D

随机推荐

  • vue项目中高德地图根据城市名定位到城市中心位置,并在该位置做标记

    先看效果 首先记得引入高德地图 并且要带上 plugin AMap DistrictSearch 如下
  • 加密方式

    目录 MD5和RSA 1 MD5 a MD5简介 MD5一种不可逆的加密算法 什么意思呢 网站一般会保存用户密码 为了不让数据库管理员看到用户的密码 你输入的密码是这样的 12345 网站加密后的密码可能是这样的 E10ADC3949BA5
  • 缓存穿透,缓存雪崩的四种解决方案

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前言 设计一个缓存系统 不得不要考虑的问题就是 缓存穿透 缓存击穿与失效时的雪崩效应 缓存穿透 缓存穿透是指查询一个一定不存在的数据 由于缓存是不命中时被动写的 并且出于容
  • [管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

    目录 前言 一 招聘 1 1 什么是招聘 1 2 招聘 VS 招募 1 3 甄选 1 4 招聘中的重要原则 1 5 招聘的本质 1 6 人才匹配的维度 1 7 人员招聘中的误区 二 面试 2 1 何为面试 2 2 为什么面试 2 3 面试的
  • PRESENT加密算法(c++实现)

    简介 PRESENT加密算法在2007 年由来自德国波鸿鲁尔大学的 Bogdanov 在 CHES 会议中发表 PRESENT加密算法为一种轻量级分组密码算法 采用了 置换网络 SPN 结构 一共迭代 31 轮 分块 组 长度为 64 比特
  • 局域网可用IP网段

    C类局域网专用网段 192 168 0 1 192 168 255 254 很多公司网吧都是用这个网段 hoho B类局域网专用网段 172 16 0 1 172 31 255 254 A类局域网专用网段 10 0 0 1 10 255 2
  • 工作3周年小记

    时间荏苒 入职那天的情景还历历在目 却不经意的成为了组里的老员工 一直渴望着静好的岁月 不曾想 过去的岁月这般忙碌 匆匆 似乎没有留下太多彩色的记忆 蓦然回首 做了很多项目 看到各种同事的来去 也经历了组里的盛衰 内心没有波澜 只是遗憾没有
  • chatgpt赋能python:Python编译成pyd文件是什么?如何提高SEO排名?

    Python编译成pyd文件是什么 如何提高SEO排名 Python是一种非常强大的编程语言 它非常适合用于开发各种不同类型的应用程序 然而 Python虽然易于学习和使用 但是由于它的解释性质 它的运行速度相对较慢 在某些情况下 这可能会
  • docker 覆盖 entrypoint_跟我一起学docker(八)--Dockerfile

    1 利用Dockerfile创建镜像 什么是Dockerfile 定义 Dockerfile是一个文本格式的配置文件 用户可以使用Dockerfile快速创建自定义镜像 基本结构 Dockerfile由一行行的命令语句组成 并且支持以 开头
  • 一文解读Vision Transformer(ViT)

    前言 Vision Transformer 论文 https arxiv org pdf 2010 11929 pdf 跟李沐学AI https www bilibili com video BV15P4y137jb spm id from
  • 【ThreadPoolTaskSchedule】实现手动开启关闭定时任务

    最近在公司呢 有一个需求 大概意思就是需要我去调用远程接口 但如果出现异常或者响应失败的时候 就需要开启重试机制 直到返回成功的响应为止 我很疑惑 按理说这种情况通常都应该有一个最大重试次数吗 最终在我像组长确认这个需求之后 还是要求我按照
  • ELK 日志分析系统

    ELK 日志分析系统 2015 10 08 13 18 58 标签 elk 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 http 467754239 blog 51cto com 4
  • 软件测试 - 边界值法

    文章目录 介绍 等价类划分法的区别 常见的边界值 步骤 案例 介绍 边界值分析法就是对输入或输出边界值进行测试的 也是一种黑盒测试 边界值分析法通常作为等价类划分法的补充 其测试用例来自等价类的边界 长期的经验得知 大量的错误是发现在输入或
  • 二叉树的遍历方式(前序遍历、中序遍历、后序遍历、层序遍历、深度优先遍历、广度优先遍历)

    前序 中序 后序 层序 一 前序遍历 步骤 根节点 gt 左子节点 gt 右子节点 适用场合 在第一次遍历到节点时就执行操作 一般只是想遍历执行操作 或输出结果 可选用前序遍历 二 中序遍历 步骤 左子节点 gt 根节点 gt 右子节点 适
  • 服务器虚拟化集群部署

    多服务器虚拟化集群部署 介绍 服务器虚拟化有有利于节省服务器开支 提高服务器资源利用率 将服务器物理资源逻辑化 动态分配内存 cpu 磁盘等物理资源 以dell的R730服务器为例 VMware ESXi5 5虚拟化软件 虚拟化服务器 1
  • ps命令解析

    ps命令用于报告当前系统的进程状态 可以搭配kill指令随时中断 删除不必要的程序 ps命令是最基本同时也是非常强大的进程查看命令 使用该命令可以确定有哪些进程正在运行和运行的状态 进程是否结束 进程有没有僵死 哪些进程占用了过多的资源等等
  • [mp4]The audio codec for mp4 atom

    In the esds atom there are a few fields of relevance to determining the codec used The first byte of content of the esds
  • 基于Spring Cloud Alibaba搭建nacos

    关系 Spring Boot是框架 将各个组件集合在一起 方便快速开发web应用 Spring Cloud基于Spring Boot 限定了一组特定的组件 从而可以方便地进行微服务工程的开发 Spring Cloud Alibaba在Spr
  • C/C++中如何获取数组的长度

    1 算术表达式 include
  • 2022李宏毅机器学习深度学习学习笔记第四周--Self-Supervised Learning

    文章目录 前言 Self Supervised Learning 什么是Self Supervised Learning Masking Input Next Sentence Prediction BERT如何使用 为什么BERT 有用呢