自然语言处理的进阶之路

news2024/11/24 0:48:06

1、隐马尔可夫链路一般较短原因

p(w_{1:t})=\prod_{i=1}^{t-1}p(w_{i}|w_{1:i-1})

 连乘链路太长,会导致数据稀疏,零频词太多 

2、零频问题的一般解决方案

平滑/回退/差值

当n设置较小时,仍然会存在oov问题(语料中未出现的词)

2.1、平滑

2.1.1、加1平滑/拉普拉斯平滑

p(w_{t}|w_{t-1})=c(w_{t}|w_{t-1})/c(w_{t})

p(w_{t}|w_{t-1})=(c(w_{t}|w_{t-1})+1)/(c(w_{t})+|V|)

当很多词出现次数较少时,加1会带来较大的偏差,加1平滑效果一般不佳

2.1.2、delta平滑/加k平滑

p(w_{t}|w_{t-1})=(c(w_{t},w_{t-1})+\delta) /(c(w_{t},w_{t-1})+\delta|V|)

2.1.3、good Turing 平滑

r=(r+1)\frac{E({n_{r+1}})}{E({n_{r}})}

{n_{r}}为出现频次为r次词的个数

w_{t}出现的概率 

p(w_{t})=r/N

2.2、回退

当连续词出现零频时,平滑是避免出现零频,还可以选择绕过;例如当3-gram的频率为0,则回退到2-gram,依次类推。

2.3、插值法

n-gram回退到n-1 gram,还是以3-gram为例,可以考虑以一定的权重将1-gram,2-gram,3-gram线性组合。

p(w_{t}|w_{t-1},w_{t-2})={\lambda _{1}}p(w_{t}|w_{t-1},w_{t-2})+{\lambda _{2}}p(w_{t}|w_{t-1})+{\lambda _{3}}p(w_{t})

3、mlp进阶至cnn

mlp进阶至cnn,全链接网络上一层的每个值都会作用于下一层的每个值,但是并非所有的值更新都需要上一层的所有元素参与,这样会引入一些无效计算。同时,在特定的场景,我们需要focus某些输入,因而引入cnn。

4、注意力机制诞生动机

seq2seq上下文词向量C,输入序列经过encoder生成上下文词向量C(一般为最后隐层向量),decoder的每个节点的输入依赖于相同的输入c。注意机制的引入使得不同时刻t关注不同的信息,使得对局部信息进行重点关注。

encoder-decoder注意力机制,保存encoder阶段的每一时刻的隐层向量,并和decoder层当前节点做点积、然后softmax后作为权重,线性加权encoder阶段所有隐层向量得到。

5、自注意力机制

为了得到关于某方面信息 Q,可以通过关注某些信息 K,进而得到某些信息(V)作为结果。文本内容本身存在一定的关联关系Q-K-V

Attention(Q, K,V)=softmax(\frac{Q, K^{T}}{\sqrt{d_{k}}}))V

多头注意力扩展了模型关注不同位置的能力。

6、退化现象、残差网络

退化现象是指随着网络层数的增加,表现效果反而下降了

因而考虑直接在x上进行建模,而直接让一些叠加层去拟合一个潜在的恒等映射函数H(x) = x会比较困难,所以采用一些非线性层,让它们去拟合另一种残差映射F (x) := H(x)-x,而原来的映射则变成H(x) = F(x) + x

7、transformer三角函数位置编码

7.1、三角函数位置编码

p_{pos,2i}=sin(\frac{pos}{10000^{\frac{2i}{d_{model}}}})

p_{pos,2i+1}=cos(\frac{pos}{10000^{\frac{2i}{d_{model}}}})

transformer的位置编码方式为绝对位置编码;绝对位置编码是指直接对位置进行编码,使其可以融入到embdding的输入中。相对位置编码是指在attention阶段可以直接识别相应的位置。

7.2、习得式位置编码

习得式位置编码也属于绝对位置编码,位置编码作为训练参数,在训练过程中产生,例如bert,当序列超过限定长度时,无法编码。

华为的 NEZHA 模型便是一个换成了相对位置编码的 BERT 模型。相对位置编码一般会对位置差做个截断,使得要处理的相对位置都在一个有限的范围内,因此相对位置编码可以不受限于序列长度。

7.3、层次位置编码

p_{1},p_{2},...,p_{i},...p_{n} 表示p_{1},p_{2},...,p_{i},...p_{m}   m>n ,\alpha不能为0.5,避免(i,j)与(j,i)表示一样

