文章主要内容参考李宏毅老师的机器学习课程:https://www.bilibili.com/video/BV1Wv411h7kN?p=70
Auto Encoder: 是什么?有什么用?
Auto Encoder 的思路特别简单,就是把高维信息编码为低维信息(encoder的工作),然后再尝试解码回原来的高维信息(decoder的工作),还要尽可能保证能恢复出原来的样子。其中,中间的低维信息被叫做 code, representation, bottleneck, Embedding等等,这里提一嘴,后面就会理解为什么这么叫。
你可能会问,为什么要这样做?有什么用?
首先他是一个无监督的机器学习方法,也就是说,不用人工标注数据集,有训练数据直接扔给模型,模型只管encode到低维信息,decode到高维信息就好了。
理想状态下,AE能将训练数据分布的冗余信息储存在模型的参数里,降维几乎是一定会损失信息的,但是encoder部分和decoder相互配合,能够将损失的部分配合补齐,与原来尽可能一致。
最近想到一个很理想的,最适合AE的例子,例子中可能会有纰漏,尽可能理解思想:
假设我们的输入的维度每个维度表示一个汉字,我的训练数据集都是7个字的文本,我们的中间表示 Embedding 是 2个字两维的文本。某一个理想情况下,输入都是类似“张三今天去学校”,“李四今天去学校”,“王五今天去学校”这样的,某某两个字名字加上“今天去学校”,那么模型就可以学到说,数据的分布中,后面的内容是固定的,encoder在降维的时候可以直接抛去后面的几个字,只保留关键的姓名作为Embedding传给Decoder,然后decoder也心领神会,直接在Embedding后面再补上额外的信息,又把低维信息变成高维了。
补一句,什么是低维信息,什么是高维信息?

本文介绍了AutoEncoder的基本原理,它通过无监督学习将高维信息编码为低维,再解码回原始信息。DAE(Denoising AutoEncoder)在训练中引入噪声,增强模型的鲁棒性。VAE(Variational AutoEncoder)进一步创新,Encoder输出的不再是单一Embedding,而是一个分布,通过采样得到Embedding,同时引入KL散度正则化,使模型更加稳定。VAE的这种特性使其在生成和异常检测等方面有更广泛的应用。
9870

被折叠的 条评论
为什么被折叠?



