AI
If the term "artificial intelligence" conjures
up images of Hal from 2001, The Terminator or The Matrix, AI may seem exotic
and impractical. In reality, artificial intelligence provides us with a set
of techniques that can be, and are, applied in many practical domains. AI
is used in anything from speech recognition systems and vision systems to
washing machines and internet search engines.
Artificial Intelligence (AI) is about technology that models, simulates and/or
replicates intelligent human behavior. Any behavior that requires intelligence
falls into AI's domain, from proving mathematical theorems, to making up
a clever pun. AI is not science fiction - many AI-based technologies are
already deployed in the real world.
Why attempt to
reproduce human behavior? Aside from the scientific goal of learning more
about intelligence itself, there are many practical applications for AI. Autonomous or semi-autonomous AI systems can relieve humans of onerous or dangerous
tasks, such as working in factories or exploring other planets. AI can also
augment human intelligence, by allowing users to focus on strategic decisions,
rather than low-level analysis. In addition, machines that behave like humans
do - by using human natural language, for example - seem friendlier and more
helpful, and allow people to interact with them more naturally. Finally,
AI allows us to capture human expertise in particular subject areas, such
as disease diagnosis or data interpretation, so that it can be used when
a human expert is not available.
The field of AI
has produced several important technologies, each of which can be used individually
or in combination, depending on the problem. Here we will briefly describe expert systems, machine learning, natural language processing, autonomous agents, and social networks.
Expert
systems (ES) allow us to capture a human expert's understanding in some particular domain
of expertise. A typical ES has a set of fuzzy, probabilistic rules, driven
by an inference engine. It is also has an explanation facility, which
allows it to explain its reasoning to the user. Many modern ESs also
have the ability to learn new rules, generalized from the examples and
cases presented by the user.
Machine learning (ML) techniques allow a computer to learn from its experiences and adapt to its environment,
with or without human intervention. Two common ML techniques are neural networks and evolutionary systems. The design of neural networks is inspired by the structure of the human brain
and, like the human brain, neural networks can learn to recognize and categorize
extremely complex patterns, even if there are no obvious features in the
data.
Natural Language Processing (NLP) refers
to the techniques and technologies which allow machines to understand and
generate text or speech in a human language, such as English or Japanese.
General purpose, unconstrained NLP is an extremely difficult task, as our
ability to process language depends heavily on our world knowledge and context-based
assumptions, as well as our general ability to reason. That said, constrained, limited-domain NLP is quite feasible, and is used in many application areas, such as database
front ends, summarization systems, customer service systems, data mining,
and computer games that involve conversational characters.
Autonomous
agents are software or hardware agents (i.e. programs or robots) that are able to make
decisions and act independently, without human intervention. They move
around in complex environments (e.g. the Internet, or the surface of
Mars), possibly negotiate with other agents, and pursue their objectives
as best they can, given the resources available to them. Autonomous agents
vary in complexity, from the simplest web crawler, to an autonomous spacecraft
like NASA's Deep Space One. Non-player characters (NPCs) in computer
games can also be autonomous agents, and often a lot of the entertainment
comes from the complex behaviors of these characters, which in turn arises
from a relatively simple model of goals, desires, emotions and so on.
Social
networks, in turn, go beyond individual behavior, and relate to how agents (whether human
or artificial) behave collectively. The most familiar social network
is human society itself, which has been studied extensively by economists,
anthropologists, and others. AI researchers and developers are more interested
in social networks that are made up of artificial agents, at least in
part - on-line games like EverQuest, for example. They are also interested
in how new technologies, such as cell phones, change existing social
networks.
User
modeling is a set of techniques which allows a
system to build a model of a user. The system can then remember facts about
the user - name, age, likes and dislikes, beliefs, relationships and so on
-
in much the same way that a human remembers facts about another human. In
an
educational program, for instance, the user model is used to track a
student's progress, strengths, weaknesses, effort, etc. It also allows
personal touches, like the system calling you by your name, making reference
to your friends, or commenting on your opinions and beliefs. User models
also allow content to be tailored and targetted at a particular user.
HCI
Human Computer Interaction (HCI) is about people interacting with
technology. It looks at how technology is designed, and how it should be
designed to make it easy and interesting for people to use.
HCI is an inter-disciplinary field which draws from diverse domains
including engineering, computer science, psychology, graphic design
and ergonomics. HCI is concerned with the design, evaluation and
implementation of interactive technology.
As
its name implies, HCI consists of three parts: the user, the computer itself,
and the ways they work together. When humans interact with computers, they
bring to the encounter a lifetime of experience. Expectations learned in
other areas of life, as well as our experience with other types of machine,
can affect how we think a computer should work or respond. Also, our experience
with one piece of software will influence our expectations of how another
might work.
Computers have no moving parts, therefore there is very little that we can gauge
about what a computer is doing from simply observing it in action. There is no way to tell if a task is near
completion, or indeed if a task is being performed at all. Some programs
need a lot of input from the user, either in the form of data or instructions.
In a well designed piece of software, this interaction should be intuitive
and natural. In badly designed software, complex key sequences, obscure menu
commands and unintuitive input and output methods can result in high levels
of user frustration.
HCI is not restricted to the classic "screen, box and keyboard" computer. It is an important factor in the design of new and emerging technologies
such as mobile devices (cell phones, PDAs) and the applications that run
on them. When devices are confusing to use, or device functionality is hidden
from view, it's likely that the HCI issues were not addressed.
Interaction with any computer or system is done through the interface. The term
interface is used to describe the aspects of a computer system or program
which can be seen (or heard or otherwise perceived) by the human user, and
the commands and mechanisms the user uses to control its operation and input
data.
Interaction with a system can be seen in two ways: as a means to an
end, or as a goal in and of itself. When the interface is simply a way of
accessing the functionality of an underlying piece of software or hardware,
the interaction is simply a means to an end. Many of the most common software
packages are designed this way. Word processing, graphics and email software
typically use a combination of menus, windows, controls of various kinds
and dialog boxes to communicate with the user and allow him or her to access
the full functionality of the program.
Interaction with a system however may be viewed as a goal in and of
itself when that interaction is enjoyable, educational or entertaining for
the user. In such systems, the goal of the interface goes beyond allowing
input and output. The system is designed to engage the user, to entertain
the user through the interaction. When we talk with our friends, we derive
pleasure and amusement from the interaction itself - the information exchange
is of secondary importance.
|