Clare's explanations of some of the things she works on
Artificial Intelligence or AI most simply refers to being clever about doing a
task on a computer when the problem is somehow "too big" to pursue the problem
via more traditional computational methods.
Typically, an AI problem is "too big" in some or all of the following senses:
- The task is not well enough understood to be solved
algorithmically (as a series of steps)
- There is a vast amount of knowledge required to perform the task and it
is unknown how to best encode this knowledge into the system
- There are an enormous number of possible solutions, too many to evaluate
- We're happy to settle for "the best" solution we can find in a reasonable
One way to think about AI tasks is that there are too many options to consider
them all, so we have to be clever about which possibilities are considered. AI
systems are typically marked by search, which means considering
different possible outcomes from different courses of action, and
heuristics, which are rules of thumb about which options are the most
promising ones to consider. The different possible search stragies are task
independent while heuristics are specific to the task at hand.
It's a common saw that "once it works, it's no longer AI", meaning that when
"the best" solution crosses a certain threshold of performance, what was once
"AI research" becomes mainstream. This is true of voice-recognition software,
for example ("press or say one" on the phone), and the grammar correction in word
processors (both of these are flawed, but in many cases, still helpful).
Machine Learning (ML) refers most generally to computer programs that adapt as
they run. (The name of the field dates back to Alan Turing, in the days when
"computers" were people and "computing machines" were the electronic
counterparts.) Identifying patterns is an essential ability for both human and
computer learning, as one must be able to recognize "I've seen this before" (or
"I've seen something like this before") to respond appropriately in the
present and to anticipate possible outcomes in the future.
Thus, machine learning also refers to the process of extracting patterns from
data, such as the specialization called data mining.
Some ML systems work by modifying their own code, usually implemented in an
interpreted language such as LISP that allows the introduction of new
functions (or redefinition of existing functions), or in a production system
that allows the introduction of new rules. More commonly, ML systems modify
data structures to capture the patterns of what is known about the world,
usually a form of generalizations. Just as with human learning, this process
is error prone.
Genetic Algorithms / Evolutionary Computation
Genetic Algorithms (GA's), also called Evolutionary Computation (EC), is an a
computational approach in which one evolves a solution to a problem over a
number of generations. The approach is (obviously) inspired by natural
evolution and genetics, but primarily at the level of metaphor. Nature is a
pretty good problem solver.
To use the GA approach, the set of possible solutions to the task must be
represented in a relatively simple data structure, such as a string or a tree
structure, and one must have a means of scoring each potential solution
A GA works with a population of possible solutions to the problem; typically
these are generated at random to begin. (Of course, these are not presumed to
be particularly good solutions to the problem, but they serve as a starting
point.) Each of the solutions in the population is scored and the
higher-scoring solutions are more likely to be chosen as parents; parents
produce offspring solution through processes such as recombination and
mutation. The process repeats until a stopping criteria is reached, such as a
given number of generations. Over a number of generations, the population
tends to include better and better solutions to the problem.
Complex Adaptive Systems
Complex Systems is an approach to modelling phenomena as simple interactions
among simple agents, and yeilding a behavior much more complex than one would
initially predict by looking at the rules of interaction. The complex behavior
is said to emerge from the system. For example, bird flocking has been
successfully modelled with three simple rules for each bird, controlling
separation, alignment, and cohesion relative to other birds nearby. A typical
component of a complex systems model is the reliance on local knowledge of the
individual agents (e.g., a bird) leading to a behavior or effect that is
interesting on the global level (how the flock behaves).
When the behavior of the components of the system changes over time, this is a
Complex Adaptive System.
Bioinformatics is most broadly the use of (and development of) computer
science tools and techniques to acquire, store, organize, archive, analyze and
visualize biological data. More specifically, the term has come to refer to
forms of biology that relate to genetics, such as alignments, patterns of
substitution, phylogenetics, and protein folding. Bioinformatics is a broad
and interdisciplinary field, encompassing interests and expertise from fields
such as Biology, Chemistry, Computer Science, and Mathematics/Statistics.
Most subfields of computer science have roles in bioinformatics. Because there
is such a huge amount of data to be stored and processed, two of the most
obvious CS specialties involved in bioinformatics are data bases (efficient
storage and retrieval of data) and machine learning (finding patterns in the
data). Human-computer interaction (HCI) and visualization are also essential.
While folks differ on what specific terminalogy means, in the circles I run
in, computational biology is broader than bioinformatics, refering to the full
spectrum of where computer science and biology intersect. This would include
modelling an ecosystem, for example, which would not generally be considered
You know what robotics is, so I don't need to explain it. But let me clarify
that there are two forms of "robotics". There's the mechanical engineering
kind, which is concerned with things like sensor and motor design, and the
artificial intelligence kind, which is concerned with the behavior of the
robots. Although I sometimes build "hobby" robots, with legos or plywood and
hobbyshop motors, obviously at the research level, I work in the AI form of
The notion of interactive art is that the viewer interacts with your piece
(duh) and that how it responds varies, depending on the viewer's
actions. (This need not involve computers, but of course, that's the form I
primarily work with.)
The input might be normal computer inputs, such as the mouse and the keyboard, or
a touch screen, or might involve other sensors, such as the light sensors or
touch sensors used in robotics.
The output would generally be a visual display,
but could be more than a computer monitor; it might involve projectors or
Examples of interactive art I've done with students include:
- Jake Hobart's 3D graphics piece, where geometric shapes grew or receded
in a virtual world depending on the users interaction with them.
- Andrew Merryman's "virtual touch screen", a plexiglass frame with lasers
and light sensors in the frame, so that when you place your hand in the
frame, the xy coordinates are known; Andrew projected images behind the
frame that changed in response to these actions.