Header Ads

DEEP NEURAL NETWORKS: A LAYMAN’S INTRODUCTION


Have you heard of this popular term called “Artificial Intelligence”? Do you know where it comes from, what it is governed by or how it really works?

No??

Well… neither do we.

But we do know a bit about DNN’s - That’s why.. this article is about Deep Neural Networks. We thought of sharing a small idea about this amazing and hot topic.

FUTURE

Why is AI (Artificial Intelligence) a hot topic?

As you may have guessed, it is because of it being so modern. Many researchers and top minds in the world work in this field. Companies invest a lot of money in this field. Everyone wants a part in this huge surge.

Before we begin, to give an idea as to why this topic is important; I guess the best statement we can provide for that is,

Experience with Artificial Intelligence is the top skill employers look for in people applying for jobs in the technical industry – regardless of you being a programmer or not. Don’t believe it?


Read it yourself - https://www.forbes.com/sites/forbestechcouncil/2017/12/21/13-top-tech-skills-in-high-demand-for-2018/#32d21bd61e5c

Even if you are in management; handling a team of people having AI experience will test your own capability with this subject.

Like it or not, Deep Learning is going to play a massive role in the future. For anyone in any field (okay… almost any field), this will be a really valuable tool. And for everyone, having a rough idea on Deep Learning will be definitely useful.

An icon in this field, Andrew Ng says the following. Electricity changed the entire world about a century back. The way everything worked changed. Deep Learning is the new electricity. It’s already begun to revolutionize the world! You need to embrace it.

INTRODUCTION

Where did this all start?

When researchers started to investigate on ways to simulate or model biological structures to create computer or engineering systems, they noticed that the structure of the biological NERVOUS SYSTEM was a very interesting and motivating phenomenon.

Even though we do not fully understand it, the modelling of biological nervous systems, (or biological neural networks) led to something referred to as artificial neural networks (ANN’s) – a term used today to coin computer generated neural network modelling.

So how do these biological NN’s and ANN’s relate? The structure of the Neuron plays an important role in this connection as well. This is a part of biology.

Try this video crash course! You will love it! - https://www.youtube.com/watch?v=qPix_X-9t7E

THE NEURAL NETWORK APPROACH

In the late 1970’s, the neural network concept began to gain attention, and became a practical idea by the 1980’s. So what really is this concept? Here is a neuron.



It is a very simple analogy. An artificial neuron is said to have the same constructs as a biological neuron or nerve cell. Did you watch the crash course videos? If you know how the neurons work, then you will quickly understand how artificial neurons work.



As you can see, the artificial neuron is a mathematically constructed definition of how the biological neuron is made up of. The inputs bring in the information, then they are weighted and summed up, and finally if the result is above the threshold, then the output/activation is given out. Quite simple is it not?

Okay now.. then what are Deep Neural Networks and what can we do with them?

DEEP NEURAL NETWORKS (DNNS)


What if we increased more and more layers in a neural network? And created a huge (or in this case DEEP) neural network. Like this (think of each circle as a neuron);




If you have some experience with programming, you’ll know that a task like looking at a picture and telling whether it’s a hotdog or not is extremely difficult for a computer (this is funny). Learning representations in data is hard. Neural networks do something called representational learning: identifying patterns and representing that data internally in its own way. So a neural network trained on hotdog images would internally represent those images in some way.

More depth (in DNNs) simply means ability to learn more complex representations. A deeper neural network can identify more complex patterns in the data input to it. These DNNs are only revolutionizing the world today: every sector is feeling its effects quite strong. They’re taking over vision and robotics, sound analysis, automation, financial analysis, decision making, and so many other tasks previously deemed impossible for computers.

Quite soon, Deep Learning will be a skill everyone requires, just like being familiar with how to use the internet is essential for everyone. The reason is the large number of deep learning APIs and platforms present today: there are systems as user friendly as MS Word that allow you to train massive DNNs on massive data sets with close to no knowledge. Even better, there are tool that allow you to use already trained DNNs specialized for all sorts of tasks: these actually require no DNNs knowledge at all.

DON’T BELIEVE US?

So any Neural Network (including all DNNs) have two significant stages associated to them. First is the manufacturing stage, termed as training, where we use all sorts of algorithms to internally construct the representations of data we want it to store. This can be likened to a human brain storing what is a hotdog and what isn’t after someone shows you lots of pictures of hotdogs. Or when you meet Barney, you remember who is Barney (from his face) and who isn’t Barney (everyone who’s face doesn’t look like that). We used a fancy term: “pretrained DNNs”. These are DNNs that were already taught something. If you’re going to use one of these (this is a good starting point for a beginner, as well as anyone who doesn’t look to go to research but just build stuff using these), you don’t need any knowledge at all about DNNs. All you need is to get familiar with the available platforms and tools. Tensorflow has some great pre-trained models you can use for certain work. Amazon and IBM have some even more user-friendly APIs you can use for image-processing and natural language processing. Google has a fair share of their APIs too. These are great for integrating into work. Some are just as simple as sending a request with a picture and receiving response with details of what’s in the picture, and also all the objects in it completely segmented and classified by their name.

So once you have your hands on a trained DNN, all you do is “inference”. Just like you’d use what’s in your head to look at a picture of me and realize I’m not Barney, the inference stage is about taking new inputs and using our internal representations (within the DNN) of hotdogs to see if the new pictures are hotdogs or not. So someone working with applications of DNNs, this is all you would need to work with.

FURTHER INFO

If you like this topic, and want to learn further on your own; try out this course for free! You don’t have to be a computer programmer.


WHAT CAN WE DO?

You can try out some great tutorials available online to get your hands dirty with DNNs. Here is a great place to start your work:


Python is a popular language used in the Deep Learning community so I would suggest starting off with it.

If you’re using windows, installing all the libraries may be time consuming; we would strongly suggest using an environment and package manager like Anaconda. Even for Linux uses, this just makes life a lot easier.

Start this off today itself! Do not take my word for it. After doing this you’ll realize you need no DNNs knowledge to get a DNN running. Though you’ll need a bit of programming knowledge to setup the stuff. If all this looks Greek to you and still want to try out something, don’t worry. You’ll realize DNNs have be made accessible to an unbelievable extent.

TOTAL BEGINNER?


Google and Microsoft have some cool APIs you should check out.




Also here’s some interesting work which had a graduate from our university involved as well.


Play with neural networks; https://playground.tensorflow.org/

For many people from web developers to embedded device people, these kind of APIs are going to be extremely useful. Also, most pretrained DNNs can be run (the inference part) completely on your front-end (in JS) and even on an embedded device (in C).


Written by;
Kanchana Ranasinghe & Kithmin Wickramasinghe
Department of Electronics and Telecommunication Engineering ( '15 Batch )