Datawhale NLP课程 Task2

图解Attention

seq2seq模型

输入:一个序列;输出:另一个序列
模型细节:seq2seq模型是由encoder和decoder组成,encoder处理输入序列中的每个元素,把这些信息转成一个向量(称为上下文context),整个序列输入完成后,encoder把context发送给decoder,decoder生成输出序列中的元素。在transformer出现之前,encoder和decoder一般用RNN实现。
在这里插入图片描述
context向量的长度是基于编码器RNN的隐藏层神经元的数量。RNN在时间步上接受2个输入:1. 输入序列中的一个元素(用word embedding把单词转换到一个向量空间);2.一个hidden state。最后一个hidden state是我们要传递给decoder的context。

(https://img-blog.csdnimg.cn/de3f00930b044d799d445c9bbc38d363.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdydW9oYW4xOTk1,size_16,color_FFFFFF,t_70)

Attention讲解

事实证明,上下文context向量是这类模型的瓶颈。这使得模型在处理长文本时面临非常大的挑战。
一个注意力模型不同于经典的序列到序列(seq2seq)模型,主要体现在 2 个方面:

  1. 编码器会把所有时间步的hidden state传给解码器,而不是只传递最后一个hidden state。
  2. 解码器在产生输出之前,做了一个额外的处理,给每个hidden state一个分数,高分的hidden state会被放大,低分的则会被缩小。
    在这里插入图片描述
    注意力模型的整个过程:
    在这里插入图片描述

图解transformer

2017 年,Google 提出了 Transformer 模型,用 Self Attention 的结构,取代了以往 NLP 任务中的 RNN 网络结构。这个模型的其中一个优点,就是使得模型训练过程能够并行计算。Transformer也是由encoder和decoder组成的。
transformer的输入:
使用word embedding algorithm,将每一个词转换成一个词向量,输入的句子是一个向量列表。在实际中,每个句子的长度不一样,我们会取一个适当的值,作为向量列表的长度。如果一个句子达不到这个长度,那么就填充全为 0 的词向量;如果句子超出这个长度,则做截断。句子长度是一个超参数。
Encoder:
每个单词转换成一个向量之后,进入self-attention层,每个位置的单词得到新向量,然后再输入FFN神经网络。

Self-Attention

  1. 计算query, key, and value向量
    在这里插入图片描述

  2. 计算Attention分数
    这些分数,是通过计算 “Thinking” 对应的 Query 向量和其他位置的每个词的 Key 向量的点积,而得到的。如果我们计算句子中第一个位置单词的 Attention Score(注意力分数),那么第一个分数就是 q1 和 k1 的内积,第二个分数就是 q1 和 k2 的点积。
    在这里插入图片描述

  3. Normalize + Softmax
    在这里插入图片描述

  4. 每个分数分别与每个 Value 向量相乘,得到的向量相加,就得到了 Self Attention 层在这个位置(这里的例子是第一个位置)的输出。
    在这里插入图片描述

Reference

https://github.com/datawhalechina/Learn-NLP-with-Transformers

在机器人操作系统(ROS)中,机器视觉是机器人感知和理解周围环境的关键技术。robot_vision功能包专注于这一领域,集成了多种视觉处理技术,包括摄像头标定、OpenCV库应用、人脸识别、物体跟踪、二维码识别和物体识别,极大地拓展了ROS在视觉应用方面的能力。 摄像头标定:作为机器视觉的基础,摄像头标定用于消除镜头畸变并获取相机的内参和外参。在ROS中,camera_calibration包提供了友好的用户界面和算法,帮助计算相机参数矩阵,为后续的图像校正和三维重建提供支持。 OpenCV:OpenCV是一个广泛使用的开源计算机视觉库,在ROS中扮演着重要角色。robot_vision功能包可能包含OpenCV的示例代码和节点,涵盖图像处理、特征检测、模板匹配和图像分割等功能,这些功能对机器人视觉系统至关重要。 人脸识别:ROS中的人脸识别结合了图像处理和机器学习技术。robot_vision可能集成了基于OpenCV的人脸检测算法,如Haar级联分类器或Adaboost方法,甚至可能包含深度学习模型(如FaceNet或SSD),帮助机器人实现人脸的识别和跟踪,提升人机交互能力。 物体跟踪:物体跟踪使机器人能够持续关注并追踪特定目标。在ROS中,通常通过卡尔曼滤波器、粒子滤波器或光流法实现。robot_vision功能包可能包含这些算法的实现,助力机器人完成动态目标跟踪任务。 二维码识别:二维码是一种高效的信息编码方式,常用于机器人定位和导航。ROS中的二维码包可用于读取和解析二维码,而robot_vision可能进一步封装了这一功能,使其更易于集成到机器人系统中。 物体识别:作为机器视觉的高级应用,物体识别通常涉及深度学习模型,如YOLO、SSD或Faster R-CNN。robot_vision功能包可能包含预训练的模型和对应的ROS节点,使机器人能够识别环境中的特
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值