q_{i*n+j}=\alpha \mu _{i}+(1-\alpha )\mu _{j}

\mu _{i}=\frac{p_{i}-\alpha p_{1}}{1-\alpha }

7.4、transformer结构

编码器encoder

  • 第一层是多头注意力层(Multi-Head Attention Layer)。
  • 第二层是经过一个前馈神经网络(Feed Forward Neural Network,简称 FFNN)。
  • 这两层,每一层都有「Add & Normalization」和 ResNet。

解码器decoder

  • 解码器有两个多头注意力层。第一个多头注意力层是 Masked Multi-Head Attention 层,即在自注意力计算的过程中只有前面位置上的内容。第二个多头注意力层没有被 Masked,是个正常多头注意力层。
  • 可以看出来,第一个注意力层是一个自注意力层(Self Attention Layer),第二个是 Encoder-Decoder Attention 层(它的 K、V 来自 Encoder,Q 来自自注意力层),有些文章里会用这个角度来指代。
  • FNN、Add & Norm、ResNet 都与 Encoder 类似

7.5、transformer整个过程

1、词embdding、位置embdding pe

2、encoder、多头注意力机制、全链接FFNN,每层都有add&norm、resnet;每个encoder的输入来自前一个encoder的输出,第一层encoder的输入来自词embdding和位置embedding

3、进入decoder,经过第一个多头注意力层 Masked Multi-Head Attention 层,即在自注意力计算的过程中只有前面位置上的内容。第二个多头注意力层买有被 Masked,是个正常多头注意力层。第一个注意力层是一个自注意力层(Self Attention Layer),第二个是 Encoder-Decoder Attention 层(它的 K、V 来自 Encoder,Q 来自自注意力层),有些文章里会用这个角度来指代。每层都有FNN、Add & Norm、ResNet 

4、线性变换、softmax归一化,输出

人工智能 LLM 革命前夜:一文读懂横扫自然语言处理的 Transformer 模型

【简单理解】自然语言处理-平滑方法(Smoothing)_雾行的博客-CSDN博客_jelenik-mercer smoothing

层次分解位置编码,让BERT可以处理超长文本

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

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

相关文章

Maven初级(一)

目录 一. Maven概述 1.1 Maven是什么 1.2 Maven的作用 1.2.1 项目构建 1.2.2 依赖管理 1.2.3 统一项目结构 1.3 Maven模型 1.3.1 插件 1.3.2 项目对象模型 1.3.3 依赖管理模型 二. Maven基础概念 2.1 仓库: 2.2 仓库分类 2.2.2 远程仓库(私服) 中央仓…

Python继承的优缺点

推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架!子类化内置类型的问题在Python2.2之前,内置类型不能子类化,如list、dict等。在Python2.2之后,内置类型可以子类化了,但是要注意的是:内置类型&a…

Individual tree segmentation and tree-counting using supervised clustering

ABSTRACT 个体树木分割 (ITS) 或树木计数是精准林业和农业过程中的一项基础工作。与费时费力的人工检查不同,计算机视觉在基于无人机 (UAV) 的应用中显示出巨大的前景;此类应用之一包括森林资源清单中的自动树木计数问题。然而,由于树冠冠层…

深度学习性能评估指标介绍

首先是相关数据描述。假设原始样本中有两类数据,其中:总共有P个类别为1的样本,假设类别1为正例总共有N个类别为0的样本,假设类别0为负例经过分类后:有TP个类别为1的样本被系统正确判定为类别1,FN个类别为1的…

【哈希表】leetcode1. 两数之和(C/C++/Java/Python/Js)

leetcode1. 两数之和1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python版本3.5 JavaScript版本4 总结1 题目 题源链接 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数…

iPad 屏幕镜像到 macbook

将iPad 到屏幕投屏到 macbook,只需要三步就可以实现用数据线连接ipad和macbook在macbook的应用中找到QuickTime Player,打开QuickTime Player,在【文件】中选择【新建影片】在弹出窗口的小箭头中,选择需要的iPad名称通过数据线连接…

目标跟踪心得篇七:解决目标跟踪评价指标输出为0或异常(Trackeval、MMtracking)

如果在做跟踪任务测评时,发现输出的评价指标全为0或者异常值时该怎么办(如下图)?博主调试了很久发现其实这是MMtracking的一个Bug,因此如果不是用MMtracking框架的话本节可能对你帮助不大。 大致有以下两个内容: TrackEval目前还不能做到对多类别的MOT任务计算评价指标,…

