CS 151 (Artificial Intelligence)
Notes: Introduction
Reading: Russell and Norvig, chapters 1 and 2.
Administrivia
See the syllabus for answers to
all the usual administrative questions, a draft schedule, and the like.
What is the goal of AI?
There are at least three approaches to defining what an AI program
should do, i.e. what constitutes "correct" behavior.
- An AI program should simulate the behavior of humans, e.g. match
data from psychology, linguistics, psychophysics.
- An AI program should solve engineering problems automatically, e.g.
guide a robot around a factory floor without accidents.
- An AI program should achieve some platonic goal of "rationality."
Inspiration then comes from prior work in philosophy and mathematical logic.
Most actual researchers use a hybrid approach, relying on data and
inspiration from a variety of fields.
Model of an agent
An agent is some type of robot, simulated robot, or the like. A
complete system is usually imagined as having the following components
(more or less):
- a central unit that does reasoning, planning, and generally all the
"smart" high-level stuff
- a "knowledge base" that contains facts about the world
- a module that provides low-level control for motors, muscles, or
similar devices
- a visual input module that processes data from cameras or eyes
- an auditory input module that processes sound data
- a language understanding module that extracts high-level meaning
from partly processed auditory data and/or visual data (e.g. sign language,
written text)
- modules for interpreting sensory input of other types, e.g. sonar
and IR sensors, measurements from automated scientific apparatus (e.g.
a Ph meter), etc.
Application areas for AI
AI researchers have tried to tackle a wide variety of problems, with
varying success. Some examples include:
- game playing (chess, checkers)
- autonomous vehicles (self-driving cars, home robots, space robots,
fighter jets, factory robots, the adversary in games such as Warcraft)
- English language interfaces (e.g. to databases)
- industrial assembly robots (usually robot arms)
- creation and verification of mathematical proofs
- providing expert advice (medical diagnosis, house pricing, computer
system configuration)
- surveillance (factory security, satellite monitoring of military bases,
medical cell screening)
- industrial process control (e.g. multi-stage chemical plants)
- automatic translation, automatic style criticism
- tutoring (e.g. freshman physics)
- understanding and analysis of computer programs, automatic code generation
History of AI
Since the dawn of time, people have dreamed of creating artificial humans
and have tried to define human intelligence. But it's hard to get anywhere
without computers.
The first computers appeared in the 1930's. The first usable ones
were available in the 1950's and were almost immediately used to build
the first AI programs.
There follows about five decades of projects, some successful and some
not. Russell and Norvig provide a detailed summary.
Currently, the field has a variety of successful applications, ranging
from automatic industrial assembly to high-glitz programs such as the
champion chess playing program. These successes tend to be on
well-constrained tasks, such as games, expert advice in domains like
medicine, controlled industrial environments, and limited-domain user
interfaces.
However, AI programs are still very fragile on realistic tasks, such
as moving a robot around a house without running over the cat. We are
not even close to simulating a two-year-old's ability to move around,
recognize and manipulate objects, and communicate with other people.
A big lesson of the last few decades has been that simple practical
tasks (e.g. making pancakes) are often harder than
sophisticated-sounding ones (e.g. playing chess). Problems tend to
occur in uncontrolled environments, when manipulating natural objects
and materials, in handling free-form dialog with humans, and when
trying to abstract away from the details of a complex problem to plan
an overall strategy.
A number of research topics, formerly in AI, have been spun off into
other areas of CS. These include search algorithms, formal languages
and parsing, and Lisp/Scheme language development AI has also
subdivided itself into five research areas, whose members no longer
read the same journals or go to the same conferences. These areas
are: automated deduction, robotics, computer vision, natural language
processing, and "core AI" (= the remainder when you subtract the other
four areas).
Tasks in AI
Problems to be solved in AI can be roughly divided into the following
types:
- planning: produce the best plan? produce a reasonable plan?
- reasoning: answer questions based on reasoning from some body of knowledge
- describing: in natural language, in diagrams
- interpreting input data: vision, natural language speech and text,
tactile and force sensors, scientific measurements, industrial plant sensors
- controlling output devices: robot arms, mobile robots, industrial plant
controls
- learning and tuning
Many applications require combinations of these skills, e.g.
- input-output feedback, e.g. hand-eye coordination
- natural language dialog (understanding, reasoning, describing)
- industrial plant control (interpreting input, generating output control
signals)
Levels of representation
Three types of representations are used in AI.
- logic: very general but unwieldy for non-trivial problems
- special-purpose symbolic representations such as geometrical models,
strings of letters, robot positioning commands
- raw input representations, usually digitizations of continuous functions:
digitized pictures, speech waveforms, fast-loop robot control commands
This page is maintained by
Margaret Fleck.