Satranç Efsanesi Kasparov ve Yapay Zeka Deep Blue'nun 1996 ve 1997'deki Tarihe Geçen Maçları

Satrancı geniş kitlelere yayan Garry Kasparov ve IBM'in satranç oynayabilen yapay zekası Deep Blue, ABD'de 96 ve 97 yıllarında olmak üzere iki defa karşı karşıya gelir. Karşılaşma, yapay zeka ve insan kıyaslamasında bugün hala önemli bir yere sahip.
Satranç Efsanesi Kasparov ve Yapay Zeka Deep Blue'nun 1996 ve 1997'deki Tarihe Geçen Maçları
Getty Images/AFP/Stan Honda

kasparov ve deep blue arasındaki bu mücadele, 1996 ve 1997'de olmak üzere 2 adet 6'şar maçlık satranç karşılaşmasına sahne olan meşhur bir eşleşmedir

bu yapay zeka silsilesi zaten oldu olası insanoğlunu heyecanlandırmış bir mevzu. hala terminatör gerçek olur mu, fazla öğrenen makineler dünyayı ele geçirebilir mi (bkz: paperclip maximizer), bizi yönetebilir mi gibi şeyler bugün bile konuşuluyor. haliyle işlevsellikleri insan ile karşılaştırıldığında ortaya son derece ilgi çekici şeyler çıkabiliyor.

yapay zeka ile satrancın yolları ilk olarak 1950'lerden sonra kesişiyor. ama insanlar somut bir örnek görmedikleri için bu olayı pek de ciddiye almıyorlar. 1968 yılında ünlü gm'lerden david levy “beni 10 yıl içinde hiçbir bilgisayar yenemez” diye bir iddia ortaya atıyor. yıl 1978 olduğunda ise, kazanan david abimiz oluyor. ancak takvim yaprakları 1988'i gösterdiğinde, ibm’in ilk satranç oynayan bilgisayarı deep thought bir gm’i yenmeyi başarıyor (bent larsen). ardından 1989'da da david abimiz 21 yıl önce yaptığı atarın cevabını 4-0 ile deep thought’tan alıyor. artık bir gm’i yenmeyi başaran bir bilgisayar yapabilmiş ibm sıradaki büyük rakibini gözüne kestiriyor: dünya şampiyonu garry kasparov.

maçları anlatmadan önce iki tarafı da biraz analiz etmekte fayda var

deep blue (deep thought’un gelişmiş versiyonuna bu adı veriyorlar) aslında bir süper bilgisayar. bir insana göre çok kuvvetli yanları olduğu gibi zayıf yanları da var. güçlü yanları saniyede 100 milyon hamleyi değerlendirebilmek, her zaman tahtada kendisine en çok faydayı getirecek hamleyi yapabilmek ve rakibine nazaran stres, moral bozukluğu gibi şeylerden etkilenmemek. karşınızdaki bi dünya şampiyonu olunca haliyle böyle üstünlüklere sahip olmak büyük bir avantaj yaratıyor, ancak madalyonun bir de öteki tarafı var. her şeyden önce deep blue öğrenen bir mekanizma değil, yani bir sonraki maça başlarken önceki maçtan hiçbir ders çıkarmıyor, bir tecrübe birikimi söz konusu değil. satranç bilgisi kasparov’a göre çok sınırlı, tüm bildiklerini 5 ibm araştırmacısı ve 1 international master'dan (gm’in bir derece altı) alıyor. bu bilgilerle yapabildiği şeyler bir satranç tahtasındaki üstünlük durumuna göre o anki mevcut en iyi hamleyi seçmek (analizlerde gördüğümüz +1.2,-3.4 gibi sayıları hesaplamak + hangisinin kendisi için daha iyi olduğunu bilmek) ve oynamak.

sayıların ne anlama geldiğini bilmeyenler için:

+1.2: beyaz, konumu itibarıyla 1.2 piyon üstünlüğe sahip
-3.4: siyah, konumu itibarıyla 3.4 piyon üstünlüğe sahip.

