首页 > 其他分享 >李宏毅 机器学习

李宏毅 机器学习

时间:2024-09-28 13:18:37浏览次数:10  
标签:词性 机器 一个 李宏毅 学习 向量 序列 注意力 输入

P6 自注意力机制

引言:

        到目前为止,在预测或者图像识别(已经假设了图像大小是相等的)的任务中,都是将输入看作是一个向量,输出可能是数值(回归任务)也可能是类别(分类任务),那假如输入是一排向量或者这个向量长度是改变的呢? 例如:

输入形式

        (一)句子

        输入是一个句子,使用独热编码,每一个词汇是一个向量,但是独热编码会造成每一个词语之间是没有任何关系的,忽略掉了词语的语义。另一个方法是词嵌入,包含了语义,词义相近的词语可能在向量上也是相近的。

       (二)声音信号

        输入是一段声音信号,其实是一排向量,在声音信号上,取一段范围(如25ms),称为一个Window(声音信号),将其中的信息变为一个向量,称作一个frame(向量),然后将window移动小段距离(如10ms),不断移动直至覆盖整段声音信号,1s的声音就有100个frame。

        (三)图

        数据结构中的图,并非图片。例如社交网络,其中每一个节点(人)就可以看作是是一个向量,其中包含他的各种信息(如性别、年龄、工作等)、

        一个分子也可以看作是一个图,其中每一个原子可以看作是一个向量,那图就是一堆向量。

输出形式

        (一)多对多(相等)

        每一个向量都有一个label,如果label是类别那就是分类任务,如果是数值,那就是回归任务。输入和输出的长度是一样的。比如:词性标注,给每一个单词标注词性,也就是分类。或者对声音信号进行音标识别。或者对图中每一个节点进行分类。

        (二)多对一

        输入是一段序列,输出是一个label,单个向量。比如情感分析,正面还是负面。语音识别发言人speaker。判断分子的亲水性如何。

        (三)多对多(不定)

        不知道输出多少个向量,机器自己决定。比如语音识别、翻译。

Sequence Labeling

        Sequence Labeling——多对多(相等),每一个向量都有一个label。例如词性标注,对每一个词语进行词性标注。

        想法:将每一个词分别作为输入,通过全连接网络。但是可能有的词语是一样的,但词性是不一样的,但是通过全连接网络,输出肯定是一样的,这样就会出错。

        引入window,考虑当前想要标注词性的词语前后的词语,将考虑的范围称为window。但是有的是需要考虑整个序列,如果把window设为整个序列的长度,序列有长有短,就要看整个资料中最长的序列是多大,然后将window设为其值,就会造成参数非常大,容易过拟合。如何考虑整个sequence的信息呢?

self-attention

        会考虑整个序列,输入几个vector就会输出几个vector(经过考虑整个序列得到),之后再传给全连接网络,这样给全连接网络的输入就考虑了整个序列。self-attention也可以叠加,全连接网络的输出也可以再传给self-attention,再全连接网络等。

self-attention是如何运作?

        输入使用a来表示,因为self-attention前一层不一定是输入input,也有可能是隐藏层的output等已经经过处理。输出用b来表示,每一个输出都考虑了所有的输入。

        其中b1向量如何产生?

        根据a1找出序列中与其相关的其他向量,因为我们希望考虑整个序列但是不希望把整个序列放在整个window中,所以找出其中与找出a1分类或者数值相关的向量。相关性用α来表示,如何计算得到?点乘,内积。

        向量1与矩阵q相乘,向量2与矩阵2相乘,分别得到q向量与k向量,然后q与k点乘内积,得到数值α,就是相关度。

        使用上述方法计算后得到当前向量与各个向量之间的关联度或者相关性,然后经过softmax函数得到α‘,就可以知道哪个向量与当前向量相关,再根据α抽取重要的序列信息。

然后引入wv,用来和每一个向量相乘,得到v1,v2,v3,v4,每一个再和α’相乘,最后相加得到b,和哪一个α‘最接近就说明哪一个最相关。

        同理,对a2~a4进行相应操作,得到b1~b4,是同时计算同时得到的并不是依次得到。

        矩阵角度理解过程(一连串的矩阵乘法):

其中需要训练得到的未知的参数只有wq、wk、wv。

        到目前为止,自注意力机制中的input还没有位置信息,即不知道input在序列的哪个位置,但是比如词性标注,可能动词不容易出现在句首,需要标注位置信息时,怎么办呢?

Positional encoding

        为每一个位置设定一个向量ei,比如e1~e4,加到ai上即可。

自注意力机制应用

