Below you can find my notes from a very interesting online course on AI, from Andrew NG, an AI team leader at some of the most prominent AI projects in the world, which is available here.
So, let’s have a look at what AI is all about and what AI can do for your company.
Let’s start with defining what is Machine Learning, the most common tool of AI today.
Machine Learning
What is Machine Learning? It is just a tool of AI. And what does this tool do? The most common use of this tool (ML), is what is called “Supervised Learning”. This means learning how to go from a Point A to a Point B. Or, from an input to an output.
Here are some examples of Supervised Learning applications:
- Giving to a spam filtering application an email (input) and deciding if this a spam or not (output).
- Giving to a speech recognition an audio file (input) and getting the text transcript (output).
- Giving to a translation application an English text (input) and getting the Chinese translation (output).
- Giving to a self-driving car image and radar information (input) and getting the location of other vehicles (output).
The trick here is obviously how to get the best possible output from my input. To do that, I need to train the system so that it develops its own brain (neural network). And the more data I have to train my application, the better the output will be. If I use 50 images of dogs to train a dog image recognition application to decide if an animal is a dog or a wolf, the system will not behave as well as if I use 10.000 images of dogs (and wolves) to train it.
And this is why everyone says that big data is the new oil. If I know how to use my large datasets correctly, I can develop several “brains” in my company, to perform tasks for me.
How do I get the data I need to train my application?
Let’s suppose that you want to build an AI application that decides if an animal is a cat or not. A cat detector. There are three ways to get the data to train your application.
Method 1: Manual Labeling of the Data
This means that you take 1000 pictures of cats, dogs and other animals and then you label each one whether it is a cat or not. You then feed this information to your AI application. Obviously, this method needs a lot of work.
Method 2: Observing behaviors
I might have a video recorder that monitors the animal and observes the behavior. Does the animal jump 3 meters up to a tree? Does it sleep on the top of your refrigerator? Does it sleep many hours close to the fireplace?
Method 3: Downloading the data from the web or getting them from a partner
For many applications, it is often easy to find large data sets available for free on the web. E.g., stock market prices, real estate prices, images, temperature data, seismic data etc.
How to make good use of your data for AI applications
A lot of companies think “I have a lot of collected data, so that means I can throw them to an AI team and they can create something AI-fantastic for me”. That’s not always true. More data is better than less data, but a lot of data doesn’t mean necessarily that you can build a useful AI application.
As an example, I may have a factory, and an IOT sensor that gathers data from my engine every 10 minutes. This is obviously a lot of data after some years of operation. But if I want to build a predictive maintenance application that tries to forecast when my engine has the risk of failure and needs to be services, I might need data from my engine every 1 minute. Or every one second.
So, the recommendation here, is that once your IT team has some data, you give them to your AI team, and then the AI team comes back with recommendations about how to collect data that will be useful for what they are trying to build.
Moreover, the data that you want to feed to your AI system have to be cleaned. There must be no wrong labels, or missing information because the AI system will learn the wrong things then. It’s like training my kid to learn a new language and teaching to spell wrong the word “apple”. Or by mistake, teaching her to see an apple and calling it an “orange”.
The AI applications work with two types of data: The structured and the unstructured data.
Structured data is whatever can be put in an excel table: Prices of houses, square meters, number of bedrooms.
Unstructured data is images, videos, audio and text. Videos of houses, images of furniture, text descriptions of houses for rent.
Terminology of AI
The most common terms you will hear in AI, are “Deep learning”, “Neural Networks”, “Machine Learning”, “Data Science”.
Machine Learning vs Data Science
Let’s start with the difference of Machine Learning vs Data Science projects. Let’s suppose that you have an excel with data about houses: Number of bedrooms, square meters, year built, year of being renovated and prices.
A machine learning project would create a SOFTWARE that helps go from point A to point B. E.g., a software in which you input the data of number of bedrooms, square meters, year built and it suggests the right price.
A data science project would help you create a POWERPOINT with insights about the data. E.g., you may look into data and find out that if you have renovated your house in the past 5 years, you win a 15% premium in the price. So, data science projects help you create insights that drive business decisions.
Neural Network vs Deep Learning.
Actually, this is the same thing. It’s just that Deep Learning is the new way to call a neural network. Maybe it sounds more impressive to say that I deal with “Deep Learning” than “Neural Networks” as a scientist.
And what is a neural network or a deep learning system? It is actually a big mathematical equation, that tries to help us go from point A to point B. E.g., if I have the input of house data (number of bedrooms, square meters, year renovated) as Point A and I would like to predict the price (Point B), the system that does the calculations and tries to do that is called a “Neural network” or a “deep learning system”.
The term “neural” comes from the “neurons” that we have in our brains. So, as our brains have neurons that connect with each other (well, at least usually….), and try to create an output based on specific input, the same is the task with an Artificial Neural Network. Of course, this is just a metaphor and the actual way of operation of a human neural network has nothing to do with the artificial neural network way of operation.
Other buzzwords in AI are “Unsupervised Learning”, “Reinforcement Learning”, “Knowledge graphs” etc. These are just other tools to make computers think smarter. But the two most important AI tools are “Machine Learning” and “Neural Networks”.
Summarizing, Neural Network (or deep learning) is a subset of Machine Learning, which is a subset of AI.
What Makes an AI company?
The previous technology era has been the “Internet era”. And now we are into the “AI era”. In the internet era, if I had let’s say a shopping mall and threw in a website, this wouldn’t mean that I have become instantly an internet company. An internet company in the retail (such as Amazon for example), would actually use all the good staff that internet was made to provide. This would be A/B testing for products in my website, short iteration times in launching solutions and products on the web, and push of decision making to the engineers and the product managers, instead of having the CEO make all important business decisions.
Similarly, in the “AI era”, throwing a Deep Learning system in my company doesn’t make me an AI company. To get closer to becoming an AI company, I will need to:
- Have a strategy on how to acquire data. I might even have to launch products and solutions that don’t make
money, so that I collect the strategic data I need forother solutions that I can monetize. - Build a unified data warehouse: If I have several different databases, that are supervised
by many different owners, an engineer could neverbuilt a solid AI system. All the data need to be brought into a single place. - Automate whatever can be
done by a computer vs a human. - Create new roles in
my company , such as the Machine Learning Engineer.
The multi-year process to become a good AI company for Microsoft, Google, Baidu and other companies has five steps:
Step 1: Create a few small AI projects. Have your teams create them, so that everyone gets an idea what the company could do with AI. This could be done by an internal team of engineers or you can outsource it to an external team.
Step 2: Build an in house AI team.
Step 3: Provide AI training to a broader set of employees, including engineers, managers, business decision makers.
Step 4: Develop AI strategy
Step 5: Develop internal and external AI communications
What Machine Learning Can and Cannot Do
The rule of thumb is that whatever a human can do with giving it one second to think, we can automate it with AI supervised learning. For example, if a human can recognize a scratch in a phone in a second, we can automate it. If a driver can find the position of other cars in a second, we can automatize it. If I can recognize the speech in a couple of seconds, we can automate it with AI.
AI cannot successfully do things that take a lot of hours for a human to conduct. As an example, a human would need many hours of thinking to write a 50-page report with a market research analysis. It would be impossible for an AI system to do this.
In another example, if I am building a self-driving car, AI can help me build a system where I put as input the data (images, radar information) from a car in front of me and the output would be the answer to “where is the car”. What AI could not do, is to understand the intention behind a gesture. If I see a police man raising his hand, a human being could easily understand that this is a “stop sign” but AI could not figure out the intention. The same goes if I see a bicyclist raising her hand to the left, signaling that she wants to turn left. An AI system could not understand the intention behind this. The problem here for AI is that there is no parity in the interpretation of human gestures. Gestures might mean different things in different cultures and there are many variables of gestures for an AI system to work effectively.
Obviously, if I narrow down this system to the level that a Kinect game could understand that when I raise my hand up it means “up”, this is possible for an AI system to handle.
Building AI Projects
Workflow of a Machine Learning Project
The key steps of an ML project are three: Collect the data, Train the Model and Deploy the model. Let’s see the example of trying to build a speech recognition ML for Amazon’s echo, to recognize the “Hey Alexa” initiation command.
The first step would be to collect the data. That means, I would have to ask 1000 people to say “Hello”, or “Hi”, and “Alexa” and get the audio clips.
The second step would be to train the model. I want my system to understand if someone said indeed “Hello Alexa”, so as to initiate the speaker system. This means that I will need to build a supervised learning system, that has as input the audio files I collected from people saying “Hello”, Hi”, “Alexa” and has as an output whether the user said indeed “Hello Alexa”.
The third system would be to deploy the system. So, this would be in our case to deploy the software in a speaker and ship it to the users. At this point, I might have problems with my application. As an example, I might have used American accent audio files to train my model, and ship it to Greece, where people speak English with a different accent. In this case, I would need to collect the new data again (from Greeks speaking English), update my model and relaunch it.
Specific AI Examples per Industry or Job Function
Here are some examples on how ML could help several job functions or industries:
- Manufacturing: ML can help with visual recognition of defective products in the production line.
- Recruiting: ML can help with deciding which CVs to look at.
- Marketing: ML can help with A/B testing of websites
- Agriculture: ML can help with precision agriculture. E.g, recognizing a specific spot in the field that needs to be sprayed. Moreover, ML can help with crop analytics.
- Sales: ML can help with prioritizing leads to contact in an organization. Or with sales forecasting.
- Travel: ML can help with supporting travel chatbots to provide answers about travel destinations.
How to Choose an AI project for your Business
AI can do a lot of things. But what is relevant to your own business? Getting ideas about AI projects doesn’t happen by luck so you need to work for it. You will need to brainstorm, and to do it effectively you will need two teams: An AI team and a Domain Experts team. E.g., if you are brainstorming ideas for AI in your marketing, you will need the AI team that knows what is possible to do with AI and the marketing people (product managers, online sales managers, etc) in the same room.
The suggested brainstorming framework for an AI project, has the 3 following axis:
- Think about Automating Tasks and not automating jobs. For example, if you are brainstorming on AI projects for your call center, think about the several tasks that take place (picking up the phone, searching the CRM, updating the CRM, opening a support ticket, sending emails, issuing refunds, call routing, email routing etc) and which of these can be automated. In this case,
call routing or email routing would be the most appropriate for an AI project. - Ask
the question : “What are themain drivers of business value for my company?”. If I can find an AIproject that supports one of these drivers (e.g. customer satisfaction,technical support ,speed of delivery), the value will be tremendous. - Ask the question: “What are the main pain points of my company?”.
It is important to note here that you don’t necessarily need big data to start an AI project. Even with small datasets you could start seeing meaningful results. The amount of data you need for an AI project is problem-specific and you will need to ask your AI expert about how much data you need to train the model.
How to decide if it makes sense to start a specific AI project
An AI project might take some days or some months of work to get completed. Before jumping on it, you will need to do your due diligence on a technical and business level.
-Technical Diligence: Talk to your AI experts to understand whether it is possible on a technical level to achieve the desired outcome. As an example, the Word Error Rate for humans is 4%. Meaning, that out of the 100 words that a person listens to, 4 of them might be misinterpreted. AI has helped systems to achieve the same error rate. But if you expect that you can do 0.01% Word Error Rate, you need to break the world record many times to do that and on a technical level it would be unachievable for your company. The second question here is “How much data do I need?”, and “Do I have a way to get this amount of data?”. The third question to answer is “How much time do I need and how many engineers to build this AI solution?”.
-Business Diligence: You will have to quantify with real KPIs, what would be the business ROI of your AI investment. So, if I indeed managed to succeed with my AI marketing project, and I can drive 10% more website customers to the shopping cart, how much additional money would that mean for my business?
-Ethical Diligence: AI can do a lot of things, but would I want to use AI to make gamblers who have an addiction problem, visiting more often my betting site?
Should I do my AI Project in-house or Outsource it?
Both approaches could work. With outsourced ML projects you get faster access to talent and if you run successfully a couple of AI projects, then you can start building your own internal AI team. Data Science projects on the other hand are usually built in-house. This is due to the very close business input and insights you need.
What Data will an AI team ask from you as a business owner?
If you start working with an AI team, you will be asked for two types of data. A specific dataset to be used as a “Training Dataset”, and another dataset to be used as a “Test Dataset”.
Should I Expect 100% Accuracy in my AI solution?
No. It’s a common mistake that many expect AI to be 100% accurate, e.g. in understanding language, images, automating tasks, finding defective products, email and call routing and other applications. This is not the case as there are limitations to AI, due to data mislabeling, ambiguity in data, wrong data input and other. Instead, you should focus on an accepted level of accuracy that would provide huge business value for you. Yes, you would love to have 100% accuracy, but maybe 95% will hit all your business targets as well.
AI Technical Tools
Some of the most common open-source frameworks used for ML, are TensorFlow, PyTorch, Keras, MXNet, CNTK, Caffe,
PaddlePaddle, Scikit-learn, R or Weka. A lot of research publications are available at https://arxiv.org. Many teams publish their code on Github (github.com).
Moreover, an AI project can be deployed on-premise, on the cloud, or on Edge. On-premise means that you install it on your own servers at your company, Cloud means that you use the infrastructure of a cloud provider (e.g. Microsoft Azure) and Edge deployment means that you put a processor where the data is (e.g. if I have a smart speaker at my home, I put a processor inside the speaker instead of sending the files via the cloud, getting the results and resending them back to the speaker). Generally, the world is going onto cloud solutions for AI and to Edge deployments where cloud doesn’t make sense (e.g. self-driving cars, smart speakers etc).
Roles in an AI Team
Usually, in a large AII team you need Software Engineers, Machine Learning Engineers, Machine Learning Researchers, Data Scientists, Data Engineers, AI Product Manager. Of course, you can always start with just a Machine Learning Engineer.
Further Reading
- Azure AI product page
- Azure case studies
- Microsoft Azure Blog
- Channel 9 AI Show
- AI for Good
- Seeing AI application
- The Future Computed book
- FATE: Fairness, Accountability, Transparency, and Ethics in AI
A great way to help businesses understand how to use AI. Well done!!!