yani deep blue siyah iken -li sayıların, beyaz iken de +lı sayıların kendisi için iyi olduğunu biliyor.

Deep Blue

bu sayıları hesaplamak için de hafızasında bulunan halihazırda oynanmış çok sayıda maç pozisyonundan da yardım alıyor. bunlar kısaca deep blue’nun analizini ve oynayış stratejisini oluşturuyor. diğer dezavantajları strateji değiştirememesi ve de rakibin zayıflıklarını değerlendirememesi. analiz bitti ancak cevaplanmayan bir soru var. deep blue, veya bütün satranç yapay zekaları, oynayacağı hamleyi nasıl seçiyor? bu sorunun yanıtı minimax adı verilen bir algoritma. yaptığı şey son derece basit. bir decision tree’yi (karar ağacı) değerlendirip (100 milyonluk değerlendirme gücünü burada kullanıyor), rakibinin de en iyi hamleyi oynayacağını varsayarak kendi hamlesini seçmek. peki "nedir bu decision tree, ben hiçbir şey anlamadım" diyorsanız, sakin olun şimdi oraya geldik.

decision tree (karar ağacı), belirli kararlar (action) verdiğiniz ve o kararların sizi belli sonuçlara (outcome) götürdüğü bir data structure (veri yapısı).

örnek olarak bir araba alırken kullanılan decision tree


bunu satranca uyguladığımızda işe şöyle bir durum var. tree’nin seviyeleri sırayla 2 oyuncuyu temsil ediyor. örneğin 1 seviye (en üstteki) o anki pozisyonken 2. seviye deep blue'nun hamlelerini, 3 seviye kasparov'un o hamlelere cevaplarını, 4. seviye deep blue'nun kasparov'un cevaplarına verdiği cevaplarını vs. biçiminde devam ediyor.

yani


gelelim seçim kısmına

minimax şunu diyor: bu tahtaların (üstteki resimdeki) gösterdiği konumları sayılara çevirelim (üstte dediğim üstünlük durumu belirten +1.2, -3.4 gibi, deep blue da bunu yapabiliyor). daha sonra en alttan başlayarak her bir seviyede sırayla (rakibin hamle yaptığı seviyelerde) minimum ve (kendimizin hamle yaptığı yerlerde) maksimum yarar getirecek hamleyi seçerek en üste kadar gidelim ve oynayacağımız en iyi hamleyi bulana kadar seçenekleri eleyelim. kendi seviyelerinde maksimumu seçmesi normal, peki diğerinde niye kendisi için minimum olanı seçiyor derseniz, rakibinin kendisi için en iyi, deep blue içinse en kötü hamleyi yapacağını varsayıyor. yani rakip en iyi hamlesini oynamazsa işler deep blue için daha da kolay bir hal alıyor. bu algoritma deep blue’nun her durumda en rasyonel kararı vermesini ve hata yapmamasını sağlıyor.

ben anlamadım kardeşim sayılı örnek ver diyorsanız


garry kasparov'dan bahsetmeye, özellikle de ekşi'deki başlığını okumuşsanız, pek gerek yok. gelmiş geçmiş en iyi satranç oyuncularından, elo rekorunu kırmış, 15 sene dünya şampiyonu olarak kalmış bir büyük usta. siyah parçalarla bu kadar muazzam galibiyetleri olan az sayıdaki oyuncudan. dediğim gibi ne kadar şey söylesek bile az kalıyor.

biz en iyisi maça geçelim

bir tarafta saniyede 3 hamle değerlendirebilen ama muhteşem satranç bilgisi olan dünya şampiyonu kasparov; diğer taraftaysa saniyede 100 milyon hamle değerlendirebilen ancak kasparov'a nazaran çok sınırlı bir satranç bilgisi olan deep blue. tüm dünya heyecanın yanında biraz da korkuyla, “human vs machine” temasında lanse edilen bu meşhur eşleşmeyi görmek için 1996 yılının şubat ayını beklemektedir.

