BERT的学习

BERT

1.前言

self-supervised learning是一种无监督学习的特殊形式,算法从数据本身生成标签或者目标,然后利用这些生成的目标来进行学习。(也就是说数据集的标签是模型自动生成的,不是由人为提供的。)例如,可以通过在图像中遮挡一部分内容来创建自监督任务,让模型预测被遮挡的内容。self-supervised learning 应用十分广泛,不仅用于文字方面,还可以用于语音和图像上。

在这里插入图片描述

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)

GPT-3 —> 有 175 billion 个参数

2.BERT结构

BERT 是一个非常巨大的模型,有340 million 个参数。BERT的架构就是 Transformer 的 Encoder 部分(self-attention,residual,normalization)。

训练BERT有俩种方式:Masking Input 和 Next Sentence Prediction

1.Masking Input

在这里插入图片描述

BERT 的输入,某些部分被随机的盖住,盖住有两种方式(随机的选择一种盖住方式):

  • MASK:将句中的一些符号换为MASK符号。(这个MASK是一个新的符号,字典中没有的,表示盖住)
  • Random:随机把某一个字换为另外一个字(随机从字典中挑选一个词盖住)。

输入通过BERT后就得到了对应的Sequence(但是只关注输入被盖住所输出的 vector),然后通过Linear transformer(Linear transformer的意思就是乘以一个矩阵),并进行Softmax,就可以得到一个有关所有符号的概率分布。在训练的时候,将真实值与预测出来的值进行对比,通过minimize cross entropy不断缩小损失,进而提升模型的ACU。

2.Next Sentence Prediction

在这里插入图片描述

从资料库里面随机选两个句子,在句子中间加入一个特殊符号 [SEP] 来代表分割。在最前面加入一个特别的符号 [CLS]。将这个整体送入BERT中,在得到的sequence中只关注 [CLS] 对应输出的vector。然后经过一个Linear transformer,来进行一个二元的预测(Yes or No),表示这两个句子是否是相连接的。

3.Downstream Tasks

Downstream tasks就是利用BERT真正做的任务。而不是上面的预测某个Masked token,或者判断两句话是否是有连接关系的任务。

BERT 分化为各种任务叫做Fine-tune,中文叫做微调。产生BERT的过程叫做 Pre-train。

3.1 Sentiment analysis

在这里插入图片描述

BERT初始化用的参数是pre-train的初始化参数(也就是用于填空任务的参数),Linear用的参数是Random初始化参数。

3.2 POS tagging(词性标注)

在这里插入图片描述

3.3 NLI(自然语言推理)

在这里插入图片描述

在这里插入图片描述

3.4 Extraction-based Question Answering

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上面的那两个向量是随机初始化的,BERT初始化依旧是利用pre-train的参数。

4.为什么BERT有用?

BERT输出的向量代表了输入的意思。具有相似含义的符号,输出具有相似的嵌入向量。而且在输出的时候还考虑了上下文,因为内部有一个self-attention的结构。

在这里插入图片描述

5.Multi-lingual BERT

Multi-lingual BERT是一个多语言的BERT模型,再训练BERT的时候是通过许多不同的语言训练出来的。尽管是不同语言,但是每个词的意思是相近的,所以输出的嵌入向量距离就很近,因此效果较好。

在这里插入图片描述

6.GPT

BERT做的是填空题,GPT做的就是预测接下来出现的token是什么。

在这里插入图片描述

首先给一个开始标记,然后通过Linear Transform输出一个embedding向量h1,然后经过Softmax得到一个概率分布,概率最大的就是下一个token的值。(在训练的时候,GPT类似于transformer的decoder,不看右边的输入),下一次将和台输入进去,重复上面的过程。


😃😃😃

本文是根据台大李宏毅教授的BERT课程所做的笔记,有想学习的小伙伴,大家直接去看这个课程就可以了。点击跳转

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

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

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

相关文章

万能刷题小程序源码系统:功能强大+试题管理+题库分类+用户列表 附带完整的搭建教程

随着互联网技术的不断进步,线上学习已成为越来越多人的选择。刷题作为提高学习效果的重要方式,一直受到广大学生的喜爱。然而,市面上的刷题软件虽然繁多,但功能各异,质量参差不齐,使得很多用户在选择时感到…

STM32F4系列单片机库函数模板工程创建

目录 一、工程配置 1、新建工程 2、芯片选择 3、工程子文件夹创建 (1)FWLIB文件夹添加文件 (2)CORE文件夹添加文件 (3)USER文件夹添加文件 4、工程设置 (1)工程中添加文件夹…

【前端技术】Vite vs Webpack

✨专栏介绍 在当今数字化时代,Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序,就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术,以及各种框架、库和工具…

Banana Pi BPI-M4 Berry 全志H618开发板快速使用手册

介绍 BPI-M4 Berry 开发板是一款功能强大的单板计算机 (SBC),利用 Allwinner H618 片上系统 (SoC) 的功能为开发人员提供令人印象深刻的性能和丰富的功能。与 Raspberry Pi 4b 类似,BPI-M4 Berry 拥有可比的 CPU 性能、LPDDR4 内存支持、集成 WiFi 和蓝…

人机验证码生成与验证:提升系统安全性

一、前言 为了防止机器人或脚本程序自动化攻击和滥用系统资源,很多网站和应用程序需要使用验证码来判断用户是否为真人。 一般登录都要求用户手动输入以验证身份的安全措施。验证码是一种通过生成包含随机字符的图像或文本,通常包含了不同大小写字母、数…

内网穿透的应用-Ubuntu安装XRDP远程桌面结合内网穿透实现远程桌面Ubuntu

