什么是自编码网络
一、引言
深度学习是人工智能的基石,正飞速的改变着我们的生活,也是现在最热的研究方向之一。深度学习的传统方法是监督学习,需要提供大量人工标注的样本标签。但像很多时候很难提供准确的样本标签,比如真实地震勘探数据的去除噪声标签。这时研究非监督学习就很重要了。其中一个非监督学习算法就是自编码。
二、什么是自编码
自编码是区别于人工编码的过程,人工编码是通过人的经验将数据进行编码。而自编码过程是不需要人工的。那么,自编码一定需要有办法知道自己的编码方法是否合理。这个方法就是解码器,用解码器来看解码之后的复原情况。如果我能通过解码器将编码器压缩的数据恢复得差不多,那么编码就是合理的。如下图:
什么是自动编码?
“自动编码”是一种数据压缩算法,其中的压缩和解压缩功能是1)特定于数据的,2)有损的,以及3)从示例中自动学习的,而不是人工设计的。
此外,一般来说:“自动编码器”的压缩和解压缩功能都是用神经网络实现的。
自编码网络的一般结构。
要构建一个自动编码器,至少需要三个结构:一个编码函数,一个解码函数,以及损失函数(表示编码层和解码层之间的信息丢失的误差)。
编码器和解码器都是参数可调的函数(一般使用神经网络实现),并且相对于距离函数是可微的,因此可以使用随机梯度下降来优化编码/解码函数的参数,以最小化重建损失。
三、自编码的特性
1.自动编码的特点
自动编码器不是一种真正的无监督学习技术(这意味着完全不同的学习过程),它们是一种自监督技术(通过非人工标注的训练集学习),是一种监督学习的具体实例,目标是从输入数据中生成的。
它们之所以受到如此多的研究和关注,一个原因是它们长期以来被认为是解决无监督学习问题的一个潜在途径,即学习有用的表示而不需要标签。
2.自编码可以用在哪些地方?
用自编码做预训练。(比如我们手中大量数据没有标签,只有少量数据有标签,就可以用大量无标签的数据在第一阶段作无监督的预训练,然后再用有标签数据进行模型的优化。这样就能减少由于有标签数据过少导致的过拟合问题)
自动创作。(特定类型的自编码可以做模型自动生成新的东西,比如自动作诗等。)
去除噪声。(就像上面提到的,解决一些复杂的噪声问题。)
对多维度数据进行降维。(自动编码由于中间层有维度缩减的功效,因而强制它找到一个数据内部的模式,从而起到高效的对训练数据的降维的作用。)