Skip to Content
机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
book

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

by Aurélien Géron
October 2020
Intermediate to advanced
693 pages
16h 26m
Chinese
China Machine Press
Content preview from 机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)
使用自动编码器和
GAN
的表征学习和生成学习
493
17.3 堆叠式自动编码器
与我们讨论过的其他神经网络一样,自动编码器可以具有多个隐藏层。在这种情况下,
它们被称为堆叠式自动编码器(或深度自动编码器)。添加更多的层有助于自动编码器学
习更多复杂的编码。就是说,要注意不要使自动编码器过于强大。想象一个强大的编码
器,它只是学会了把每个输入映射到单个任意数字(而解码器则学习反向映射)。显然,
这样的自动编码器可以完美地重建训练数据,但是它不会学到任何有用的数据表征(并
且不太可能将其很好地泛化到新实例中)。
堆叠式自动编码器的架构典型地相对于中间隐藏层(编码层)对称。简单来说,它看起
来像三明治。例如,MNIST 的自动编码器(在第 3 章中介绍)可能具有 784 个输入,其
后是具有 100 个神经元的隐藏层,然后是具有 30 个神经元的中间隐藏层,然后是具有
100 个神经元的另一个隐藏层,以及有 784 个神经元的一个输出层。这种堆叠式自动编
码器如图 17-3 所示。
重建
输出层
隐藏层 3
隐藏层 2
隐藏层 1
输入层
编码
17-3:堆叠式自动编码器
17.3.1 使用 Keras 实现堆叠式自动编码器
你可以像实现常规的深层 MLP 那样来实现堆叠式自动编码器。特别地,我们可以使
用在第 11 章中用于训练深度网络的相同技术。例如,以下代码使用 SELU 激活函数为
Fashion MNIST 构建了一个堆叠式自动编码器(如第 10 章所述进行加载和归一化):
stacked_encoder = keras.models.Sequential([ ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

算法技术手册(原书第2 版)

算法技术手册(原书第2 版)

George T.Heineman, Gary Pollice, Stanley Selkow
Go语言编程

Go语言编程

威廉·肯尼迪
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey

Publisher Resources

ISBN: 9787111665977