学习笔记|BERT——自监督学习的典范

article/2025/8/27 9:47:00

1. 自监督学习的概念

在机器学习中,最常见的是监督学习(Supervised learning)。假设模型的输入是 x x x,输出是 y y y,我们如何使模型输出我们期望的 y y y呢?我们得拥有已标注的(label)的数据,例如图片识别,我们得有一堆的图片,并且这些图片被标注了是什么。然后通过这些已标注的数据对模型进行训练,使模型的输出 y y y尽可能地接近标签 y ′ y' y,这是监督学习。那么什么是自监督学习呢?假设我们拥有一堆的数据,但是没有标注,我们想办法将这堆数据 x x x分成两个部分,一部分作为模型的输入 x ′ x' x,一部分作为模型的标签 x ′ ′ x'' x。然后对模型进行训练,使模型地输出 y y y尽可能地接近标签 x ′ ′ x'' x。注意这里 x ′ ′ x'' x不是人标注的,而是数据里本来就有的。这说起来有点抽象,但是通过BERT这个例子就很容易明白了。
监督学习和自监督学习

2. BERT概述

BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder。因此BERT的网络架构和Transformer的Encoder是一样的,关于Transformer的细节请看上一节。因此BERT的任务就是输入一个序列,然后输出一个序列,输出序列和输入序列的长度是一样的。通过Transformer中的自注意力机制,BERT具有考虑序列全局的能力。由于BERT一般用于自然语言处理,所以BERT的输入一般使一排文字,然后输出一组向量,向量的个数和文字的个数是一样的。

3. BERT的训练

所谓自监督学习,和监督学习不同的地方就在于训练。BERT的训练方式有两种:Masked Language Model和Next Sentence Prediction

3.1 Masked Language Model

Masked Language Model的工作机制如下图所示,类似于让BERT做完形填空。在训练过程中,随机盖掉句子中的一些字,这些被盖掉的字要么替换成一个特殊符号“MASK”,要么随机替换成其他字。然后将替换后的句子当成BERT的输入,被盖掉的字对应的输出向量通过一个Linear层和softmax操作之后输出一个概率分布。前面讲transformer的时候,讲到了这个概率分布向量的长度和字典的长度是一样的,每个字都有一个对应的概率,概率最大的字就是最后的预测结果。在训练过程中,要使预测输出的字和被盖掉的字尽可能一致。这其实就是一个分类问题,类别的数目和字典的大小一样,损失函数是交叉熵。通过这种简单的方式就实现了自监督学习,它不需要我们去人工标注数据,它的标签来自于数据本身,这是非常巧妙的。
Masked Language Model

3.2 Next Sentence Prediction

Next Sentence Prediction的工作机制如下图所示。在Next Sentence Prediction的训练任务中,BERT的输入是两个句子加上两个特别的符号“CLS”,“SEP”。其中“CLS”是一个开始符号,“SEP”将两个句子隔开。Next Sentence Prediction的任务是要预测这两个句子是否是相接的,“CLS”输出的向量通过Linear层后输出“yes”和“no”,“yes”表示两个句子是前后相接的,“no”则相反。训练数据的正例是正常的一篇文章中上下连贯的两句话,负例是将正常相接的下一句话随即替换成另外一句话。但是研究表明,这种训练任务对于BERT的训练用处不大。因此BERT的训练主要还是依赖于Masked Language Model。
Next Sentence Prediction

4. BERT的应用

BERT在自然语言处理领域基本上都可以用上,其应用机制如下图所示,分为预训练(Pre-train)微调(Fine-tune) 两个部分。
预训练(Pre-train) 就是指上面所说的Masked Language Model和Next Sentence Prediction两个自监督训练任务。这部分工作实际上由一些搞深度学习的大户做好了,比如google、讯飞等,并不需要我们自己训练,我们只需要将人家训练好的BERT拿来用就行了。
微调(Fine-tune) 是指根据我们的下游任务(如机器翻译、智能问答、文本标注等),再利用下游任务的少量标注数据对下游任务的参数进行微调即可。
BERT的应用机制
下面以“基于抽取的智能问答(Extraction-based Question Answering)”为例说明BERT的应用机制。“基于抽取的智能问答”类似于阅读理解,让机器读一段文字,然后提出几个问题,机器从阅读到的文字中抽取答案。对于该任务,模型的输入就是文章和问题,输出是两个整数值“ s s s”和“ e e e”。“ s s s”代表答案在文章中的起始位置,“ e e e”代表答案在文章中的结束位置。例如下图中第一个问题的答案是“gravity”,而“gravity”位于文章的第17个字符(不含标点),因此模型的输出“ s = 17 s=17 s=17”,“ e = 17 e=17 e=17”。同理,第三个问题的答案是“within a cloud”,而它们位于第77-79个字符,因此模型的输出“ s = 77 s=77 s=77”,“ e = 79 e=79 e=79”。
基于抽取的智能问答
处理上述这个问题的做法如下图所示,模型的输入是问题和文章,问题和文章通过符号“SEP”隔开。然后随机初始化两个向量(图中的橘黄色向量和蓝色向量),向量的长度和BERT输出向量的长度一样,然后将这两个向量分别去和文章输出的向量做点积,然后通过Softmax输出概率分布,概率最大的分别是答案的起始位置和结束位置。这个任务中训练的参数只有随机初始化的两个向量,BERT中的参数都不需要训练的。
基于抽取的智能问答的解法
可以看出利用BERT的预训练,做下游任务时就很简单了,训练的参数也非常少,而且实践证明这样做的效果是非常好的,超过了传统的一些做法。这就是BERT的魅力所在。


