语音-自监督学习《self-supervised learning》

1. 自监督学习的意义

 1.1.1. 网络定义:大多数时,网络=特征提取+下游任务
 1.1.2. 自监督学习:目的就是从一个较难的自监督任务中,训练特征提取模块
 1.1.3. 下游任务:拼接一个下游网络,例如ctc模块进行语音识别(fine-tune模块)

2. CPC

2.1 网络

在这里插入图片描述

2.2 训练定义:采用最小化信息量(熵)

在这里插入图片描述

 1 分子:预测输出值,对应 ct
 2 分母:真实的标签,对应 z(t+1)
 3 当分子分母完全相等:预测完全准确,熵=0

2.3 量化指标:信息量怎么量化

在这里插入图片描述 1. 第一种:直接计算z(t+1)与ct之间的交叉熵,显然这样很垃圾,因为网络过分的关注细节信息,有很多噪声细节没意义
 2. 第二种:计算乘积相似度,有点类似于矢量相乘,方向一致时,效果最好,参考上述公式(但也存在自己的问题,理论上来说,网络只需要输出足够大的数就ok,显然不符合我们的需求,因此需要采用正负例,增大学习难度)
 3. 第三种:余弦相似度,wav2vec2之后等采用余弦相似度.

2.3 损失函数

在这里插入图片描述 1. 分子:正例
 2. 分母:负例
 3. 解释:采用正负例,此时学习难度变高,只学习产生一个绝对大的数,没啥意义了。

2.4 损失函数代码怎么设计:太取巧了

  loss=crossEntropy(torch.zeors() , 量化指标输出)

3. wav2vec

2.1 网络

在这里插入图片描述 对比cpc:别卷RNNT,咱CNN不比他差

4. wav2vec2

5. Hubert

5.1 语音对比NLP/CV,面临的问题

 1. 缺乏统一标准:单个音速/文字等发音音速不等,对同一个字发音,每个人都发音都不一致
 2. 缺乏离散化单元:每个文字对应一个token_id,语音是频谱信号,同一个字,每个人的的频谱都不同;单一帧内,发音起始位置未知

5.1 网络

在这里插入图片描述

 1. Acoustic unit discovery system:聚类算法,提供离散化信号:相似发音作为一个label,更容易忽略无关的细节/噪声等信息
 2. 网络组成:hubert+聚类模块
 3. hubert:cnn(语音特征提取)+bert

5.2 hubert预测输出

在这里插入图片描述

5.3 损失函数

在这里插入图片描述

 1. 评价bert输出与label的关系:余弦相似度
 2. 余弦相似度内部:hubert先经过投影层,再与聚类的label做余弦相似度计算
 3. 正负例:mask对应的位置为正例,随机选取的label为负例

5.4 训练阶段:两阶段

  1. 第一步:先训练聚类算法,得到聚类中心
  2. 第二步:训练hubert模型
  3. loss:参考cpc,拼接正负例,再计算交叉熵

5.5 下游任务:fine-tune(asr)

  1. 网络:丢弃聚类部分,在hubert后拼接ctc模块
  2. fine-tune:开始阶段,只微调ctc,等1k-epoch,再放开hubert微调

6. 代码参考:torch.audiohttps://github.com/pytorch/audio/blob/main/examples/tutorials/speech_recognition_pipeline_tutorial.py

  1. wav2vec2:英文示例,不可预训练 (audio/examples/tutorials/speech_recognition_pipeline_tutorial.py)
  2. hubert:可预训练(内部有frozen-fine-tune,不建议采用多语种预训练,尽量同语种)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值