FDD与TDD

TDD,时分双工(Time Division Duplexing) FDD,频分双工(Frequency Division Duplexing) 帮助理解: 1.FDD:双车道,一个车道只能走一个方向,双向互不干扰。 2.TDD:单车道,不同时间允…

RabbitMQ看这一篇文章就够了

第一章 RabbitMQ介绍 第1节 MQ是什么 1 2 3 41. 消息队列(Message Queue),又叫做消息中间件 2. 用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成 3. 通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信 4. MQ 是用来解…

北斗短报文遥测终端机在水雨情监测系统中的应用

一、方案概述 我国水利监管手段比较单一,水雨情监测移动公网覆盖不足等诸多问题,利用北斗短报文通信技术数字化信息采集技术,实现水文自动测报,大幅度提升湿地生态和水域的监测、查询、预警和应急处理能力。在恶劣天气情况或特殊灾…

360(drizzleDumper)脱壳教程“某药数据”

一、drizzleDumper的下载使用 1.上GitHub下载开源的脱壳工具mirrors / DrizzleRisk / drizzleDumper GitCodedrizzleDumper是一款基于内存搜索的Android脱壳工具。 🚀 Github 镜像仓库 🚀 源项目地址 ⬇ ⬇...https://gitcode.net/mirrors/DrizzleRisk…

ZedGraph如何显示鼠标附近的曲线的点?介绍三种方法

使用ZedGraph绘制曲线图的时候,不仅仅是看曲线的走向,也需要查看曲线上某位位置处采集到的数据是多少。下面介绍三种方法,从简单到复杂。 文章目录1、使用自带的功能显示点的坐标2、 多条曲线的坐标点同时显示3、 多条曲线的坐标点同时显示&a…

100%国产C2000,P2P替代TMS320F280049C,独立32位双核CPU,主频高达400MHz

一、特性参数 1、独立双核,32位CPU,单核主频400MHz 2、IEEE 754 单精度浮点单元 (FPU) 3、三角函数单元 (TMU) 4、1MB 的 FLASH (ECC保护) 5、1MB 的 SRAM (ECC保护&…

docker基础简介

一、docker架构 二、Docker 基本命令 1、查看 Docker 版本 查看 Docker 版本包括 Docker 版本号、API 版本号、对应的 Git Commit、Containerd 和 runC的版本信息等。 # docker version Client: Docker Engine - Community Version: 20.10.4 API version: 1.40 Go version: …

新手小白做跨境电商应该从哪里入手?

想从事跨境电商先从哪里入手?米贸搜整理如下,希望可以帮助到你跨境电商平台,如:Amazon、eBay、aliexpress、Cdiscount、wish等。想从事跨境电商,你得搭建电商团队,先从跨境电商平台的入驻入手,弄清楚入驻条…

【设计模式】行为型模式·模板方法模式

学习汇总入口【23种设计模式】学习汇总(数万字讲解体系思维导图) 一.概述 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 在面向对象程序设计过程中,程序员常…

HTB_Inclued_TFTP文件包含与LXD提权

文章目录信息收集TFTPLXD 提权环境安装报错信息收集 开放80端口,url为http://ip:port?filehome.php 测试文件包含,本地包含成功,远程失败,尝试上传后门木马反弹shell 根据图示,网站目录为var/www,其他功…

minio 使用docker安装和入门案例demo

minio目录1.安装2.页面web访问3.在界面上传4.使用api上传5.使用api下载目录 公司目前用到文件上传,考虑到费用等情况,可以在公司自己的服务器上搭建一下。本人记录minio的使用情况。 “前些天发现了一个巨牛的人工智能学习网站,通俗易懂&…

搭建 SpringBoot 项目

创建 SpringBoot 项目 配置application.properties 根据自己数据库进行配置 spring.datasource.nameexamspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.usernameroot spring.datasource.passwordroot spring.datasource.urljdbc:mysql://1…

振弦采集模块VMTool配置工具 快速测试功能

振弦采集模块VMTool配置工具 快速测试功能 本章演示在计算机上通过 VMTool 工具读取振弦传感器数据。 假设您的计算机已经有至少一个空闲的 COM 接口。 1 检查 COM 接口名称 在操作系统桌面右键点击“ 我的电脑” , 选择【 属性】,弹出计算机属性对话框&…