Introduction to Machine Learning
The course is part of this learning path
Welcome to an introduction to using Artificial Intelligence and Machine Learning with a focus on Amazon Web services and the Google Cloud platform. This course is designed to be a gentle introduction, starting at the ground up and focusing on giving students the tools and materials they need to navigate the topic. It will also include the necessary skills around data engineering, cloud management and even some systems engineering. There are several labs directly tied to this learning path, which will provide hands-on experience to supplement the academic knowledge provided in the lectures.
This course begins with an introduction to AI and ML, before moving onto explain the different levels of users in the field. Then we take a look at out-of-the-box solutions for AI and ML, before looking at a case study to give you the topics covered during this course in a real-world example.
For any feedback relating to this course, please contact us at firstname.lastname@example.org.
By the end of this course, you'll hopefully understand how to take more advanced courses and even a springboard into handling complex tasks in your day-to-day job, whether it be a professional, student, or hobbyist environment.
This course is a multi-part series ideal for those who are interested in understanding machine learning from a 101 perspective, and for those wanting to become data engineers. If you already understand concepts such as how to train and inference a model, you may wish to skip ahead to part two or a more advanced learning path.
It helps if you have a light data engineering or developer background as several parts of this class, particularly the labs, involve hands-on work and manipulating basic data structures and scripts. The labs all have highly detailed notes to help novice users understand them but you will be able to more easily expand at your own pace with a good baseline understanding. As we explain the core concepts, there are some prerequisites for this course.
It is recommended that you have a basic familiarity with one of the cloud providers, especially AWS or GCP. Azure, Oracle, and other providers also have machine learning suites but these two are the focus for this class.
If you have an interest in completing the labs for hands on work, Python is a helpful language to understand.
To start off, it's useful to explain how artificial intelligence, machine learning and other terms relate. At the broadest level is artificial intelligence. This encompassing term is what really captures any machine activity that can simulate human intelligence. The most classic example of this, that most students of this class have probably interacted with at one time or another, is a chess bot. This is a program capable of simulating a human opponent, and is able to provide you with an adversary that, at times, can be difficult to tell apart from a real human.
The important part here that differentiates it from other levels of artificial intelligence or machine learning, even deep learning as we go down the rabbit hole, is that this doesn't necessarily need a self-learning model that is capable of making adjustments and teaching yourself how to play.
In some cases a rules engine that can determinate this quickly, calculate all the possible chess moves, is an option. And that's actually how the chess bots work. They are given a set of rules, and a set of conditions, and they are told to programmatically try every set of conditions until they get the outcome they want. And, in many cases, the chess bot's difficulty is not because it's intentionally introducing errors in easy mode, just that it looks fewer turns ahead to calculate fewer potential outcomes of that move.
Within the broader scope of artificial intelligence, there's a subtype that most people focus on called machine learning. This level is a bit more complex than the rules engine previously mentioned in artificial intelligence, but machine learning is still part of the broader artificial intelligence umbrella. A typical machine learning model is one that uses inputs to control the outputs, and attempts to learn how the inputs affect the outputs in order to get a desired result.
Typical measurements of how accurate the result is could be things called model health, model performance, or even model fit. The general theme here is that the machine learning model attempts to learn to control the inputs in order to get the desired outcome. One particularly cool example of machine learning is the competition that Amazon holds in which machine learning models attempt to control a virtual car around a race track.
There's a championship held at AWS's annual conference, re:Invent, each year, and it involves using machine learning models to attempt to simulate your car racing around a track. In this example, the model that is attempting to learn to drive the car is given inputs such as throttle and steering angle, these are things that it can set, with the outputs being car position and velocity.
So, by controlling the throttle and the steering angle, much like driving a real car, you can change the position and the speed of the car. The health of the model, how good it is, is measured in lap completion, or, at the more competitive levels, lap time. In this example, I've simply listed a simplistic view of how machine learning models work, even in that car simulation. Extra inputs are made available to the machine learning models, such as distance sensors and a whole sweep of inputs that make this a very complex and competitive challenge.
One particular subset of machine learning that deserves a special call out is deep learning. There are many types of machine learning, but deep learning in particular has gained some notoriety and publicity, and is worth calling out due to its rather unique applications. In this case, the term deep specifically refers to the depth of the neural network pathways, but, at a more basic level, just know that it means there is a lot of underlying complexity that humans don't necessarily directly control.
I know that might sound a little bit nebulous and abstract, but, in practice, that means that this type of model is capable of handling extraordinarily complex tasks with minimal guidance. A classic example of this is when Google's Deep Learning Algorithm was tasked with creating categories on YouTube. A key part of this is that Google engineers gave no guidance as to what a category should be, it just said look at all of these videos, and group them together in a logical sense. The outcome of this was, among other categories, cat videos.
Given the broad guidance of find and detect similar videos, this self-learning complex algorithm was able to iterate over multiple videos, detect the shapes, styles, movements, parameters and cadences typical of a cat video, and create a category. The key here is that as you become more specialized within the machine learning to deep learning, more complex and novel behaviors can start to emerge.
So after hearing all of these use cases and how cutting edge machine learning and deep learning can be used, you'll be happy to hear that almost anybody can get started with applied artificial intelligence. As a rule of thumb in this space, the more specific and detailed you wish to get, the more specialized your knowledge needs to be. If you simply want to get started with "canned" material from a cloud provider, such as doing image recognition or speech to text, or even something a little more complex such as named-entity extraction, there are APIs and SDKs aimed at novices and developers, and classes such as this to help you get started.
So just know that as you move away from common paths that many people have treaded before, such as what is the sentiment and how does this person feel in this text post, your knowledge will have to become more sophisticated and specialized. But, if you're looking to do common patterns, you can get started very quickly, and this class will show you how.
Calculated Systems was founded by experts in Hadoop, Google Cloud and AWS. Calculated Systems enables code-free capture, mapping and transformation of data in the cloud based on Apache NiFi, an open source project originally developed within the NSA. Calculated Systems accelerates time to market for new innovations while maintaining data integrity. With cloud automation tools, deep industry expertise, and experience productionalizing workloads development cycles are cut down to a fraction of their normal time. The ability to quickly develop large scale data ingestion and processing decreases the risk companies face in long development cycles. Calculated Systems is one of the industry leaders in Big Data transformation and education of these complex technologies.