bert中为什么要这么msdk(80% mask, 10% 随机替换,10% 保持原词)

2023-11-09

bert在训练阶段不是将15%的词汇MASK掉,从而采用自监督的方式训练模型,那我直接将这15%mask掉不就好了吗,为什么又要进行80% mask,10% 随机替换,10% 保持原词呢?起初我看到的时候也比较迷惑,下面是我的理解。

一、训练阶段与测试、微调阶段的不对等关系

在训练阶段mask掉词汇,输入是:“我”“喜欢”“吃”“鱼”“但是”“mask”“的”“刺”“很多”,对吧,这样通过自己监督训练,不断调整模型的权重,提高模型的性能。

但是在测试阶段,我们是怎么测试的,依旧是输入带mask的句子,通过预测mask的单词,来评判准确度吗,这不有点多此一举吗。。。测试阶段应该是直接输入完整的句子,分词后得到token,然后在得到token对应的词向量,然后在过一个多分类器(类别个数为词袋的大小),然后得到Y_hat_test,之后与Y_test求差值,评判模型。整个过程不涉及mask。

微调阶段也一样,我们也是输入一句话,然后得到对应的词向量,之后就拿着词向量去做别的事情了,输入中也没有mask。

这就会形成一种不对等关系,训练阶段和测试、微调阶段不对等,我们又没法完全消除这种不对等(①训练时不做mask:不行,②测试、微调也做上mask:也不行),我们就通过这种80% mask,10% 随机替换,10% 保持原词的方式减少不对等关系。

二、采用这种方式可以使bert更注重语义理解

此外呢,如果我们在训练时,不是用这种方式,而是全部mask掉的话,模型就会把虽有的注意力集中到“mask”这个词汇上了,模型就能知道不出现“mask”的地方我不用管,啥时候出现“mask”我在管,这对模型提取语义关系是不利的。

使用(80% mask,10% 随机替换,10% 保持原词)的方式之后呢,模型不只是需要在“mask”位置做工作,还要时刻预防着随机替换的情况呀,也就是检查这个句子对不对,这就大大提高了模型提取语义效果的能力。

在这里分享一位up主的讲解视频,描述的更加生动:04 BERT 之为什么要做语言掩码模型(MLM)?_哔哩哔哩_bilibili

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

