Artificial Intelligence
in CS 101
Think about the traditional roles of humans versus those of machines. Machines do the heavy-lifting and manual labor more quickly and accurately. Humans, on the other hand, control tasks, plan calculations, interpret results, and communicate in a human-understandable way. Now, the roles of machine versus human are blurred. You have self-driving cars, programs that beat world chess champions, and software that replace diagnosticians and other doctors. From spam filters to self-driving cars, there has been an increasing need for our machines to learn from data and use that knowledge to make predictions and decisions. This is the heart of artificial intelligence (AI).
Not-so Intelligent Programs?
Not every program that does something a human could typically do is deemed “intelligent”. In general, computer programs that can do human-like tasks are extremely useful in answering questions like
- is an email spam?
- does this patient’s heart have arrythmia?
- will it be raining tomorrow?
- what song should Spotify play next?
While useful, we don’t describe these programs as “intelligent” in the same way we think of human intelligence. The main goal of artificial intelligence is, however, to simulate human intelligence in machines.
Goals of AI
Machines that mimic human cognitive functions such as learning and problem solving are considered intelligent. The scope of AI is often disputed. Because as machine become increasingly capable, a phenomenon called the AI effect kicks in. Critics start saying that intelligence is not just doing what we know humans are already capable of. Instead, intelligence is doing whatever hasn’t been done yet (Tesler’s Theorem). Nonetheless, the common goals of AI research include:
- reasoning such as in automated proof checking
- knowledge representation, that is representing information about the world and then using that information to do complex tasks (e.g., diagnosing a medical condition)
- planning, or strategizing often for autonomous agents (e.g., self-driving cars, unmanned robots)
- natural language processing, or understanding, using, and responding to human speech
- perception, such as being aware and able to relate to the world around (e.g., facial recognition, computer audition)
- learning, famously known as the field of Machine Learning (ML) where machines try to improve their performance at a certain task (e.g., playing chess)
Approaches
Trying to capture human intelligence is a very ambitious task. But there are several popular ways of approaching the problem:
- cybernetics is an approach that tries to connect neurobiology and information theory to build machines that used electronic networks similar to our biology. This approach was largely abandoned by 1960, but Grey Walter’s turtles and John Hopkins Beast were contributors for its revival in the 1980s.
- symbolic AI is based on high-level “symbolic” (aka human-readable) representations of problems. This approach took the baton from cybernetics and continued the research with a slightly different perspective:
- cognitive simulation is the study of simulating human problem-solving skills and techniques
- logic-based instead tries to find the essence of abstract reasoning and problem solving, often using formal logic
- anti-logic (aka scruffy) believe that it is impossible to capture all aspects of human-intelligent behavior. It’s “messy” or “scruffy” in that anti-logic researchers believe that AI must be built by hand, one complicated concept at a time.
- knowledge-based computers are computers that use a storage of facts and rules relating to the task at hand. A knowledge revolution occurs in computer history when we realized that an enormous amount of knowledge would be required to create a truly intelligent application.
- sub-symbolic AI research believes that we’ll never be able to mimic all aspects of human cognition. Instead, sub-symbolic research tries to approach intelligence without specific representations of knowledge. For example, in embodied intelligence, researchers believe that the idea of a body (movement, perception, and visualization) is required for higher intelligence. Also, in computational intelligence (aka soft computing) neural networks try to simulate our brain in addition to evolutionary computation and lots of statistical methods.
- statistical learning has a lot of overlap with the previous fields but is focusing on generalizing real-world results through statistical means. Data mining falls under this umbrella approach.
Tools
Before we capture all of human intelligence, we need to take baby steps. These baby steps become our tools or building blocks. A few AI tools that we covered in class are:
- search and optimization We discussed:
- Dijsktra’s algorithm for finding the shortest path
- The Traveling Salesman Problem
- The Six Frogs Problem
- The Fox, Goose, & Bag of Beans Puzzle
- The 15-puzzle using the A* search algorithm
- logic such as with decision trees (example below), and random forests
- probabilistic methods as demonstrated with random walkers (image below)
- statistical learning methods such as the k-means algorithm and general data clustering
- neural networks (example below) and deep learning
Additional Topics & Resources
- CrashCourse #34 Artificial intelligence
- Turing Test - on measuring how effective an artificially intelligent machine is.
- A critique of the Turing Test, an article titled Why Can’t my Computer Understand Me? by Gary Marcus