21 Oca 2012

Bilgisayar insanoğlunu neden yenemiyor?

Fatih Söylemez

Yazının başlığına bakıp da ne saçmalıyor bu diye düşünebilirsiniz. Bilgisayarın insanoğlunu yendiği birçok alan var elbette ancak henüz programcılar go oyununda elle tutulur bir başarı sağlayabilmiş değil.

Ortaokul yıllarından beri bilgisayarda çok fazla oyun oynadım, hala oynuyorum, üniversite yıllarında da hasbelkader programlama ile uğraştım, dönem dönem lazım oluyor yine uğraşıyorum, meslek hayatımda ise statik analiz programları ile oldukça iç içeyim. Go için bir program yazmaya veya yazılan bir programı anlamaya çalışmadım ama bilgisayarın işleyişini temel bazda anlayabildiğimi düşünüyorum.

Biliyorsunuz ki, bilgisayar insan hayatını ciddi anlamda kolaylaştıran ve çok zaman kazandıran bir alet. Ancak benim deyimimle aynı zamanda aptal da bir alet, siz ona ne verirseniz onu işliyor haliyle. Unutmayın ki bilgisayarın yorumlama yeteneği yok, bu yüzden ulaşmak istediğiniz noktaya nasıl ulaşacağınızı bilmiyorsanız, hangi bilgileri (data, veri ne derseniz) kullanacaksa bunları önceden bilgisayara vermiyorsanız amiyane tabirle apışıp kalıyor alet. Asla varsaymıyor, herhalde bunu demek istemiştir, internetten bulayım da eksik olan veriyi tamamlayayım demiyor.

Lakin bunlar azıcık bilgisi olan herkesin zaten bildiği kısım veya işin matematiği diyelim. Çözülemeyen nokta bu değil elbette. Go oyununun kurallarını tanıtıp sizinle oynayacak düzeye getirmek hiç sorun olmadı, tek bir cevabı olan basit veya zor problemleri çözdürmek de sorun olmadı, sorun gerçek oyunda profesyonel bir go oyuncusundan daha güçlü olduğunu kanıtlamak.

Peki, bu neden zor? Bilgisayarda eksik olan nedir?

NFS (Need for Speed) ilk çıktığı zamanlarda deli gibi oynarken zorluk derecesi en düşükte olunca bilgisayarı yenmek çocuk oyuncağıydı, zorluk derecesini artırınca ise ufacık bir hata bile yapsanız bilgisayar sizi geçiyor. Yolun iki yanında köprü ayağı olan, sadece arabanın geçebileceği kadar dar bir yolda, sol taraf uçurumken o iki ayağın arasından geçmeden önce tedirgin olduğumu ve heyecanlandığımı çok iyi hatırlıyorum, bunun haksızlık olduğunu düşündüğümü de hatırlıyorum. Çünkü bilgisayar heyecanlanmıyordu, eğer siz ona çarpmazsanız oradan hiç hız kesmeden tam gaz geçip gider, sonrasındaki virajda ise gerekli hıza düşerek sorunsuzca yoluna devam edebilir. Ne köprü ayaklarına çarpma korkusu ne de uçuruma düşme endişesi var sonuçta. Bu, başarılı olmak için büyük bir artı olabilir ama go oyununda korkularınız, endişeleriniz, heyecanınız ya da genel anlamıyla duygularınız yoksa bu bir eksikliktir.

Programlama hatayı affetmeyen bir konudur bilgisayar için. Noktalı virgül yerine normal virgül koyduysanız size sonuç vermez. Bir tırnak işaretini unutursanız işin içinden çıkamazsınız bazen. Matematiği ne kadar iyi bilirseniz bilin programa + yerine – koyarsanız bilgisayar her şeyi yanlış hesaplar. Go oyununda ise bazen öyle bir nokta olur ki rakibinizin basit bir hata yaptığınızı düşünmesini istersiniz. Bazen de bilerek hata yapmak ister canınız, sırf sonucunu görmek veya sırf içinizdeki ses öyle dediği için. Sonucunda rakibiniz aç gözlü davranıp hatayı size pahalıya ödetmek isteyecektir belki, üstünüze gelebilir veya hatanızı fark edip kazandığını düşünerek rehavete kapılabilir veya işin içinde bir bit yeniği olduğunu düşünerek evhama kapılabilir. Tüm bu duygular size oyunu kazandırabilecek kadar tehlikelidir aslında, oyunun kaderini değiştirebilecek kadar büyüktür. Bilgisayara bile bile hata yap diyemezsiniz. O her şeyi hesaplayarak karşısındakinin her halükarda doğruyu yapacağını düşünerek hep en doğrusunu arar. Bilgisayara karşı oynarken bilerek hata yapmak size pahalıya patlayacaktır şüphesiz ama bilgisayar size karşı bu güçlü silahı kullanmaktan acizdir, bilgisayar basit bir problemde hata yapmaz ve siz bilirsiniz ki işin içinde bir bit yeniği yok, içiniz rahat o bölgeye kafa yormaya devam edebilirsiniz.