文章目录 一、 同个局域网内远程桌面Ubuntu二、使用Windows远程桌面连接三、公网环境系统远程桌面Ubuntu1. 注册cpolar账号并安装2. 创建隧道,映射3389端口3. Windows远程桌面Ubuntu 四、 配置固定公网地址远程Ubuntu1. 保留固定TCP地址2. 配置固定的TCP地址3. 使用…

工业4.0、 工业互联网、智能制造与设备通信协议 Modbus OPC MQTT

工业4.0是指第四次工业革命的核心概念,它代表了制造业的一种转型趋势,即通过深度整合数字化、互联和智能化技术,实现生产方式的革新。以下是对工业4.0主要特点的概述: 数字化:将物理世界与虚拟世界紧密连接&#xff0c…

ros2+gazebo+urdf:ros2机器人使用gazebo的urdf文件中的<gazebo>部分官网资料

原文链接SDFormat extensions to URDF (the gazebo tag) — Documentation 注意了ros2的gazebo部分已经跟ros1的gazebo部分不一样了: Toggle navigation SpecificationAPIDocumentationDownload Back Edit Version: 1.6 Table of C…

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测

多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测 目录 多维时序 | Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-GCNN粒子群优化分组卷积神经网络多…

Qt/C++音视频开发61-多屏渲染/一个解码渲染到多个窗口/画面实时同步

一、前言 多屏渲染就是一个解码线程对应多个渲染界面,通过addrender这种方式添加多个绘制窗体,我们经常可以在展会或者卖电视机的地方可以看到很多电视播放的同一个画面,原理应该类似,一个地方负责打开解码播放,将画面…

谷歌 SGE 和生成式 AI 在搜索中:2024 年会发生什么

2024 年,Google 的搜索生成体验将如何影响营销?探索 AI 驱动的搜索趋势、SERP 中的 SGE、自然流量影响等。 最初,Labs 中的 Google 搜索生成体验 (SGE) 实验预计将于 2023 年 12 月“结束”。但随着谷歌实验室网站的最…

nodejs+vue+微信小程序+python+PHP的勤工俭学系统-计算机毕业设计推荐

微信小程序端 (1)首页。顶部展示公告,下方展示兼职信息详情,按时间倒序,求职者可以根据兼职内容信息和行业进行模糊筛选用人单位的招聘信息,点击某条信息可查看其信息内容和用人单位的信息(包括…

用C语言找最大值最小值极值问题---------(C每日一编程)

一&#xff0c;输入十个数&#xff0c;输出其中的最大值 采用打擂台的方法 void main() {int i, max, a[10];for (i 0; i < 10; i)scanf("%d", &a[i]);max a[0];for (i 1; i < 10; i)if (a[i] > max)max a[i];printf("%d\n", max); } 二…

蓝牙物联网在汽车领域的应用

I、蓝牙的技术特点 ​ 1998 年 5 月&#xff0c;瑞典爱立信、芬兰诺基亚、日本东芝、美国IBM 和英特尔公司五家著名厂商&#xff0c;在联合拓展短离线通信技术的标准化活动时提出了蓝牙技术的概念。蓝牙工作在无需许可的 2.4GHz 工业频段 (SIM)之上(我国的频段范围为2400.0~248…

Text-to-SQL小白入门(十)RLHF在Text2SQL领域的探索实践

本文内容主要基于以下开源项目探索实践&#xff0c; Awesome-Text2SQL:GitHub - eosphoros-ai/Awesome-Text2SQL: Curated tutorials and resources for Large Language Models, Text2SQL, Text2DSL、Text2API、Text2Vis and more.DB-GPT-Hub&#xff1a;GitHub - eosphoros-ai…

关于“Python”的核心知识点整理大全41

目录 scoreboard.py game_functions.py game_functions.py 14.3.8 显示等级 game_stats.py scoreboard.py scoreboard.py scoreboard.py game_functions.py game_functions.py alien_invasion.py 14.3.9 显示余下的飞船数 ship.py scoreboard.py 我们将最高得分圆整…

PyTorch深度学习实战(28)——对抗攻击(Adversarial Attack)

PyTorch深度学习实战&#xff08;28&#xff09;——对抗攻击 0. 前言1. 对抗攻击2. 对抗攻击模型分析3. 使用 PyTorch 实现对抗攻击小结系列链接 0. 前言 近年来&#xff0c;深度学习在图像分类、目标检测、图像分割等诸多领域取得了突破性进展&#xff0c;深度学习模型已经能…

常见的一些库函数

什么是库函数&#xff1a; 库函数是一组预先定义好的函数&#xff0c;可以通过包含相应的头文件来使用。它们提供了各种常用的功能和算法&#xff0c;使得编程更加方便和高效。 库函数的作用如下&#xff1a; 提供常用功能&#xff1a;库函数提供了各种常用的功能&#xff0c;…

记一次应急响应练习(Linux)

记一次应急响应练习(Linux) Linux&#xff1a; 请提交攻击者的IP地址 答&#xff1a; 192.168.31.132 思路&#xff1a; 通过查看历史命令和开放的8080端口看到这台主机上运行的是Tomcat服务。并且在历史命令中看到了Tomcat的安装路径。那么就算是找到了日志的查看点了&#x…

设计模式-依赖注入模式

设计模式专栏 模式介绍模式特点应用场景依赖注入和控制反转的区别代码示例Java实现依赖注入模式Python实现依赖注入模式 依赖注入模式在spring中的应用 模式介绍 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09;是一种面向对象编程中的设计模式&…