九、自编码器(Autoencoder)

上一章:八、(二)深度学习训练技巧

下一章:十、生成对抗网络

更多章节:人工智能入门课程


目录

课前测试

使用自编码器的场景

变分自编码器(Variational Autoencoder,VAE)

✍️ 练习:自编码器

自编码器的属性

课后测试

总结

挑战

复习与自学

作业


当训练CNN时,一个问题是我们需要很多标记了的数据。在图片分类的例子中,我们需要将图像分成不同的分类,这是一个手动工作。

然而,我们可能想使用未经处理(没打标签)的数据来训练CNN特征提取器,这被称为自监督学习。我们将训练图像同时作为网络的输入和输出,而不需要标签。 自编码器的主要思想是,我们使用一个编码器网络,把输入图像转换为某个隐空间(通常它只是一个大小更小的向量),然后是解码器网络,它的目标是重建原始图像。

 自编码器是“一种用于学习未标记数据的有效编码的人工神经网络”。

因为我们训练自编码器是为了尽可能多的从原始图像中提取信息以准确重建图像,神经网络尝试找到输入图片的最佳“嵌入(embedding)”来提取“.л.”(图片内容)的含义。

图像由Keras blog提供

使用自编码器的场景

尽管编码器在重建原始图像本身时好像没有用但有一些场景下编码器非常有用

  • 降低图像的维度以进行可视化或者训练图像embedding通常自编码器的结果比PCA好,因为它考虑了图像的空间特性和分层特征
  • 去燥Denoising即去除图像中的噪声因为噪声携带了大量无效信息自编码器无法将其全部放入相对较小的隐空间所以它只提取图像重要的部分当我们训练降噪器时我们从原始图像开始然后使用人为添加了噪声的图像作为自编码器的输入
  • 超分辨率(Super-resolution),增加图像的分辨率。我们从高分辨率图像开始,并使用低分辨率图像作为自编码器的输入
  • 生成(模型Generative models). 一旦我们训练了自编码器,就可以使用随机潜向量利用解码器部分创建新对象。

变分自编码器(Variational Autoencoder,VAE)

传统自编码器使用某种方法减少输入数据维度找出输入图像的重要特征然而潜在向量通常并不那么有意义也就是说以MNIST数据集为例确定哪个数字对应于不同的潜在向量并不容易,因为接近的潜在向量(latent vector)并不一定对应相同的数字。

在另一方面要训练生成式模型,最好对潜在空间(latent space)有一些了解。这个想法引出了变分自编码VAE)。

VAE是学习预测潜在参数(latent parameters)的统计分布的自编码称为潜在分布(latent distribution)例如我们希望潜在向量以一定的均值z_{mean}和标准差z_{sigma}服从正态分布均值和标准差都是d维向量)。VAE中的编码器学习预测这些参数然后解码器使用从该分布中取一个随机向量来重建对象

总结:

  • 从输入向量我们预测z_meanz_log_sigma(我们预测标差的对数而不是其本身)。
  • 我们从分布N(zmean,exp(zlog_sigma))中采样一个样本向量
  • 解码器尝试使用样本向量作为输入向量来解码原始图像

图片出自这篇博客文章 Isaak Dykeman提供

变分自编码器使用一个复杂的由两部分组成的损失函数

  • 重建损失函数Reconstruction loss)是显示重建的图像与目标图像接近程度的损失函数它可以是均方误差或者MSE)。它与普通的自编码器中的损失函数一样
  • KL损失它确保潜在变量分布保持接近正态分布它基于Kullback-Leibler divergence(K-L散度)的概念-一种用于评估两个统计分布相似度的指标

VAE的一个重要优势是它允许我们比较容易的生成新图像因为我们知道从哪个分布中抽样潜在向量例如如果我们使用MNIST

数据集上的2D潜在向量训练VAE我们可以改变潜在向量上的组成部分来获得不同的数字

图片由Dmitry Soshnikov提供

当我们开始从潜在参数空间的不同部分提取潜在向量观察图像如何(渐变)融入彼此我们也可以在2D中可视化这个空间

图片由Dmitry Soshnikov提供

✍️ 练习:自编码器

在这些相应的笔记本中学习更多关于自编码器的知识

自编码器的属性

  • 特定数据Data Specific)-它们仅在它们所被训练的类型的图像上表现良好比如如果我们在花朵上训练超分辨率网络它在肖像类图像上就表现不好这是因为网络之能够从训练数据集中提取的特征中的细节来生成高分辨率图像
  • 有损Lossy) - 重建的图与原始图像并不完全一样损失的性质是由训练期间使用的损失函数定义的
  • 适用于未标记数据unlabeled data)。

总结

在这节课中,您学习了AI科学家可用的各种类型的自编码器您学习了如何构建它们如何使用它们重建图像您也学习了VAE以及如何使用它生成图像

挑战

在这节课中您学习了如何使用自编码器处理图像但是它们也可以用来处理音乐查看MagentaMusicVAE子项目它使用了自编码器来学习重建音乐使用这个库来做一些实验 看看您能创造什么

复习与自学

作为参考阅读以下关于自编码器的资源

作业

本使用TensorFlow的笔记的末尾您将发现一个“任务”-把其当作您的作业


上一章:八、(二)深度学习训练技巧

下一章:十、生成对抗网络

更多章节:人工智能入门课程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值