Machine & Deep Learning: Learning To Learn

What is Machine Learning? It is akin to feeding data into a system or plotting data onto a graph, and drawing the line of best fit. Keep adding more data and the line of best fit only gets better and better and we learn how to perfect it.

The learning is not just to get the line of best fit, but to also understand what features or tasks are being plotted.

Example:

You reckon temperature and humidity are features to be studied to predict the possibility of rain. And you start plotting data on these two features. Like any student who burns the midnight oil and to do well in his / her test, performance of machine learning will improve with more data (or “experience” if you will).

What is Deep Learning?

It’s a kind of machine learning.

Deep Learning views concepts rather than just features. It sees rain as an example, as a nested hierarchy of concepts. Each concept is defined in relation to simpler concepts.

So, Deep Learning understands the concept of dark cloudy evenings, a nip in the air. These complex abstract representations can be broken down into simpler less abstract representations of a dip in temperature, rise in humidity and wind.  It then decides which features would help it best predict rain.

Dark clouds, but a windy morning, may not give you rain. The wind will take the cloud away.

Just like 4 lines doesn’t always equal a square, unless they are connected, perpendicular and of equal length. Just like a wolf is not a dog, but close enough in features.

Learning to Learn

“If you hear hoofbeats, think of horses not zebras”

An aphorism coined by Dr. Theodore Woodward, professor at the University of Maryland School of Medicine, in 1940, to describe a very simple, yet fundamental principle in medicine.

Learning can be understood in “Knowing That”, “Knowing How” and “Knowing Why”.

I “know that” swimming pool contains water, neck deep. To go across it, I must jump in and swim.  “Know That” is what can be referred to as Factual.

“Knowing How” to swim, keep your arms out in front, face in water, kick your legs, good body rotation as you move your hands through the water and breathe. “Knowing How” is what we refer to as Experiential.

And just like we pass on these basics to our kids and leave their brains to figure out the rest (e.g. how to increase speed, how and when to breathe, how to float etc), we pass on such basics (data) to machines and through their neural network (similar to how brain functions pass electrical signals from one neuron to another). We pass images and a few characteristics of these images to their neural network and soon enough they start recognizing images and learn the patterns that are formed- “Knowing Why”.

So where does this lead us?

Your mobile phone will analyze your speech patterns and can recognize Alzheimer’s. Your car’s steering wheel will pick-up that you are drowsy or feeling sleepy. Your treadmill will send the your heart rate report to your doctor. So we will actually be picked up by one algorithm to another.

Deep Learning vs Machine Learning

  • If you want deep learning, you need a lot of data. Machine learning is good enough.
  • If you want to know how your mobile phone was able to recognize Alzheimer’s, and understand the decision tree – then deep learning can be a Black Box. You may not know how it did it.
  • Deep learning needs higher computer power. It uses GPUs (Graphic Processing Unit) – the processor used to manage and boost performance of video and images. Machine learning will make do with your existing regular desktop and laptops.
  • You need to enter the features that will cause rain – temperature, humidity etc. for machine to learn, analyse and predict. However in deep learning, it moves to higher level features- recognizing edges that could be a face, shapes that add up to a face, and then the face itself.
  • Problem solving is a step by step process for Machine Learning.
    Example: to detect an object in a video or image, it will first detect an object and then recognize the object. So machine learning Box-Ons to objects like SVM (Linear Support Vector Machines) with HOG (Histogram of Oriented Gradients).
    Deep Learning on the other hand, solves problems end-to-end. It goes YOLO (You Only Look Once) and gives location and names of objects on the video or image.
  • Deep learning takes a longer time to learn than machine learning. But less time to test.

D

Writing a Deep Learning Programme

If you are on the edge of your seat and raring to begin coding for deep learning? Wait!

There are several Open Source Deep Learning Frameworks available today to start programming. Frameworks that support various programming languages. Example: A framework called Neon. You can program in Python. Similarly a Framework called Caffe, where you can program in C++.

Now here’s why I asked you to wait!

Apart from having knowledge of Frameworks and programming language you need to understand models like CNN (Convolutional Neural Networks) and Recurrent Neural Networks (RNN). You should have good knowledge of statistics, mathematics and machine learning.

