Uzman Sistemler
Giriş Bu sunumda bilgisayar bilimlerinde otomatik olarak belli çıkarımların yapıldığı sistemlere neden ihtiyaç duyulduğu, bu sistemlerin bu ihtiyaçlara nasıl karşılık verebildiği, altında yatan şeylerin ve bunların işleyişinin nasıl olduğu konularına değinilmiştir. Kerem ATAŞEN
Giriş Günümüzde çoğu kurum, kuruluş ya da işletmeler yüksek doğrulukta ve düşük maliyetli işler yapabilmek için yaptıkları işlemleri otomatikleştirme yoluna girmişlerdir. Otomatik olarak belli çıkarımların yapılması gerekli şartlar ya da kurallar oluşunca gerçekleşmesi gereken olayların insan müdahalesi olmadan yüksek hızda, objektif, kişiden kişiye değişmeyen kararlar doğrultusunda gerçekleşmesi olarak ifade edilebilir. Otomatik karar verme sistemlerinin tekrarlanabilir, iyi anlaşılabilir, kurallarının açık ve karar vermede temel aldığı verilerin güvenilir olması insana olan ihtiyacın kalkabileceği, isteklere verilecek cevap hızlarının iyileşebileceği ve öznel veya kusurlu karar vermenin önüne geçilebileceği anlamına gelmektedir.
Bilgi Tabanlı Sistemler – Uzman Sistemler Uzman sistemler, belirli alanlarda insan uzmanlığı gerektiren sorunlara çözüm üretebilmek için gerçek kişilerden derlenen bilgileri temel alarak çok sayıdaki «eğer … ise … dir» şeklinde kurallardan oluşan, zamanla kendini de geliştirebilen yazılımlardır. Uzman sistemlerin kullandığı bilgiler ya kurallardan ya da belli bir ana konu ile ilgili bileşenlerin davranışları hakkındaki deneyim bilgisi ile oluşturulur. Örneğin «Eğer bir voleybol takımı teknik ve fiziki açıdan iyiyse, kaliteli bir koça sahipse ve eğer dengeli bir yönetici kadrosu mevcutsa o voleybol takımının maçlarını kazanması ve ligde şampiyon olması çok yüksek ihtimaldir.» deneyim bilgisi belli bir konu üzerindeki deneyimlerin birikimidir denebilir. Şimdi bazı uzman sistem türlerine göz atalım.
Bulanık Uzman Sistemler Veriler üzerinde akıl yürütme yapan ve kesin bir sonuca varmayan bilgisayar programlarıdır. Klasik sistemlerde bir olayın bir kümeye üyeliği 0 veya 1 değeri ile gösterilirken bulanık kümelerde bir değişkenin bir kümeye üyeliği 0 ve 1 arasında sonsuz değer alabilir. Bulanık mantıkta 1 değeri değişkenin o kümeye tam üye olduğunu, 0 değeri değişkenin kümeye üye olmadığını gösterirken 0 ve 1 arasındaki değerler değişkenin kümeye kısmi üyeliğini gösterir. Belirsizlikler içeren, doğrusal olmayan ve eksik verilerin bulunduğu problemlerin kolayca modellenebildiği bulanık mantık kontrol, karar verme ve tahmin sorunlarının çözümünde yaygın bir şekilde kullanılmaktadır.
Bulanık Uzman Sistemler Bir bulanık uzman sistemin yapısı aşağıda bulunan şekildeki gibidir. Bulanıklaştırma alt sistemi giriş bilgilerini dilsel niteleyiciler olan sembolik değerlere dönüştürmektedir. Üyelik fonksiyonlarından yararlanılarak giriş bilgilerinin ait olduğu bulanık küme(y/ler)i ve üyelik derecelerini tespit edip, girilen sayısal değere dilsel değişken atarlar. Sistemin verimli çalışmasını sağlamak için üçgen, yamuk, çan eğrisi vb. şekillerde bulanık kümeler seçilir.
Bulanık Uzman Sistemler Çıkarsama mekanizması, bilgi tabanını ve üyelik fonksiyonlarını kullanarak bulanık sonuçlar elde eder. Bilgi tabanı, çıkarsama biriminin kural tabanının kullandığı bilgileri aldığı veri tabanı ve uzmanlar tarafından hazırlanmış kural tabanı olmak üzere iki kısma ayrılır. Bulanıklaştırma, çıkarsama ve durulama işlemleri sırasında gerek duyulan üyelik fonksiyonları ve kural tablosu bilgileri bilgi tabanı ve kural tabanından elde edilir. Girişler ve çıkışlar arasındaki bağlantılar kural tabanındaki kurallar kullanılarak sağlanır.
Yapay Sinir Ağları Yapay sinir ağları; insan beyninden esinlenerek geliştirilmiş, ağırlıklı bağlantılar aracılığıyla birbirine bağlanan ve her biri kendi belleğine sahip işlem elemanlarından oluşan paralel ve dağıtılmış bilgi işleme yapılarıdır. Bir başka deyişle, biyolojik sinir ağlarının taklit edilerek yazılımsal ve donanımsal olarak gerçeklenmeye çalışılmasıdır.
Genetik Algoritmalar Genetik Algoritma, evrimsel hesaplama yöntemi kullanan yapay zeka uygulamalarından biridir. Darwin’in evrim teorisinden ilham alınarak modellenmiş olup, doğal seleksiyon ve doğal genetik mekanizmaya dayanan araştırma metodu kullanır. En iyi çözümü elde edebilmek için, zayıf çözümleri evrimsel bir işleyişe göre eleme yoluna gider. En iyi çözüm, yapılan iterasyonlar sonucunda hala hayatta kalabilmeyi başaran çözümdür. Her problem için en optimum sonucu bulmayı garanti etmez.
Uzman Sistemlerin En Önemli Özellikleri Problem çözümünde hiyerarşik bir yaklaşım izlemeleri Nümerik veri ve algoritmalardan ziyade gerçek kurallar ve ilişkilerden oluşmaları Problem çözerken ve tanımlarken kullanıcıya danışmaları İstenildiğinde problem çözümü sonuna ulaşmadan ara sonuç verebilmeleri Soruyu niçin sorduklarını ve sonuca nasıl ulaştıklarını açıklayabilmeleri Çözülen problemin sonuçlarını doğal bir dille açıklamaları Çözülen problemin verilerini daha sonraki çözümlerde kullanmak amacıyla kendi bilgilerine ekleyip kendilerini geliştirebilmeleri
Uzman Sistemlerin En Önemli Özellikleri Uzman sistemler zamanla görülür aşamalar kaydetse de başarılarını insan uzmanlar ile karşılaştırılamayacak ölçüde düşüren kısıtlara sahiptirler. Bu kısıtlar; Kullanım alanlarının sınırlı olması Bilgi sunumu yöntemlerinin sınırlı olması Aşırı derecede uzman emeğine muhtaç olması Dış dünya ile bağlantılarının yetersiz olması
İnsan – Uzman Sistem Kıyası Değişkenlik Sabitlik Bilgilerin aktarılma zorluğu Basit bilgi aktarımı Bilgilerin sistemleştirilmesinin zorluğu Basit belgeleme işlemi Tahmin edilmesi zor Dayanıklı Pahalı Ucuz Aktif yaşam-çalışma süresi az Aktif çalışma süresi çok
Uzman Sistem Bileşenleri Uzman sistemler yaratılma amaçları doğrultusunda birçok farklı yolla yapılandırılabilir ve bu farklı yapı mimarileri değişik bileşenler içerebilir. Ama birçok uzman sistemde ortak özellik olarak göze çarpan bileşenler vardır. Bu durumda birçok uzman sistem yazılımında bulunan temel bileşenler olan bilgi tabanı, kural tabanı, çıkarım motoru ve kullanıcı arayüzü bileşenlerini otomatik karar verebilme sistemlerinin işleyişini kafamıza oturtabilmek için öğrenmemiz gerekmektedir.
Bilgi Tabanı Tıbbi teşhis uzman sistemi veya motor arızası teşhis sistemi gibi özel konular hakkında uzman seviyeli bilgi içerir. Söz konusu bilgi bir veya daha fazla uzmandan elde edilir ve uzman sistem tasarımına özel olan bir bilgi sunum formunda saklanır.
Kural Tabanı Bilgi tabanının tanımlanabilir bir parçasıdır. Girişlere uygulanan kuralları içinde barındırır. Örneğin: EĞER(IF) kişinin burnu akıyorsa VE(AND) kişi sürekli öksürüyorsa O ZAMAN(THEN) bu kişi hastadır
Çıkarım Motoru Bu, yazılımın, kullanıcı arayüzünden bilgi istekleri alan ve bu istekler doğrultusunda kural tabanındaki kuralları uygulayarak bilgi tabanında aramalar yapan bir parçasıdır. Çıkarım motoru bilgi tabanından uygun verileri getirir ve bunları kullanıcı arayüzünde görünmesi için iletir. Aslında yazılımın zeki kısmıyla arayüzünü ayıran kısım olarak da tanımlanabilir.
Kullanıcı Arayüzü Kullanıcıların bilgi almak için isteklerini girdiği yazılımın görünür parçasıdır. Bu arayüz sayesinde sistemin ana uğraş konusuna ilişkin belli bir durum hakkındaki olaylar ve veriler kullanıcı tarafından girilebilir ve kullanıcı uzman sisteme söz konusu alanda sorular yöneltebilir.
Genel Hatlarıyla Uzman Sistem Tasarımı Uzman sistem tasarlanırken seçilen problemin çözümü için bilgi sistemleri teknolojilerinin uygulanabilir olması gerekir. Tasarlanacak olan sistemin getirileri götürülerinden fazla olmalıdır. Bilgiye dayalı sistemlerin tasarımında belirli bir hazırlanış sırasına uyulması problemin çözümünde önemli rol oynamaktadır.
Tasarım Adımları Problemin çözüm amacı belirlenmelidir. Problemin temelindeki sebepler anlaşılmalıdır. Problemi birkaç probleme ayırarak alt amaçlar ortaya çıkarılmalıdır. Disiplin alanının öznitelikleri belirlenmelidir. Seçilen disiplin alanında bir uzman bulunmalı ve bilgiye dayalı sistemin tasarlanmasına yardımcı olmalıdır. Uzmanla birlikte birkaç problem çözümüne katılmalı uzmanın uygulamış olduğu yöntemler daha sonraki adımlara kolaylık sağlaması açısından belirlenmelidir ve detaylı bir şekilde incelenmelidir.
Tasarım Adımları Sistem oluşturulurken gereken program araçları seçilmelidir. Uzman ile birlikte örnek programlara ait bilgi tabanı incelenmeli ve kullanılacak olan bilgi tabanı yapılandırılmalıdır. Bilgi tabanının oluşturulması, nesneler arasındaki ilişkiler ve hiyerarşiler belirlenmeli ve konuları daha ufak parçalara ayırarak çözüme ulaşmak kolaylaştırılmalıdır. Bilgi tabanındaki bilgiler incelenmeli tutarsız bilgiler düzeltilmelidir. Sistem modüler olarak hazırlanmalı ilk baştan itibaren temel seviyede olsa bile çalışabilmelidir.
Kurallara Dayalı Tasarım Bilgi tabanı hazır olduktan sonra buradan bir sonuç çıkarılabilmesi için akıl yürütme yöntemine ihtiyaç olacaktır. Kuralları işlemenin 2 yolu vardır. Bunlar: Geriye Zincirleme ve İleriye Zincirleme
Geriye Zincirleme Önceden bir hipotezin gerçek olduğu varsayılır ve bu hipotezi kanıtlayacak deliller aranır. Hipoteze A ve bunu kanıtlayacak delillere Z1, Z2, Z3 diyecek olursak; Hipotezi kanıtlamak için Z2 ve Z3 delillerini sorgulamak gerekir. Z3 hipotezi doğrulamak tek başına yeterliyken Z2 aynı zamanda Z1 in de sorgulanmasını gerektirir.
İleri Zincirleme Z1 delili kanıtlanırsa Z2 sorgulanır, Z2 kanıtlanırsa Z3 sorgulanır. Z3 de kanıtlanırsa hipotez A doğru demektir. Bir önceki delil kanıtlanmadan bir sonraki delilin kanıtlanmasına geçilmez. Z1 Z2 Z3 A
Kulanım Alanları Kalite Kontrol Tıpta Teşhis Hava Tahmini Otomatik Çeviri Doğal Dilde Cümle Üreticiler(öykü yazma, bilgisayar ortamında müzik yapma vb.) Ürün Maliyet Hesaplama Yatırım Danışmanlığı – Menkul Değerler Alım ve Satım Kararları İşletmelerde Planlama, Programlama ve Zamanlama Yapma …
Uzman Sistemlerde Kullanılan Yapay Zeka Dilleri - PROLOG http://www.swi-prolog.org/Download.html adresinden prolog programlamak için kullanılan SWI-Prolog derleyicisi indirilebilir. Editör http://www.swi-prolog.org/IDE.html adresinden işletim sistemine göre seçim yapılıp indirilebilir. İndirilen swipl-w64-763.exe çalıştırıldığında NSIS hatası alınabilir. Çözümü şu şekildedir: swipl-w64-763.exe nin kısayolu oluşturulur. Kısayola sağ tıklanıp özellikler açılır. Hedef kısmında yazan adresin en sonuna exe’den sonra bir boşluk bırakılıp /NCRC yazılıp öylece kaydedilmelidir. Daha sonra kısayoldan swipl çalıştırılır ve kurulum yapılır. Kurulum tamamlandıktan sonra indirilen editörde prolog yazıp çalıştırmaya başlanılabilir. Şimdi Prolog ile yazılmış aile ağaç yapısını gösteren bir örneği inceleyelim.
Kaynakça http://dergipark.gov.tr/download/article-file/30282 http://theteacher.info/index.php/computing-principles-01/1-5-legal-moral- ethical-and-cultural-issues/1-5-2-ethical-moral-and-cultural-issues/2234- automated-decision-making http://www.bby.hacettepe.edu.tr/yayinlar/dosyalar/1197-2393-1-PB.pdf http://bilgisayarkavramlari.sadievrenseker.com/2009/02/16/genetik- algoritmalar-genetic-algorithms/ https://github.com/Anniepoo/prolog-examples/blob/master/familytree.pl