Teknobot AI Çıkarım Motoru (Inference Engine)

Çıkarım Motoru (Inference Engine)

Yapay zeka alanında, bir çıkarım motoru, yeni bilgiler çıkarmak için bilgi tabanına mantıksal kurallar uygulayan sistemin bir bileşenidir. İlk çıkarım motorları, uzman sistemlerin bileşenleriydi. Tipik uzman sistem, bir bilgi tabanı ve bir çıkarım motorundan oluşuyordu. Bilgi tabanı, dünya hakkında gerçekleri sakladı. Çıkarım motoru, mantıksal kuralları bilgi tabanına uygular ve yeni bilgiler çıkarır. Bilgi tabanındaki her yeni gerçek, çıkarım motorunda ek kuralları tetikleyebileceğinden, bu süreç yinelenecektir. Çıkarım motorları öncelikle iki moddan birinde çalışır: özel kural veya gerçekler: ileri zincirleme ve geriye doğru zincirleme. İleri zincirleme, bilinen gerçeklerle başlar ve yeni gerçekleri öne sürer. Geriye doğru zincirleme hedeflerle başlar ve hedeflere ulaşılabilmesi için hangi gerçeklerin ileri sürülmesi gerektiğini belirlemek için geriye doğru çalışır.[1]

Mimari

Bir çıkarım motorunun kullandığı mantık tipik olarak EĞER-O ZAMAN kuralları olarak temsil edilir. Bu tür kuralların genel formatı IF THEN şeklindedir. Uzman sistemlerin ve çıkarım motorlarının geliştirilmesinden önce yapay zeka araştırmacıları, birinci dereceden mantığın çok daha eksiksiz uygulamalarını sunan daha güçlü teorem kanıtlayıcı ortamlara odaklandılar. Örneğin, evrensel nicelemeyi (tüm X için bazı ifadeler doğrudur) ve varoluşsal nicelemeyi (bazı ifadelerin doğru olduğu bazı X vardır) içeren genel ifadeler. Araştırmacıların keşfettiği şey, bu teorem kanıtlayan ortamların gücünün aynı zamanda dezavantajları olduğuydu. 1965’te, sona ermesi belirsiz hatta sonsuz zaman alabilen mantıksal ifadeler yaratmak çok kolaydı. Örneğin, tüm doğal sayıların kümesi gibi sonsuz bir küme üzerinden önermeler yapmak evrensel nicelemede yaygındır. Bu tür ifadeler tamamen mantıklıdır ve hatta matematiksel ispatlarda gereklidir, ancak bilgisayarda yürütülen otomatik bir teorem ispatına dahil edildiğinde, bilgisayarın sonsuz bir döngüye düşmesine neden olabilir. IF-THEN ifadelerine odaklanmak (mantıkçıların modus ponens dediği şey), geliştiricilere mantığı temsil etmek için hala çok güçlü bir genel mekanizma sağladı, ancak hesaplama kaynaklarıyla verimli bir şekilde kullanılabilecek bir mekanizma. Dahası, insanların karmaşık bilgileri depolarken EĞER-O ZAMAN temsillerini tercih etme eğiliminde olduklarını gösteren bazı psikolojik araştırmalar da vardır.[2]

Giriş mantığı kitaplarında sıklıkla kullanılan basit bir modus ponens örneği, “Eğer insansan, o zaman ölümlüsün” şeklindedir. Bu, sözde kodda şu şekilde temsil edilebilir:

Kural1: İnsan(x) => Ölümlü(x)

