Yapay Zeka ve Uzman Sistemler Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr
Hedefler Bilgi Mühendisliği Nedir ? Bilgi tabanının oluşturulması Problem Çözme
Bilgi ve Veri arasındaki fark nedir? Bilgi - Veri Bilgi ve Veri arasındaki fark nedir?
Bilgi türlerinin hiyerarşik yapısı Meta Bilgi Bilgi Enformasyon Veri (İşçi Bilgiler) Gürültü 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. Disiplin alanının tanımlanması Bilginin elde edilmesi Bilginin sunulması yöntemi ve modelinin seçilmesi Bilgi Tabanı neden önemli? Bazen aynı dili konuşan insanlar bile birbirini anlayamaz.
Bilgi tabanının oluşturulma süreci Disiplin alanının tanımlanması Çözülen problemlerin karakterlerinin belirlenmesi Disiplin alanının nesnelerinin seçilerek birbirnden ayırt edilmesi Nesneler arasındaki ilişkilerin tespit edilmesi Bilginin sunulması modelinin seçilmesi Disiplin alanının özel niteliklerinin meydana çıkarılması
Bilgi tabanının oluşturulma süreci 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ının oluşturulma süreci B. Bilginin elde edilmesi Söyleşi (mülakat) veya soru-cevap yöntemi Gözlem veya izleme yöntemi Anket yöntemi Uzman ile birlikte çalışma 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ının oluşturulma süreci C. Bilginin sunulması yöntemi ve modelinin seçilmesi Üretim modelleri (Production Models) Bilgi Çerçeveleri (Frame) Sahneler (Scene) Anlamsal Ağlar (Semantic net) Mantıksal Modeller (Logical Models) 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: IF kısmı (önerme ,koşul- (premise , condition) 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 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 Enfeksiyon primier bacteremia ve Steril alanlardan birinde kültür ve Tahmin edilen protelin organizma girişi gartintestinal trakt ise O Halde Organizmanın baktoriodes olduğuna dair delil (0.7) mevcuttur.
Geri Zincirleme D1 D2 H D3 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 D1 D2 D3 H İ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 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ç: Programlama Dilleri (Programming languages) Uzman Sistem Kabukları (Expert system shells) 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.
Ödev-1(Oyun) http://www.20q.net/ internet sitesini ziyaret edin.
Ödev-2 (Okuma) Özcan Kıhnçcı,Uzman sistemler kullanılarak yapılmış bir iş değerlendirme çalışması. http://arsiv.mmo.org.tr/pdf/11756.pdf Figen Aktuna, KREDİ KARTLARI MÜŞTERİ RİSK TAKİP UZMAN SİSTEMİ, 2003. https://polen.itu.edu.tr/bitstream/11527/431/1/1572.pdf Ahmet Babalık, İnan Güler, 2007,Boğaz enfeksiyonlarinin teşhis ve tedavisinde uzman sistem kullanımı, Selçuk-Teknik Dergisi. http://sutod.selcuk.edu.tr/sutod/article/view/40/573
Ödev-3(Araştırma) Diğer uzman sistem kabukları nelerdir? CLIPS uzman sistem kabuğunu indirip, örenkleri inceleyin.
Yararlanılan Kaynaklar http://slideplayer.biz.tr/slide/2681716/ Aybars Uğur, Yapay Zeka Ders Notları. Novruz Allahverdi, Uzman Sistemler bir yapay zeka uygulaması, Nobel Akademik Yayıncılık, 2002 Vasif Nabiyev, Yapay Zeka, Seçkin Yayıncılık, 2016, 5. Baskı
Teşekkürler Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr