دانلود کتاب Tutorial: Computers for Artificial Intelligence Applications
by Benjamin W. Wah and Gio-Jie Li
|
عنوان فارسی: آموزش: برای کامپیوتر هوش مصنوعی برنامه های کاربردی |
دانلود کتاب
جزییات کتاب
=======
This tutorial presents fundamentals in language-oriented and knowledge-oriented computer architectures for artificial intelligence applications, in short, AI architectures. As AI applications move from laboratories to the real world and as AI software grows in complexity, computational throughput, and cost are increasingly important concerns. Conventional von Neumann computers are unsuitable for AI applications because they are designed mainly for numerical processing. Although the idea of building intelligent systems is as old as the AI field itself, it is only in recent years that the design of special computer architectures for AI applications becomes feasible with the decreasing hardware costs, the advent in VLSI technology, and the experience gained with AI programming. Opportunities for increased efficiency in AI computations exist at every level, from improved instruction-set designs to parallel computer systems. A great amount of effort has been devoted to investigating and developing efficient AI architectures, and this topic is becoming more and more attractive for researchers and designers in the areas of computers and AI.
Solving a problem in AI, as well as many other problems, can be regarded as evaluating an algorithm. In general, the algorithm for solving any problem on a computer can be coded in software and executed on a conventional von Neumann computer. To cope with the increasing inefficiency and difficulty in coding algorithms in AI by using conventional languages, declarative languages have been developed. Lambda-based and logic-based languages are the two popular classes of declarative languages.
One of the starting points of the computer architect in supporting AI applications is the language rather than the algorithms. Of course, some primitive operations may be designed directly into hardware without first being translated by using a high-level language. This approach has been termed the language-first approach. A possible disadvantage of this approach is that each language may lead to a somewhat distinct architecture unsuitable for other languages, a dilemma in high-level-language computer architectures. In AI applications, the lambda-based and logic-based languages have been considered seriously by novel architects. Recent research lies in integrating the logic and lambda languages with procedural languages. The work on lambda- and logic-oriented architectures also provides useful guidelines for designing parallel architectures to support more advanced languages.
Another starting point for the computer architect is to design architectures to support the management of a large volume of knowledge. Recognizing that the major overhead lies in the search and manipulation of knowledge, the architect designs efficient storage mechanisms with distributed intelligence to support queries and updates of knowledge. The resulting architecture is strongly dictated by the knowledge representation schemes. A hybrid of the language-first and the knowledge-first approaches is of growing interest.
In spite of the growing importance of AI applications, the issues of designing these architectures have never been fairly and completely explored in a single publication. In fact, work in this area is so diversified that articles were published in other areas besides AI, ranging from psychology, medicine, manufacturing, computer architecture, software engineering, and database management to industrial engineering, electronics, theory of computation, communications, image processing, speech understanding, operations research, and the list grows. The literature search is also complicated by the fact that with the development of the Fifth-Generation Computer Systems, some work in this area is very recent and was published in many foreign countries. During our literature search to compile this tutorial text, we systematically went through over 60 different journals published in various countries and proceedings from over 50 conferences in the last 20 years and over 70 books. In view of this, the authors believe that a tutorial is urgently needed to promote more fruitful research efforts in this area.
The text of this tutorial is designed for engineers, programmers, graduate students, educators, and those involved in the research, development, and application of special-purpose computers for solving problems in AI. It is a tutorial in nature and provides a state-of-the-art survey. It is expected that this tutorial will serve as a guide for beginners, as well as a major reference for all professionals in computer engineering and AI. It is hoped that after reading the text readers will be able to understand the design issues, realize the limitations, write better programs, promote more research in this area, and trigger further creative designs for architectures and languages in AI.
The text is organized into nine chapters. A tutorial guide is provided at the beginning of each chapter to explain the underlying concepts and to annotate an up-to-date reference list. Each chapter, excluding Chapter 9, includes some reprinted articles to explain the design issues and to exemplify some recent developments.
Chapter 1 provides a general introduction to the problems and objectives in AI.
Chapter 2 discusses the motivations and design issues in designing specialized architectures for AI applications.
Chapter 3 explains the various declarative languages and programming techniques in AI, their developments, and their relationships to each other.
Chapter 4 focuses on the microlevel hardware architectures that include pattern matching, intelligent memories, and hardware unification units.
Chapter 5 investigates the macrolevel hardware architectures. Issues and designs on knowledge database machines and parallel searching are presented.
Chapters 6, 7 , and 8 explore hardware architectures on the system level. Chapters 6 and 7 highlight architectures in general, while Chapter 8 presents architectures directly related to the Fifth-Generation Computer-System Projects in various countries.
Chapter 6 focuses on architectures for functional and lambda-based languages.
Chapter 7 concentrates on logic and knowledge oriented architectures. The architectures are divided into three classes and are directed toward logic programs, production systems, and semantic nets and distributed problem solving.
Chapter 8 discusses architectures of the Fifth-Generation Computer-System projects in England, the European Commission, Japan, and the United States.
Last, Chapter 9 exemplifies some architectures designed for applications in AI including speech recognition, image understanding, and computer chess.
We would like to take this opportunity to thank all the authors who have contributed to this tutorial text. We apologize to those authors whose valuable papers could not be included owing to page limitations and we also apologize to those authors whose shorter papers were selected in place of their longer and more comprehensive versions because of the page limitations. We tried to be as complete as possible in compiling the reference lists, which were based on contributions and accessibility of the work. We deeply regret any omissions and hope that they will be made known to us for use in future revisions. We would like to acknowledge the support of CIDMAC, a research unit of Purdue University, sponsored by Purdue; Cincinnati Milicron Corporation; Control Data Corporation; Cummins Engine Company; Ransburg Corporation; TRW; and the National Science Foundation grant DMC-85-19649 in preparing this tutorial text.
Finally, we would like to thank sincerely Professor Chuan-lin Wu and the reviewers for their helpful criticisms, suggestions, and encouragement; Jo Johnson for her patient secretarial help; and Margaret Brown and her staff of the IEEE Computer Society Press for editing the text.
Benjamin W. Wah and Guo-Jie Li
University of Illinois, Urbana-Champaign
----
Cover designed by Jack I. Ballestero
Library of Congress Number 86-80070
IEEE Catalog Number EH0242-8
ISBN 0-8186-0706-8