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.

 

|||
What is...
||