Verex : yapay zeka yaklaşımına dayalı bir tıbbi teşhis programı

Hanef, Murat
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Fen Bilimleri Enstitüsü
Institute of Science and Technology
Uzman sistemler, yapay zekanın, geniş konu spektr umuna sahip bir çalışma alanıdır. Yapay zeka, bilgisayar 'teknolojisinde gerçekleştirilen en son aşa malardan biridir. Yapay zekanın amacı, bilgisayarla rın bir anlamda düşünüp zekice davranabilmelerini sağ layabilmektir. Yapay zekanın Prolog, Lisp gibi kendi ne özgü, yüksek seviyeli programlama dilleri vardır. Bu programlama dilleri, karşılaştırma ve geriye doğru arama gibi gelişmiş fonksiyonları içerirler. Bu çalışmada. Vertigo, Dizzines ve buna ben zer otuzaltı değişik bulgunun teşhisini, hastada bu lunma olasılıkları ile birlikte verebilen bir bilgisa yar programı. Prolog programlama dilinde yazılmıştır. Programa ait bilgi tabanı, konunun uzmanı ile gerçek leştirilen bir ortak çalışmanın neticesinde oluşturul muştur. Bilgi tabanı, programın çalışma prensibi göz önünde bulundurularak tekrar tekrar düzenlenmiş ve bu sayede bilgi tabanındaki bulguların ve bu bulgulara ait semptomların optimal bir düzen içerisinde yer almaları sağlanmıştır. Bu düzen, programın çalışma hızını ve doğruluğunu arttırmıştır. Bu çalışmanın 1. Bölümünde, konuya genel bir giriş yapılmıştır. 2. Bolümde, uzman sistemlerin tanı mı, tarihçesi, özellikleri, üstünlük ve kusurları ile amaçları incelenmiştir. 3. Böl ümde, uzman sistem araç ları, bu araçların özellikleri, bu araçlarda kullanı lan veri gösterilim metotları ve çeşitli programlama dilleri incelenmiştir. 4. Böl Umde, uzman sistemlerin tasarım metotları ve geliştirme prosedürleri incelen miştir. S. Bolümde, uzman sistemlerin geliştirilmesi esnasında ortaya çıkan güçlükler incelenmiştir. 6. B ölümde, gerçekleştirilen uzman sistem incelenmiş ve bu sistem hakkında ayrıntılı açıklamalar verilmiştir. Son olarak da sonuç ve öneriler sunulmuştur.
Expert systems, is the most hopefull branch of the computer sciences. Primarily expert systems is a title in artificial intelligence approach. Artifi cial intelligence tries to force the computers to think in a different point of view. It has different methods to do it. Artificial intelligence approach also has different types of high-levelled programming languages like Prolog and Lisp. These programming languages operates on symbolic reasoning. In addition these hi gh-1 evel 1 ed programming languages contains backtracking which are power full functions that make these languages efficient. The process of constructing an expert system often called knowledge engineering, and is considered to be "applied artificial intelligence". Knowledge- based systems attempt to encode the domain-specific knowledge of everyday practitioners in some field, rather than using complex and comparatively domain- free methods derived from computer science or mathe matics. Artificial intelligence concerned with prog ramming computers to perform tasks that are presently done better by humans, because they involve such higher mental processes as perceptual learning, me mory organization and jutgemental reasoning. Thus, writing a program to perform complicated statistical calculations would not be seen as an artificial intel ligence activity, while writing a program to design experiments to test hypotheses would. There are differences of outlook and emphesis XI among researchers, however. Some incline towards the view that artificial intelligence is a branch of engi neering, since it is ultimately about building intel ligent artefacts. Others stress the link with cogni tive science: a discipline which concerns itself with the study of human information processing. At bottom, artificial intelligence is about the simulation of human behaviour: the discovery of techniques that will allow us to design and program machines which both emulate and extend our mental ca pabilities. It is therefore hardly surprising that the discipline should be closely related to a wide range of other academic subject areas such as compu ter science, psychology, philosophy, linguistics and engineering. The fact that artificial intelligence crosses a number of traditional inter -disci pi i nary boundaries sometimes causes friction, but more often is a source of inspiration and new ideas. Artificial intelligence is scarcely younger than conventional computer science; the beginnings of artificial intelligence can be seen in the first game- playing and puzzle-solving programs written shortly after World War II. Game playing and puzzle solving may seem somewhat remote from expert systems, and in sufficiently serious to provide a theoretical basis for "real world" applications. However, it is true to say that a rather basic notion about computer-based problem solving can be traced back to those early at tempts to program computers to perform such tasks. This idea is called "state space search" and it is essentially very simple. Many kinds of problem can be formulated in terms of three important ingre dients: ID a starting state, e.g. the initial state of the chess board. 2D a test for detecting final states of solutions to the problem, e.g. the simple rule for detecting checkmate in chess. 3D a set of operations that can be applied to change the current state of the problem, e.g. the le gal moves of chess. One way of thinking of this conceptual space xii of states is as a graph in which the states are nodes and the operations are arcs. Such spaces can be gene rated as you go. For example, you could begin with the starting state of the chess board and make it the first node in the graph. Each of White's possible first moves would then be an arc connecting this node to a new state of the board. Each of Black's legal replies to each of these first moves could then be considered as operations which connect each of these new nodes to a changed state of the board, and so on. The simplest form of state space search is called "generate and test", and the algorithm is easy to specify: ID Generate a possible solution, in the form of a state in the search space, e.g. a new board position as the result of a move. 2D Test to see if this state actually is a soluti on by seeing if it satisfies the conditions for suc cess, e.g. checkmate. 3D If the current state really is a solution, then quit, else go back to first step. There are two variants on generate and test: depth-first search and breadth-first search. The dif ference between them lies in the order in which pos sible solutions are generated in the first step. At any given node, N, depth-first search considers the "successors" of N, i.e. those states which result from applying operators to N, before considering "siblings" of N C those states which were generated along with N, when applying operators to N's "ancestor "D. In breadth-first search, it is the other way round: N's siblings are checked out before going on to N's* suc cessors. Thus, in breadth-first search, one searches layer by layer through successive levels of the search space, whereas in depth-first search one pursues a single path at a time, returning to N to pick another path only if the current path fails. Breadth-first search finds the shortest solu tion path, if there is one, but depth-first search gets there faster as long as it guided in some way, i.e. if it makes good decisions when choosing which path to pursue next. On the other hand, depth-first search may never terminate if the search space is in finite, even if a solution exists along some as yet unexplored path. Guided depth-first search is XXXI preferred; this is sometimes called "best-first search", since at each choice point, one is trying to make the best decision as to where to look next. It is hot hard to see how the number of nodes may grow exponentially at each stage, regardless of the order in which nodes are generated. This phenome non is usually referred to as the "combinatorial ex plosion", and it poses intractable problems to prog rams which attempt to play games like chess by "brute force" enumeration of all the alternatives. Since hu man beings are slower than computers at such enumera tion tasks, and much less reliable, one can safely as sume that chess grand masters do not function in this way. Rather they apply their experience, imagination and analytic skills to the selection of both overall strategies and winning moves. It is all inclined to call such behaviour "intelligent". Given that exhaustive search is infeasible for anything other than the smallest search space, some means of guiding the search is required. A search which uses one or more items of domain speci fic knowledge to traverse a state space graph is called a "heuristic search". A heuristic is best thought of as a rule of thumb: it is not guaranteed to succeed, in the way that an algorithm or decision procedure is, but it is useful in the majority of the cases. A common form of heuristic search is referred to as "hi 11 -climbing". This involves giving the prog ram an evaluation function which it can apply to the current state of the problem in order to obtain a rough estimate of how well things are going. For example, a simple evaluation function for a chess- playing program might involve a straightforward compa rison of material between the two players. The prog ram then seeks to maximize this function when it ap plies operators, such as the moves of chess. The al gorithm for hi 11 -climbing is given below. ID Generate a possible solution as with the first step of "generate and test". 2D From this point in the state space, apply rules that generate a new set of possible solutions, e.g. the legal moves of chess, that can be made from the current state. 3D If any state in the newly-derived set is a xiv solution, then quit with success, else take the "best' state from the set, make it the current state, and go back to second step. There are well-known problems with this ap proach, however. To begin with, the evaluation func tion may not be faithful estimate of the "goodness" of the current state of the problem. Simple estimates based on material advantage will not capture all the subtleties of the game. Furthermore, even if the eva luation function gives a good estimate, there are va rious states of play that can cause problems. For example, there may be no obvious next move, because they all appear to be equally good or bad. This is like being on a plateau, with no clear path towards the heights. Another problem is that of "local maxi ma", whereby the evaluation function lead you to a peak position, from which the only way is down, while the goal is on some other, higher peak. The point is, that using the power of a com puter to search for solutions, either exhaustively or guided by an evaluation function, is not always suffi cient to solve problems of realistic complexity. Ex pert systems attempt to tackle the difficulties of search by explicitly representing both the knowledge that an expert has about some domain and the strate gies that he uses to reason about what he knows. The main difference between the needs of the users that we have called the engineer and the consu mer concerns the level at which the explanation should be presented and the degree of understanding which the user is presumed to have with respect to the system's internal workings. In other words, one expects the knowledge engineer to know more about both the problem solving domain and the computational mechanisms by which the system derives solutions. This difference in knowledge also imparts special privileges to the user, in that the interface should allow the engineer to make changes to the system on the basis of his res ponse to the explanation. Thus the engineer may wish to revise certain rules, or remove certain facts from the knowledge base. The engineer may wish to restart the computation, putting on extra levels of trace, and having certain subresults made visible as they are computed. xv Particularly» in this study, a computer prog ram which can diagnose Vertigo, Dizzines and thirtysix different findings with their existency probabilities was written an a programming language called Prolog. These program's database was prepared in the result of an intensive, four months-long study that was made with the association of the domain expert. The data base was refined repeatedly under consideration of the program's working method and thus it was provided that the findings in the database and the symptoms of these findings had an optimal order. This order had increa sed the working speed and the accuracy of the program. In the first chapter of this study, a general point of view was introduced. The second chapter ex plains the definition and the history of the expert systems and gives the properties, advantages and the aims of the title. In the third chapter, the expert system tools and their properties, the knowledge rep resentation techniques which were used in these expert system tools and the programming languages of the ar tificial intelligence were introduced. In the fourth chapter, expert system design methods and development procedures were explained. The fifth chapter introdu ces some of the difficulties which were originated the development process of the expert system. In the sixth chapter, the expert system which was designed and the detailed explanations of the system were in troduced. At last the conclusions were introduced.
Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 1991
Thesis (M.Sc.) -- İstanbul Technical University, Institute of Science and Technology, 1991
Anahtar kelimeler
Teşhis, Uzman sistemler, Yapay zeka, Diagnosis, Expert systems, Artificial intelligence