1600'lerden Günümüze Kabaca Yapay Zekanın Tarihi
çok geriye gitmeden, kalp kırmadan, incitmeden matematikçi gottfried leibniz ile başlayalım
leibniz 1692 civarında olması lazım bir hesap makinesi yapıyor, o dönemler meşhurlaşmaya başlamış bir iş zaten hesap makinesi yapmak. makineyi yaptıktan sonra diyor ki bu makine ile spesifik bazı problemleri çözebiliyoruz, peki tüm problemleri çözemesek bile üzerlerinde konuşabileceğimiz bir dil mümkün müdür?
aynı leibniz bir de şunu fark ediyor, bir kağıt üzerine saçılmış mürekkep lekelerini modelleyebiliriz ne karmaşıklıkta olurlarsa olsunlar. ancak 101 tane mürekkep lekesini 100. dereceden fonksiyonlarla modellemek var, 2. dereceden veya lineer denklemlerle modellemek var. leibniz diyor ki ilkinin hiçbir önemi yok, o sadece her şeyin matematiğinin yapılabileceğine dair bir çıkarım. asıl önemli olan ise ikincisidir. buna sonra yeniden değineceğiz kolmogorov ve chaitlin konuşurken.
neyse, leibniz'in sorduğu ilk soruya cevaplar aramaya devam ediyor insanlık. sadece logic değil logic of logic çalışmaya başlıyorlar 19. yüzyılda. yani bir şeyler bulmaya değil, bir şeyler bulmaya yarayan metotları bulmaya uğraşıyor bir grup insan. logic/context of discovery ve justification birbirinden ayrılmaya başlıyor.
bu dönemlerin sonuna doğru (1903 civarı) matematikçi david hilbert aynı soruyu alıp biraz şekil verip dönemin matematikçilerine soruyor
bir problemin çözümü olup olmadığını bilmenin bir yolu var mıdır? bu soru da tabii ki zaman içinde daha ufak sorulara bölünüyor, farklı alanlarda farklı isimlerle çalışılıyor. mesela soruya en net cevap olan turing'in 1936'daki makalesi doğrudan mekanik, inşacı bir matematik sistemi üreterek soruya hayır cevabını veriyor. halting problem, np vs p, uncomputable numbers vs aslında temelde hep aynı problem.
bizim bugün yapay zeka olarak bildiğimiz alan ise turing'in, gödel'in vs çalışmalarından sonra ortaya çıkmaya başlıyor ve bir anlamda oradaki felsefi soruları bir kenara bırakıp pratik işlerle uğraşmaya başlıyor. bu pratiğe kayma kısa vadede iyi sonuçlar verirken uzun vadede boka batıyor. şimdi biraz bunu irdeleyelim.
ilk yapay zeka çalışmaları ordunun, devletin, uzay çalışmalarının işlerini kolaylaştırmak ekseninde başlıyor
bunun sebebi de aslında çok açık, para orada. para olunca da dünyada 100 tane bilgisayar dahi yokken size 10 bilgisayarlı lab kurabiliyorlar.
bu dönemde çıkan yapay zeka çözümleri genelde indirgemeci, soyut ve sembolik. problemleri ağaç veya graph'ta yapılan bir aramaya dönüştürüyorlar. bazısı bunu dijkstra gibi doğrudan geometrik yapıyor bazısı da simon ve newell gibi daha fonksiyonel yapıyor ama alttaki mantık aynı.
özellikle simon ve newell'ın çalışmaları alıp yürüyor
genelde spesifik problemler üzerinde çalışıp onlara uygun algoritmalar geliştirip makinelerin bu problemleri çözmesi sağlanıyor. adı general problem solver olsa da altta olan iş bilinen bir problemin çok iyi sembolize edilip makineye verilmesi, makine ise bu noktadan itibaren sonuca ulaşana kadar recursive olarak alt-problemler tanımlıyor. en sonunda tanımladığı alt-problemler yeterince basitleştiğinde cevapları geriye doğru yerleştirmeye başlıyor. aynı dönemden strips var mesela (stanford research institute problem solver), kendi üzerindeki meta dile uygun yazdığını fonksiyonel sistemlerde cevaplar arıyor probleminize. ancak hemen eksikleri gedikleri ortaya çıkıyor bu anlayışların. bir tanesi sussman anomali mesela.
başka bir yerde çıkan ama aslında aynı yere göndermede bulunan bir diğer problem de "frame" problemi
sorun kısaca şu, benim yapay zeka ajanım ne yaptığında, etrafta ne değişiyor. mesela bir adım attığında tüm haritayı yeniden oluşturmaya gerek var mı? ya da duvar boyama operatörünü kullanınca camlar değişiyor mu? fark ediyorlar ki bunun sonu yok. bu yüzden çok kısıtlı, iyi tanımlanmış senaryolar için yapay zekalar geliştirilebileceklerini fark etmeye başlıyorlar.
bu farkındalık aslında generalist (hard) ai anlayışından, specialized (soft) ai anlayışına geçiş olarak yorumlanıyor. yani insan gibi düşünen sistem bizim neyimize, yakıt miktarı ve motor hızından kaç saatlik yakıt kaldığını tahmin eden basit işler yapalım biz diyorlar.
1980'lere kadar böyle devam ediyor. ortada bir sürü laf salatası var ancak yapay zeka anlamında pek bir şey yok o döneme gelindiğinde. mühendisin binlerce veriyi sisteme girmesi sonrası, sistemin o verilere binaen arama yapması o dönemdeki çoğu sistem. ya da hanoi kuleleri gibi basit bir algoritmanın binlerce kez tekrarlanmasıyla sorunların çözülmesi.
80'lerde ise sinir hücrelerine benzer sistemlerle, daha dağıtık, daha az sembolik ai ortaya çıkıyor
daha az sembolik veya semantik olarak yorumlanamaz demek başındaki araştırmacı, mühendis sistemin ne aşamada ne yaptığını pek de bilmiyor demek. aslında connectionist denilen bu yaklaşımın öncüleri 1930-40'lardaki sibernetikçiler. sibernetik diyince çok teknolojik, dijital, soğuk bir şeymiş gibi geliyor ancak walter pitts, gordon pask gibi adamlar doğaya, bitkilere, sinir hücrelerine, basit sistemlerin hareketlerine bakarak ortaya atıyorlar bu teorileri. connectionist yaklaşımların iş yapabileceğine dair ilk modeller de bu adamlardan çıkıyor.
sonrasında, zaman içinde, öğrenme kuralları güncelleniyor, matematik iyileştiriliyor ve seksenlerde connectionist ai yükselişe geçiyor. dil, görmek, işitmek gibi alanlarda bir sürü işleyen model geliştiriliyor. bu modellerin çoğu 10 yıl öncesinin sembolik yaklaşımıyla imkansız olan modeller.
bu dönemde ai sembollere, soyutlamalara yönelmek yerine veriye, dünyaya yöneliyor. insan sesi fonemlere ayrılıp bu makinelere veriliyor mesela, görüntüler doğrudan bu ağların giriş katmanına bağlanıyor. önceki dönemde arada hep insan yoğun olarak vardı. renkleri tanımlıyordu, objeleri tasvir ediyordu, aradaki ilişkileri belirliyordu ve tüm bunlar yapıldıktan sonra yapay zeka diyordu ki x, y, z yap sonuca ulaşırsın.
son 30 yıl da aslında buradaki gerilim ve metotların iyileştirilmesi ekseninde geçti diyebiliriz
makinelerin gücü arttıkça, daha fazla eğitim verisi toplandıkça ve bunların paylaşımı internet üzerinden kolaylaştıkça bu anlayışın başarabildikleri de hızla arttı. google'ın, microsoft'un, amazon'un, nasa'nın, tesla'nın, nvidia'nın binlerce çözümü, projesi var dileyen incelesin.
ancak hala sorunlar var, birincisi kimse bu sistemlerin tam olarak neden çalıştıklarını bilmiyor. ikincisi bu sistemler bir çeşit istatistiksel tümevarım yapıyorlar ancak başlangıçta bahsettiğim gibi matematik felsefesine sırt çevirmek burada da bizi engelliyor. sadece tümevarım ile bilgi çıkabilir mi? daha önce görmediği bir probleme yapay zeka sisteminin yaklaşabilmesi için tümevarımın ötesinde bir bilgi edinme şekli de olmalı. bunlar çok derin ve ayrıntılı konular, belki başka zaman konuşuruz detaylarıyla.
leibniz'in ikinci problemine, yani modellemek nedir problemine geri dönecek olursak da görüyoruz ki o konuda da klasik computational karmaşıklığa (bu sadece zamansal, mekansal karmaşıklıktır) alternatif kolmogorov-chaitlin algoritmik karmaşıklığı ortaya atıyor. yani diyorlar ki bir işlemin karmaşıklığı sadece onu ne kadar kez yaptığın değildir, onun altındaki matematiksel sürecin de bir karmaşıklığı vardır. kaba bir benzeşimle kod uzunluğu gibi düşünebilirsiniz bunu. tek bir for döngüsü 1 milyon kez çalışsa da iç içe yerleştirilmiş iki for döngüsünden daha az karmaşıktır mesela.
burada aslında çok derin bir şey var ki bence onun üzerine çalışmak np-p problemine de ışık tutacaktır. bir şeyleri modellemek matematiksel olarak her zaman zaten mümkün, ancak bizim ihtiyacımız olan herhangi bir model değil, basit bir model. bize problemin doğasına, derinliğine dair algı verecek bir model. klasik yapay zeka problemi soyut, sembolik parçalara ayırıp onlar arasında işlem yapıyor, bayesçi veya connectionist yapay zeka ise tümevarım yapıyor özetle. bizim ihtiyacımız olan ise her aşamada kendi matematiğini, kendi evren algısını geliştirecek yapay zekalar. denklem belli olduktan sonra onu çözen değil, o denklemi çıkarımsayan makineler lazım bize. gerçek yapay zekadan ancak o noktada bahsedebiliriz.