10 şubat 1996'da amerikanın philadelphia şehrinde kasparov ve deep blue 6 oyunluk bir maç yaparlar

ilk oyunu çatur çutur kaybeder kasparov. çünkü bir makineyle oynamaktadır ve bir insanın aksine deep blue hata yapmayarak en optimum hamleyi her seferinde bulmakta ve rasyonel oynamaya çalışan kasparovu sıkıştırmaktadır. bu 99.8 ile 100'ü yarıştırmak gibi bir şey. ne kadar yakın olursa olsun, sonuçta mağlup olan muazzam olmasına karşın 99.8 olacaktır. bunun üzerine kasparov, efsanesini oluşturan en önemli parçalardan birini ortaya sürer: feda.

feda adından da belli olduğu gibi değerli bir taşınızı rakibin daha az değerli taşı veya bir piyonu karşısında değiştirmektir. örneğin kalite fedası yapılarak pozisyon ve gelişim avantajı elde etmek mümkündür ancak bir o kadar da karmaşıktır. bir kalenizi vererek bir sütunu açabilir ve ordan bir atak planlayarak rakibinizi, tüm hamlelerini savunma için kullanmaya mecbur bırakabilirsiniz. ancak tempo kaybedildiği anda kalite eksikliği büyük bir eksi ve potansiyel bir mağlubiyet olarak size geri döner. en meşhur fedalar vezir fedasıdır. karşılığında 1 veya 2 hafif taş alınarak rakibin taşlarını aksiyonun asıl gerçekleştiği yerden uzağa çekebilir ve rakibinizden daha çok taşınızı aktif tutabilirseniz oyunu kazanma şansınız önemli bir derecede artar. kasparov yapması gerekeni bulmuştu ama bakalım deep blue bunun karşısında ne yapacaktı?


ikinci oyun

kasparov bir anti-deep blue mentalitesiyle oynamaya karar verdi. hedefi deep blue'nun bütün gelişim hamlelerini bloklamak, oyunu sıkıştırmak ve yeri geldiği zamanda da o eşsiz zekasını kullanarak maçı kazanmaktı. 37 hamle süren ilk oyuna nazaran bu oyun 73 hamle sürmüş ve çok sık kullanmadığı katalan açılışı kasparov'a galibiyeti getirmiştir.

üçüncü oyun

tekrardan siyah parçaları alan kasparov emniyeti elden bırakmayarak bir sicilya savunması açılışını tercih etmiş ve oyun 39 hamlede berabere bitmiştir.

dördüncü oyun

bu oyun da kasparov'un sıkça kullandığı semi slav açılışıya başlamış ve 50 hamle sonunda berabere sonuçlanmıştır

kasparov'un engelleyici tarzda oynamadığı bu maçta oyun nispeten kısa sürmüş ve kasparov'un mümkün olduğunca 1-1 taş değişimleri ile oyun nispeten heyecansız bir sona sahne olmuştur. buraya kadar olan maçlarda iki taraf da 1'er galibiyet ve mağlubiyetin yanında 2'şer de beraberlik almışlardır ve durum 2-2'dir.

beşinci oyun maçın kaderini belirleyen oyunlardan biri olmuştur

deep blue kasparov'un 23. hamledeki beraberlik teklifini reddetmiştir. 4 knights game açılışıyla başlayan oyunda kasparov muazzam bir mücadele ortaya koyarak galip çıkmayı başarmıştır.

altıncı oyunda yenilmemeyi garantileyen kasparov yeni bir strateji denemeye karar verir

kasparov agresif oynamaktansa temkinlice pozisyonunu geliştirirken deep blue kendi oyunuyla ilgilenmiş ve kasparov'un zayıflıklarına veya planlarına aldırış etmeyen bir oyun oynamıştır. kasparov'un bazı ufak fedalarıyla (ki sonradan bunları geri almıştır) deep blue'nun değerli taşlarını vezir kanadında birbirini bloklayan bir pozisyona sokarken, rakip şahı şah kanadında tek başına bıraktırmayı başarmıştır. buradan oyunu döndüremeyeceğini anlayan deep blue ise beyaz bayrağı sallamış ve bu büyük 1996 eşleşmesinin galibi 4-2 ile garry kasparov olmuştur.

