Yaratıcılık programlanabilir mi?

Cem Say
Yaratıcılık programlanabilir mi?

Rüyamda görsem hayra yormazdım, ama bu yılki İstanbul Müzik Festivali kapsamında ben de sahneye çıktım! Festivalde konserlerin öncesinde konuyla ilgili uzmanlar konuşmalar yapıyorlar. Festival düzenleyicileri sağ olsunlar, 7 Haziran’da Boğaziçi Üniversitesi’ndeki Bach konseri öncesinde benden de böyle bir konuşma istediler. Konu başlığımız “Deha programlanabilir mi?” idi. Bilgisayarların “yaratıcılık” gerektirdiği düşünülen birkaç alanda gösterdikleri başarılardan söz edeceğim bu yazı, o gün konuştuklarımızı HBT okurlarıyla paylaşacağım bir serinin ilk bölümü.

Otomatik matematikçi ile başlayan olaylar 1976’da Stanford Üniversitesi’nde doktora öğrencisi olan Douglas Lenat, “Otomatik Matematikçi” adında bir program geliştirdi. Bu bir “kavram keşfetme” programıydı.

Lenat programa girdi olarak sadece hepimizin aşina olduğu “küme” kavramını, ve matematik âleminde bir kavramdan başka bir kavram elde etmek için kullanılabilecek yüzlerce kuralı verdi. Bu kurallar örneğin “elindeki kavram için örnekler üretmeye çalış”, “eğer pek örnek bulamıyorsan elindeki kavram fazla dar tanımlanmış olabilir, tanımı genelleştir”, “bulduğun örnekler arasında uç özellikleri olanlar ilginç olabilir, sadece onları kapsayacak şekilde kavramın tanımını özelleştir” gibi genel fikirlerden oluşuyordu.


Lenat bu noktadan başlattığı programın “kavramlar âlemi”nde ilerleyişini izledi ve hâlâ derslerde anlatılan bir buluşlar dizisine tanık oldu.

Otomatik Matematikçi, küme kavramından yola çıkıp (farklı kümelerin eleman sayıları farklı olabileceğinden) “sayı” (daha doğrusu 0, 1, 2, 3, ... diye giden “doğal sayılar”) kavramını, oradan bu sayılar üzerinde yapılabilecek toplama, çarpma, bölme gibi işlemleri, sonra bazı sayıların çok sayıda, bazılarınınsa sadece iki adet sayının çarpımı olarak yazılabildiğini fark edip bu “sadece iki böleni olma” özelliğine odaklanarak 2, 3, 5, 7, 11, ... diye giden “asal sayılar” kavramını keşfetti.

Dahası, ürettiği örneklerden yola çıkarak “galiba 2’den büyük her çift sayı iki asal sayının toplamı olarak yazılabiliyor” fikrine kapıldı, ki bu 1742’de Alman matematikçi Christian Goldbach tarafından ortaya atılmış önemli bir matematiksel iddianın ta kendisiydi! Birkaç yüz yıl farkla da olsa, Yapay Zekâ insan bir matematikçiyle aynı buluşu yapmıştı.

Eurisko devreye giriyor

ABD’de popüler olan “Traveller” (“Yolcu”) adında bir kutu oyunu var. Bu oyunun ulusal turnuvaları düzenleniyor. Turnuvada amaç, bir trilyonluk devasa bir bütçe kullanarak kuracağınız bir filoyla rakibinizin filosunu alt edip bir sonraki tura geçmek. Bu iş için uymanız gereken kısıtlar ve savaş sırasında kazananın belirlenmesinde kullanılacak kurallar kalın bir kitabı dolduruyor.

1981’deki şampiyonaya Eurisko adında bir Yapay Zekâ programı da katıldı. Eurisko’nun programcısı, Otomatik Matematikçi’nin yaratıcısı Doug Lenat’tan başkası değildi. Lenat, Otomatik Matematikçi’nin yaptığı buluşların programın yazılış şeklinden kaynaklandığı, yani bilinçli olarak veya olmayarak kendisinin programa kopya verdiği iddialarına, kendisinin hiç anlamadığı bu savaş oyununu oynayan yeni bir sistem kurarak cevap vermek istemişti.

Lenat, Traveller kitabındaki kuralları bir bir bilgisayara kodladı ve Eurisko’yu iyi bir strateji belirlemesi için çalışmaya bıraktı. Eurisko günler boyunca kendi kendisine oynayarak hangi yapıdaki filoların kazanma şansının daha çok olduğunu hesapladı. Şampiyonanın ilk turunda Eurisko’nun filosunu gören rakipleri gülmekten kendilerini alamadılar. Denizcilik tarihindeki tüm savaşları ezbere bilen Traveller meraklıları bu bilgilerinden damıttıkları farklı güç ve kabiliyetlerdeki gemilerden oluşan filo yapılarıyla oynarken, Eurisko tüm parasını oyunun elverdiği maksimum sayıda, dişine kadar silahlı, küçücük ve yavaş “torpidobot”lara harcamıştı. Nitekim turnuvanın sonunda gülen Lenat oldu.

Eurisko’nun filosu o kadar kalabalıktı ki, karşılıklı her salvoda onun rakibinden daha fazla gemisi vurulsa da sonunda rakibin gemileri tükendiğinde hâlâ Eurisko’nun birkaç gemisi sağlam kalmış oluyor ve oyunu kazanıyordu. Gerçek hayatta uygulansa kendi askerlerini kesin ölüme atmak demek olacağından hiçbir insanın aklına gelmeyecek bu taktik Eurisko’yu 1981 şampiyonu yapmıştı.

Kuralları değiştiriyorlar, ama..

1982 turnuvası öncesinde şampiyona düzenleyicileri kuralları Eurisko’nun önceki yıldaki taktiğini işe yaramaz kılacak şekilde değiştirdiler: Artık kazanan filonun ortalama “çeviklik” değeri de hesaba katılacak, böylelikle rakibin ateşi sonucu sakatlanan çok sayıda gemisi olan Eurisko eskisi kadar çok puan alamayacaktı.

Lenat, Eurisko’yu bu yeni kurallarla yeniden çalıştırdı. Sonuç, yine “insanlık dışı” bir buluş oldu: Program yine önceki yıldaki gibi kalabalık filolar kuruyor, fakat oyun sırasında vurulup çeviklik değeri düşen gemilerini kendi kendisine batırıyordu! Böylelikle kalan gemileri yüksek çeviklik ortalamasına sahip olan Eurisko, 1982 kupasını da rahatlıkla aldı.

Lenat, düzenleyicilerin “eğer seneye de gelirseniz şampiyonayı iptal ederiz” mealindeki nazikçe uyarıları üzerine Eurisko’yu sahalardan çekme kararı aldı. Zaten ABD Savunma Bakanlığı’nın dikkatini çekerek sonraki projeleri için sağlam bir destek kaynağı bulmuştu.

Uzun yıllardır bilgisayarlara “sağduyu” kazandırmayı amaçlayan ve CYC adını verdiği bir bilgi tabanı üzerinde çalışıyor.

Cem Say / [email protected]


*Bu yazı HBT'nin 66. sayısında yayınlanmıştır.

Cem Say

1987'den beri Boğaziçi Üniversitesi Bilgisayar Mühendisliği Bölümü'nde çalışıyor. Çalışmaları Yapay Zeka ve Kuramsal Bilgisayar Bilimi üzerine. Sahte dijital deliller üzerine incelemeleri var. Bilimkurgu, uzay yolculuğu, seçim hileleri ve başka bir çok konuya da meraklı.