各位小伙伴们,大家好,今天让我们来如何用神经网络来处理非监督的学习,也就是AutoEncoder,自编码。
首先,我们听到自编码,一定会想到,AutoEncoder会是个什么码呢?是条形码,二维码,还是我们宅男们最不能忍受的打码中的一种呢?
NO.NO.NO,和他们都没有关系,其实自编码是一种神经网络形式,如果你一定要和上面的那些码扯上关系,我想可以这样理解了。
现在我们先构架一个神经网络模型,这个模型是收集一张图片,接受这个图片后,神经网络给这个图片打码,最后再从打码的图片中还原,是不是感觉有点抽象,其实我也觉得这样的解释不太恰当,那就让我们更加的具体一点来深入了解下这个自编码。
现在假设我们刚才构建的模型是这个样子,我们可以从图片中看出来,我们刚才上传给自编码模型的图片实质上是经过压缩以后再进行解压的一个过程。
当压缩的时候,原有的图片的质量被缩减,解压的时候,用信息量小却包含了所有信息的文件来恢复出原来的图片。
那么,为什么要这么做呢?当神经网络要输入大量的信息,比如高清图片的时候,输入的图像数量可以达到上千万,要神经网络直接从输入的数据量中进行学习,是一件非常费力不讨好的工作,因此我们就想,为什么不压缩一下呢?
提取出原图片中最具有代表性的信息,缩减输入中的信息量,然后在把缩减过后的信息放入到神经网络中学习,这样学习起来就变得轻松了,所以自编码就是能在这个时候发挥作用,从上图中的蓝色框中的X解压缩到黄色框中的x,然后用黄色的X和蓝色的X进行对比,得到预测误差,再进行反向传递,然后逐步的提高自编码的准确率,训练一段时间后在中间获得的哪一个部分黄色的L2就是源数据的精髓。
可以从上面那个模型看出,从头到尾,我们只用到了这个输入的信息L1,并没有用到数据X所对应的数据标签,所以我们这时候可以得出结论,自编码是一种非监督学习,通常我们在使用自编码的时候通常只会使用自编码的前半部分,这个部分也叫作EnCode,编码器,编码器可以得到源数据的精髓,
转自:自然语言处理与机器学习