Skip to content

Deep Learning Coursework for software, systems and applications 3rd year module

Notifications You must be signed in to change notification settings

peterhessey/DeepLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeepLearning

Deep Learning Coursework for software, systems and applications 3rd year module

Objective

  • Using the CIFAR-10 dataset, create a NN model capable of generating an image of a pegasus
  • An intentionally ill-defined learning problem; the generative model needs to use what it learns about birds and horses in order to produce the pegasus image

To-Do

  • Lecture catchup (especially lecture 4)
  • Research generative architectures, produce list of papers / interesting articles etc.
  • Select a generative model to use
  • Build and train model
  • Generate pegasus image
  • Tweak and refine hyperparameters etc., keep track of results and details of improvements
  • Write report
    • Diagram of model, dicussions on its design (40 marks)
    • Include best output (40 marks)
    • Include batch of 64 images (20 marks)

Notes

Lecture 3 Catchup

  • Variety of potential architectures explained in lecture 3
    • GANs look promising
  • Batch normalisation explained here

Lecture 4 Catchup

  • Generative models are effectively the reverse of classifcation models, i.e. P(X|Y=y) instead of P(Y|X=x)
  • KDE explained nicely here
  • Lots of useful statisitcal definitions, may be worth coming back to when reading papers in the future
  • Dicsussion of loss functions
    • Generally a good idea to simply use L_2 as it is convenient, simple and computationally inexpensive
  • GANs (Generative adversarial networks) use a game-theoretic approach to the generative problem, by competing two models against one another:
    • Discriminator, D, which estimates the probability of a given sample coming from the real dataset or being a generated sample
    • A generator, G, that learns to map noise drawn from some prior distribution (often Gaussian) to generated examples that capture p_data
    • This creates a two-player minimax game, where one player is trying to minimize G and the other is trying to maximise D. When they reach a Nash equilibrium this is when the GAN model converges.

Lecture 5 Catchup - GANs and ACAIs

  • GANs are notoriously difficult to train, they often demonstrate extreme instability
  • ACAIs have a strong potential of being very useful, more detailed explanation on them can be found here

ACAIs

  • ACAI paper here
  • ACAI paper notes here
  • ACAI implementation in tensorflow can be found here

GANs

How to train a GAN video facebook AI here video

Training tips

DCGANs

  • Paper on Deep Convolutional Generative Adversarial Networks here
  • Architecture guidelines:
    • Replace pooling layers with strided convolutions (discriminator) and fractional-strided convolutions (generator)
    • Use batch normalisation in both the generator and discriminator
    • Remove fully connected hidden layers for deeper architectures
    • Use ReLU activation in the generator for all layers except for the output, which uses Tanh
    • Use LeakyReLU activation in the discriminator

Conditional GANs

  • Paper on conditional GANs can be found here

Normalisation techniques

  • Spectral normalisation increases training stability, paper on it here

WGANs

  • WGAN paper found here

Spherical space sampling

  • Latent space sampling paper found here

About

Deep Learning Coursework for software, systems and applications 3rd year module

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published