http://chatgpt.dhexx.cn/article/VQDouPMv.shtml

相关文章

supervised使用教程

安装 平台要求 引自官网(supervised.org/introductio…):Supervisor已经过测试,可以在Linux(Ubuntu 9.10),Mac OS X(10.4 / 10.5 / 10.6)和Solaris(对于Int…

如何使用镜像网站?

1. 使用清华大学镜像网站下载镜像 官网:清华大学镜像站 例如centOS: 1)查找centOS 2)找到对应的版本号 3)找到镜像地址 4)找到自己要下载的版本 DVD:标准版 mini:迷你版 everyt…

如何快速镜像一个网站

仅需下述几个步骤即可快速镜像一个网站,镜像的内容包括html,js,css,image等静态页面资源,暂时无法镜像有用户交互的动态页面。 1、安装wget工具,以ubuntu系统为例 sudo apt-get install wget 2、下载网站…

【数学与算法】泰勒公式_线性化_雅各比矩阵_黑塞矩阵

本文的所涉及的知识点,如果有相关知识盲区,请参考: 微分方程通杀篇 如何区分线性系统与非线性系统 本文是观看B站视频【工程数学基础】2_线性化_泰勒级数_泰勒公式所作的笔记。 其中, k k k 是第k个点, n n n是指每个点…

机器学习中的数学基础 Day1

O(n) o(n) order&#xff1a;阶&#xff0c;多次式阶&#xff0c;x^2x1 阶2 f(x)O(g(x))&#xff1a;存在x0、M&#xff0c;使得x>x0时&#xff0c;f(x)<Mg(x) 2x^2 O(x^2),M2,x0任意 x^2x1 O(x^2),M2,x010 f(x)o(g(x)):对于任意的ε&#xff0c;存在x0&#xff0…

Hessian矩阵正定与函数凹凸性的关系

1. 从矩阵变换的角度 首先半正定矩阵定义为: 其中X 是向量&#xff0c;M 是变换矩阵 我们换一个思路看这个问题&#xff0c;矩阵变换中&#xff0c;代表对向量 X进行变换&#xff0c;我们假设变换后的向量为Y&#xff0c;记做 于是半正定矩阵可以写成&#xff1a; 这个是不是很…

Jacobian and Hessian(雅克比矩阵和海塞矩阵)

雅克比矩阵&#xff08;Jacobian &#xff09; 雅可比矩阵 是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式。 假设 F : R n → R m F: R_n \to R_m F:Rn​→Rm​ 是一个从欧式 n 维空间转换到欧式 m 维空间的函数. 这个函数由 m 个实函数组成:&#xff0c;记…

雅可比(jacobian)、黑塞矩阵(Hessian)

一、雅克比矩阵 雅可比矩阵和行列式&#xff08;Jacobian&#xff09;_雅可比行列式_JasonKQLin的博客-CSDN博客 在牛顿迭代法、L-M中求解非线性方程组&#xff0c;都会用到雅可比(一阶偏导数) 和黑塞矩阵&#xff08;2阶偏导数&#xff09;矩阵。 雅可比矩阵 是一阶偏导数以一…

math: 雅可比矩阵 黑塞矩阵

雅可比矩阵&#xff1a;一个多元函数的一阶偏导数以一定方式排列成的矩阵 黑塞矩阵&#xff1a;一个多元函数的二阶偏导数以一定方式排列成的矩阵 雅可比矩阵 在向量微积分中&#xff0c;雅可比 矩阵是一阶 偏导数以一定方式排列成的矩阵&#xff0c;其行列式称为 雅可比行列式…

