无监督学习:自动编码器
Introduction
Auto-encoder本质上就是一个自我压缩和解压的过程
我们想要获取压缩后的code,它代表降维结果,这个过程中我们需要:
- Encoder(编码器),它可以把原先的图像压缩成更低维度的向量
- Decoder(解码器),它可以把压缩后的向量还原成图像
Encoder和Decoder都是Unsupervised Learning,由于code是未知的,对Encoder来说,我们手中的数据只能提供图像作为NN的input,却不能提供code作为output;对Decoder来说,我们只能提供图像作为NN的output,却不能提供code作为input
因此Encoder和Decoder单独拿出一个都无法进行训练,我们需要把它们连接起来,这样整个神经网络的输入和输出都是我们已有的图像数据,就可以同时对Encoder和Decoder进行训练,而降维后的编码结果就可以从最中间的那层hidden layer中获取

Recap: PCA
PCA的过程本质上就是按组件拆分,再按组件重构的过程

Deep Auto-encoder
Structure
中间的hidden layer也可以不止一个,也可以是多个的hidden layer,这种结构就称作deep auto-encoder

PCA vs Deep Auto-encoder
对于下图中的图像(0,1,2,3,4),如果我们使用PCA,只有中间一个hidden layer,先从784维降到30维,再从30维恢复到784维,可以发现图像变得比较模糊;
如果使用deep auto-encoder,先从784到1000,1000到500,500到250,250到300,再使用类似的encoder恢复图像,可以发现结果图像非常清晰

如果我们先使用PCA进行降维,把原图从784降到2维,对二维的数据进行可视化,可以发现不同的digit(不同的颜色代表不同的数字)都叠在一起了;
如果使用deep autoencoder,可以发现这个数字都是分开的

Text Retrieval(文字检索)
下图中蓝色的圆点都表示一个document,我们将输入的query也加入这个document,再计算查询的词汇query和每个document之间的inner product或similarity等,距离最近的document,similarity的值是最大的,因此会retrieval距离红色箭头最近的其他两个蓝色箭头
<

自动编码器是一种用于自我压缩和解压过程的神经网络,通过编码器和解码器实现数据的降维和重构,适用于图像处理、文本检索及噪声去除等场景。本文深入探讨其原理与应用。
最低0.47元/天 解锁文章
357

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