Truncated self-attention(语音)

        自注意力机制对于语音识别上的应用:在上述过程中,我们把每10ms的序列当作一个向量,那么假如输入的整个序列是一分钟或者更长那么就会造成向量非常多,计算量会非常大。因为每一个序列都会考虑整个序列中其他所有的向量,然后计算。所以在语音识别中可以只考虑计算当前向量附近局部的向量即可。

自注意力机制和CNN(图像)

        自注意力机制是复杂的CNN,CNN是简化版的/受限制的自注意力机制。越有弹性的model,数据量小有更大的可能会造成过拟合,相同数据量,数据量小,CNN表现更好,数据量大时,自注意力机制表现更好。

自注意力机制与RNN

自注意力机制与图

标签:词性,机器,一个,李宏毅,学习,向量,序列,注意力,输入
From: https://blog.csdn.net/qq_61833632/article/details/142530712

相关文章

  • numpy学习笔记
    官方文档:https://numpy.org/doc/stable/numpy.array从pythonlist创建np.array([1,2,3])从多个pythonlist创建一维数组如果是确定数量的list,可以用np.concatenate:a=[1,2,3]b=[4,5,6]np.concatenate((a,b))输出:array([1,2,3,4,5,6])来源:https://stac......
  • 量子计算机学习笔记
    qubit经典的bit的状态空间为2,要么是0,要么是1。但是qubit可以同时是0和1,其状态空间可以看作是一个半径为1的球面,如下图Blochsphere所示。图片来源:https://en.wikipedia.org/wiki/Bloch_sphere可见,与直觉不同,它有两个自由度。为了简化,将其记为下面的形式:图片来源:http://www......
  • 学习Spring Boot,应该从哪里开始学起
    文章目录前言1.Java基础2.Spring框架基础3.SpringBoot入门4.搭建SpringBoot项目5.编写RESTfulAPI6.数据库操作7.安全性和测试8.部署和运维9.实践和项目总结前言学习SpringBoot,应该从哪里开始学起学习SpringBoot,你可以从以下几个步骤开......
  • 卷积、激活、池化与批量归一化:深度学习中的关键操作
    在深度学习,尤其是卷积神经网络(CNN)中,卷积、激活、池化和批量归一化是四个基本操作。它们共同作用,帮助模型高效学习和提取数据中的重要特征。1.卷积操作作用卷积操作旨在通过滑动卷积核(过滤器)在输入数据上提取局部特征,如边缘和角点。过程滑动卷积核:卷积核在输入特征图上......
  • java本周学习心得
    EnumTest:publicclassEnumTest{ publicstaticvoidmain(String[]args){ Sizes=Size.SMALL; Sizet=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);// //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换 Size......
  • 微信小程序学习
    文章目录目录目录概要微信小程序和App的区别认识小程序微信开发工具如何下载        导出项目:        导入项目:概要        微信小程序是一种不需要下载安装即可使用的应用,它实现了应用的即用即走的理念,可以在微信内被便捷地获取......
  • [机器视觉][轻量化网络]GhostFormer: Efficiently amalgamated CNNtransformer archit
    目的与成果:     本文旨在提出一个轻量化的模型,在减少模型参数量的同时,保持一定的精度,  实验表明,该模型在PascalVOC数据集上的计算成本不到YOLOv7的一半,仅损失约3%[email protected],在MSCOCO数据集上的损失为9.7%[email protected],与GhostNet相比提高了0.95。本文的主要思想: ......
  • [对比学习][何凯明]Momentum Contrast for Unsupervised Visual Representation Learn
    论文背景:    本文由何凯明先生主笔,在原先的对比学习模型---如SIMCLR中,需要大量的负样本以供系统学习其特征分布,但是在多数场景下,样本空间中往往负样本不足或过大,比如在一个百万用户量级的推荐系统中,若将与目标用户不像关系的用户视为负样本,则时间计算度会非常大,基本......
  • 李宏毅机器学习2023-HW10-Adversarial Attack
    文章目录TaskBaselineFGSM(FastGradientSignMethod(FGSM)I-FGSM(IterativeFastGradientSignMethod)MI-FGSM(MomentumIterativeFastGradientSignMethod)M-DI2-FGSM(DiverseInputMomentumIterativeFastGradientSignMethod)ReportfgsmattackJepgCom......
  • Java Web核心技术阶段的学习要点
    JavaWeb核心技术阶段的学习要点涵盖了多个关键技术和概念,这些技术和概念对于开发动Web应用程序至关重要。以下是该阶段详细的学习要点:1.HTML/CSS/JSHTML:学习HTML的基本结构和标签,理解如何构建网页的骨架。CSS:掌握CSS的语法和选择器,学习如何使用CSS来美化网页,包括布局、颜......