bert中为什么要这么msdk(80% mask, 10% 随机替换,10% 保持原词) 的相关文章

  • 如何指定聚类的距离函数?

    我想对给定距离的点进行聚类 奇怪的是 似乎 scipy 和 sklearn 聚类方法都不允许指定距离函数 例如 在sklearn cluster AgglomerativeClustering 我唯一可以做的就是输入一个亲和力矩阵 这将非常
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • ValueError:请使用“Layer”实例初始化“TimeDistributed”层

    我正在尝试构建一个可以在音频和视频样本上进行训练的模型 但出现此错误ValueError Please initialize TimeDistributed layer with a Layer instance You passed Te
  • 如何删除 PyCharm 中的项目?

    如果我关闭一个项目 然后删除该项目文件夹 则在 PyCharm 重新启动后 会再次创建一个空的项目文件夹 只需按顺序执行以下步骤即可 他们假设您当前在 PyCharm 窗口中打开了该项目 单击 文件 gt 关闭项目 关闭项目 在 PyCha
  • 如何为未捕获的异常处理程序编写单元测试

    我有一个函数可以捕获uncaught例外情况 如下 有没有办法编写一个单元测试来执行uncaught exception handler 功能正常 但测试正常退出 import logging def config logger logge
  • 如何调整 matplotlib 单选按钮的大小和纵横比?

    我已经尝试了几个小时来使简单的单选按钮列表的大小和纵横比正确 但没有成功 首先 导入模块 import matplotlib pyplot as plt from matplotlib widgets import RadioButtons
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • 如何使用 opencv python 计算乐高积木上的孔数?

    我正在开发我的 python 项目 我需要计算每个乐高积木组件中有多少个孔 我将从输入 json 文件中获取有关需要计算哪个程序集的信息 如下所示 img 001 red 0 blue 2 white 1 grey 1 yellow 1 r
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 更改QLineEdit的ClearButton图标

    我想在Windows 10 1909 64位 上的Python 3 8和PyQt5 5 15 0 上更改我的QLineEdit的ClearButton图标 稍后我想在Linux上运行代码 我尝试应用此处找到的代码 如何在 QLineEdit
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • Python 2 的 `exceptions` 模块在 Python3 中丢失了,它的内容到哪里去了?

    一位朋友提到 对于 Python 2 假设您在命令行上的路径环境变量中有它 pydoc exceptions 非常有用 知道它应该可以为他每周节省几分钟的网络查找时间 我自己每周都会用谷歌搜索一次例外层次结构 所以这对我来说也是一个有用的提
  • 为什么这个 if 语句会导致语法错误

    我正在尝试设置一个 elif 语句 如果用户按下 Enter 键 代码将继续 但是我不断遇到语法错误 GTIN 0 while True try GTIN int input input your gtin 8 number if len
  • 使用seaborn绘制简单线图

    我正在尝试使用seaborn python 绘制ROC曲线 对于 matplotlib 我只需使用该函数plot plt plot one minus specificity sensitivity bs where one minus s
  • 如何在 Seaborn 中的热图轴上表达类

    我使用 Seaborn 创建了一个非常简单的热图 显示相似性方阵 这是我使用的一行代码 sns heatmap sim mat linewidths 0 square True robust True sns plt show 这是我得到的
  • 无法在 PyCharm 版本 9.3.3 中安装 NumPy。 Python版本3.8.2

    在 PyCharm 中安装 NumPy 时出错 尝试安装 Microsoft Visual C 14 0 还是行不通 NumPy 正在通过命令安装pip3 install numpy在 cmd 终端中 但是当尝试将其安装在 PyCharm
  • PyInstaller“ValueError:源代码字符串不能包含空字节”

    我得到了一个ValueError source code string cannot contain null bytes执行命令时pyinstaller main py在具有和不具有管理员权限的cmd中 Traceback most re
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • 【构建ML驱动的应用程序】第 1 章 :从产品目标到 ML 框架

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 光耦电路

    光电耦合器 opticalcoupler 英文缩写为OC 亦称光电隔离器或光耦合器 简称光耦 它是以光为媒介来传输电信号的器件 通常把发光器 红外线发光二极管LED 与受光器 光敏半导体管 封装在同一管壳内 当输入端加电信号时发光二极管发出
  • python 实现 soap 请求

    1 什么是soap SOAP Simple Object Access Protocol 是一种基于XML的通信协议 用于在网络上交换结构化的和可扩展的信息 它被广泛用于分布式系统中的应用程序之间的通信 SOAP通过HTTP 或其他传输协议
  • AI绘画爆火背后:扩散模型(Diffusion Model)原理综述

    来源 知乎 大仲马 地址 https zhuanlan zhihu com p 562389931 本综述 Diffusion Models A Comprehensive Survey of Methods and Application
  • Linux下TCP通信时如果一方拔掉网线会怎么样?

    本文95 参考下面的链接 拔掉网线后 原本的 TCP 连接还存在吗 TCP协议 长连接和短连接 如果没有数据传输 不能被TCP感知到 TCP连接状态依旧保持 如果有数据传输 重传次数超过一定值 Linux下默认15 或超过一定的 超时时间则
  • 笔试

    文章目录 前言 1 什么叫FPGA 2 什么叫数字IC 3 FPGA设计流程 3 1系统规划 3 2RTL输入 3 3行为仿真 功能仿真 3 4逻辑综合 3 5综合后仿真 可选 3 6综合后设计分析 时序及资源 3 7设计实现 包括布局布线
  • 1024 祝我们快乐

    1024 祝我们快乐 前言 最近好久都很忙 所以没有在发过文章啦 但是今天这么激动的日子 还是忍不住想要祝你们快乐哈 感谢很多人的默默陪伴 比如平台 展现量直接上万 比如 你们 超级感谢 很感激你们的支持 虽说我不是最优秀的那一个 但是你们
  • spring 容器(控制反转及依赖注入)

    spring 是一个容器 项目开始就一直在运行 spring 加载进内存里面 容器中有监听器 引入容器 而struts注重运行时 核心类中监听器 监听启动后可以从context 上下文即spring所有的配置 中获取内容 将核心配置文件 a
  • 将本地的txt文件上传到mysql数据库中

    我的数据 1 将windows中的txt文件传入到Linux中 2 在mysql中将表创建好 例如 create table users userid int time date id int sex varchar 10 birthday
  • .NET 各种框架

    基于 NET平台常用的框架整理 分布式缓存框架 Microsoft Velocity 微软自家分布式缓存服务框架 Memcahed 一套分布式的高速缓存系统 目前被许多网站使用以提升网站的访问速度 Redis 是一个高性能的KV数据库 它的
  • No.87-HackTheBox-windows-Bankrobber-Walkthrough渗透学习

    HackTheBox windows Bankrobber Walkthrough 靶机地址 https www hackthebox eu home machines profile 209 靶机难度 初级 3 2 10 靶机发布日期 2
  • 神经网络主要有三个基本要素:权重、偏置和激活函数

    神经网络主要有三个基本要素 权重 偏置和激活函数 权重 神经元之间的连接强度由权重表示 权重的大小表示可能性的大小 偏置 偏置的设置是为了正确分类样本 是模型中一个重要的参数 相当于加入一个常数 激活函数 起非线性映射的作用 其可将神经元的
  • 数据结构与算法(C语言)

    第一章 数据结构绪论 1 什么是程序 程序 数据结构 算法 2 逻辑结构 物理结构的区别用法 基本的目标就是将数据及其逻辑关系存储到计算机的内存中 一 逻辑结构 逻辑结构是指数据对象中数据元素之间的相互关系 逻辑结构是面向问题的 A 集合结
  • 新手入门Linux-Ubuntu20.04

    打开此文 首先祝你在使用Linux过程中如鱼得水 其次 如果是为了检验DIY 装 能力 X 请耐心观看 如果是想有一个很奈斯的环境去写代码 请移步Deepin 国产Deepin也日渐成熟且UI很不错 一 配置基础的设置 设置自动登录 设置T
  • MATLAB实现多元线性回归

    function b bint r rint stats Multiple linear regression X y alpha Multiple linear regression 多元线性回归 对于输入数据 必须是去除量纲之后的数据
  • 【linux】linux shell 判断是安装了某个软件

    1 概述 判断是否安装了node if type node gt dev null 2 gt 1 then echo node 未安装 else echo node 已安装 fi 判断是否安装了npm if type npm gt dev
  • stm32AD单通道与多通道转换(DMA)

    第三章AD转换 本章的内容分两部分 第一是AD的单通道转换 第二是AD的多通道转换 首先先将单通道转换 STM32中自带的AD最大的转换频率是14MHZ 共有16个转换通道 每个转 ADC123 IN10表明PC0管脚可以作为AD1 AD2
  • [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C 和C 的网络通信 参考我的文章 C 网络编程之Tcp实现客户端和服务器聊天 C 网络编程之套接字编程基础知识 C 网络编程之使用Socket类Send Receive方法的同步通讯 Python网络编程也类似 同时最近找工
  • Linux安装和卸载MiniIO

    MiniIO的安装步骤如下 第一步 创建目录 mkdir minio cd minio mkdir data 第二步 下载MiniIO cd到第一步创建的minio目录下 执行 wget https dl min io server min
  • bert中为什么要这么msdk(80% mask, 10% 随机替换,10% 保持原词)

    bert在训练阶段不是将15 的词汇MASK掉 从而采用自监督的方式训练模型 那我直接将这15 mask掉不就好了吗 为什么又要进行80 mask 10 随机替换 10 保持原词呢 起初我看到的时候也比较迷惑 下面是我的理解 一 训练阶段与