Areas of Machine Learning

An Artificial Intelligence Primer

Murtaza Bohra

R&D Engineer, Academic Applications

Arman Molki
Application Marketing Engineer

For those of you who know us, we have been disrupting the market with academically appropriate research and educational products since 1989. From basic controls and mechatronics platforms to tackling cutting edge topics in robotics and unmanned vehicle systems, institutions around the world have been able to minimize the gap between theory and practice by using our products.

We often get asked, can Quanser products be used to introduce modern topics such as artificial intelligence in an accessible, hands-on way in the classroom? Absolutely! From the QUBE-Servo 2 to our Self-Driving Car Research Studio (SDRS), many of our products are equipped with sensors and computing platforms that support teaching a variety of basic to advanced AI topics.

What is AI?

Intelligence is a collection of two high-level complementary concepts: experience and learning. We define an experience as a collection of events, ideas, or knowledge, as well as links that relate them to each other.

Experience and Learning
Source: Getty Images

Experience allow you to put together pieces of information to make inferences collectively. Learning, on the other hand, is the process of increasing one’s overall experience, that is gain more knowledge and develop new relationships. Learning allows you to improve your ability to rely on existing experience when needed, especially in new situations. Artificial Intelligence is the mathematical representation and algorithmic implementation of intelligence. For example, a collection of data structures that represents experience, as well as functions that allow you to expand those stored experiences (i.e. learning).

Learning Methods

There are three key methods of learning: supervised, unsupervised and reinforcement learning. Keep in mind that the method one chooses to implement as part of an AI algorithm depends on the problem at hand.

Areas of Machine Learning
Source: https://wordstream-files-prod.s3.amazonaws.com/s3fs-public/machine-learning.png

In supervised learning, we let our system know the answer to the problem, but not why that answer is correct, or how it should arrive at that answer. AI that implements supervised learning, improves its experience by making connections all by itself, based on the problem at hand and the provided answer.

The video below is an example of an AI algorithm that implements supervised learning using two Qunaser QCars. On the left, our first car was being driven manually while we are collected both depth and RGB data from the camera, as well as steering  commands from the driver. The data was then passed on to an AI algorithm which learnt to replicate the driving behavior. On the right, you see our second car autonomously driving around the track based on the correct answers it was given from the first car.

In reinforcement learning, we do not provide the correct answer to our system, instead we give it rewards for taking action that are favorable to us. The example below shows a QUBE-Servo 2 agent learning how to swing up and balance a pendulum over multiple cycles using reinforcement learning. The left-most video shows the system just starting to learn the behavior of the system, but as you progress right, the system learns that balancing the pendulum is an action that rewards the system handsomely. So over time it learns how to balance the pendulum very effectively.

In unsupervised learning, we provide data to an AI algorithm which can categorize that data or make inferences on that information, although, there is no correct answer. For example, if you give 1000 images of different cars to an AI system that is using unsupervised learning, it might come back and say it categorized them by color, shape, size, or even brand.

Transfer Learning

Closely associated with learning, is the concept of transfer learning. It is the process of taking the experiences of a pre-trained AI system and developing new connections for a specific problem. Take for example AlexNet, a popular convolutional neural network (CNN) architecture that is pretrained to recognize about 1000 different common shapes, contours, and event objects such as monitors, fruits, dogs, etc. When AlexNet predicts an object, it makes that inference based on different ideas that it puts together. For example, it may look at an object and say its rectangular, has a black border and has brightly colored pixels inside so it must be a television. Transfer learning lets a network such as AlexNet keep its experience and skill in determining these characteristics, and learn to identify new objects with it. In the video below we took AlexNet and trained it to correctly recognize several Quanser products. We did so by feeding it with over 10,000 images of those products.

 

Software Platform

Several software platforms are available for implementing AI algorithms. These include programming environments such as MATLAB® and languages such are C++ and Python. Luckily, you don’t have to code from scratch since application frameworks such as TensorFlow, PyTorch and a variety of toolbox for MATLAB (e.g. Deep Learning Toolbox™) allow you to rapidly deploy you AI code.

AI Software Tools

However, keep in mind that training and deployment of an AI algorithm can be computationally expense, which is why many rely on PCs with powerful graphical processing units (GPU) to run their code. GPU-accelerated libraries such as NVIDIA cuDNN and TensorRT allow users to tap into the power of their GPU. Instead of a PC outfitted with an appropriate GPU, alternatively, you can utilize the power of cloud environments such as Amazon Web Services and Google Could. In this case you upload your sensor data that acquired from your system to the cloud, the cloud then runs your AI algorithm, and sends the results back to your system. One of the benefits of this approach is less computer maintenance.

How Are You Teaching AI?

Do you currently teach AI? Or are you planning on incorporating hardware in your AI course? We’d love to hear your how you plan to incorporate hardware in your course! For more information on using pretrained networks to develop customized AI applications in MATLAB and Python, register for our upcoming webinar on Transfer Learning.

* This blog is based on a webinar given by Murtaza Bohra and Paul Karam hosted by our US distributor LAB Midwest