As curious eLearning professionals who want to make a difference in our own little corner of the universe, we need to break outside of our comfort zones to look beyond the human brain—and inside the artificial brain.
From search engines to shipping management to self-driving cars, machines are learning how to handle big, tedious, and even complex tasks. This rise of AI is both frightening and fascinating. The technology seems out of reach. The programming needed to define such seemingly “thinking” machines must take the work of genius. Defining the sort of decision tree needed to account for all contingencies must take years!
Enter machine learning.
Machine learning is an application of artificial intelligence. Artificial intelligence refers to any device, along with the program that runs it, that can use information about its environment to succeed at an assigned task. The more specialized these tasks are for specific applications, the less these applications are classified as AI. Certain AI programs, such as recognizing objects or people, understanding human speech, or playing strategic games, have become routine.
The business of machine learning uses specialized programming to build systems that “learn” how to make decisions with regard to a very targeted task, like driving a car. A self-driving car can get better at driving, but it could never tend a garden or serve a meal.
Sure, developing machine learning involves mechanics, complex programming, and even calculus, but it’s not as complicated as one might think. What makes machine learning seem complex is thinking about it in terms of traditional programming. While machine learning is programmed with languages like Python and JavaScript, there are significant differences.
The following six concepts will help you understand what’s different about machine learning.
1. Standing on three legs
Programming is about designing a system that takes input to process and produce an output. Looking at machine learning in the context of input-process-output, a fuzzy view of the concept comes into focus. Traditional programming uses data in the form of alphanumeric symbols. It uses a predefined decision tree to produce a targeted outcome, such as a result displayed on a screen.
Machine learning, on the other hand, deals with more than just data. Input comes from the environment and can be in the form of sound, images, and even three-dimensional space. Instead of predetermined rules to produce an output, machine learning uses knowledge, training, and, yes, its own experience to make decisions. The result is an action that increases the chance of success at some goal. Output can come in the form of speech, a strategic game move, or movement in space.
2. Knowledge is power
Traditional programming feeds data through a system of rules, which process the data. But machine learning needs more than just data to make decisions. It needs knowledge. Knowledge is represented in three formats: facts, procedural, and experience.
- Facts, or declarative, knowledge is more or less like the data that traditional programming uses. A list of names and properties for a profile linked to each of those names is declarative knowledge.
- Procedural knowledge is knowing how to perform a task, like tying a shoe or driving a car.
- Experience develops heuristic knowledge, which is akin to an artist knowing how to use the shape tool in a drawing program to create drawings more quickly.
Learning machines use knowledge to adjust their actions to become more successful and efficient at a given task.
3. The case for calculus
Many calculus students wonder how calculus would ever be useful. Of course, calculus has its place in advanced careers like rocket science, but many people do not realize that calculus is essential to algorithms.
Algorithms are the rules for problem-solving. Anyone who took high school math might remember PEMDAS: parenthesis, exponents, multiplication, division, addition, subtraction. It represents the order of operations for solving a complex math problem. That’s an algorithm. Calculus equations encompass a larger set of variables that produce an area of probability.
Calculus is commonly used to model weather for tracking storms. Similar to mapping all the variables in the path of a hurricane, calculus provides the same kind of modeling for guiding machine-learning decisions. This means that unknown variables and contingencies can be accommodated, rather than the coders having to imagine and code for only known and predetermined contingencies. The use of calculus reduces the amount of coding needed, accounts for unknown variables, and increases the probability of success with each “decision” made. When a computer “makes a decision,” it is really running data through an algorithm to produce a result determined by probability that favors one result over another.
4. Probably determined
Traditional programming is categorized as deterministic because all the possible variables the program may encounter are accounted for in a predetermined decision tree. The system is a series of if-then nodes that looks a lot like a flow chart. In a deterministic system, the output is very limited, and no course of action exists for any unknown variables.
Machine learning uses probabilistic programming. Instead of counting on having all decisions predetermined, probabilistic programs are set up to compare unknown input to what is known and calculate the probability of meeting requirements for one decision or another. The more input the program processes, the more accurate its calculations of probability become.
5. Time to train
Before learning programs can begin learning, they need to know what to look for. A program designed to play chess is taught how to play by allowing it to make a move and then telling it whether that move is allowed or not. The more wrong moves the program makes, the more it learns about which moves are correct and which moves are more likely to result in success.
In an image recognition program, a learning system is shown images and told which ones are relevant to the target. For example, we can train a program to recognize whether an image includes a dog. For each image shown, the program measures variables like color variety and pixel placement. The program can then be fed test images to compare to the properties of the images used to train it. The program’s decisions are confirmed or rejected, which increases its accuracy over time.
Because of this training process, probabilistic programs can accomplish far more with fewer lines of code. The program develops heuristic knowledge that leads to efficiency and the ability to handle unknown input.
6. Choosing to decide
In the words of the Rush hit “Freewill”: “If you choose not to decide, you still have made a choice.” Machine learning is useful in a variety of applications, but sometimes a simpler solution is more efficient. For example, when dealing with only a few variables, such as filtering small amounts of content by select topics, simple file organization should work just fine. If the amount of content gets unwieldy or the variables for categorizing it grow beyond a few topics, machine learning might be worth the work involved to implement it.
Similarly, to scale a solution or if the rules or variables for producing desired results become too complex, machine learning could offer a solution.
Machine learning is complex, but not as complicated as one might think. The bad news is that resources for developing machine learning are scarce. The good news is that machine learning is becoming more modular and is in higher demand. Following the news for smart eLearning solutions that use machine learning algorithms can offer a competitive advantage.