Bugün öğrendim ki: Uzman sistemlerin, yapay zeka yazılımlarının ilk gerçek anlamda başarılı biçimleri arasında olduğu. 1970'lerde yaratılıp 1980'lerde yaygınlaşarak, başarılı yapay sinir ağlarının ortaya çıkmasından önce, yapay zekanın geleceği olarak kabul edildiler.

İnsan uzmanının karar verme yeteneğini taklit eden bir bilgisayar sistemi.

Yapay zekâda (YZ), uzman sistemi, insan uzmanının karar verme yeteneğini taklit eden bir bilgisayar sistemidir.[1] Uzman sistemler, esas olarak eğer-o zaman kuralları şeklinde temsil edilen bilgi kümeleri aracılığıyla akıl yürütme yaparak karmaşık problemleri çözmek üzere tasarlanmıştır; geleneksel prosedürel programlama kodları aracılığıyla değil.[2] Uzman sistemler, ilk gerçekten başarılı YZ yazılımları arasındaydı.[3] 1970'lerde oluşturulmuş ve 1980'lerde yaygınlaşmışlardır,[8] o zamanlar başarılı yapay sinir ağlarının ortaya çıkmasından önce YZ'nin geleceği olarak kabul edilmişlerdir.[9] Bir uzman sistemi iki alt sisteme ayrılır: 1) gerçekleri ve kuralları temsil eden bir bilgi tabanı; ve 2) bilinen gerçeklere kuralları uygulayarak yeni gerçekler çıkarsayan ve açıklama ve hata ayıklama yetenekleri içerebilen bir çıkarım motoru.

Tarih

[değiştir]

Erken Gelişim

[değiştir]

1940'ların sonları ve 1950'lerin başlarındaki modern bilgisayarların ortaya çıkışından kısa bir süre sonra, araştırmacılar bu makinelerin modern toplum için sahip olduğu muazzam potansiyeli fark etmeye başladılar. İlk zorluklardan biri, bu makineleri insanlar gibi “düşünmeye” – özellikle de bu makinelerin insanların yaptığı gibi önemli kararlar alabilmelerini sağlamaktı. Tıp-sağlık alanı, bu makinelerin tıbbi teşhis kararları alabilmelerini sağlamanın cazip bir zorluğunu sundu.[10]

Böylece, bilgi çağının tam olarak gelmesinden hemen sonra, 1950'lerin sonlarında araştırmacılar, bilgisayar teknolojisini insan karar vermeyi taklit etmek için kullanma olasılığıyla denemeler yapmaya başladılar. Örneğin, biyomedikal araştırmacıları, tıp ve biyolojide tanı uygulamaları için bilgisayar destekli sistemler oluşturmaya başladılar. Bu erken tanı sistemleri, tanı sonucunu oluşturmak için girdi olarak hastaların semptomlarını ve laboratuvar test sonuçlarını kullandı.[11][12] Bu sistemler genellikle uzman sistemlerin erken biçimleri olarak tanımlanmıştır. Bununla birlikte, araştırmacılar akış şemaları[13][14], istatistiksel desen eşleştirme[15] veya olasılık teorisi[16][17] gibi geleneksel yöntemler kullanıldığında önemli sınırlamalar olduğunu fark ettiler.

Resmi Tanıtım ve Daha Sonraki Gelişmeler

[değiştir]

Bu önceki durum, bilgi tabanlı yaklaşımlar kullanan uzman sistemlerin geliştirilmesine kademeli olarak yol açtı. Tıpta bu uzman sistemler MYCIN uzman sistemi[18], Internist-I uzman sistemi[19] ve daha sonra, 1980'lerin ortalarında CADUCEUS'du.[20]