Note: the coding in Deep Learning is a few lines of code, unlike the thousands of lines you write for say an e-commerce application. However what is key is your ability to understand the concepts behind the code, so that you can write a good analytical model.

Hence the term Data Scientist, for Deep Learning. And not a programmer or coder.

Hold on! Don’t close the browser yet!

The good news is now we have open source tools that provide visual coding, so that the less experienced data scientists (coders and programmers really) can pick-up and learn the maths and models to build deep networks.

Again if all this is too daunting, you can dip into services provided by AWS, Google, Microsoft and fish out pre-trained models for your business. Services like Text-To-Speech, Image Recognition, BoT framework etc.

Can Deep Learning write Programs?

Even today most of us programmers and coders write code step-by-step, following the algorithm. If deep learning can do tonnes of stuff, why do we need to write programs- why can’t deep learning do that as well? Here’s how you need to help Deep Learning kick-start programming.

Provide Deep Learning with sample inputs and sample outputs expected. And it will get cracking on the rest.

Let us take the example of a Knowledge Management (KM) Lead who is uploading documents into the KM portal. He receives project documents from a project and the file names are all over the place or not aligned with the KM prescribed naming convention. Let us for argument sake assume there are a couple of thousand such documents, where file names need to be changed.

You provide the list of file names (INPUT column- shown below) and provide some sample OUTPUT file names expected. See the 1st 3 rows in the table below.

Deep Learning gets into action and fetches a program from the billions in its repository and starts renaming file names. See the last 2 rows in RED. As we read earlier, it is next to impossible to interpret which program was pulled up by Deep Learning to create OUTPUT for the thousand odd documents listed. That is the interpretation (Black Box) drawback with Deep Learning.

So we save time in writing a program ourselves. Deep Learning does it for you. And please try and avoid typo errors like “3.0.1 Pricing_OTC_FFD_V2.0” sample OUTPUT, where you have a typo error for ‘FDD’. Such noise in sample data adds to the time it takes to train Deep Learning.

There are now new methods of writing programs on the fly, where Deep Learning picks up the INPUT and OUTPUT for the 1st row, and writes an algorithm for the file name conversion. Picks the 2nd row and runs it past the algorithm, learning in the process and fine-tuning the program. And so on, until it gets the pattern and gets rolling for the entire list.

The key advantage of such a learning exercise is that we know how it worked its way through the data, unlike the typical Black Box drawback.

So what have we learnt?

Once all the Deep Learning is done, can the Business Analyst begin to understand the data presented and analyse it?

As a Business Analyst you understand parameters, features and data sets. You will change them around and expect Deep Learning to return its analysis. All you need to do is to enter the problem type, select features, threshold levels etc. and voila!

Visual Analytics Tools are now available that allow business analysts to do just that. There are now numerous options to integrate Business Layer with Deep Learning to analyse and use data.

  • You can embed analytics into the algorithm, so that a Business Analyst with no knowledge of machine learning can use the analysis.
  • Or you could have the business analysis application layer integrate with such analytics tool on deep learning. So Deep Learning does the analysis. Your business application is integrated with Deep Learning analytics and you can see the business view of the analysis.
  • If your business application cannot integrate with Deep Learning analytics tool, then Wrapper API, provided by various programming languages, can be used to access visual analytics tool.
  • And of course we such deep learning analytics for image processing, voice recognition, text processing available as a service on cloud by various service providers

Getting started with Machine Learning

Here’s a possible route of getting started with machine learning:

  • Learn a language: say Python or R
  • Refresh your knowledge of statistics- descriptive and inferential statistics
  • Identify features, get a clean set of data for your hypothesis
  • Learn machine learning: algorithms
  • Compete in Kaggle to land the message, that you – the Data Scientist – have arrived!

Getting started with Deep Learning

Here’s a possible route of getting started with Deep Learning:

  • You guessed it right! Learn machine learning first
  • Get good hardware (4GB- GPU, 4GB RAM, a good CPU)
  • Google reading material on deep learning to warm up
  • Then select where you want to go with Deep Learning (speech/audio, Natural Language Processing, vision etc.)
  • And last but not least; Kaggle it!

Arrange a Conversation 

Browse

Article by channel:

Read more articles tagged: Featured, Machine Learning

Enabling Technologies