2020李宏毅学习笔记——50.More about Auto-Encoder(4_4)

Discrete Representation离散表示
如果模型可以从连续型的向量表示变成输出离散的表示,那么对于表示的解释性估计会有更好的理解。(·Easier to interpret or clustering)
例如:用独热编码表示图片,做法很简单,在连续向量后面接相同维度的独热编码,看连续变量的哪个维度最大就用哪个做独热编码的1.在这里插入图片描述
通常情况下,Encoder输出的Embedding都是连续值的向量,这样才可以使用反向传播算法更新参数。但如果可以将其转换为离散值的向量,例如one-hot向量或是binary向量,我们就可以更加方便的观察Embedding的哪一部分表示什么信息。当然此时不能直接使用反向传播来训练模型,一种方式就是用强化学习来进行训练。
同样可以用Binary向量来表示图片,只不过判断0/1的方法不一样,这里如果大于0.5取1,小于取0
在这里插入图片描述
但是上面的模型在连续向量转离散向量的步骤上是不可做偏导的(无法GD)但是有办法:
当然,上面两个离散向量的模型比较起来,Binary模型要好,原因有两点:
1、同样的类别Binary需要的参数量要比独热编码少,例如1024个类别Binary只需要10维即可,独热需要1024维;
2、使用Binary模型可以处理在训练数据中未出现过的类别。
除了上面的两个模型之外,在实作上有:

VQVAE:
Vector Quantized Variational Auto-encoder (VQVAE),它引入了一个Code book。它是将Embedding分为了很多的vector,然后比较哪一个和输入更像,就将其丢给Decoder重建输入。
第一步:先用Encoder抽取为连续型的向量vector;
第二步:再用vector与Codebook中的离散变量Vectori 进行相似度计算,例如上图中黄色的Vector3
第三步:用Vector3还原输入信息。
上面的模型中,如果输入的是语音信息,那么语者信息和噪音信息会被过滤掉,因为上面的Codebook中保存的是离散变量,而内容信息是一个个的token,是容易用离散向量来表示的,而其他信息不适合用离散变量表示,因此会被过滤掉。
因此过滤信息是VQVAE的一个应用。
既然可以用离散向量来表示输入信息,那么我们也可以考虑用序列来embedding在这里插入图片描述

2.Sequence as Embedding

如果我们要训练一个seq2seq2seq的Auto-encoder时,使用其他对抗的思想进行训练,就可以得到类似关于输入文档的摘要信息
例如:一篇文章经过encoder得到一串文字,然后这串文字再通过decoder还原回文章。
Only need a lot of documents to train the model.
中间的文字是什么?摘要。
但是这个模型效果是不好的,例如:
台湾大学会被机器抽取为:湾学,而不是台大。因为模型只要还原原文,回到台湾大学,而没有要求抽取出来的东西要符合语法规则。
因此模型可以改进为:gan
binary:来判断是否是人写的,discriminator骗过机器:他看过很多台北大学,就不会搞出来玩雪。
在这里插入图片描述

3.Tree as Embedding

除了向量表示,序列表示,还有tree表示(不展开)

回顾一下:一共讲了两个内容:
More than minimizing reconstructioon error(比最小化重建错误更好地东西)

  • Using Discriminator(鉴别器)
  • Sequential data(顺序数据)
    More interpretable embedding(更具解释性的嵌入)
  • Feature Distangle(特征距离角)
  • Discrete and Structured(离散和结构化)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: Auto-encoder是一种深度学习模型,用于将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。在降维方面,PCA会将不同类别的数据混合在一起,而auto-encoder则可以将它们分开。除了降维之外,auto-encoder还有其他用途,比如图片搜索。 引用: 训练一个auto-encoder的过程通常会先固定一些权重参数,然后逐层训练多个自编码器,每个自编码器的输入和输出维度逐渐逼近目标维度。最后,可以使用反向传播来微调网络参数。现在也可以不进行预训练,直接训练auto-encoder。此外,auto-encoder还可以与卷积神经网络(CNN)一起使用。 引用: 特征区分技术是指在auto-encoder中,通过编码器获取的Embedding向量中,可以区分出不同输入数据的特征信息。比如,对于语音输入,可以分别提取出语音内容和说话者的特征。这就是Feature Disentangle的目标。 根据李宏毅老师的讲解,auto-encoder是一种用于降维、重构和特征提取的深度学习模型。它可以将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。除了降维之外,auto-encoder还可以用于图片搜索等任务。训练auto-encoder时,可以使用预训练和微调的方法,也可以直接进行训练。此外,auto-encoder还可以与卷积神经网络(CNN)结合使用。特征区分技术可以用于auto-encoder中,用于提取不同输入数据的特征信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值