Uzman sistemler, bazen "uzman sistemlerin babası" olarak adlandırılan Edward Feigenbaum liderliğindeki Stanford Heuristik Programlama Projesi tarafından 1965 civarında resmen tanıtıldı;[21] diğer önemli erken katkıda bulunanlar Bruce Buchanan ve Randall Davis'ti. Stanford araştırmacıları, bulaşıcı hastalıkların teşhisi (Mycin) ve bilinmeyen organik moleküllerin tanımlanması (Dendral) gibi uzmanlığın son derece değerli ve karmaşık olduğu alanları belirlemeyi denediler.[22] Feigenbaum'un söylediği gibi, "zeki sistemler gücünü, kullandıkları özel formalizmlerden ve çıkarım şemalarından ziyade sahip oldukları bilgiden alırlar"[23] fikri, o zaman için önemli bir adım olmuştur, çünkü geçmiş araştırmalar çok genel amaçlı problem çözücüler geliştirme girişimlerinde doruk noktasına ulaşan sezgisel hesaplama yöntemlerine odaklanmıştır (çoğunlukla Allen Newell ve Herbert Simon'ın ortak çalışmaları).[24] Uzman sistemler, yapay zekânın (YZ) ilk gerçekten başarılı yazılım biçimlerinden bazıları haline geldi.[3]

Uzman sistemler üzerine araştırmalar Avrupa'da da aktifti. ABD'de, önce Lisp programlama ortamlarının üzerine sert kodlanmış sistemlerde ve daha sonra Intellicorp gibi satıcılar tarafından geliştirilen uzman sistem kabuklarında, üretim kural sistemlerinin kullanımına odaklanma eğilimi vardı. Avrupa'da araştırmalar, Prolog'da geliştirilen sistemlere ve uzman sistem kabuklarına daha fazla odaklanmıştır. Prolog sistemlerinin avantajı, biçimsel mantığa dayalı bir kural tabanlı programlama biçimi kullanmalarıydı.[25][26]

Prolog tabanlı bu erken uzman sistem kabuklarından biri APES'ti.[27] Prolog ve APES'in ilk kullanım örneklerinden biri, hukuk alanında, özellikle İngiliz Vatandaşlık Yasasının büyük bir bölümünün kodlanmasıydı. Lance Elliot şunları yazdı: "İngiliz Vatandaşlık Yasası 1981 yılında kabul edildi ve kısa süre sonra, yapay zekâ (YZ) teknikleri ve teknolojilerinin etkinliğini sergilemek için bir araç olarak kullanıldı; bunu, o zamanki yeni yürürlüğe giren kanunların nasıl bilgisayarlaştırılmış mantık tabanlı bir biçimlendirmeye kodlanabileceğini keşfetmek için yaptı. 'İngiliz Vatandaşlık Yasası bir Mantık Programı Olarak' başlıklı, artık sıkça atıfta bulunulan bir araştırma makalesi 1986 yılında yayınlandı ve daha sonra YZ ve hukukta sonraki çalışmalar için bir mihenk taşı oldu."[28][29]

1980'lerde uzman sistemler yaygınlaştı. Üniversiteler uzman sistem kursları sundu ve Fortune 500 şirketlerinin üçte ikisi teknolojiyi günlük iş faaliyetlerinde kullandı.[8][30] Japonya'daki Beşinci Nesil Bilgisayar Sistemleri projesi ve Avrupa'daki artan araştırma fonlarıyla ilgi uluslararasıydı.

1981 yılında PC DOS işletim sistemiyle ilk IBM PC tanıtıldı.[31] O zamanlar kurumsal BT dünyasına egemen olan ana bilgisayarlardaki çok daha pahalı işlem gücü maliyetiyle karşılaştırıldığında, PC'deki nispeten güçlü çiplerin yüksek uygun fiyatlılığı arasındaki dengesizlik, kurumsal bilgi işlem için istemci-sunucu modeli olarak adlandırılan yeni bir mimari türü yarattı.[32] Hesaplamalar ve akıl yürütme, bir PC kullanarak bir ana bilgisayarın fiyatının çok daha düşük bir bedeliyle gerçekleştirilebilirdi. Bu model ayrıca iş birimlerinin kurumsal BT departmanlarını atlamasını ve kendi uygulamalarını doğrudan oluşturmasını sağladı. Sonuç olarak, istemci-sunucu, uzman sistemler pazarında muazzam bir etkiye sahipti. Uzman sistemler, birçok BT departmanının sahip olmadığı ve geliştirmeye istekli olmadığı yeni beceriler gerektiren, iş dünyasının çoğunda zaten aykırıydı. Uygulama geliştirmeyi son kullanıcılara ve uzmanların ellerine geçirmeyi vaat eden yeni PC tabanlı kabuklar için doğal bir uyum sağlıyorlardı. O zamana kadar, uzman sistemler için ana geliştirme ortamı, Xerox, Symbolics ve Texas Instruments'tan üst düzey Lisp makineleri olmuştur. PC'nin ve istemci-sunucu bilişiminin yükselişiyle birlikte, Intellicorp ve Inference Corporation gibi satıcılar önceliklerini PC tabanlı araçlar geliştirmeye kaydırdılar. Ayrıca, genellikle girişim sermayesi tarafından finanse edilen (Aion Corporation, Neuron Data, Exsys, VP-Expert ve diğerleri gibi[33][34]) yeni satıcılar düzenli olarak ortaya çıkmaya başladı.

Büyük ölçekli bir ürün için tasarım kapasitesinde kullanılacak ilk uzman sistem, 1982 yılında geliştirilen Sentez Entegre Tasarım (SID) yazılım programıdır. Lisp ile yazılan SID, VAX 9000 CPU mantık geçitlerinin %93'ünü üretti.[35] Yazılım için girdi, birkaç uzman mantık tasarımcısı tarafından oluşturulan bir dizi kuraldı. SID kuralları genişletti ve kendi kurallarının birçok katı büyüklüğünde yazılım mantık sentezi rutinleri oluşturdu. Şaşırtıcı bir şekilde, bu kuralların birleşimi, genel olarak uzmanların yeteneklerini aşan ve birçok durumda insan meslektaşlarını geride bırakan bir tasarıma yol açtı. Bazı kurallar diğerleriyle çelişse de, hız ve alan için üst düzey kontrol parametreleri çözümleyici görevi gördü. Program oldukça tartışmalıydı, ancak proje bütçe kısıtlamaları nedeniyle kullanıldı. VAX 9000 projesinin tamamlanmasından sonra mantık tasarımcıları tarafından sonlandırıldı.

1970'lerin ortalarından önceki yıllarda, uzman sistemlerin birçok alanda başarabilecekleri konusunda beklentiler son derece iyimser olma eğilimindeydi. Bu erken çalışmaların başlangıcında, araştırmacılar tamamen otomatik (yani tamamen bilgisayarlaştırılmış) uzman sistemler geliştirmeyi umuyorlardı. İnsanların bilgisayarların yapabilecekleri konusunda beklentileri sık sık çok idealistti. Richard M. Karp, 1970'lerin başlarında çığır açan makalesini yayınladıktan sonra bu durum kökten değişti: “Kombinatoryal Problemler Arasındaki İndirgenebilirlik”.[36] Karp'ın çalışması sayesinde, Hubert L. Dreyfus[37] gibi diğer bilim insanlarıyla birlikte, bilgisayar algoritmaları tasarlarken belirli sınırlamaların ve olasılıkların olduğu açık hale geldi. Bulguları, bilgisayarların ne yapabileceğini ve ne yapamayacağını açıklamaktadır. Bu tür uzman sistemlerle ilgili birçok hesaplama probleminin belirli pratik sınırlamaları vardır. Bu bulgular, alandaki sonraki gelişmelere yol açan zemin hazırladı.[10]

1990'larda ve sonrasında, uzman sistemi terimi ve bağımsız bir YZ sistemi fikri çoğunlukla BT sözlüğünden düştü. Bunun iki yorumu vardır. Birincisi, "uzman sistemler başarısız oldu": BT dünyası ilerledi çünkü uzman sistemler abartılmış vaatlerini yerine getirmedi.[38][39] Diğeri ise tam tersidir, uzman sistemler başarısızlıklarının kurbanı olmuşlardır: BT uzmanları kural motorları gibi kavramları kavradıkça, bu tür araçlar özel amaçlı uzman sistemler geliştirmek için bağımsız araç olmaktan, birçok standart araçtan biri haline geldi.[40] Diğer araştırmacılar, BT organizasyonu yazılım değişikliklerinde kullanıcılar veya Bilgi Mühendisleri üzerindeki münhasır haklarını kaybettiğinde Uzman Sistemlerin şirketler arası güç mücadelelerine neden olduğunu öne sürüyorlar.[41]

2000'li yılların ilk on yılında, kural tabanlı sistemler terimi kullanılarak, önemli başarı öyküleri ve benimsemeyle birlikte teknoloji için bir "diriliş" yaşandı.[42] Önde gelen büyük iş uygulama paketi satıcılarının çoğu (SAP, Siebel ve Oracle gibi), iş mantığını belirtmenin bir yolu olarak uzman sistem yeteneklerini ürün paketlerine entegre etti. Kural motorları artık yalnızca bir uzman tarafından kullanılacak kuralları tanımlamak için değil, aynı zamanda karmaşık, değişken ve kritik iş mantığının her türü içindir; genellikle iş süreci otomasyonu ve entegrasyon ortamlarıyla el ele giderler.[43][44][45]

Uzman Sistemlere Modern Yaklaşımlar

[değiştir]

Önceki tip uzman sistemlerin sınırlamaları, araştırmacıları yeni yaklaşım türleri geliştirmeye sevk etti. İnsan karar verme sürecini simüle etmek için daha verimli, esnek ve güçlü yöntemler geliştirdiler. Araştırmacıların geliştirdiği yaklaşımlardan bazıları, yapay zekânın (YZ) yeni yöntemlerine ve özellikle bir geri bildirim mekanizmasıyla makine öğrenimi ve veri madenciliği yaklaşımlarına dayanmaktadır.[46][doğrulama başarısız] Yinelenen sinir ağları genellikle bu tür mekanizmalardan yararlanır. İlgili konu dezavantajlar bölümünde ele alınmaktadır.

Modern sistemler yeni bilgileri daha kolay bir şekilde dahil edebilir ve böylece kendilerini kolayca güncelleyebilir. Bu tür sistemler mevcut bilgilerden daha iyi genelleme yapabilir ve çok miktarda karmaşık veriyle başa çıkabilir. İlgili konu burada büyük veridir. Bazen bu tür uzman sistemlere "zeki sistemler" denir.[10]

Daha yakın zamanlarda, uzman sistemlerin iş kuralları ve iş kuralları yönetim sistemleri alanına taşındığı iddia edilebilir.

Yazılım Mimarisi

[değiştir]

Uzman sistemi, bilgi tabanlı bir sistem örneğidir. Uzman sistemler, bilgi tabanlı bir mimari kullanan ilk ticari sistemlerdi. Genel bakışta, bir uzman sistemi aşağıdaki bileşenleri içerir: bir bilgi tabanı, bir çıkarım motoru, bir açıklama aracı, bir bilgi edinme aracı ve bir kullanıcı arayüzü.[48][49]

Bilgi tabanı, dünya hakkında gerçekleri temsil eder. Mycin ve Dendral gibi erken uzman sistemlerde, bu gerçekler esas olarak değişkenler hakkında düz iddialar olarak temsil edildi. Ticari kabuklarla geliştirilen sonraki uzman sistemlerde, bilgi tabanı daha fazla yapı kazandı ve nesne yönelimli programlamadan kavramlar kullandı. Dünya sınıflar, alt sınıflar ve örnekler olarak temsil edildi ve iddiaların yerine nesne örneklerinin değerleri geçti. Kurallar, nesnelerin değerlerini sorgulama ve iddia etme yoluyla çalıştı.

Çıkarım motoru, bilgi tabanının mevcut durumunu değerlendiren, ilgili kuralları uygulayan ve ardından yeni bilgileri bilgi tabanına ekleyen otomatik bir akıl yürütme sistemidir. Çıkarım motoru, bir sonuca varmak için kullanılan akıl yürütme zincirini, sonuca yol açan kuralların ateşlenmesini geriye doğru izleyerek kullanıcıya açıklayabilmesi için açıklama yetenekleri de içerebilir.[50]

Bir çıkarım motoru için esas olarak iki mod vardır: ileri zincirleme ve geriye zincirleme. Farklı yaklaşımlar, çıkarım motorunun kuralın öncülü (sol taraf) veya sonucu (sağ taraf) tarafından yönlendirilmesine bağlı olarak belirlenir. İleri zincirlemede bir öncül ateşlenir ve sonucu iddia eder. Örneğin, aşağıdaki kuralı ele alalım:

R 1 : M a n ( x ) ⟹ M o r t a l ( x ) {\displaystyle R1:{\mathit {Man}}(x)\implies {\mathit {Mortal}}(x)}

İleri zincirlemenin basit bir örneği, sisteme Man(Sokrates) eklemek ve ardından çıkarım motorunu tetiklemek olacaktır. R1 ile eşleşir ve Mortal(Sokrates)'i bilgi tabanına ekler.

Geriye zincirleme biraz daha karmaşıktır. Geriye zincirlemede sistem olası sonuçlara bakar ve doğru olup olmadıklarını görmek için geriye doğru çalışır. Bu nedenle, sistem Mortal(Sokrates)'in doğru olup olmadığını belirlemeye çalışıyorsa, R1'i bulur ve Man(Sokrates)'in doğru olup olmadığını görmek için bilgi tabanını sorgular. Uzman sistem kabuklarının erken yeniliklerinden biri, çıkarım motorlarını bir kullanıcı arayüzüyle entegre etmekti. Bu, geriye zincirleme ile özellikle güçlü olabilir. Sistem belirli bir gerçeği bilmesi gerekiyorsa ancak bilmiyorsa, basitçe bir girdi ekranı oluşturabilir ve kullanıcıdan bilginin bilinip bilinmediğini sorabilir. Bu örnekte, kullanıcıdan Sokrates'in bir Adam olup olmadığını sormak ve ardından bu yeni bilgiyi buna göre kullanmak için R1'i kullanabilir.

Bilgiyi açıkça temsil etmek için kuralların kullanımı, açıklama yeteneklerini de mümkün kıldı. Yukarıdaki basit örnekte, sistem Sokrates'in Ölümcül olduğunu iddia etmek için R1'i kullandıysa ve bir kullanıcı Sokrates'in neden ölümcül olduğunu anlamak istiyorsa, sistemi sorgulayabilir ve sistem, iddiaya neden olan ateşlenen kurallara geri bakıp bu kuralları kullanıcıya bir açıklama olarak sunabilir. İngilizce olarak, kullanıcı "Sokrates neden Ölümcül?" diye sorarsa, sistem "Çünkü tüm insanlar ölümlüdür ve Sokrates bir insandır" diye yanıt verir. Araştırma için önemli bir alan, daha resmi ancak daha az sezgisel kuralları göstermek yerine, bilgi tabanından doğal İngilizce açıklamaların oluşturulmasıydı.[51]

Uzman sistemler geliştiğinde, çeşitli çıkarım motorlarına birçok yeni teknik dahil edildi.[52] Bunların en önemlilerinden bazıları şunlardır:

Gerçek Bakımı. Bu sistemler bir bilgi tabanındaki bağımlılıkları kaydeder, böylece gerçekler değiştirildiğinde, bağımlı bilgiler de buna göre değiştirilebilir. Örneğin, sistem Sokrates'in artık bir insan olarak bilinmediğini öğrenirse, Sokrates'in ölümlü olduğu iddiasını geri alacaktır.

Hipotetik Akıl Yürütme. Bunda, bilgi tabanı birçok olası görünüme, diğer bir deyişle dünyalara ayrılabilir. Bu, çıkarım motorunun birden fazla olasılığı paralel olarak keşfetmesini sağlar. Örneğin, sistem hem Sokrates bir İnsan ise neyin doğru olacağını hem de değilse neyin doğru olacağını iddia etmenin sonuçlarını keşfetmek isteyebilir.

Belirsizlik Sistemleri. Bilgiyi temsil etmek için yalnızca kuralların kullanılmasının ilk uzantılarından biri de her kuralla bir olasılık ilişkilendirmekti. Bu nedenle, Sokrates'in ölümlü olduğunu iddia etmek değil, Sokrates'in belirli bir olasılık değeriyle ölümlü olabileceğini iddia etmek. Basit olasılıklar, bazı sistemlerde bulanık mantık ve olasılıkların birleşimi gibi belirsiz akıl yürütme için karmaşık mekanizmalarla genişletildi.

Ontoloji Sınıflandırması. Bilgi tabanına nesne sınıflarının eklenmesiyle, yeni bir akıl yürütme türü mümkün oldu. Sadece nesne değerleri hakkında akıl yürütmenin yanı sıra, sistem nesne yapıları hakkında da akıl yürütebilir. Bu basit örnekte, İnsan bir nesne sınıfını temsil edebilir ve R1, tüm insanların sınıfını tanımlayan bir kural olarak yeniden tanımlanabilir. Bu tür özel amaçlı çıkarım motorlarına sınıflandırıcı denir. Uzman sistemlerde çok fazla kullanılmamış olsalar da, sınıflandırıcılar yapılandırılmamış değişken alanlar için çok güçlüdür ve İnternet ve ortaya çıkan Semantik Web için önemli bir teknolojidir.[53][54]

Avantajlar

[değiştir]

Bilgi tabanlı sistemlerin amacı, sistemin çalışması için gereken kritik bilgileri örtük olmaktan ziyade açık hale getirmektir.[55] Geleneksel bir bilgisayar programında, mantık tipik olarak yalnızca bir BT uzmanı tarafından gözden geçirilebilen koda gömülüdür. Bir uzman sistemde, amaç kuralların sezgisel ve kolayca anlaşılır, gözden geçirilebilir ve hatta BT uzmanları yerine alan uzmanları tarafından düzenlenebileceği bir biçimde belirlemekti. Bu açık bilgi temsilinin faydaları hızlı geliştirme ve kolay bakım idi.

Kolay bakım en belirgin faydadır. Bu iki şekilde elde edildi. İlk olarak, geleneksel kod yazma ihtiyacını ortadan kaldırarak, bir sisteme yapılan küçük değişikliklerin bile neden olabileceği normal problemlerin çoğu uzman sistemlerle önlenebilir. Esasen, programın mantıksal akışı (en azından en üst düzeyde) sistem için basitçe bir veriydi, sadece çıkarım motorunu çalıştırın. Bu aynı zamanda ikinci fayda için de bir nedendi: hızlı prototipleme. Bir uzman sistem kabuğu ile, birkaç kural girmek ve karmaşık BT projeleriyle tipik olarak ilişkilendirilen aylar veya yıllar yerine günler içinde bir prototip geliştirmek mümkündü.

Uzman sistem kabukları için sık sık yapılan bir iddia, eğitimli programcılara olan ihtiyacı ortadan kaldırdıkları ve uzmanların kendilerinin sistemler geliştirebilecekleriydi. Gerçekte, bu nadiren veya hiç doğru değildi. Bir uzman sistemin kuralları tipik bilgisayar kodundan daha anlaşılır olsa da, yine de yanlış yerleştirilmiş bir virgül veya başka bir karakterin her diğer bilgisayar dili gibi kargaşaya neden olabileceği biçimsel bir sözdizimi vardı. Ayrıca, uzman sistemler laboratuvardaki prototiplerden iş dünyasındaki dağıtıma geçtiğinde, entegrasyon ve bakım sorunları çok daha kritik hale geldi. Kaçınılmaz olarak, büyük eski veritabanlarıyla ve sistemlerle entegrasyon ve bunlardan yararlanma talepleri ortaya çıktı. Bunu başarmak için, entegrasyon, diğer her sistem türüyle aynı becerileri gerektiriyordu.[56]

Uzman sistemlerin kullanımının faydalarını özetlemek gerekirse, aşağıdakiler vurgulanabilir:[48]

Artırılmış kullanılabilirlik ve güvenilirlik: Uzmanlığa herhangi bir bilgisayar donanımından erişilebilir ve sistem her zaman yanıtları zamanında tamamlar.

Çoklu uzmanlık: Bir sorunu çözmek için birkaç uzman sistemi aynı anda çalıştırılabilir ve insan uzmanından daha yüksek düzeyde uzmanlık sağlanabilir.

Açıklama: Uzman sistemleri her zaman sorunun nasıl çözüldüğünü açıklar.

Hızlı yanıt: Uzman sistemleri hızlıdır ve bir sorunu gerçek zamanlı olarak çözebilir.

Maliyet düşürme: Her kullanıcı için uzmanlık maliyeti önemli ölçüde düşürülür.

Dezavantajlar

[değiştir]

Akademik literatürde uzman sistemler için en sık bahsedilen dezavantaj, bilgi edinme problemidir. Herhangi bir yazılım uygulaması için alan uzmanlarının zamanını elde etmek her zaman zordur, ancak uzman sistemler için özellikle zordu, çünkü uzmanlar tanım gereği son derece değerliydi ve kuruluş tarafından sürekli talep görüyordu. Bu problem nedeniyle, uzman sistemlerin sonraki yıllarındaki büyük miktarda araştırma, uzmanlar tarafından tanımlanan kuralların tasarımı, hata ayıklaması ve bakımı sürecini otomatikleştirmeye yardımcı olmak için bilgi edinme araçlarına odaklanmıştır. Bununla birlikte, gerçek kullanımda uzman sistemlerin yaşam döngüsüne bakıldığında, diğer problemler – esasen diğer büyük sistemlerle aynı problemler – bilgi edinme kadar kritik görünmektedir: entegrasyon, büyük veritabanlarına erişim ve performans.[57][58]

Performans, özellikle erken uzman sistemlerin kod ifadelerini derlemeden önce yorumlayan (daha eski Lisp sürümleri gibi) araçlar kullanılarak oluşturulması nedeniyle sorunlu olabilir. Bu, güçlü bir geliştirme ortamı sağladı, ancak en hızlı derlenmiş dillerin (C gibi) verimliliğiyle eşleşmenin neredeyse imkansız olduğu dezavantajı vardı. Sistem ve veritabanı entegrasyonu, erken uzman sistemler için zordu çünkü araçlar çoğunlukla çoğu kurumsal BT ortamında ne tanıdık ne de hoş karşılanan dillerde ve platformlardaydı – Lisp ve Prolog gibi programlama dilleri ve Lisp makineleri ve kişisel bilgisayarlar gibi donanım platformları. Sonuç olarak, uzman sistem aracı geliştirmenin sonraki aşamalarında çok fazla çaba, COBOL ve büyük veritabanı sistemleri gibi eski ortamlarla entegrasyona ve daha standart platformlara taşımaya odaklandı. Bu sorunlar, PC'ler BT ortamında ciddi iş sistemi geliştirme için meşru bir platform olarak kademeli olarak kabul edildikçe ve uygun fiyatlı mini bilgisayar sunucuları YZ uygulamaları için gereken işlem gücünü sağladıkça, istemci-sunucu paradigma kaymasıyla büyük ölçüde çözüldü.[56]

Uzman sistemlerin bir başka büyük zorluğu, bilgi tabanının boyutu arttığında ortaya çıkar. Bu, işlem karmaşıklığının artmasına neden olur. Örneğin, nihai uzman sistem olarak 100 milyon kurala sahip bir uzman sistem öngörüldüğünde, böyle bir sistemin çok karmaşık olacağı ve çok fazla hesaplama problemiyle karşılaşacağı açık hale geldi.[59] Bir çıkarım motorunun, bir karara varmak için çok sayıda kuralı işleyebilmesi gerekecektir.

Karar kurallarının birbirleriyle tutarlı olup olmadığını doğrulamanın nasıl yapılacağı, çok fazla kural olduğunda da bir zorluktur. Genellikle bu tür problemler, bir tatmin edilebilirlik (SAT) formülasyonuna yol açar.[60] Bu, iyi bilinen bir NP-tam problem olan Boole tatmin edilebilirlik problemidir. Sadece ikili değişkenleri varsayarsak, diyelim ki n tanesi ve ardından ilgili arama alanı 2 n {\displaystyle ^{n}} boyutundadır. Bu nedenle, arama alanı üstel olarak büyüyebilir.

Kuralların kullanımının daha verimli çalışması için nasıl önceliklendirileceği veya belirsizliklerin (örneğin, bir kural içinde çok fazla başka-eğer alt yapı varsa) nasıl çözüleceği gibi konular da vardır.[61]

Diğer problemler, bilinen gerçekleri kullanırken ve bilgi tabanında açıkça tanımlanmayan diğer durumlara genellemeye çalışırken aşırı uyum ve aşırı genelleme etkileriyle ilgilidir. Bu tür problemler, makine öğrenimi yaklaşımları kullanan yöntemlerde de vardır.[62][63]

Bilgi tabanıyla ilgili bir başka problem de bilgisinin nasıl hızlı ve etkili bir şekilde güncelleneceğidir.[64][65][66] Ayrıca, yeni bir bilgi parçasının nasıl ekleneceği (yani, birçok kural arasında nereye ekleneceği) de zorlayıcıdır. Makine öğrenimi yöntemlerine dayanan modern yaklaşımlar bu konuda daha kolaydır.[alıntı gerekli]

Yukarıdaki zorluklar nedeniyle, kural tabanlı teknolojiler yerine YZ'ye yeni yaklaşımların gerekli olduğu açık hale geldi. Bu yeni yaklaşımlar, geri bildirim mekanizmalarının kullanımıyla birlikte makine öğrenimi tekniklerinin kullanımına dayanmaktadır.[10]

Tıpta uzman sistemlerin (bilgisayar destekli tanı sistemlerini modern uzman sistemler olarak düşünürsek) ve belki de diğer uygulama alanlarında karşılaştığı önemli zorluklar, büyük veri, mevcut düzenlemeler, sağlık uygulamaları, çeşitli algoritmik sorunlar ve sistem değerlendirmesi gibi yönlerle ilgili sorunları içerir.[67]

Son olarak, uzman sistemlerin kullanımının aşağıdaki dezavantajları özetlenebilir:[48]

Uzman sistemleri yüzeysel bilgiye sahiptir ve basit bir görev potansiyel olarak hesaplama açısından pahalı olabilir.

Uzman sistemleri, verileri girmek için bilgi mühendisleri gerektirir, veri edinimi çok zordur.

Uzman sistemi, belirli bir sorunu çözmek için en uygun olmayan yöntemi seçebilir.

Herhangi bir YZ biçiminin kullanımında etik sorunları şu anda çok alakalıdır.

Belirli bir bilgiye sahip kapalı bir dünyadır; bir uzman sağlayıncaya kadar kavramların ve bunların karşılıklı ilişkilerinin derin bir algısı yoktur.

Uygulamalar

[değiştir]

Hayes-Roth, uzman sistem uygulamalarını aşağıdaki tabloda gösterilen 10 kategoriye ayırır. Örnek uygulamalar orijinal Hayes-Roth tablosunda yoktu ve bazıları daha sonra ortaya çıktı. Dipnotu olmayan herhangi bir uygulama, Hayes-Roth kitabında açıklanmaktadır.[50] Ayrıca, bu kategoriler uzman sistem uygulamaları alanını tanımlamak için sezgisel bir çerçeve sağlarken, bunlar katı kategoriler değildir ve bazı durumlarda bir uygulama birden fazla kategorinin özelliklerini gösterebilir.

Kategori Ele alınan problem Örnekler Yorumlama Sensör verilerinden durum tanımlarını çıkarma Hearsay (konuşma tanıma), PROSPECTOR Tahmin Verilen durumların olası sonuçlarını çıkarma Düşük Doğum Ağırlığı Riski Değerlendirmesi[68] Teşhis Gözlemlerden sistem arızalarını çıkarma CADUCEUS, MYCIN, PUFF, Mistral,[69] Eydenet,[70] Kaleidos,[71] GARVAN-ES1[72][73][74] Tasarım Kısıtlamalar altında nesneleri yapılandırma Dendral, İpoteğe Dayalı Kredi Danışmanı, R1 (DEC VAX Yapılandırması), SID (DEC VAX 9000 CPU) Planlama Eylemleri tasarlamak Otonom Sualtı Aracı İçin Görev Planlaması[75] İzleme Gözlemleri plan güvenlik açıklarıyla karşılaştırma REAKTÖR[76] Hata Ayıklama Karmaşık problemler için artımlı çözümler sağlama SAINT, MATHLAB, MACSYMA Onarım Reçete edilen bir ilacı uygulamak için bir planı yürütme Toksik Sızıntı Krizi Yönetimi Talimat Öğrenci davranışlarını teşhis etme, değerlendirme ve düzeltme SMH.PAL,[77] Akıllı Klinik Eğitim,[78] BUHAR MAKİNESİ[79] Kontrol Sistem davranışlarını yorumlama, tahmin etme, onarma ve izleme Gerçek Zamanlı Süreç Kontrolü,[80] Uzay Mekiği Görev Kontrolü,[81] Kompozitlerin Akıllı Otoclav İyileştirilmesi[82]

Hearsay, uzman sistem yaklaşımıyla konuşma tanımayı çözmek için erken bir girişimdi. Çoğunlukla bu kategorideki uzman sistemler o kadar başarılı değildi. Hearsay ve tüm yorumlama sistemleri esasen desen tanıma sistemleridir – gürültülü verilerde desen ararlar. Hearsay'in durumunda, bir ses akışında fonemleri tanıma. Diğer erken örnekler, Rus denizaltılarını tespit etmek için sonar verilerini analiz etmekti. Bu tür sistemler, kural tabanlı bir yaklaşım yerine bir sinir ağı YZ çözümüne çok daha uygun olduğunu kanıtladı.

CADUCEUS ve MYCIN tıbbi tanı sistemleriydi. Kullanıcı, bir doktora olduğu gibi semptomlarını bilgisayara açıklar ve bilgisayar bir tıbbi tanı verir.

Dendral, organik moleküllerin tanımlanmasında hipotez oluşturmayı incelemek için bir araçtı. Çözdüğü genel problem – bir dizi kısıtlama verildiğinde bir çözüm tasarlamak – dijital ekipman şirketleri (DEC) VAX bilgisayarlarını yapılandıran satış temsilcileri ve ipotekli kredi başvuru geliştirme gibi iş alanlarına uygulanan erken uzman sistemler için en başarılı alanlardan biriydi.

SMH-PAL, çoklu engelli öğrencilerin değerlendirilmesi için bir uzman sistemidir.[77]

GARVAN-ES1, Garvan Tıp Araştırma Enstitüsü'nde geliştirilen ve bir patoloji laboratuvarından endokrin raporları hakkında otomatik klinik tanı yorumları sağlayan bir tıbbi uzman sistemiydi. Uluslararası düzeyde rutin klinik kullanıma giren ilk tıbbi uzman sistemlerden biri[73] ve Avustralya'da günlük tanı için kullanılan ilk uzman sistemdi.[83] Sistem "C" dilinde yazılmıştır ve 64K bellekli bir PDP-11 üzerinde çalıştırılmıştır. Derlenmiş 661 kurala sahipti; yorumlanmadı.

Mistral,[69] 1990'larda Ismes (İtalya) tarafından geliştirilen bir baraj güvenliğini izleme uzman sistemidir. Otomatik izleme sisteminden veri alır ve barajın durumunun teşhisini yapar. 1992 yılında Ridracoli Barajı'nda (İtalya) kurulan ilk kopyası hala 7/24/365 çalışmaktadır. İtalya'da ve yurtdışında (örneğin, Brezilya'daki Itaipu Barajı) birkaç barajda ve Eydenet[70] adı altında heyelan sahalarında ve Kaleidos[71] adı altında anıtlar üzerine kurulmuştur. Mistral, CESI'nin tescilli bir ticari markasıdır.

Ayrıca bakınız

[değiştir]

YZ kışı

CLIPS

Kısıtlama mantık programlama

Kısıtlama tatmini

Bilgi mühendisliği

Öğrenme sınıflandırıcı sistemi

Kural tabanlı makine öğrenimi

Referanslar

[değiştir]

Alıntılanan çalışmalar

[değiştir]