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

Lesson 12 Self-supervised Learning for Speech and Image

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了Self-supervised Learning for Speech and Image,之前Lesson 11是讲的将Self-supervised Learning用在自然语言处理上。

Introduction

Review: Self-supervised Learning for Text

self-supervised learning 在文字上的应用最知名的是Bert。Bert的训练资料是无标签的文字,输入是文字,输出是向量。有4种使用Bert的场景(分类问题,标注问题,自然语言处理,问答系统)。忘记的可以去复习Lesson 11。
在这里插入图片描述

Self-supervised Learning for Speech

用于Speech的自监督学习和用于NLP的自监督学习框架相差不大,只是训练资料换成了语音数据,下游任务的输入换成标注好的语音数据。也可以用标注好的语音数据微调语音bert,但实际上不需要微调效果已经不错了。
在这里插入图片描述

Speech Processing Universal Performance(SUPERB)

SUPERB是适用于语音处理的任务评测数据集,一共包括14项任务,用于观测模型是否能在14个任务上有好的表现。简单解释几个:
ASR: audio speech recognizer语音识别
Keyword Spotting: 比如喊"hey, siri" 就会被识别到并且被唤醒
在这里插入图片描述

要详细查看自监督学习在语音上的应用,可以参考以下论文。
在这里插入图片描述

Self-supervised Learning for Image

在这里插入图片描述
下面这张图中,supervision这条线表示,在训练阶段就使用有标签的数据。随着更多模型提出,自监督学习的模型表现甚至超过了supervision的表现。
在这里插入图片描述

Generative Approaches

Masking

Bert用在语音处理上时,训练过程和文字基本一样。首先输入语音数据,随机mask掉一部分语音,然后训练模型还原出这些被mask掉的语音数据。其中有个模型叫做Mockingjay(学舌鸟)。
在这里插入图片描述
但是语音和文字有一些不同的性质。

  • 语音具有平滑性,一小段语音与前后相差不大,如果训练时只mask掉一小段,很有可能模型并不能学到真正的知识,只是简单地做内插法就将正确答案模拟出来。所以在mask的时候,需要选择较长的一段语音,而至于mask的长度,就要作为一个超参去调整。
    其实在文字上也有这样的处理,mask一个token也有点太少了,bert可能通过前后很轻易地推断出来。所以bert也需要mask掉一长串来学到知识。
  • mask策略不同。语音mask的策略不同于文字mask掉几个token,而是mask掉特殊的维度。
    在这里插入图片描述
    Bert能用在语音上,那么GPT也可以。

Predicting Future

将GPT用在语音上,也会有一些改动。GPT产生文字时,一般只生成接下来的一个token, 而用于生成语音时,由于语音的平滑性,只生成下一个语音片段过于简单(相邻语音片段相似),所以一般会预测至少三个语音片段,让GPT真的学到知识。一个具有代表性的将GPT用于语音的模型是APC(Autogressive Predictive Coding).
在这里插入图片描述

Image

前面说的是将Bert和GPT用于语音上,同样也可以应用在图像上。
比如将图像的像素点拉直,就像很多个token.
在这里插入图片描述

将Bert和GPT这样用于处理文字的模型用于语音和图像并非万无一失,实际上语音和影像中包含了很多细节,而这些细节很难生成。

Predictive Approach

Generative Approach这一大类方法,都是在还原语音和图片的一部分,但产生原来的声音和图片是很复杂的事情,那如何让机器不要做这么复杂的事情,同时让模型拥有自监督学习的效果?

Predicting Rotation

把一张图片进行旋转,但不让机器知道该图片是否被旋转过,然后让机器预测是否被旋转过。让机器学习一些简单的知识可以帮助模型在下游任务表现更好。
在这里插入图片描述

Context Prediction

从一张图片中切取两个小块,让机器学习这两个小块的相对位置。这样简单的任务同样可以帮助机器在下游任务上学得更好。
在语音上也有相似的做法,比如给定两个语音片段,让机器学习两个语音片段相距几秒。
在这里插入图片描述