hikaye burada insanların makinelere karşı olan galibiyetiyle bitse hikaye adına güzel, teknoloji adına üzücü bir gelişme olabilirdi. ancak ibm çalışanlarının pes etmeye pek niyeti olduğu söylenemez.

1996 şubatında hüsrana uğradıktan sonra deep blue'yu daha verimli bir hale getirmek için harekete geçen ibm, deep blue'nun 1 saniyede değerlendirdiği hamle sayısını 100 milyondan 200 milyona çıkarmayı başardı.

peki ama nasıl? bu sorunun yanıtı alpha beta pruning adı verilen bir diğer algoritma

entry'de önceden anlattığım decision tree'lerde toplam 10^120 adet oynanması muhtemel oyun var ve bu çok çok çok büyük bir sayı. kaldı ki içlerinde 3. hamlede vezirinizi verip salak salak oynadığınız milyonlarda devam yolu olan oyunlar da mevcut. deep blue'nun bunları değerlendirmesine gerek yok çünkü hep iyi hamleyi seçen bir makine neden yok yere vezirini versin. feda kavramı bilgisayarlar için geçerli olan bir durum değil. bu nedenle bunları elemek amaçlı bir algoritma uygulayarak tüm olası hamleleri değerlendirmektense deep blue, mantıklı denilecek hamleleri değerlendirmeye yönelik bir fonksiyona kavuşmuştu. peki algoritma ne diyor? dediği şu:

bu işler resimsiz olmuyor azizim

resimde en alt sırayı minimum değerleri bulmak için incelerken, 5'i bulup bir üst seviyeye attıktan sonra 9'a, aynı şekilde f kısmında 2'yi bulduktan sonra 0 ve -1'e bakmaya gerek yok çünkü onlar sonucu değiştirmiyor. detaya girmek gerekirse: 9'un olduğu yerdeki değeri bilmediğimizi varsayalım. orada 6'dan büyük bir değer gelirse eğer, minimum değerler incelendiği için bir üstü etkilemez. 6 dan küçük gelirse de mesela 3, o zaman da bir sonraki basamakta maksimum değerlere bakıldığı için 5'ten küçük kalacaktır. sonuca etkisi olmayan 9 gibi olasılıkların elenmesi deep blue'ya daha az oyun değerlendirme şansını tanımış ve işlem kapasitesini artırmıştır.

evet deeper blue artık hazırdı (daha gelişmiş versiyonuna deeper blue adı verilmiş olsa da resmi adı halen deep blue idi). 1997 yılının mayıs ayında ikili new yorkta karşı karşıya gelirler.

ilk oyunda kasparov adeta gora'daki arifin plakumatlara dediği gibi “topla gel düz gel” diyerek deep blueyu tokatlamıştır. ama bu oyunda çok ilginç bir şey olmuştur. 44. hamlede deep blue kalesini aşağı indiredursun, kasparov vezir çıkmak üzereyken deep blue'nun bu hamleyi yapmasına anlam verememiş ve “ulan ben mi bi şeyi görmüyorum” diyerek tahtaya yaklaşık 10 dk bakakalmıştır. ardından bir tehdit olmadığına emin olmuş ve hamlesini yapmış, bunun üstüne de deep blue oyundan çekilmiştir. sonradan yapılan açıklamaya göre bu esnada deep blue'da gerçekleşen bir hata (bug) hamle değerlendirememesine ve rastgele bir hamle yapmasına sebep olmuştur.

ikinci oyun ise hem bu oyunun hem de turnuvanın kaderini belirleyici bi unsur olarak tarihte yerini alacaktır

