YZM 5257- YAPAY ZEKA VE UZMAN SİSTEMLER
D ERS #3:
UZMAN SİSTEMLER#2
Bilgi - Veri
• Bilgi ve Veri arasındaki fark nedir?
Bilgi Türleri
Meta Bilgi Bilgi
Enformasyon Veri (İşçi Bilgiler)
Gürültü
Bilgi türlerinin hiyerarşik yapısı
Novruz Allahverdi, Uzman Sistemler bir yapay zeka uygulaması, Nobel Akademik Yayıncılık, 2002
Bilgi Mühendisliği
• Bilgi Mühendisliği (Knowledge Engineering) nedir?
• Uzmanla yapay sistem arasında arabulucuk yapan, uzmanın bilgilerini sisteme aktaran, bilgilerle uğraşan yöntem ve sistemleri oluşturan bir uzmanlık alanıdır.
•
• Knowledge Acquisition (Bilgiyi elde etmek)
• Bilgi mühendisi uzmanın problem ve onun çözümü hakkında görüşlerini kesin, tam ve zıt olmayan bir sisteme dönüştürmelidir.
Bilgi Tabanı
Bilgi tabanının oluşturlma süreci 3 aşamalıdır.
A. Disiplin alanının tanımlanması B. Bilginin elde edilmesi
C. Bilginin sunulması yöntemi ve modelinin seçilmesi Bilgi Tabanı neden önemli?
Bazen aynı dili konuşan insanlar bile birbirini anlayamaz.
Bilgi Tabanı
Bilgi tabanının oluşturulma süreci A. Disiplin alanının tanımlanması
1. Çözülen problemlerin karakterlerinin belirlenmesi 2. Disiplin alanının nesnelerinin seçilerek birbirnden
ayırt edilmesi
3. Nesneler arasındaki ilişkilerin tespit edilmesi 4. Bilginin sunulması modelinin seçilmesi
5. Disiplin alanının özel niteliklerinin meydana çıkarılması
Bilgi Tabanı
Bilgi tabanının oluşturulma süreci A. Disiplin alanının tanımlanması
Örnek:
• Displin Alanı : Tıp
• Uzmanlık: Koruyucu Hekim, Teşhisci Hekim
• Hastalık Çeşidi: boğaz enfeksiyonları
• Hastalığı etkileyen faktörler :Genetik, çevresel faktörler, beslenme…
• .
• .
• .
Bilgi Tabanı
Bilgi tabanının oluşturulma süreci B. Bilginin elde edilmesi
1. Söyleşi (mülakat) veya soru-cevap yöntemi 2. Gözlem veya izleme yöntemi
3. Anket yöntemi
4. Uzman ile birlikte çalışma
5. Protokol Analizi: Protokol analizi yöntemi birden fazla
uzman görüşü alınaarak yapılır. Aynı konunun uzmanı olsalar bile değişik sorunların çözümü için değişik fikir üretebilirler.
Son yıllarda geliştirilen otomatik bilgi edinme (automatic knowledge acquisition) araçları da olumlu sonuçlar vermeye başlamıştır.
Bilgi Tabanı
Bilgi tabanının oluşturulma süreci
C. Bilginin sunulması yöntemi ve modelinin seçilmesi 1. Üretim modelleri (Production Models)
2. Bilgi Çerçeveleri (Frame) 3. Sahneler (Scene)
4. Anlamsal Ağlar (Semantic net)
5. Mantıksal Modeller (Logical Models) 6. Bulanık Bilgiler (Fuzzy net)
Bilgi Tabanı
Üretim modelleri (Production Models)
• Kural tabanlı uzman sistemlerde (Rule-based expert systems) kullanılan en yaygın yöntemdir.
• 70.ci yılların başlarında Carnegie-Mellon University Üniversitesinden Newell ve Simon üretim sistemi (
production system) modelini önerdiler ki, bu da çağdaş kural tabanlı uzman sistemlerinin temelini oluşturuyor
• Üretim modeli, insanın sorunları çözmek için uygun alandaki bilgileri EĞER – O HALDE biçiminde ifade etmesi düşüncesine dayanıyor
Kurallarla Bilgi Tasviri
• Kurallar IF-THEN yapısı ile ifade edile bilir ve IF kısmında verilmiş bilgi ve olgular, THEN kısmında hareket (yapılması gereken) olarak gösteriliyor.
• Her bir kural 2 kısımdan oluşuyor:
1. IF kısmı (önerme ,koşul- (premise , condition)
2. THEN kısmı (hareket, sonuç- (action, conclusion).
Kurallarla Bilgi Tasviri
EĞER – O HALDE (IF - THEN) Kuralları
Üretim kuralları olarak da bilinen Eğer-O halde kuralları bilginin sunulması için en uygun yapıdır.
Kural: Işık
• Eğer
– ışık kırmızıdır
• O Halde
– Dur
Kurallarla Bilgi Tasviri
• Bir kuralın IF kısmında mantık işlemleri ile birleştirilmiş birkaç koşul olabilir.
• IF <koşul 1> IF <koşul1>
• AND <koşul 2> OR <koşul2>
… …
• AND <koşul n> OR <koşul n>
• THEN <sonuç> THEN <sonuç>
Kurallarla Bilgi Tasviri
• Kuralın solu iki kısımdan oluşuyor: nesne ve onun değeri. Nesne ve değeri işlemle ilişkilendiriliyorlar.
• İşlem (operator) nesneye değer atıyor.İşlemler dilsel ve matematiksel ifadeler olabilir.
NESNE İŞLEM DEĞER
IF ‘müşterinin yaşı’ < 18
AND ‘çekilen para’ > 1000
THEN ‘ebeveynin imzası’
gerekiyor
Kurallarla Bilgi Tasviri
• Kurallar ilişkileri, tavsiyeleri, yönergeleri,stratejileri ve sezgiselliği … ifade etmek içindir:
İLİŞKİ
IF “yakıt deposu” boştur THEN motor çalışmaz
TAVSİYE
IF güz mevsimidir AND hava bulutludur AND yağmur bekleniyor
THEN ‘şemsiye almak’ tavsiye olunur STRATEJİ
IF motor çalışmıyor
THEN ‘yakıt deposunu’ kontrol et;
adım1 tamamlandı IF adım 1 bitmiştir
AND ‘yakıt deposu’ doludur THEN ‘akü’yü kontrol etmeli;
adım2 tamamlandı
YÖNERGE
IF motor çalışmıyor
AND ‘yakıt deposu’ boştur
THEN yakıt deposunu doldurmalı
Kurallarla Bilgi Tasviri
EĞER – O HALDE (IF - THEN) Kuralları Örnek: MYCIN US’nden bir örnek kural Eğer
1. Enfeksiyon primier bacteremia ve 2. Steril alanlardan birinde kültür ve
3. Tahmin edilen protelin organizma girişi gartintestinal trakt ise
O Halde
• Organizmanın baktoriodes olduğuna dair delil (0.7) mevcuttur.
Geri Zincirleme
A. Geriye Doğru Akıl Yürütme
Önceden bir hipotezin (H) gerçek olduğu varsayılır ve bu hipotezi kanıtlayacak deliller(D1, D2, D3) aranır.
Örn: EMYCIN(EmptyMYCIN)
D1 D2 H
D3
İleri Zincirleme
A. İleriye Doğru Akıl Yürütme
D1 delili kanıtlanırsa D2 sorgulanır, D2 kanıtlanırsa D3 sorgulanır.
Örn: CLIPS, OPS5
D1 D2 D3 H
Geri - İleri Zincirleme
İLERİ ZİNCİRLEME GERİ ZİNCİRLEME
If motor çok ısınmışsa Then motor durur IF motor durursa
THEN eve geç dönülür
If araba çalışmıyorsa AND akü bitmişse
THEN marş motoruna elektrik gelmemektedir
IF marş motoruna elektrik gelmiyorsa THEN araba hareket etmez
Arabanın çalışmadığını varsayalım. Bu yüzden arabanın çalışmaması koşullarını belirlemek gerekir. İleriye doğru akıl yürütmede bu koşullar bellidir (Motor hararet
yapmıştır). Fakat bu koşulların getireceği sonuçlar belli değildir. Problem mümkün olacak sonucu tahmin etmektedir. Geriye doğru akıl yürütmede ise sonuç bellidir ve bu sonucu oluşturan nedenlerin bulunması gereklidir.
US’in Geliştirilmesi
Uzman Sistemlerin geliştirilmesinde çalışma grubu:
• Alan uzmanı
• Bilgi mühendisi
• Programcı
• Proje Yöneticisi
• Son kullanıcı
US’in Geliştirilmesi
Alan uzmanı
• Uzmanın kendi alanında büyük deneyimi vardır.
• Uzman aşağıdakileri yapa bilmelidir:
– Bilgilerini aktara bilmelidir;
– Uzman sistemi geliştirilmesinde istekli olmalıdır – Projeye önemli zaman ayırmalıdır.
– Alan uzmanı, uzman sistemlerini geliştirme grubunda en önemli kişidir
US’in Geliştirilmesi
Bilgi mühendisi
• Bilgi Mühendisinin görevleri:
• Somut bir sorunun çözüm yolunun bulunması için alan uzmanı ile konuşmak
• Uzmanın olguları ve kuralları kullandığı zaman hangi muhakeme yöntemlerine dayandığını anlamak ve bu muhakemelerin uzman sisteminde nasıl ifade edile bileceğine karar vermek
• Yazılım geliştirmek veya uzman sistemi kabuğu (expert system shell) seçmek veya bilgileri ifade etmek için hangi programlama araçlarının kullanıla bileceğini araştırmak
US’in Geliştirilmesi
Programcı
• Programcı alan bilgilerinin ,bilgisayarın anlayacağı dilde ifade etmek için programlar yazmakta
sorumludur.
• Programcı mantıksal programlama dillerinden birisini bilmelidir ve kabuk sistemlerin
geliştirilmesinde belirli bir deneyimi bulunmalıdır.
• Programcının yordamsal dilleri de bilmesi gereklidir
US’in Geliştirilmesi
Proje Yöneticisi
• Proje Yöneticisi uzman sistemi geliştirme grubunun başkanıdır ve projenin plan üzere geliştirilmesinde sorumludur.
• Proje yöneticisi proje için gerekli olan tüm araçların alınmasında, sorunların giderilmesinde, uzmanla, bilgi mühendisi,programcı ve son kullanıcı ile
etkileşimlerin gerçekleştirilmesinde sorumludur
US’in Geliştirilmesi
Son Kullanıcı
• Son kullanıcı (kısaca kullanıcı) uzman sistemini kullanan kişidir
• Kullanıcı uzman sistemini kendinden emin biçimde kullana bilmelidir. Sistemin kullanışı onun için kolay olmalıdır.
• Bu anlamda uzman sistemleri için kullanıcı
arayüzünün tasarımı da çok önemli etkendir. Bu yönde son kullanıcının proje geliştirmeye önemli katkısı ola bilir.
US’in Geliştirilmesi
US’in Geliştirilmesi
Uzman Sistemlerin geliştirilmesinde kullanılan 3 temel araç:
1. Programlama Dilleri (Programming languages) 2. Uzman Sistem Kabukları (Expert system shells) 3. Uzman Sistem Geliştirme Platformları (Expert
system development environments)
US Programlama Dilleri
LISP
PROLOG
US Programlama Dilleri
LISP (List Programming)
YZ problemlerinin çözümünde yaygın kullanılan mantıksal programlama dilidir. Fonksiyonel
programlama işlemleri de yapılmaktadır.
Listeler üzerinde işlem yapmak için önerilmiştir.
US Programlama Dilleri
• PROLOG (PROgramming in LOGic )
• Mantıksal programlama dilidir.
US Kabukları
US Kabuğu nedir?
Son zamanlarda uzman sistemlerin geliştirilmesinde uzman sistem kabuklarından “expert system shell”
yaralanılmaktadır. Bu kabuklar, bir karar mekanizması, boş bir bilgi tabanı, kullanıcı-sistem arayüzü, bilgi mühendisinin kullanabileceği bir US geliştirme biriminden oluşur.
KISACA:US kabuğu bilgi tabanı boş olan bir uzman sistemdir.
US Kabukları
• Clips,
• Jess,
• Exsys,
• Vidwan,
• Knowledge Pro,
• K-Vision, Age,
• Emycin,
• KAS,
• Leonardo (?),
• Xi Plus,
• Savoir & XpertRule.
CLIPS
• C Language Integrated Production System (CLIPS)
• CLIPS en fazla kullanılan uzman sistem kabuklarından biridir.
• C programlama dilinde yazılmıştır.
• CLIPS NASA ‘nın Johnson Space Center adlı merkezinde 1984 yılında ortaya atıldı.
• Kural tabanlıdır.
• İleri zincirleme algoritması kullanır.
• http://www.clipsrules.net/
• CLIPS‘in kullanıldığı uygulamalar: LIMEX, NRES, On-Line Nuclear Power Plant, FESTO, Expert Surgical Assistant etc.
EMYCIN
• Essential MYCIN (Empty MYCIN)
• Geri zincirleme kullanır.
• PROLOG tabanlıdır.
JESS
• Java Expert System Shell (JESS)
• İleri ve geri zincirleme kullanır.
• RETE algoritması kullanır.
• Java tabanlıdır.
• CLIPS sisteminin birçok özelliklerini taşır.
• CLIPS den daha yavaş çalışır.