Predict Simplified Object

生成语音信号或者图片对于机器来说太难,可以考虑生成简单的东西。
以语音为例:将声音编码成向量,再对向量做聚类(比如K-means),相似的就分为一样的id. 然后语音在输入模型之前同样做mask,但是预测的是id, 不再像以前一样预测声音信号了,这样对模型来说更加简单。
在这里插入图片描述

Contrastive Learning

Basic Idea

contrastive learning的基本思想,是让同类的图片经过encoder编码之后生成的向量尽可能相似,而让不同类的图片经过encoder编码之后生成的向量距离尽可能远。然而本身自监督学习的训练数据就是没有标签的数据,根本就不知道哪些图片是同类的,哪些图片是不同类的。
在这里插入图片描述

Contrastive Learning for Image

SimCLR

SimCLR就是被提出来解决这个问题的。首先,SimCLR会对数据进行data augmentation,比如随机裁剪,变换颜色,加入杂讯等。SimCLR认为进行data augmentation之后的图片就是同类的。而不同图片进行data augmentation之后的图片就是不同类的。然后训练模型,使同类的图片经过encoder之后编码向量尽可能相似,不同类的距离尽可能远。
这个方法的关键点在于控制augmentation的强度,如果一张猫的照片经过data augmentation之后变得像狗一样,这样也是不行的。所以SimCLR就尝试了各种data augmentation的方法,尝试找到最好的方法,也就是随机裁剪。
在这里插入图片描述

MoCo

李老师没细讲,自己看去吧。
在这里插入图片描述

Contrastive Learning for Speech

以下内容按照时间线叙述。

CPC and Wav2vec

将contrastive learning 用于语音的领域中,最有代表性的是CPC和Wav2vec. 这两个模型都将声音数据通过encoder编码成向量后,再通过predictor(两个模型的predictor不一样,在CPC中用的是GRU,而在Wav2vec中用的是CNN. )生成预测的向量。这两个模型认为,这个预测的向量和本句中下一个要还没输入进predictor的向量是同类的,而与其他句子的向量是不同类的。
在这里插入图片描述

还没写完呐,不管了先传了哈嘻嘻。


http://www.kler.cn/a/463801.html

相关文章:

  • 一文讲清楚HTTP常见的请求头和应用
  • C语言带参数的宏定义的相关知识汇总(最常用的形式、带标记分隔符##的形式...)
  • IIS设置IP+端口号外网无法访问的解决方案
  • 在Linux下安装部署Tomcat教程
  • SQLALchemy如何将SQL语句编译为特定数据库方言
  • AfuseKt1.4.4 | 刮削视频播放器,支持阿里云盘和自动海报墙
  • 牛客网最新 1180 道 Java 面试题及答案整理
  • cjson系列——EXAMPLES
  • PHP-Casbin v4.0.0 发布,支持 ACL、RBAC、ABAC 等模型的访问控制框架
  • OpenCV-Python实战(12)——图像金字塔
  • 机器学习随机森林回归模型数据预处理中归一化或者标准化
  • SQL 建表语句详解
  • Vue演练场基础知识(二)表单绑定+条件渲染
  • 【2024年-12月-25日-开源社区openEuler实践记录】easybox:简化开发运维流程的开源百宝箱
  • Android Gradle JVM配置文件gradle.properties优先级查找
  • Android TV端弹出的PopupWindow没有获取焦点
  • ECMAScript 变量
  • 纯血鸿蒙ArkUI按钮组件详解
  • 【每日学点鸿蒙知识】WebView代理、2D绘制矩形圆角、TextInput清理按钮、pdf滑动、icon配置问题
  • [算法] [leetcode-324] 摆动排序 II
  • 【C#】C#打印当前时间以及TimeSpan()介绍
  • uniapp——App下载文件,打开文档(一)
  • DeepSeek LLM通过长期主义扩展开源语言模型
  • python基础004--flask
  • python实现自动登录12306抢票 -- selenium
  • JavaSpring AI与阿里云通义大模型的集成使用Java Data Science Library(JDSL)进行数据处理