Symbolic AI
GOFAI olarak da bilinen sembolik yapay zekâ, insanlarca okunabilir semboller üzerinde açık kurallar ve mantıkla akıl yürütür. Uzman sistemlerinin nasıl çalıştığını, sınırlarını ve nöro-sembolik yapay zekâyı ele alır.
Sembolik yapay zekâ, bilgiyi bird, penguin veya "Sokrates bir insandır" gibi insanlarca okunabilir sembollerle temsil eden ve bunlar üzerinde açık kurallar, mantık ve aramayla akıl yürüten yapay zekâ (AI) yaklaşımıdır. 1956'daki Dartmouth çalıştayından 1980'lere kadar AI araştırmalarına hâkim oldu; filozof John Haugeland daha sonra 1985'te bu yaklaşıma "Eski Usul İyi Yapay Zekâ" (GOFAI) adını verdi. Sembolik bir sistemin ulaştığı her sonucun izi, bir kişinin yazıp okuyabildiği kurallara kadar sürülebilir; bu da sistemi denetlenebilir kılar. Bilgisinin her parçasının elle yazılması gerektiğinden sistemi ölçeklendirmek zordur.
Sembolik Yapay Zekâ Nasıl Çalışır?#
Sembolik bir sistemin iki parçası vardır. Bilgi tabanı, olguları ("Sokrates bir insandır") ve kuralları ("bütün insanlar ölümlüdür") birinci dereceden mantık, eğer-o hâlde üretim kuralları veya bir bilgi grafiği gibi biçimsel bir dilde saklar. Çıkarım motoru, kimsenin depolamadığı olguları ("Sokrates ölümlüdür") türetmek için kuralları uygular. İleri zincirleme, bilinen olgulardan başlar ve yeni bir şey ortaya çıkmayana kadar koşulları karşılanan her kuralı çalıştırır. Geri zincirleme ise bir hedeften başlar ve onu kanıtlayacak olgulara doğru geriye gider; bu, mantıksal programlama dili Prolog içinde yerleşik stratejidir.
Bu yaklaşımın ardındaki teori, Allen Newell ve Herbert Simon'ın 1976 tarihli fiziksel sembol sistemi hipotezidir. Bu hipoteze göre sembolleri işlemek, genel zekâ için hem gerekli hem de yeterlidir. İleri zincirleme kullanan bir motor, birkaç satır yalın Python koduna sığar:
# Knowledge base: IF every premise is a known fact THEN add the conclusion
rules = [
({"has_feathers", "lays_eggs"}, "bird"),
({"bird", "cannot_fly", "swims"}, "penguin"),
]
facts = {"has_feathers", "lays_eggs", "cannot_fly", "swims"}
# Forward chaining: keep firing rules until no new fact appears
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print(f"{conclusion} <- {sorted(premises)}")Motor önce bird <- ['has_feathers', 'lays_eggs'], ardından penguin <- ['bird', 'cannot_fly', 'swims'] çıktısını verir: ikinci kural yalnızca ilk kural bird öğesini eklediği için çalışır ve yazdırılan her satır, sonucunun neden doğru olduğuna ilişkin eksiksiz bir açıklamadır. Bu, açıklanabilir yapay zekâ (XAI) yöntemlerinin sinir ağları için yeniden oluşturmaya çalıştığı türden bir akıl yürütme izidir.
Uzman Sistemler#
Sembolik yapay zekâ, 1970'lerde ve 1980'lerde uzman sistemler biçiminde endüstriye taşındı. Stanford'un MYCIN sistemi, hekimlerden derlenen yaklaşık 600 kuralı kullanarak ağır enfeksiyonlara yol açan bakterileri saptıyor ve antibiyotik öneriyordu; Digital Equipment Corporation'ın XCON sistemi ise VAX bilgisayarları için müşteri siparişlerini yapılandırıyordu. Uzman sistemler, temel motorun etrafına bir bilgi mühendisi ve bir açıklama özelliği ekler. Bilgi mühendisi alan uzmanlarıyla görüşüp bildiklerini kurallar olarak kodlar; açıklama özelliği ise her yanıtın ardındaki kuralları yeniden yürütür.
Görüşme adımı darboğaz hâline geldi. Uzmanlar sezgilerini kurallar olarak ifade etmekte zorlanır, geniş kural tabanları kimsenin öngörmediği durumlarda bozulur ve sistemler verilerden öğrenemez. Doug Lenat'ın sağduyuyu elle kodlamak amacıyla 1984'te başlattığı Cyc projesi bu sorun üzerinde onlarca yıldır çalışıyor. Uzman sistem bütçeleri 1980'lerin sonlarında çökünce alan, ikinci "AI kışı" dönemine girdi.
Sembolik Yapay Zekâ ve İstatistiksel Yapay Zekâ#
İstatistiksel yapay zekâ, örneklerden örüntüler öğrenir; bu yaklaşım modern makine öğrenmesinin (ML) ve derin öğrenmenin (DL) temelini oluşturur. İki paradigma birbirinin zayıf kaldığı farklı noktalarda başarısız olur:
- Sembolik yapay zekâ: Kesin, şeffaf ve hiç eğitim verisi olmadan kullanılabilir; bu yönleriyle aritmetik, planlama, düzenlemeler ve biçimsel kanıtlar için uygundur. Kuralları yazıp piksel değerlerinden bir kediyi tanımayı sağlamak mümkün olmadığından ham algıyı işleyemez ve kurallarının öngörmediği girdiler karşısında başarısız olur.
- İstatistiksel yapay zekâ: Algıyı ve dili doğrudan verilerden öğrenir, gürültüyü tolere eder; ancak büyük veri kümelerine ihtiyaç duyar ve kararlarını incelemek zordur. Dil modelleri, halüsinasyon olarak bilinen akıcı ancak yanlış yanıtlar üretebilir.
Sembolik Yapay Zekâ Günümüzde Nerelerde Kullanılıyor?#
- Kural motorları ve mevzuata uygunluk: Vergi yazılımları ve iş kuralı motorları, düzenlemeleri açık kurallar biçiminde kodlar; böylece her sonucun hangi maddeden kaynaklandığı izlenebilir.
- Planlama ve çizelgeleme: Otomatik planlayıcılar; lojistik, fabrika işleri ve uzay aracı operasyonlarını planlamak için eylemlerin, ön koşulların ve etkilerin sembolik tanımları üzerinde arama yapar.
- Biçimsel doğrulama: Microsoft'un Z3'ü gibi SAT ve SMT çözücüleri çiplerin ve yazılımların özelliklerini kanıtlar; Lean gibi kanıt yardımcıları da matematiksel kanıtları adım adım denetler.
- Bilgi grafikleri: Arama motorları ve Wikidata, sorguların izleyebileceği varlıklar ve ilişkiler biçiminde milyarlarca olguyu saklar.
Nöro-Sembolik Yapay Zekâ#
Nöro-sembolik yapay zekâ, iki paradigmayı birleştirir: sinir ağları algı ve örüntü tanımayı üstlenirken sembolik bileşenler kuralları, kısıtları ve kesin akıl yürütmeyi ele alır. İşlev çağrısı yoluyla hesap makinesi, SQL veri tabanı veya kod yorumlayıcısı kullanan dil modelleri de aynı iş bölümünü kullanır. Görüntü işleme işlem hatlarında, Ultralytics YOLO26 gibi bir algılayıcı pikselleri sembollere, yani bulduğu nesnelerin sınıf adlarına dönüştürür; ardından yalın kurallar bu semboller üzerinde akıl yürütür:
from ultralytics import YOLO
# Sinirsel algı: Nesneleri algıla ve sınıf adlarını sembolik olgular olarak tut
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
facts = {result.names[int(c)] for c in result.boxes.cls}
# Sembolik akıl yürütme: EĞER bir otobüs VE bir kişi varsa O HÂLDE uyarı ver
if {"bus", "person"} <= facts:
print("Rule fired: pedestrians next to a bus")Kuralı değiştirmek, yeniden eğitim gerektirmeden sistemin davranışını anında değiştirir. Google DeepMind'ın AlphaGeometry sistemi aynı iş bölümünü matematiğe uygular: sinirsel bir dil modeli yardımcı yapılar önerir, sembolik bir çıkarım motoru bunlardan hareketle sonucu kanıtlar ve ikisi birlikte, 2024'te Nature'da yayımlanan bir makaleye göre Uluslararası Matematik Olimpiyatı'ndaki 30 geometri probleminin 25'ini çözdü.










