# Talking to Machines : Optimizing Neural Networks with Theano

**
kumarkrishna
** |
** **

# 9

**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
- Theano and Symbolic Algebra for optimizing deep neural networks
- The VQA paradigm

**Prerequisites:**

Familiarity with the following would definitely help appreciate the talk :

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

**Takeaway** :

The primary takeaway from the talk would be to bridge the differences in _theory_ and _practice_ . Also, to __reinforce__ the realization that well-developed libraries take care of several run-time and compile-time optimizations which often results in significant difference in performance.

**Content URLs:**

**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.