96'da rakibini yenen, saymıyom bi daha hadi diye 2. kez geldiğinde de ilk oyunda tokadı vurmasını bilen kasparov'un güveni kendine gelmiştir. rakibini çözdüğü için bundan sonrasının formalite olduğunu düşünen kasparov'un belki de en büyük hatası rakibini birazcık da olsa küçümsemesi olmuştur. beklenmeyen olay oyunun 37. hamlesinde meydana gelir. sıra deep blue'dayken kasparovun tahminine göre deep blue veziri ile piyon fil çatalı yapacak ve mutlak kazanç sağlayacaktır, işte orda kupon yatıran gol haberi sivas'tan gelir ve deep blue filini oynayıp pozisyon geliştirmeyi seçer. bunun üzerine şok olan kasparov'un hem morali hem konsantrasyonu dağılır. üstüne bir de 44. hamlede şahını yanlış yere kaçan deep blue'dan beraberlik kapma şansını da kaçırır ve maçı kaybeder. tüm planını deep blue'nun o piyonu alması üzerine yapan kasparov, bu hamlenin dışarıdan yardım alınarak yapıldığını ve ibm’in hile yaptığını iddaa eder. sonradan da birkaç gm tarafından doğru bulunan bu iddaanın aslı, günümüzde bile sır gibi saklanmaktadır.

Getty Images/AFP/Stan Honda

üçüncü oyun

bu oyunda morali kısmen düşük kasparov, geçen sene kendisine ilk galibiyeti veren anti oynayış stratejisini dener ve çok nadir oynanan bir açılış kullanır. ancak deep blue artık daha güçlüdür. oyun 48 hamle sonucunda berabere biter.


dördüncü oyunda kasparov, karokan savunması ile çok iyi bir pozisyona gelmeyi başarır

ancak oyun sonu birkaç hamle ard arda kaçırdığı en iyi hamleler ona büyük bir galibiyete mal olur. sonuç 56 hamlelik bir beraberliktir.


4 oyunun yine 2-2 geçilmesinden sonra taraflar beşinci oyunda karşılaşır

deep blue'nun ilk defa mükemmel savunma hamlelerine sahne olan oyunda otoriteler bir kasparov galibiyeti beklerken sonuç, şaşırtıcı bir şekilde beraberlik olmuştur. durum artık 2.5-2.5'tur ve kazananın belirleneceği 6. ve son oyun artık büyük bir önem taşımaktadır.

6. oyunda deep blue kasparovun karokan savunmasına meşhur bir devam yolu olan at fedası ile yanıt verir

bu fedayı kabul eden kasparov'un savunması kısa bir süre içinde dağılır ve oyun 19 hamle sonunda deep blue zaferi ile sona erer. üstte dediğim "bilgisayar feda yapmaz" ile çeliştiğini biliyorum ancak bunun bir farkı mevcut. buradaki feda hemen geri alınabilir bir geçici fedadır yani yararları 8-10 hamle gibi uzun sürelerden sonra kendini göstermez. artı olarak bu bir devam yolu olduğu için deep blue'nun halihazırda bildiği maçların analizlerleri aracılığıyla kullandığı bir hamle olduğu için de klasik bir fedanın özelliklerini taşımamaktadır.

2014'te Kasparov Tunuslu çocuklarla satranç oynarken.

1997 eşleşmesi 3.5-2.5 deep blue üstünlüğü ile biter ve beklenen olmuştur, bir makine dünya satranç şampiyonunu yenmiş, ibm’in hisseleri fırlamış, tüm dünyayı yapay zeka ve robotlarla ilgili ütopik senaryolar sarmıştır. turnuvadan sonra kasparov 2. maça itiraz ederek 3. bir eşleşme teklif eder ancak ibm tarafından reddedilir. ibm komplo teorilerinden kurtulmak için projeyi sonlandırdığını açıklar ve çalışmalarını gözden uzak biçimde sürdürür.

not: biraz uzun bir entry (yaklaşık 4 word sayfası). bu konuyu okuduğum bölüm (bilgisayar müh.) ve hobim olan bir şeyi birleştirdiği için bir sunum ödevine konu olarak seçmiştim. hazır bilgiler tazeyken burada da dursun.