Uzman Sistemleri
Konular Bilgi Bilgi Edinme Uzman Sistemlerinin geliştirilmesi Kurallar ve Bilginin tasviri Kural Tabanlı Uzman Sistemleri Uzman Sistemlerinin nitelikleri
Bilgi Nedir? Bilgi (Knowledge) özne veya alanın teori ve pratik anlaşılmasıdır. Bilgi aynı zamanda güncel bilinenlerin toplusudur Bilgi güçtür Alanında çok iyi bilgi ve deneyime sahip olan kişiye uzman (expert) denir Her hangi bir alanda derin bilgisi (olgular ve kurallar) ve ciddi pratik deneğimi olan her kez alan uzmanı sayıla biler. Alanın kapsamı sınırlı ola bilir. Genelde, uzman başka kişilerin düşüne bilmediklerini de düşüne bilme,anlaya bilme yeteneği bulunan bir insandır
Bilgi Edinme Bilgi edinme bir yöntemdir ki, bununla bilgi mühendisi bilgileri belirli kaynaklardan ediniyor (esasen uzmanlardan, ama kitaplardan , teknik talimatlardan ,araştırma makalelerinden ve diğer kayda değer kaynaklardan da ). Bu bilgiler makine ve insan tarafından anlaşıla bilen bilgi tabanına (dönüştürülerek) aktarılır. Bilgi edinmesi ile meşgul olan kişi bilgi mühendisidir ve edinen bilgileri bilgisayarın kullana bileceği elektronik biçime dönüştürmelidir.
Bilgi edinme (devamı) Bilginin önemli özellikleri: deneysellik;-tecrübe ile kazanılır tanımsallık; - kesin tanımlana,belirlene bilmelidir niteliksellik; - niteliği ve değeri ile farklıdır Belgelendirilmelidir- diğerleri tarafından da kabul edilebilirliği için Bazı alanlar için bu özelliklerin hepsi,bazıları için ise bir kaçı geçerlidir Bilgi edinme çok emek ve zaman gerektiren süreçtir Bilgi tabanlı sistemler için bilgiler elle oluşturulur ki, bu da sistemlerin hızla geliştirilmesini sınırlandırıyor Bilgi mühendisi bu bilgileri etkili ve yararlı biçimde çıkarmak ve belgelemek için özel yöntemler buluyor.
Uzman sistemlerini geliştirme grubu Alan uzmanı Bilgi mühendisi Programcı Proje Yöneticisi Son kullanıcı Uzman sisteminin başarısı büyük ölçüde bu gruptaki üyelerin birlikte nasıl çalışacağına bağlıdır
Uzman Sistemleri Geliştirme Grubu (devamı)
Alan Uzmanı Alan uzmanı özgül alanda sorunları çözme yeteneği bulunan bilgili ve başarılı insandır. 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
Bilgi Mühendisi Bilgi Mühendisi uzman sistemini tasarlayan, geliştiren ve deneyen kişidir 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 uzman sisteminin denenmesi, gözden geçirilmesi ve iş ortamına bütünleşmesinde sorumluluk taşımak
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
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
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.
Uzman sistemi kabuğu Uzman sistemlerinin başlıca özelliklerinden birisi, dar alan bilgilerinin, genel çıkarım mekanizmalarından ve bilgileri ifade yöntemlerinden ayrı tutulmasıdır. Genel yapısı olan ve alan bilgileri bulunmayan sisteme uzman sistemi kabuğu (shell) denir. Kabukların kullanılması US geliştirilmesi sürecini kolaylaştırır.
Kural Tabanlı Uzman Sistemleri 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 zaman biçiminde ifade etmesi düşüncesine dayanıyor Üretim kuralları uzun süreli bellekte tutuluyor ve soruna özgü bilgiler veya olgular kısa bellekte yer alıyor
Bilgi ve Kurallar İnsanın düşünme süreci çok karmaşıktır ve onu algoritmalarla ifade etmek zordur. Ama pek çok sorunun çözümü için bilgileri kurallarla ifade etmek mümkündür: IF “trafik ışığı” yeşil THEN harekete devam et IF “trafik ışığı” kırmızı THEN hareketi durdur
Kurallarla bilginin 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) gösteriliyor Kural sorunun nasıl çözüleceğini gösteriyor. Kuralların anlaşılması ve oluşturulması kolaydır. Her bir kural 2 kısımdan oluşuyor: IF kısmı (ön,sebep,koşul- (antecedent- (premise , condition) THEN kısmı (sonuç,hareket- consequent (conclusion , action).
Kurallarla bilginin tasviri (devamı) Bir kuralın IF kısmında mantık işlemleri ile birleştirilmiş birkaç koşul ola biliyor. IF <koşul 1> IF <koşul1> AND <koşul 2> OR <koşul2> . . AND <koşul n> OR <koşul n> THEN <sonuçt> THEN <sonuç>
Kurallarla bilginin tasviri (devamı) 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.işlemler dilsel ve matematiksel ifadeler ola bilir. NESNE İŞLEM DEĞER IF ‘müşterinin yaşı’ < 18 AND ‘çekilen para’ > 1000 THEN ‘ebeveynin imzası’ gerekiyor
Kurallarla Bilginin tasviri( devamı) Kurallar ilişkileri, tavsiyeleri, yönergeleri,stratejileri ve sezgiselliyi … ifade etmek içindir: ilişki IF “yakıt deposu” boştur THEN motor çalışmaz Tavsiye IF güz mevsimidir AND hava bulutludur AND yağmur bekleniyor THEN ‘şemsiye almak’ tavsiye olunur Yönerge IF motor çalışmıyor AND ‘yakıt deposu’ boştur THEN yakıt deposunu doldurmalı Strateji THEN ‘yakıt deposunu’ kontrol etmeli; adım1 tamamlandı IF adım 1 bitmiştir AND ‘yakıt deposu’ doludur THEN ‘akü’yü kontrol etmeli; adım2 tamamlandı
Kural Tabanlı Uzman Sistemi
Kural Tabanlı Uzman Sistemlerinin yapısı Bilgi tabanı (knowledge base) sorunların çözümü için yararlı olacak bilgileri içeriyor. Kural tabanlı uzman sistemlerinde bilgiler, kurallar kümesi ile ifade ediliyor. Kuralın koşul kısmı sağlanırsa, kural tetiklenecek ve kuralın hareket kısmı yürütülecek. Veri Tabanı (database) bilgi tabanındaki kuralların koşul kısmında kullanılan veri kümelerini içeriyor.
Kural Tabanlı Uzman Sistemlerinin yapısı (devamı) Çıkarım birimi (inference engine) çözüm almayı gerçekleştiriyor, ki bunun sayesinde de uzman sistemi karara ulaşıyor. Çıkarım birimi bilgi tabanındaki kurallarla veri tabanındaki verileri ilişkilendiriyor. Açıklama birimi (The explanation facilitie) kullanıcının, her hangi sorunun çözümüne nasıl ulaştığı, bu veya diğer olguları,kuralları neden kullandığı hakkında uzman sisteminden bilgi almasını sağlar. Uzman sistemi karara nasıl vardığını açıklaya bilmeli, tavsiyelerini, çözümleme ve sonuçları savuna bilmelidir. Kullanıcı arayüzü (user interface) soruna çözüm arayan kullanıcı ve uzman sistemi arasında iletişim aracıdır..
Kural Tabanlı Uzman sistemi (genel yapı)
Uzman sistemlerinin özellikleri Uzman sistemleri, dar, ihtisaslaşmış bir alanda insan-uzmanın davranışlarını, mantığını çalıştırmak içindir.Bu bakımdan uzman sistemlerinin en önemli özelliği yüksek nitelikli başarımıdır. Sistemin soruyu her ne kadar hızlı çözmüş olsa da, sonuçlar yanlış olduğu zaman kullanıcıyı tatmin etmez. Öte yandan, çözüme ulaşma hızı da önemlidir. En kesin çözüm veya tanı da ,uygulamaya geç koyulduğunda hiçbir anlam taşımaz.
Uzman Sistemlerinin özellikleri (devamı) Uzman sistemleri sonuca ulaşmak için sezgisellik kullanıyor ve bununla da çözüm alanını küçültmüş oluyorlar. Uzman sistemlerinin eşsiz özelliği açıklama yeteneğinin bulunmasıdır. Bu yetenek, uzman sistemine sonuca ulaşma yolunu özetlemek ve çözüm kararını açıklamak imkanı veriyor.
Uzman Sistemlerinin özellikleri (devamı) Uzmanlar da her bir insan gibi hata yapa bilir ve bu sebepten, uzman sistemlerinin hata yapmalarına “müsaide” edile bilir. Uzman sistemlerinde bilgilerin tanımlanması ve işlenmesi ayrı yapılmaktadır (bilgi tabanı ve çıkarım birimi). Geleneksel programlar ise bilgi ve bu bilgiyi işlemek için gereken kontrol bir yerdedir. Uzman sistemi kabuğu (shell) kullanılıyorsa, uzman veya bilgi mühendisi sadece kuralları bilgi tabanına dahil ediyor. Her bir kural yeni bilgilerle uzman sistemini zenginleştirerek daha akıllı yapar.
Uzmanlar, Uzman sistemleri ve Programlar
Uzmanlar, Uzman sistemleri ve Programlar olmadığı
http://www.lpa.co.uk/wfs_dem.htm Kaynağından basit uzman sistemlerini çalıştıra ve kaynak kodlarına erişe bilersiniz