# Talking to Machines : Optimizing Neural Networks with Theano

**
kumarkrishna
** |
** **

# 6

**Description:**

With recent advances in the field of Deep Learning, computers have become much better at challenging _human level_ tasks. And these are no longer restricted to detecting objects, or learning languages. Visual Question Answering, is one such interesting area of research where machines can learn to answer questions from images, by training Deep Neural Networks. For instance, <figure style="text-align:center"> <img src="https://kumarkrishna.github.io/pages/images/sleep_dog.jpg" title="Sleeping dog" style="width:auto; height:350px; border:solid 1px #ccc"/> <figcaption> Is the dog sleeping? </figcaption> </figure>

#### The questions which followed :

```
Query: Is the dog sleeping?
Model: Yes
Query: Is the dog awake?
Model: No
```

And while some of this often looks like 'black box' magic, we lose sight of the fact that the ideas are based on extensive research with rigorous mathematical foundation. The talk aims at introducing some of these concepts through Theano, a Python library, extensively used just not in the Deep Learning community, but the scientific community generally.

In the discussion, we delve deeper into optimizing Deep Neural Network architectures with Theano, with focus on the VQA task mentioned above. This helps exploring how several state-of-the-art approaches like Convolution Neural Networks (CNNs) and Recurrent Neural Networks(RNNs) come together in an architecture to develop interesting algorithms.

#### Topics of discussion :

- Neural Networks in Machine Learning
- Symbolic Algebra in optimization
- Introducing Theano
- Basics on RNNs, CNNs
- The VQA paradigm
- Using Theano for optimizing Deep neural networks
- Introduction to Blocks, Keras, Lasagne for self exploration

#### Workshop outline :

- Recap : Basic Neural Networks with Theano
- Under the hood : Theano optimizations
- The VQA Problem
- Compile and train end-to-end networks
- Observations and results with VQA
- Experiments and Visualizations on pre-trained model
- Introduction to Keras
- Training own models on MNIST for character recognition

**Prerequisites:**

While most of the topics are introduced in the talk from scratch, familiarity with the following would definitely help :

- Introductory Machine Learning
- Symbolic Algebra ( focus on Symbolic Differentiation )
- Introductory Calculus, Linear Algebra
- Containers in Python
- Convolution Neural Networks ~ Recurrent Neural Networks

**For hands-on** :

**Content URLs:**

**Workshop Resources**

**Neural Networks** :

**Theano** :

- Official Theano documentation
- Getting started with Theano
- Theano : A Python framework for fast computation of mathematical expressions

**Deep Learning References** :

- VQA : A walkthrough blog by Avi Singh
- Recurrent Neural Networks : Effectiveness of RNNs by Andrej Karpathy
- Convolution Neural Networks : Introductory blog by Christopher Olah

**Speaker Info:**

Deep Learning and Robotics enthusiast, presently final year undergraduate student at IIT Kharagpur. Works in the intersection of Robotics and Machine Learning. While trying to keep up with the rapid advancements in learning-based approaches, I spend a considerable amount of my time tinkering with quadcopters at the ARK Lab, or building my own swarm of robots at the SIK Lab.

Previously I have worked on theoretical machine learning at the Johns Hopkins University. More recently, I am exploring Deep Learning approaches for language modeling, at the MILA Lab, University of Montreal.