Bu kuralın bir çıkarım motorunda nasıl kullanılacağına dair önemsiz bir örnek aşağıdaki gibidir. İleri zincirlemede, çıkarım motoru, bilgi tabanında Human(x) ile eşleşen herhangi bir olguyu bulur ve bulduğu her olgu için yeni bilgi Mortal(x)’i bilgi tabanına ekler. Dolayısıyla, Sokrates adında insan olan bir nesne bulursa, Sokrates’in ölümlü olduğu sonucunu çıkarırdı. Geriye doğru zincirlemede, sisteme bir hedef verilir, örn. soruyu cevapla Sokrates ölümlü mü? Bilgi tabanını araştıracak ve Sokrates’in insan olup olmadığını belirleyecek ve eğer öyleyse onun da ölümlü olduğunu iddia edecektir. Bununla birlikte, geriye doğru zincirlemede ortak bir teknik, çıkarım motorunu bir kullanıcı arayüzü ile entegre etmekti. Bu şekilde, sistem artık basit bir şekilde otomatikleşmek yerine etkileşimli olabilir. Bu önemsiz örnekte, sisteme Sokrates’in ölümlü olup olmadığı sorusuna cevap verme hedefi verilmişse ve sistem henüz onun insan olup olmadığını bilmiyorsa, kullanıcıya “Sokrates insan mı?” ve daha sonra bu bilgiyi buna göre kullanırdı.

Çıkarım motorunu bir kullanıcı arabirimiyle entegre etme konusundaki bu yenilik, uzman sistemlerin ikinci erken gelişimine yol açtı: açıklama yetenekleri. Bilginin kod yerine kurallar olarak açık bir şekilde temsil edilmesi, kullanıcılara açıklamalar üretmeyi mümkün kıldı: hem gerçek zamanlı hem de olaydan sonra açıklamalar. Dolayısıyla, sistem kullanıcıya “Sokrates insan mı?” , Sokrates’in ölümlü olup olmadığını belirlemesi ve bunu yapmak için de insan olup olmadığını belirlemesi gerekir. İlk başta bu açıklamalar, geliştiricilerin herhangi bir sistemde hata ayıklarken uğraştığı standart hata ayıklama bilgilerinden pek farklı değildi. Bununla birlikte, aktif bir araştırma alanı, bilgisayar formalizmleri yerine doğal dilleri kullanarak sorular ve açıklamalar sormak, anlamak ve oluşturmak için doğal dil teknolojisini kullanmaktı.[3]

Bir çıkarım motoru birbirini takip eden üç adımdan geçer: kuralları eşleştirme, kuralları seçme ve kuralları yürütme. Kuralların uygulanması, genellikle bilgi tabanına eklenen yeni gerçekler veya hedefler ile sonuçlanacak ve bu da döngünün tekrarlanmasını tetikleyecektir. Bu döngü, hiçbir yeni kural eşleştirilemeyene kadar devam eder.

İlk adım olan eşleştirme kurallarında, çıkarım motoru, bilgi tabanının mevcut içeriği tarafından tetiklenen tüm kuralları bulur. İleri zincirlemede motor, öncülün (sol taraf) bilgi tabanındaki bazı gerçeklerle eşleştiği kuralları arar. Geriye doğru zincirlemede motor, mevcut hedeflerden birini tatmin edebilecek öncülleri arar.

İkinci adımda kuralların seçilmesinde, çıkarım motoru, bunların yürütülme sırasını belirlemek için eşleşen çeşitli kurallara öncelik verir. Son adımda, kuralları yürütün, motor eşleşen her kuralı ikinci adımda belirlenen sırayla yürütür ve ardından tekrar birinci adıma döner. Döngü, hiçbir yeni kural eşleşmeyene kadar devam eder.[4]

Uygulamalar

