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

初识Bert

在学习Bert之前我们先了解“递归神经网络(RNN  Recurrent neural network)” 和 “长短期记忆(LSTM Long short-term memory)”

我们如果仅仅识别每个字的含义,那么在一句话中没有相同的字还是可以的但是如果一句话中有相同的字,那么我们进不能识别每个字的含义,因为有可能相同的字,位置不一样,词性也不一样,那么含义就会不一样。 

因此就引出了 递归神经网络(RNN  Recurrent neural network)和长短期记忆(LSTM Long short-term memory)

递归神经网络

RNN就是在传入模型的时候,也传入一个向量,就是一个记忆单元,我们可以形象的称为“传家宝”,因为传家宝会一直串行的传下去这样就能。有了这个传家宝,就可以根据上文判断当前文字的词性。

因为是串行传递,如果一句话很长,这也导致RRN模型中记忆单元也就是“传家宝”中记录的东西过多,导致最前面的信息和最后面的信息很难对应,如:

当我们问“谁与赛罕塔拉结下了不解之缘?”时,“传家宝”里的东西已经记录前面的太多信息了,无法准确的找到主语“我”。

为了解决这个问题,因此引出“长短期记忆(LSTM Long short-term memory)”模型。

长短期记忆

LSTM模型就是,还是那上面的例子,问“谁与赛罕塔拉结下了不解之缘?”时,我们就会把“传家宝”上锁,不会让中间无关紧要的信息进入“传家宝”,这样我们就能在“传家宝”当中找到我们想要的答案。

自注意力机制

通过学习RNN和LSTM模型,虽然问题已经解决,但是速度还是太慢了,先辈的巨人们就创造了Bart模型,在学习Bart模型前,我们要先了解自注意力机制(Self-attention)

所谓的注意力机制就是是一个特征转换器,考虑了句子整体的前后关系。注意力机制可以让模型在生成每个目标词的时候,选择性地“关注”源句子中相关联的部分,而不是等同对待整个源句子。

 通俗一点,注意力机制就是对于每个事件所分担注意力的比例是多少。

那么𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4这些都是怎么求的呢?

得到的𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4其概率和不为1,因此在经过一次Soft-max,得到概率和为1,这样我们就得到了𝛼1分配给每个字多少的注意力

b1就是𝛼1看过整句话结合注意力得到的值 ,这样可以求得b2,b3,b4,在计算得过程中都是全部都是并行的,完全不需要等待前面得内容,因此速度很快。

下面是具体得计算过程,

 

我们把每个字,也就是表示成768维向量称之为token

Bert

Bert就是一个编码器,与他对应的就是GPT-2解码器,先逐步分析Bert的过程:

Inputs就是将一个字以one-hot的编码形式展示出来,传去Input Embeadding中,就是对应的“词Embeadding”进行的操作就是进行一次全连接Linear(22128,768);在进行一次Positional Encoding,就是对应的“位置 Embeadding”,进行的操作是一次全连接Linear(512,768)。

经过两次全连接,进入的就是Muti-Head Attention(多头注意力机制),下面的三个箭头就是Wq、Wk、Wv,都是(768,768)的Linear,后面进行Norm,就是归一化,观察到还有一个箭头指向Add,这就是ResNet残差连接,因为有残差连接,网络才能走很深。传出还是768维。

传入Feed Forward,Feed Forward的操作就是进行两次全连接:nn.linear(768,3072)、nn.linear(3072,768),得到768维,在进行一次归一化和残差连接,这就算把特征提取出来了。

这就是Bert的一次完整的过程,当然,因为Bert整体的过程不改变维度,输入768维,输出768维,所以可以根据具体的情况进行N次。

            

这就是他们之间的关系 

 

相关文章:

  • Javascript 原型和原型链
  • [项目]基于FreeRTOS的STM32四轴飞行器: 七.遥控器按键
  • 【Recon】Git源代码泄露题目解题方法
  • java项目之基于ssm的智能训练管理平台(源码+文档)
  • 每日一题-----面试
  • 【Transformer优化】Transformer的局限在哪?
  • docker启动jenkins,jenkins中调用docker
  • KubeKey 与 KubeSphere:快速构建 Kubernetes 集群
  • 用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏
  • 通过定制initramfs实现从单系统分区到双系统的无缝升级
  • python自动工具起号迅速,批量自动发布各类短视频
  • C语言数据结构之顺序表
  • 剑指 Offer II 063. 替换单词
  • 计算机视觉算法实战——老虎个体识别(主页有源码)
  • Python中的装饰器(Decorator) 详解
  • 六十天前端强化训练之第十二天之闭包深度解析
  • 【RK3588嵌入式图形编程】-SDL2-SDL_Image使用详解
  • 3D空间曲线批量散点化软件V1.0正式发布,将空间线条导出坐标点,SolidWorks/UG/Catia等三维软件通用
  • 为什么 MySQL InnoDB 的 Repeatable Read 可以阻止幻读?
  • Django工程获取请求参数的几种方式
  • 《上海市建筑信息模型技术应用指南(2025版)》发布
  • 日本航空自卫队一架练习机在爱知县坠毁
  • 崔登荣任国家游泳队总教练
  • 沈阳卫健委通报“健康证”办理乱象:涉事医院已被立案查处
  • 广州地铁十一号线赤沙车辆段工程高坠事故调查报告公布:1人重伤且漏报
  • 明查|印度空军“又有一架战机被巴基斯坦击落,飞行员被俘”?