当前位置: 首页 > article >正文

【王树森】BERT:预训练Transformer模型(个人向笔记)

前言

  • BERT:Bidirectional Encoder Representations from Transformer
  • BERT是用来预训练Transformer模型的encoder的
  • 本节课只讲述主要思想
  • BERT用两个主要思想来训练Transformer的encoder网络:①随机遮挡单词,让encoder根据上下文来预测被遮挡的单词。②把两句话放在一起,让encoder判断是不是原文相邻的两句话

Randomly mask a word

  • 随机遮挡一个单词,让神经网络来预测这个单词是什么:
    在这里插入图片描述
  • 我们把cat遮住后如下图所示:我们把原来的 x 2 x_2 x2 变为了 x M x_M xM,由前几节课transformer的原理可以知道:最后的输出不仅仅取决于 x 2 x_2 x2 x M x_M xM,而是包含整句话的信息,最后我们把 u M u_M uM 输入到 Softmax 后,期望其中的 cat 的概率是最大的
    在这里插入图片描述
  • 我们把被遮住的单词 cat 的one-hot向量称为 e e e p p p 为上面 Softmax 输出的概率分布向量,那么我们要让 p p p 尽可能地接近 e e e,于是我们可以把它丢进交叉熵损失函数里面进行反向传播,梯度下降:
    在这里插入图片描述
  • BERT 不需要人为打标,可以自动遮住单词然后生成标签。因此可以拥有很多的数据,可以训练很大的模型

Predict the Next Sentence

  • 给定随机的两句话,问这两句在文中是否是相邻的
    在这里插入图片描述
  • 其中输入时两句话,其中 [CLS] 时分类的标号,[SEP] 是分句的标号在这里插入图片描述
  • 该方法会在原来的文本随机选取句子,其中一半是相邻的,一半不是相邻的
    在这里插入图片描述
    在这里插入图片描述
  • CLS符号在经过 Embedding 和 Transformer 的 Encoder 后会生成一个向量 c c c,其由一个二分类器来计算值,虽然由 attention 机制我们可以知道: c c c 还依赖于文中的其他信息,这样就能学到两句话的信息,这样我们就可以让 c c c 和标签做交叉熵损失,然后就能反向传播和梯度下降来训练。相邻两句话通常含有关联,这样训练就能让 Embedding 和 Encoder 学到这种关联信息。
    在这里插入图片描述

Combining the two methods

  • 把上面两个任务结合起来:这样就有多个标签
    在这里插入图片描述
    在这里插入图片描述
  • 假设我们有两个单词被遮住了,那么就有三个任务,三个损失函数,那么最后的损失函数就是三个损失函数之和
    在这里插入图片描述
  • BERT 的优点在于不用人工标注数据,因为人工标注数据是非常昂贵的。而 BERT 可以自动生成标签,这是一个非常好的性质
  • 缺点在于 BERT 的计算代价很大:
    在这里插入图片描述

http://www.kler.cn/a/293133.html

相关文章:

  • CSS回顾-长度单位汇总详解
  • STM32问题集
  • 数据挖掘(九)
  • nginx配置负载均衡详解
  • 知识图谱6:neo4j查询语句
  • 【计算机网络】【网络层】【习题】
  • 2024 年高教社杯全国大学生数学建模竞赛题目-C 题 农作物的种植策略
  • 【Cesium实体创建】
  • HTML:charset讲解
  • Elasticsearch 再次开源
  • 开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
  • 计算机视觉中,什么是上下文信息(contextual information)?
  • uuid uuid uuid
  • SpringBoot总结
  • 理解 Axios、jQuery Ajax 和 Fetch 的差别
  • C/C++内存详解
  • Qt/QML学习-Tumbler
  • 电商创新:基于亚马逊国际商品详情API返回值的策略
  • 数学基础 -- 线性代数之LU分解
  • DCaaS:数据中心解决方案的经济高效选择
  • 【60天备战软考高级系统架构设计师——第三天:软件工程原则与常用方法】
  • python恶搞无限弹窗脚本
  • 监理工程师职业资格考试
  • 读书笔记:《深入理解Java虚拟机》(6)
  • AcWing算法基础课-786第k个数-Java题解
  • Large Language Models(LLMs) Concepts