Go programlarının nasıl çalıştığını çok iyi bilmediğim için bu paragrafta yazdıklarımdan pek de emin değilim aslında, yine de kafamdakileri yazmak istiyorum. Hani en başta dedim ya siz ne verirseniz bilgisayar onu işler diye. Go oyununda tahta boş olduğu için siz ona data verirsiniz o da işler. Oyun başında çok az data olduğu için bilgisayarın strateji kurması, önceden kendisine bildirilen açılışlarla kısıtlıdır. Bir nevi ezberci çocuk gibi davranmak zorundadır. Halbuki iyi bir go oyuncusu için oyunun başı çok çok çok önemlidir. Strateji kurma aşamasına gelen go oyuncularına öğretilen ilk şeylerden biri olan ve kabaca hamle önceliği, oyunu kontrol etme veya yönlendirme gibi anlamlandırılabilecek “sente” kavramının psikolojik etkileri bilgisayara öğretilemez. Bilgisayar sizinle psikolojik bir savaşa giremeyeceği için özellikle oyun başında pek de öyle beklenmedik hamlelerle karşılaşmayacaksınızdır. Bir oyuncu oyun başında alışılagelmiş hamlelerin dışında bir yol izlerse bu bilgisayar için bir alarm değildir sanıyorum. Bilgisayarın hamle kütüphanesine bunlar normal hamle bunların dışındakiler alışılagelmişin dışında hamle, bak bunlara dikkat et diyebileceğinizi zannetmiyorum açıkçası. Uzun lafın kısası profesyonel bir go oyuncusu, bilgisayar ile oynarken makinenin izlediği yolu, zinciri kırarak, oyunu istediği gibi yönlendirmektedir diye düşünüyorum.

Tüm bunları toparlarsak iki insan oynarken tahtada sadece matematik değil, psikoloji de çok önemlidir. Daha önce hiç go oynamamış ve hatta hiç ciddi bir maç yapmamış kişilerin bu dediğimi anlayabileceğini sanmıyorum ama go matematiğin ve mantığın çok ötesinde bir oyun.

Bir robot asla bir insanın piyano çalarken büründüğü ruh haline bürünerek o enerjiyi size verememektedir. Kimse bir robotun kusursuz bir şekilde notalara bastığını görmek için para verip de konsere gitmez. Onun adı konser değil teknoloji gösterisi olur. İşte bu yüzden insanın yaptığı şaheser olurken bilgisayarın yaptığı basit kalmaktadır ve işte bu yüzden bilgisayar insanoğlunu yenememektedir (henüz).

5 yorum:

  1. Insan türü yuzbinlerce yıldır görüntü tanıma, örüntü(pattern)leri farketme bulma gibi konularda sürekli bir eğitime tabi tutulmuştur gibi düşünebiliriz.
    Doğada karşısına çıkan canlının av mı yoksa avcı mı, karşıdan gelen insanın kendi kabilesinden mi yoksa öteki kabilelerden mi olduğunu saniyeler içinde kavraması gerekliydi ve beyni buna uygun şekilde evrimleşti.
    Oysa matematik, mantık gibi son 1000 yılın beyin uğraşları insan için çok yenidir. Sudoku, satranç gibi oyunlar daha çok beynin bilgisayar gibi çalışmasını gerektirmektedir ve insan beyni bu konularda bilgisayardan geride kalmaktadır. Okuduğum bir yazıda profesyonel satranç oyuncularının da beyninin her iki tarafını kullandığının görüntülendiği anlatılıyordu. Bu da demek oluyor ki profesyonel satranççılar da profesyonel go oyuncuları gibi beyinlerinin örüntü tanıma gibi kısımlarını devreye sokuyorlar.

    Go oyununa dönersek, go oyununda 5 10 hamle sonrasını görmek kadar şekilleri tanımak, ölü, yaşayan veya teklikedeki grupları tanımak çok önemlidir. Yazarın da dediği gibi oyun başı gelecekte kesinleşecek şekillerin bir ön temeli olduğundan insan beyni yüzbinyılların genetik kodlamasının getirdiği avantajla kısıtlı işlem gücüne sahip bilgisayarları rahatlıkla yenebilmektedir.

    İlerde insan beyninin kapasitesine sahip bir bilgisayar geliştirilirse ve örüntü tanıma eğitimine tabi tutulursa çok iyi oynayan go programları yazılabileceğini düşünüyorum.

    Tahminim bundan daha da önce insanlık yine akıllı algoritmalarla, yine doğadan ilham alarak kısıtlı kapasiteyle de en iyi go oyuncularıyla yarışacak go programları yazacaktır.

    YanıtlaSil
  2. bilgisayarlar go oyuncularını henüz yenemiyorlar. şu an bildiğim kadarıyla KGS'de 4-5 dan seviyesinde oynayan robotlar var. ki bu da yaklaşık 1 pro seviyesine denk gelebilir. bundan 4-5 yıl önce en iyi programlar 1 dan seviyelerindeydi yanlış bilmiyorsam. yani çok hızlı geliştiklerini söyleyebiliriz?

    YanıtlaSil
  3. Sıkıntı yapmayın, 5-10 senesi var, hep birlikte görücez. Zaten go'nun "bilgisayarların insanları yenemediği oyun" olarak anılmasına gıcığım. Tek özelliği tek iyi yanı buymuş gibi. Yensin bilgisayarlar insanları da kurtulalım şu zırvadan.

    YanıtlaSil
  4. Takemiya'yı 4 avansla yenen bilgisayarın, savaştan kaçınarak ve avans avantajını kullanarak oynadığı görüldü - http://merdivengo.blogspot.com/2012/03/bilgisayar-go-program-zen-takemiya.html
    . İleride bu seviye ilerlemesinin bir platoya ulaşması da mümkün, özellikle avanslar azalmaya başladıkça daha çok savaşmak gerekecek ve önde olarak başlamanın avantajı bilgisayarlarda olmayacak. Bunu da dikkate alırsak, belki 5-10 yıl yetmeyebilir.

    YanıtlaSil
  5. Bilgisayar programı tarafını merak edenler için ilgi çekici konular:

    http://en.wikipedia.org/wiki/Fuzzy_logic
    http://www.ahmetkakici.com/yapay-sinir-aglari/yapay-sinir-aglarinin-mimarisi-ve-yapi-elemanlari/
    http://en.wikipedia.org/wiki/Genetic_algorithm

    YanıtlaSil