csce 496/896 lecture 5:...

34
CSCE 496/896 Lecture 5: Autoencoders Stephen Scott Introduction Basic Idea Stacked AE Denoising AE Sparse AE Contractive AE Variational AE GAN CSCE 496/896 Lecture 5: Autoencoders Stephen Scott (Adapted from Paul Quint and Ian Goodfellow) [email protected] 1 / 34

Upload: others

Post on 13-Jul-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

CSCE 496/896 Lecture 5:Autoencoders

Stephen Scott

(Adapted from Paul Quint and Ian Goodfellow)

[email protected]

1 / 34

Page 2: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Introduction

Autoencoding is training a network to replicate itsinput to its outputApplications:

Unlabeled pre-training for semi-supervised learningLearning embeddings to support information retrievalGeneration of new instances similar to those in thetraining setData compression

2 / 34

Page 3: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Outline

Basic ideaStackingTypes of autoencoders

DenoisingSparseContractiveVariationalGenerative adversarial networks

3 / 34

Page 4: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Basic Idea

Sigmoid activation functions, 5000 training epochs,square loss, no regularizationWhat’s special about the hidden layer outputs?

4 / 34

Page 5: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Basic Idea

An autoencoder is a network trained to learn theidentity function: output = input

Subnetwork calledencoder f (·) maps inputto an embeddedrepresentationSubnetwork calleddecoder g(·) maps backto input space

Can be thought of as lossy compression of inputNeed to identify the important attributes of inputs toreproduce faithfully

5 / 34

Page 6: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Basic Idea

General types of autoencoders based on size of hiddenlayer

Undercomplete autoencoders have hidden layer sizesmaller than input layer size⇒ Dimension of embedded space lower than that of input

space⇒ Cannot simply memorize training instances

Overcomplete autoencoders have much larger hiddenlayer sizes⇒ Regularize to avoid overfitting, e.g., enforce a sparsity

constraint

6 / 34

Page 7: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Basic IdeaExample: Principal Component Analysis

A 3-2-3 autoencoder with linear units and square lossperforms principal component analysis: Find lineartransformation of data to maximize variance

7 / 34

Page 8: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Stacked Autoencoders

A stackedautoencoderhas multiplehidden layers

Can share parameters to reduce their number byexploiting symmetry: W4 = W>

1 and W3 = W>2

weights1 = tf.Variable(weights1_init, dtype=tf.float32, name="weights1")weights2 = tf.Variable(weights2_init, dtype=tf.float32, name="weights2")weights3 = tf.transpose(weights2, name="weights3") # shared weightsweights4 = tf.transpose(weights1, name="weights4") # shared weights

8 / 34

Page 9: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Stacked AutoencodersIncremental Training

Can simplify training by starting with single hiddenlayer H1

Then, train a second AE to mimic the output of H1

Insert this into first networkCan build by using H1’s output as training set forPhase 2

9 / 34

Page 10: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Stacked AutoencodersIncremental Training (Single TF Graph)

Previous approach requires multiple TensorFlow graphsCan instead train both phases in a single graph: Firstleft side, then right

10 / 34

Page 11: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Stacked AutoencodersVisualization

Input MNIST Digit Network Output

Weights (features selected) for five nodes from H1:

11 / 34

Page 12: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Stacked AutoencodersSemi-Supervised Learning

Can pre-train network with unlabeled data⇒ learn useful features and then train “logic” of dense

layer with labeled data

TF code12 / 34

Page 13: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Transfer Learning from Trained Classifier

Can alsotransfer from aclassifiertrained ondifferent task,e.g., transfer aGoogleNetarchitecture toultrasoundclassification

Often choose existing one from a model zoo

13 / 34

Page 14: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Denoising AutoencodersVincent et al. (2010)

Can train an autoencoder to learn to denoise input bygiving input corrupted instance x and targetinguncorrupted instance xExample noise models:

Gaussian noise: x = x + z, where z ∼ N (0, σ2I)Masking noise: zero out some fraction ν ofcomponents of xSalt-and-pepper noise: choose some fraction ν ofcomponents of x and set each to its min or max value(equally likely)

14 / 34

Page 15: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Denoising Autoencoders

15 / 34

Page 16: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Denoising AutoencodersExample

16 / 34

Page 17: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Denoising Autoencoders

How does it work?Even though, e.g., MNIST data are in a784-dimensional space, they lie on a low-dimensionalmanifold that captures their most important featuresCorruption process moves instance x off of manifoldEncoder fθ and decoder gθ′ are trained to project x backonto manifold

17 / 34

Page 18: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Sparse Autoencoders

An overcomplete architectureRegularize outputs of hidden layer to enforce sparsity:

J (x) = J (x, g(f (x))) + αΩ(h) ,

where J is loss function, f is encoder, g is decoder,h = f (x), and Ω penalizes non-sparsity of hE.g., can use Ω(h) =

∑i |hi| and ReLU activation to

force many zero outputs in hidden layerCan also measure average activation of hi acrossmini-batch and compare it to user-specified targetsparsity value p (e.g., 0.1) via square error orKullback-Leibler divergence:

p logpq

+ (1− p) log1− p1− q

,

where q is average activation of hi over mini-batch18 / 34

Page 19: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Contractive Autoencoders

Similar to sparse autoencoder, but use

Ω(h) =

m∑j=1

n∑i=1

(∂hi

∂xj

)2

I.e., penalize large partial derivatives of encoderoutputs wrt input valuesThis contracts the output space by mapping inputpoints in a neighborhood near x to a smaller outputneighborhood near f (x)

⇒ Resists perturbations of input x

If h has sigmoid activation, encoding near binary and aCE pushes embeddings to corners of a hypercube

19 / 34

Page 20: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational Autoencoders

VAE is an autoencoder that is also generative model⇒ Can generate new instances according to a probability

distributionE.g., hidden Markov models, Bayesian networksContrast with discriminative models, which predictclassifications

Encoder f outputs [µ,σ]>

Pair (µi, σi) parameterizesGaussian distribution fordimension i = 1, . . . , nDraw zi ∼ N (µi, σi)Decode this latent variable zto get g(z)

20 / 34

Page 21: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersLatent Variables

Independence of z dimensions makes it easy togenerate instances wrt complex distributions viadecoder gLatent variables can be thought of as values ofattributes describing inputs

E.g., for MNIST, latent variables might represent“thickness”, “slant”, “loop closure”

21 / 34

Page 22: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersArchitecture

22 / 34

Page 23: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersOptimization

Maximum likelihood (ML) approach for traininggenerative models: find a model (θ) with maximumprobability of generating the training set XAchieve this by minimizing the sum of:

End-to-end AE loss (e.g., square, cross-entropy)Regularizer measuring distance (K-L divergence) fromlatent distribution q(z | x) and N (0, I) (= standardmultivariate Gaussian)

N (0, I) also considered the prior distribution over z (=distribution when no x is known)

eps = 1e-10latent_loss = 0.5 * tf.reduce_sum(

tf.square(hidden3_sigma) + tf.square(hidden3_mean)- 1 - tf.log(eps + tf.square(hidden3_sigma)))

23 / 34

Page 24: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersReparameterization Trick

Cannot backprop error signal through random samplesReparameterization trick emulates z ∼ N (µ, σ) withε ∼ N (0, 1), z = εσ + µ

24 / 34

Page 25: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersExample Generated Images: Random

Draw z ∼ N (0, I) and display g(z)

25 / 34

Page 26: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational AutoencodersExample Generated Images: Manifold

Uniformly sample points in z space and decode

26 / 34

Page 27: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Variational Autoencoders2D Cluster Analysis

Cluster analysis by digit

27 / 34

Page 28: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial Network

GANs are also generative models, like VAEsModels a game between two players

Generator creates samples intended to come fromtraining distributionDiscriminator attempts to discern the “real” (originaltraining) samples from the “fake” (generated) ones

Discriminator trains as a binary classifier, generatortrains to fool the discriminator

28 / 34

Page 29: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkHow the Game Works

Let D(x) be discriminator parameterized by θ(D)

Goal: Find θ(D) minimizing J(D)(θ(D),θ(G)

)Let G(z) be generator parameterized by θ(G)

Goal: Find θ(G) minimizing J(G)(θ(D),θ(G)

)A Nash equilibrium of this game is

(θ(D),θ(G)

)such

that each θ(i), i ∈ D,G yields a local minimum of itscorresponding J

29 / 34

Page 30: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkTraining

Each training step:Draw a minibatch of x values from datasetDraw a minibatch of z values from prior (e.g., N (0, I))Simultaneously update θ(G) to reduce J(G) and θ(D) toreduce J(D), via, e.g., Adam

For J(D), common to use cross-entropy where label is 1for real and 0 for fakeSince generator wants to trick discriminator, can useJ(G) = −J(D)

Others exist that are generally better in practice, e.g.,based on ML

30 / 34

Page 31: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkDCGAN: Radford et al. (2015)

“Deep, convolution GAN”Generator uses transposed convolutions (e.g.,tf.layers.conv2d_transpose) without pooling toupsample images for input to discriminator

31 / 34

Page 32: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkDCGAN Generated Images: Bedrooms

Trained from LSUN dataset, sampled z space

32 / 34

Page 33: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkDCGAN Generated Images: Adele Facial Expressions

Trained from frame grabs of interview, sampled z space

33 / 34

Page 34: CSCE 496/896 Lecture 5: Autoencoderscse.unl.edu/~sscott/teach/Classes/cse496S18/slides/5-Autoencoder… · Denoising AE Sparse AE Contractive AE Variational AE GAN Generative Adversarial

CSCE496/896

Lecture 5:Autoencoders

Stephen Scott

Introduction

Basic Idea

Stacked AE

Denoising AE

Sparse AE

ContractiveAE

Variational AE

GAN

Generative Adversarial NetworkDCGAN Generated Images: Latent Space Arithmetic

Performed semantic arithmetic in z space!

(Non-center images have noise added in z space; center isnoise-free)

34 / 34