一、自编码器
自编码器(Autoencoder)是一种旨在将它们的输入复制到的输出的神经网络。他们通过将输入压缩成一种隐藏空间表示(latent-space representation),然后这种重构这种表示的输出进行工作。这种网络由两部分组成,如下图:
- 编码器:将输入压缩为潜在空间表示。可以用编码函数h = f(x)表示。
- 解码器:这部分旨在重构来自隐藏空间表示的输入。可以用解码函数r = g(h)表示。
因此整个网络可以看成是要g(f(x))和x尽量接近。具体操作如下图,我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,然后加一个decoder解码器,这时候decoder就会输出一个信息,那么如果输出的这个信息和一开始的输入信号input是很像的(理想情况下就是一样的),那很明显,我们就有理由相信这个code是靠谱的。所以,我们就通过调整encoder和decoder的参数,使得重构误差最小,这时候我们就得到了输入input信号的第一个表示了,也就是编码code了。因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。