Understanding Neural Networks with Theano
Submitted by Jaidev Deshpande (@jaidevd) on Monday, 10 April 2017
Technical level
Intermediate
Section
Workshop
Status
Submitted
Abstract
Theano is not only a powerful tool to build and run deep and shallow neural networks, it is also a wonderful learning resource. Since it works primarily on symbolic mathematical expressions, it can help us understand how learning in neural networks can be interpreted in terms of equations, vectors, variables and Python functions.
In this tutorial, participants will get a (very) brief background on the mathematics of neural networks and how to use theano to convert this knowledge into a Python program that can train and use a neural network.
Broadly the topics covered will be as follows:
 Constructing simple neural networks in Python
 Vectorizing neural networks in NumPy
 Simplifying the neural network construction with Theano
 Extending simple neural networks into deep networks
Outline
The workshop will proceed with four different Jupyter notebooks, each of them highlighting and providing exercises on different aspects of neural networks. The details can be found here:
https://github.com/jaidevd/theano_nn_tutorial
Requirements
 Intermediate knowledge of Python  classes, functions, control statements
 Basic knowledge of the numpy.ndarray object
 Basic differential calculus
Speaker bio
I am a data scientist based in New Delhi. I currently work at Juxt SmartMandate Analytic Solutions as Practice Lead in data science. I have been an active member of the Delhi, Pune and Mumbai Python users’ groups and am also an organizer of the SciPy India conference.
My background is in statistical signal processing and applications of machine learning in signal processing. I am currently working on various projects involving NLP, recommender systems and deep learning for computer vision.
Links
Slides
https://github.com/jaidevd/theano_nn_tutorialComments

1Arthi Venkataraman (@arthi)
This is a very relevant talk. It would be good if a deeper understanding of theano usage is also covered. For example how to interpret the theano debug graphs. How to solve specific issues like Disconnected graph errors. How to call non theano functions as part of the theano graph, etc.
Arthi 
1Jaidev Deshpande (@jaidevd) Proposer
Hi Arthi,
The details of theano would be interesting to cover, but I’m worried if that might distract the audience from the central theme of the tutorial, which is neural networks. Theano graphs will be covered in brief (to the extent that they appear in multiple layers of a deep network), but I think it’s best to only cover very basic debugging. Maybe I’ll add one or two exercises at most about the internals of theano.Thanks