黑塞矩阵 Hessian Matrix

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 在机器学习课程里提到了这个矩阵,那么这个矩阵是从哪里来,又是用来作什么用呢?先来看一…

黑塞矩阵(海森矩阵,Hessian Matrix)与牛顿法最优化

黑塞矩阵 黑塞矩阵&#xff08;Hessian Matrix&#xff09;&#xff0c;又译作海森矩阵、海瑟矩阵、海塞矩阵等&#xff0c;是一个多元函数的二阶偏导数构成的方阵&#xff0c;描述了函数的局部曲率。黑塞矩阵最早于19世纪由德国数学家Ludwig Otto Hesse提出&#xff0c;并以其…

鞍点的判断(黑森矩阵/黑塞矩阵)

判断鞍点的一个充分条件是&#xff1a;函数在一阶导数为零处&#xff08;驻点&#xff09;的黑塞矩阵为不定矩阵。 半正定矩阵&#xff1a; 所有特征值为非负。 半负定矩阵&#xff1a;所有特征值为非正。 不定矩阵&#xff1a;特征值有正有负。 容易解出特征值一个为2,一个为…

Hessian 矩阵(海塞矩阵)

1. 海塞矩阵定义&#xff1a; 它是一个由多变量实值函数的所有二阶偏导数组成的方块矩阵 2. 数学描述&#xff1a; 假设有一实值函数 f(x1,x2,…,xn) &#xff0c;如果 f的所有二阶偏导数都存在并在定义域内连续&#xff0c;那么函数 f的海塞矩阵为&#xff1a; 或者使用下…

函数凹凸性与黑塞矩阵

1 同济大学高等数学定义 2 国际上的定义 3 黑塞矩阵 1 同济大学高等数学定义 我们从几何上看到&#xff0c;在有的曲线弧上&#xff0c;如果任取两点&#xff0c;则联结这两点间的弦总位于这两点间的弧段的上方&#xff0c;如图3-8&#xff08;a&#xff09;&#xff1b;而有…

由黑塞(Hessian)矩阵引发的关于正定矩阵的思考

最近看论文&#xff0c;发现论文中有通过黑塞(Hessian)矩阵提高电驱系统稳定性的应用。所以本篇主要从Hessian矩阵的性质出发&#xff0c;对其中正定矩阵的判定所引发的想法进行记录。 (其实看论文出现黑塞很惊奇&#xff0c;因为前不久刚读了作家黑塞的《德米安&#xff1a;彷…

Hessian matrix黑塞矩阵(海森矩阵)和雅克比矩阵Jacobian matrix

对梯度再求导生成的矩阵为黑塞矩阵 雅克比矩阵是一个m*n的矩阵 目标函数的梯度的雅克比矩阵就是目标函数的Hessian矩阵。 对于黑塞矩阵的特征值&#xff1a;就是形容在该点附近特征向量的凹凸性。特征值越大&#xff0c;凸性越强。 如果是正定矩阵&#xff0c;则临界点处是一个…

黑塞矩阵和雅可比矩阵理解

文章目录 1&#xff1a;一元泰勒展开公式2&#xff1a;二元泰勒展开公式3&#xff1a;二元函数的黑塞矩阵4&#xff1a;多元函数的黑塞矩阵5&#xff1a;多元函数的雅可比矩阵&#xff08;Jacobian矩阵&#xff09;参考文献 个人笔记&#xff1a; 1&#xff1a;一元泰勒展开公…

正定矩阵、正定矩阵与极值的关系、黑塞矩阵、牛顿法

目录 正定矩阵 正定矩阵与极值的关系 黑塞矩阵&#xff08;Hessian Matrix&#xff09; 牛顿法 正定矩阵 &#xff08;1&#xff09;广义定义&#xff1a;设A是n阶方阵&#xff0c;如果对任何非零向量X&#xff0c;都有&#xff0c;其中 表示X的转置&#xff0c;就称A为正…

Hessian 矩阵(黑塞矩阵)以及hessian矩阵奇异的用法

Hessian Matrix&#xff08;黑塞矩阵、海森矩阵、海瑟矩阵、海塞矩阵 etc.&#xff09;,它是一个多元函数的二阶偏导数构成的方阵&#xff0c;用以描述函数的局部曲率。黑塞矩阵最早于19世纪由德国数学家Ludwig Otto Hesse提出&#xff0c;并以其名字命名。黑塞矩阵常用于牛顿法…

1、黑塞矩阵Hessian matrix

1、定义 2、性质 3、应用 https://zh.wikipedia.org/wiki/%E9%BB%91%E5%A1%9E%E7%9F%A9%E9%99%A3