Code Monkey home page Code Monkey logo

vitutorial's Introduction

Binder

This repository stores material for a tutorial on variational inference for NLP audiences.

Want to host our tutorial at your location? Contact one of us!

Useful links

Neural networks are taking NLP by storm. Yet they are mostly applied to fully supervised tasks. Many real-world NLP problems require unsupervised or semi-supervised models, however, because annotated data is hard to obtain. This is where generative models shine. Through the use of latent variables they can be applied in missing data settings. Furthermore they can complete missing entries in partially annotated data sets.

This tutorial is about how to use neural networks inside generative models, thus giving us Deep Generative Models (DGMs). The training method of choice for these models is variational inference (VI). We start out by introducing VI on a basic level. From there we turn to DGMs. We justify them theoretically and give concrete advise on how to implement them. For continuous latent variables, we review the variational autoencoder and use Gaussian reparametrisation to show how to sample latent values from it. We then turn to discrete latent variables for which no reparametrisation exists. Instead, we explain how to use the score-function or REINFORCE gradient estimator in those cases. We finish by explaining how to combine continuous and discrete variables in semi-supervised modelling problems.

  • We have added a module on discrete latent variables. This also led to a change in the module structure. The DGM part (M3) now consists of 2 interdependent modules. One presents continuous latent variable models and the other discrete latent variable models.
  • The tutorial code is now available! The user still needs to complete the TODOs in order for the code to run. Make sure to follow the instructions and read the comments carefully. Also check out the links to the MXNet documention.

Upcoming

Below are confirmed venues and dates (if available) for future presentations of the tutorial. Please contact us if you interested in hosting the tutorial.

  • ACL 2018, Melbourne: July 15th, 2018

Past

  • Naver Labs, Grenoble, France: April 3 and April 6, 2018
    1. Deep Generative Models
  • Uva-ILLC, Amsterdam: March 22, 2018
  • Macquarie University Sydney: March 19-20, 2018
    1. Basics of Variational Inference
    2. Deep Generative Models
    3. Coding Tutorial
  • Monash University
    1. Basics of Variational Inference: Thu, 16-11-217, 10am-11:30am
    2. Deep Generative Models: Thu, 16-11-2017, 2:30pm-4pm
  • Melbourne University
    1. Basics of Variational Inference: Tue, 31-10-2017, Doug McDonell Building, room 8.03, 2:00pm-3:15pm
    2. Deep Generative Models: Thu, 02-11-2017, Doug McDonell Building, room 8.03, 2:15pm-3:30pm
    3. Coding Tutorial: Tue, 07-11-2017, Doug McDonell Building, room 8.03, 2:00pm-3:15pm
  • Berlin, July 26-27 2017

Latex Dependencies

To compile the slides, latex needs to have access to the bayesnet tikz library.

While we strive to update our code base with new and more complex models, the Gaussian VAE is at the heart of the tutorial. See here for what the computation graph of such a model looks like. (No worries, it's actually pretty straightforward to implement.)

Dependencies

Framework: Our code uses MXNet which is a scalable machine learning library that is under active development. For more details on how to install MXNet see here.

To run the tutorial code and notebook, we recommend that you setup a virtual environment. Your Python version should be 3.5 or higher.

Warning: If you are using linux and Python3.6 or higher you need to run sudo apt-get install libssl-dev before building Python. Otherwise, there is a chance that your virtualenv will not be able to download packages.

virtualenv -p python3 vi-tutorial-env
source vi-tutorial-env/bin/activate
pip install mxnet # cpu installation
pip install mxnet-cu80 # gpu installation with cuda 8
pip install jupyter matplotlib

Issues with matplotlib: If you are using linux and building python from source, pyplot might not work for you because it's missing tkinter (_tkinter module). In that case run sudo apt-get install tk-dev and rebuild python.

Usage

Once you have executed the above commands, open a notebook with jupyter notebook. Then use your browser to navigate to the notebook. The notebook file is: <path to repo>/VITutorial/code/vae_notebook.ipynb. Make sure to have activated the vi-tutorial-env environment before starting the notebook.

Want to host our tutorial? Have a suggestion? Contact one of us!

vitutorial's People

Contributors

wilkeraziz avatar philschulz avatar

Watchers

James Cloos avatar zhouyonglong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.