自编码器(一) 简介

一、定义 

自编码器是神经网络的一种,它尝试将输入进行处理以后再从输出还原。自编码器由编码器和解码器构成。损失函数一般是重构误差。自编码器是无监督学习,样本和标签都是原始输入。

自编码器关注的是中间隐层的结果,利用中间的隐层,可以起到数据降维和特征提取的作用。

二、特点

自编码器是前馈神经网络的一种,最开始用于数据降维和特征提取,现在也可以用于生成模型。自编码器和生成对抗网络(GAN)是生成网络的研究热点。

三、过拟合

我们需要的是自编码器中间隐层的结果,但是如果使用不当,自编码器容易出现过拟合。这时自编码器会简单地将输入复制到输出,达不到预期的效果。

当中间隐层的维度大于或等于输入层,会出现过拟合的情况。利用mnist进行测试的结果如下。

上面一层是原始图像,下面一层是中间隐层的图像,可以发现,两者的差别很小。

四、测试

利用keras进行测试,tensorflow作为后端,实现了一个简单的自编码器。keras实现比较简单,搭建了一个全连接神经网络。这里借鉴了 https://github.com/Nana0606/Autoencoder/tree/master/Autoencoder  这位大佬的代码。

生成的结果并不理想,这是一个三层的模型,隐层维度为2。如果适当提高隐层的维度,生成的效果应该会有所提高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值