自编码器是一个无监督的应用,它使用反向传播来更新参数,它最终的目标是让输出等于输入。数学上的表达为,f(x) = x,f 为自编码器,x 为输入数据。
自编码器会先将输入数据压缩到一个较低维度的特征,然后利用这个较低维度的特征重现输入的数据,重现后的数据就是自编码器的输出。所以,从本质上来说,自编码器就是一个压缩算法。
自编码器由 3 个部分组成:
- 编码器(Encoder):用于数据压缩。
- 压缩特征向量(Compressed Feature Vector):被编码器压缩后的特征。压缩特征向量也是人工神经网络中的一层,它的维度就是我们要将数据压缩到的维度,是一个超参,我们要提前设定。
- 解码器(Decoder):用于数据解码。编码器与解码器就是之前讲的多层感知机,也可以用卷积实现。
如下图

有三点需要注意
- 自编码器只能压缩与训练数据相似的数据。比如我们用 MNIST手写数字训练集来训练自编码器,那它只能压缩手写数字相关的数据,如果用来压缩手写数字以外的数据,表现就会很差;
- 自编码器解压缩的结果只能接近输入,并不完全一样。所以它是一个有损的压缩算法;
- 自编码器是一个无监督学习的算法。我们不需要对数据做任何标注,只需要把原始数据扔给它就可以了,它会自动挖掘数据中的潜在结构模式。
自编码器是一种无监督学习的神经网络,通过压缩输入数据到低维度特征并重构,用于数据压缩和降噪。本文介绍了自编码器的网络架构、实现方式、降噪自编码器和稀疏自编码器,以及其在数据降噪和降维处理中的应用。
订阅专栏 解锁全文
自编码器&spm=1001.2101.3001.5002&articleId=136080634&d=1&t=3&u=5b6df90649da441d898e9484042cb274)
6606

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