Erken çıkarım motorları, öncelikle ileri zincirlemeye odaklandı. Bu sistemler genellikle Lisp programlama dilinde uygulandı. Lisp, sembolik manipülasyon yapma konusundaki güçlü yeteneği nedeniyle erken AI araştırmaları için sık kullanılan bir platformdu. Ayrıca, yorumlanmış bir dil olarak, karmaşık programlarda hata ayıklamaya uygun verimli geliştirme ortamları sunuyordu. Bu faydaların gerekli bir sonucu, Lisp programlarının C gibi zamanın derlenmiş dillerinden daha yavaş ve daha az sağlam olma eğiliminde olmasıydı. Bu ilk günlerde yaygın bir yaklaşım, bir uzman sistem uygulamasını alıp o sistem için kullanılan çıkarım motorunu yeniden paketlemekti. diğer araştırmacıların diğer uzman sistemlerin geliştirilmesi için kullanabileceği yeniden kullanılabilir bir araç olarak. Örneğin, MYCIN, tıbbi teşhis için erken bir uzman sistemdi ve EMYCIN, MYCIN’den tahmin edilen ve diğer araştırmacıların kullanımına sunulan bir çıkarım motoruydu.[1]

Uzman sistemler, araştırma prototiplerinden dağıtılan sistemlere geçtikçe, hız ve sağlamlık gibi konulara daha fazla odaklanıldı. İlk ve en popüler ileri zincirleme motorlarından biri, kural ateşlemenin verimliliğini optimize etmek için Rete algoritmasını kullanan OPS5 idi. Geliştirilen bir diğer çok popüler teknoloji Prolog mantık programlama diliydi. Prolog, öncelikle geriye dönük zincirlemeye odaklandı ve ayrıca verimlilik ve sağlamlık için çeşitli ticari sürümler ve optimizasyonlar içeriyordu.[5]

Uzman Sistemler, iş dünyasından büyük ilgi gördüğünden, birçoğu önde gelen yapay zeka araştırmacıları tarafından başlatılan veya yönlendirilen çeşitli şirketler, çıkarım motorlarının ürünleştirilmiş sürümlerini oluşturdu. Örneğin, Intellicorp başlangıçta Edward Feigenbaum tarafından yönlendirildi. Bu çıkarım motoru ürünleri de ilk başta genellikle Lisp’te geliştirildi. Bununla birlikte, daha uygun fiyatlı ve ticari olarak uygun platformlara yönelik talepler, sonunda Kişisel Bilgisayar platformlarını çok popüler hale getirdi.

Açık kaynak uygulamaları

ClipsRules ve RefPerSys (CAIA [6] ve Jacques Pitrat’ın çalışmasından esinlenilmiştir). Frama-C statik kaynak kodu analizcisi ayrıca bazı çıkarım motoru tekniklerini kullanır.

Kaynak: https://en.wikipedia.org/wiki/Inference_engine

Wikipedia Kaynaklar:
1)Hayes-Roth, Frederick; Donald Waterman; Douglas Lenat (1983). Building Expert Systems. Addison-Wesley. ISBN 0-201-10686-8.
2)Feigenbaum, Edward; Avron Barr (September 1, 1986). The Handbook of Artificial Intelligence, Volume I. Addison-Wesley. p. 195. ISBN 0201118114.
3)Barzilayt, Regina; Daryl McCullough; Owen Rambow; Jonathan DeCristofaro; Tanya Korelsky; Benoit Lavoie. “A New Approach to Expert System Explanations” (PDF). USAF Rome Laboratory Report. Archived from the original on July 5, 2016.
4)Griffin, N.L., A Rule-Based Inference Engine which is Optimal and VLSI Implementable, University of Kentucky.
5)Sterling, Leon; Ehud Shapiro (1986). The Art of Prolog. Cambridge, MA: MIT. ISBN 0-262-19250-0.
6)Pitrat, Jacques (2009). Artificial Beings, the conscience of a conscious machine. Wiley. ISBN 978-1848211018.

İlgili Yazılar

DALL-E 2DALL-E 2

DALL·E 2, doğal dildeki bir tanımdan gerçekçi görüntüler ve sanat eserleri meydana getirebilen yeni bir AI sistemidir. Siz tanımınızı yapın ve DALL·E 2 sizin için resmi oluştursun. Bizim denemelerimizden bazı