Last quarter, we had an amazing first workshop on the introduction of Neural Network. It was hosted by our Lead Mentor, Andres Vourakis, and Microsoft Student Partner, Katie Bui. Although the workshop’s main focus was on Neural Network as stated in the title, Andres and Katie also introduced members to Deep Learning, other flavours of Neural Networks, and Neural Network applications. Here is a quick recap of the event.
Introduction to Deep Learning
Deep Learning belongs to a broader family of machine learning. To understand deep learning, it’s easier for us to have a basic idea of what is machine learning. Machine Learning is an approach or a way to implement Artificial Intelligence, and it is focusing on making predictions (or decision), getting better with experience (data), and problems whose solutions are difficult to describe.
Deep Learning is a technique for implementing Machine Learning. It learns features and tasks directly from data such as images, sounds, and text. Furthermore, Deep Learning achieves machine learning process through the composing of a number of levels arranged in a hierarchy. This method is called Neural Networks, and it’s a Deep Learning algorithm.
Why Neural Network?
Neural Networks are useful and important because of their ability to process information like a human would do. They seem to possess a remarkable ability for finding patterns and generating meaning from complex data. They have been successfully applied to computer vision, speech recognition, and medical diagnosis. These networks can, in some cases, outperform humans in narrow tasks. This combined with rapid advancement in processing power is the reason why Neural Networks are so widely in use today.
Introducing Neural Networks
Architecture:
A neural network can be defined as a system of connected neurons. Each neuron takes in an input and generates a signal which then acts as an input for another neuron. These networks consists of three layers: input, hidden and output. Each of these layers further consist of neurons. Firing rules determines when a neuron should fire.
- Raw information is fed to the network via neurons in input layer
- Hidden layer is where the actual processing of data takes place
- The hidden layers then link to an output layer which gives us our desired results.
Let’s take an example where we try to predict sale price of house. We will be providing raw data to the network and generating from it an estimate for price of the house. This raw data consists of certain attributes for each house such as number of bedrooms, area, and location. Since this neural network will predict a continuous value (number) this example is called regression machine learning as opposed to a classification problem.
To get prediction from a neural network we need training data which has sale price of different houses. Training data looks something like this.
Let’s begin making our neural network. We are gonna take all the input variables and multiply each with some number which are called weights. These weights represent relation between our input variables and sale price of the house .We will discuss how to pick weights in a while, for now just know that after multiplying our input with weights, we will get an estimate for the sale price of that house.
The above algorithm works fine for a simple model, but our world is complex and messy. For example number of bedrooms in a small-sized house might matter a lot more than number of bedrooms in a large-sized house. To account for this complexity we can run the algorithm numerous times.
Now we end up with four different price estimates. To arrive at one final answer let’s run all these estimates through the same algorithm again with a new set of weights.
Our final answer now accounts for a diverse set of input conditions to arrive at a better price
Estimate. Lets combine everything and arrive at our neural network.
Since our data is going in one direction from left to right this would be classified as forward propagation.
But How do we pick these weights?
We are going to compare the estimate that we got to the actual sale price in our training data set. By doing this comparison we can judge how good our prediction is. Hence we update our weights so that our estimate is accurate. This is called Backpropagation.
Other Flavors of Neural Networks
Possible configurations for Neural Network are practically endless hence they are super diverse, each type of network is specialized to work in a particular context. Let’s discuss, in short, different types of neural networks.
Neural Network Applications
So, What can we do with Neural Network? What are some cool applications of Neural Networks?
Convolutional Neural Networks (CNN), like have stated above, is used to recognize and analyse images and videos and process natural language. An example of CNN is figuring out the location of where a photo was taken simply by analysing the photo.
Recurrent Neural Networks (RNN) is used to recognize speech and handwriting. An example would be generating text that impersonate a person’s style of writing. Here we have play generated by this process that imitates William Shakespeare.
Stacked Generative Adversarial Networks (Stack GANs) is getting a descriptive text input and generate real looking images. An example would be getting an text input of what a bird suppose to look and create the most realistic image of a bird.
Let’s play with Neural Networks!
Our understanding is limited, and the only way for us to understand thing better is to get our hands dirty. Below is the link to a site that use neural networks to recognize orange and blue dots, and to predict a general area of where are these group located. Higher intensity in a color means the more confident in the prediction networks produces.
Here is a link to the site: http://playground.tensorflow.org
Getting Started with Online Sources
These are additional online resources to help you get started with Neural Networks.
- Online Courses: Edx, Udemy, Khan, MIT OCW, Coursera, etc…
- Social Media: Youtube: Siraj Raval, Two Minute Papers, This Week in ML & AI, and Sentdex
- Medium
- Twitter: Andrew Ng, Fei Fei Li, and François Chollet
- Explore Code: Github: https://github.com/tensorflow/playground
- Read Research Papers: arXiv