Lee Sedol’ü go oyununda yenen AlphaGo’nun başarısına önayak olan teknik gelişmeler, çok daha büyük ve kapsamlı etkilere sebep olacak mı? Bu soruyu cevaplamak için bizi AlphaGo’ya götüren gelişmelerin Kasparov’u satrançta yenen Deep Blue’ya oranla niteliksel olarak çok daha farklı ve önemli olduğunu anlamamız gerekir. Go oynayan program, insan sezgiselliğinin bazı unsurlarını yansıtabiliyor. Bu da onu, çok daha kapsamlı sonuçlar vaat eden bir gelişme olarak konumlandırmamıza neden oluyor.
Sunuş:
Okuyacağınız yazı, Quanta Magazine dergisinin internet sitesinde, “Is AlphaGo Really Such a Big Deal?” adıyla, 29 Mart tarihinde yayınlanmıştır… Anabaşlık, arabaşlık ve spot tarafımızdan konuldu; keyifli okumalar… Yazar: Michael Nielsen
1997’de, IBM’in geliştirdiği Deep Blue sistemi, dünya satranç şampiyonu Garry Kasparov’u yenmişti. Bu zafer, o zamanlar yapay zekâ açısından bir kilometre taşı olarak kabul edilmişti. Fakat Deep Blue teknolojisinin satrançtan başka bir alanda kullanılmak için yeterince başarılı olmadığı görüldü. Deep Blue, bilgisayarbilimi açısından bir devrim olamamıştı. Peki, tarihin en güçlü go oyuncularından birini geçtiğimiz günlerde yenen AlphaGo, bu anlamda ortaya bir fark koyabilecek mi?
Şimdiye kadar yazılıp çizilen sebeplerden bağımsız olarak, ben cevabın “Evet” olduğuna inanıyorum. Çoğu çalışmada, gonun satrançtan çok daha zorlu bir oyun olduğuna dair uzman görüşleri sunularak, bu zafer daha da etkileyici bir hale getiriliyor. Bazılarında, en az bir 10 yıl daha bir bilgisayarın go oyununda zafer kazanamayacağının beklendiği, dolayısıyla bunun beklenenden de büyük bir dönüm noktası olduğu vurgulanıyor. Bazı çalışmalarda ise goda satranca göre çok daha fazla potansiyel hamle olması gerçeği tekrar vurgulanıyor, fakat bunun bilgisayarları neden insanlardan daha çok zorlaması gerektiği açıklanmıyor.
Aslında bu argümanların hiçbiri esas soruya değinmiyor: AlphaGo’nun başarısına önayak olan teknik gelişmeler, çok daha büyük ve kapsamlı etkilere sebep olacak mı? Bu soruyu cevaplamak için bizi AlphaGo’ya götüren gelişmelerin Deep Blue’ya oranla niteliksel olarak çok daha farklı ve önemli olduğunu anlamamız gerekir.
Deep Blue’nun Kasparov karşısındaki başarısının sırrı neydi?
Satranca yeni başlayan oyunculara satranç taşlarının değerleri düşüncesi öğretilir. Bir at veya fil üç piyon eder. Daha fazla hareket alanı olan bir kale, beş piyon eder. En fazla hareket alanına sahip olan vezir ise dokuz piyon değerindedir. Şahın değeri ise sonsuzdur; şahı kaybetmek oyunu kaybetmek demektir.
Bu değerleri kullanarak potansiyel hamleleri değerlendirebilirsiniz. Rakibin kalesini almak için filden vazgeçmek genelde iyi bir fikirdir. Kale için bir at ve bir fili feda etmek ise o kadar da iyi bir fikir değildir.
Bu değer kavramı, satranç programları için çok hayatidir. Çoğu satranç programı, milyonlarca, hatta milyarlarca hamle ve karşı hamle kombinasyonunu tarar. Programın hedefi, rakibin hangi hamle dizisini oynadığından bağımsız olarak, tahtanın son pozisyonunun değerini en fazla yapacak hamle dizisini bulmaktır.
İlk satranç programları, tahta pozisyonlarını “bir fil üç piyon eder” gibi basit kavramlar kullanarak hesaplıyordu. Fakat daha sonraki programlar, daha derin ve detaylı bir satranç bilgisi kullandı. Örneğin Deep Blue, tahta pozisyonlarını hesaplamak için kullandığı fonksiyonda 8000’den fazla farklı değişken kullanmıştı. Deep Blue sadece bir kalenin beş piyona eşit olduğunu söylemekle kalmıyor, aynı renkte bir piyon kalenin önündeyse, piyonun kalenin hareket alanını kısıtlayarak değerini azaltacağını biliyordu. Fakat eğer bu piyon düşman bir piyonu esir alarak kalenin yolundan çekilebiliyorsa, Deep Blue bu piyonu “yarı-saydam” olarak kabul edip kalenin değerini çok fazla düşürmüyordu.
Bu tarz fikirler, çok detaylı bir satranç bilgisine dayanıyor ve Deep Blue’nun başarısında hayati önem taşıyordu. Deep Blue takımı tarafından yazılan teknik bir makaleye göre, bu yarı-saydam piyon kavramı Deep Blue’nun Kasparov’a karşı ikinci maçındaki kritik kısımdı.
Sonuç olarak, Deep Blue geliştiricileri iki ana fonksiyon kullandılar. İlki, verilen herhangi bir tahta pozisyonunun değerini hesaplayabilmek için çok sayıda detaylı satranç bilgisini birleştiren bir fonksiyon yaratmaktı. İkincisi ise çok sayıda muhtemel hamlenin değerini hesaplayabilmek için muazzam bir bilgisayar ve işleme gücü kullanarak, olası final pozisyonlarının en iyisine götürecek hamleleri seçmekti.
Bu yöntemi goya uygularsanız ne olur?
Görünen o ki, denediğinizde çok zor bir problemle karşılaşırsınız. Problem, tahta pozisyonlarını nasıl değerlendireceğinizi belirleme kısmında ortaya çıkıyor. En iyi go oyuncuları, belirli bir tahta pozisyonunun ne kadar iyi olduğunu değerlendirmek için sezgilerini çokça kullanır. Örneğin, bir tahta pozisyonuyla ilgili olarak, “Şekli güzel görünüyor” gibi üstü kapalı beyanlarda bulunacaklardır. Bu sezginin, satranç taşlarının değerlerinin hesaplanması gibi basit, iyi tanımlanmış sistemlerde nasıl ifade edilebileceği yeterince açık ve net değil.
Bu noktada, işin sadece çok çalışmak ve tahta pozisyonlarını değerlendirmek için iyi bir yol bulmak meselesi olduğunu düşünebilirsiniz. Maalesef, geleneksel yöntemleri kullanarak yapılan onlarca yıllık çalışmadan sonra bile, satranç için çok başarılı olan bu arama yöntemini uygulamak için hâlâ belli bir yol bulunamadı ve go programları beklentileri karşılayamadı. 2006’da Monte Carlo ağaç arama algoritmalarının ortaya çıkmasıyla bu durum değişmeye başladı. Bu algoritmalar, oyunları rasgele simule etme gibi zekice bir yola dayanan yeni bir değerleme yaklaşımı kullanıyorlar. Fakat go programları insan yetenekleriyle kıyaslandığında hâlâ çok geride kalıyor. Görünen o ki, başarı için asıl gerekli şey tahta pozisyonuyla ilgili güçlü bir sezgisel algı. AlphaGo ile ilgili yeni ve önemli olan şey, geliştiricilerinin bu sezgisel algıya benzer bir yol bulmuş olmaları.
AlphaGo’nun başarısı neden farklı?
Bunun nasıl çalıştığını açıklayabilmem için, öncelikle, AlphaGo takımının Ocak ayında yayımladığı makaledeki(1) şekliyle biraz AlphaGo sistemini anlatayım (AlphaGo’nun Lee Sedol ile maçı için sistem biraz değiştirilmiş, fakat genel prensipler değişmemiş). AlphaGo iyi oyuncular tarafından oynanmış 150.000 oyunu alıp, bu oyunlar içerisinde birtakım örüntü ve şablonlar bulabilmek için yapay sinir ağları kullanmış. Özel olarak, verilen herhangi bir pozisyonda bir insanın hangi hamleyi oynayacağını yüksek olasılıkla tahmin etmeyi öğrenmiş. AlphaGo’nun gelişiricileri, önceki versiyonlarıyla AlphaGo’yu tekrar tekrar birlikte oynatarak bu sinir ağını daha da geliştirmişler. Böylece bu sinir ağı, kazanma şansını kademeli olarak artırmış.
Peki bu sinir ağı iyi hamleleri tahmin etmeyi nasıl öğreniyor?
Kabaca bir sinir ağı, modelin davranışını değiştirmek için ayarlanabilen milyonlarca değişkenli, çok karmaşık bir matematiksel modeldir. Sinir ağının öğrenmesinden kastım, bilgisayarın modeldeki değişkenler üzerinde çok küçük ayarlamalar yapmaya devam etmesi, sözkonusu küçük ayarlamaları neye göre yapacağıyla ilgili kendi içinde bir yol bulmaya çalışması. Öğrenmenin ilk kısmında ağ, insan oyuncularla aynı hamleyi yapabilme ihtimalini artırmaya çalışmış. İkinci kısımda, tek başına oynadığı bir oyunda kendine karşı galibiyet kazanma ihtimalini artırmaya çalışmış. Aşırı karmaşık bir fonksiyonda sürekli çok küçük ayarlamalar yapmak ilk bakışta umutsuzca bir stratejiymiş gibi gelebilir. Fakat bunu güçlü bir bilgisayar ve işleme gücüyle birlikte yeterince uzun süre uygularsanız, ağ oldukça iyi bir hale gelir. İşin ilginci, bu küçük gelişmeler otomatik olarak yapılan milyarlarca küçük ayarlamanın sonucu olduğundan, ağın iyi hale gelmesinin sebepleri kimse tarafından gerçekten anlaşılamıyor.
Sinir ağı, bu iki eğitim safhasından sonra amatör bir insan kadar go oynayabilecek seviyeye gelebilmiş. Fakat profesyonel seviyeye ulaşmak çok daha uzun ve meşakkatli bir yol. AlphaGo’nun bu aşamada yaptığı şey, bir anlamda, ileri hamleleri düşünmeden ve tahta pozisyonlarını değerlendirmeden go oynamak olmuş. Amatör seviyeden ileri gidebilmek için AlphaGo’nun bu pozisyonların değerini hesaplayabilen bir yönteme ihtiyacı vardı.
Geliştiricilerin bu engeli aşmak için ortaya attıkları ana fikir, verilen bir tahta pozisyonunun kazanabilme ihtimalini tahmin edebilmesi için AlphaGo’nun kendine karşı oynamasıydı. Bu kazanma ihtimali, pozisyonun kabaca bir değerlemesini yapmaya olanak sağlıyordu (AlphaGo bu fikrin biraz daha karmaşık bir halini kullanmış.). AlphaGo daha sonra bu değerleme yaklaşımıyla oyunun birçok olası gidişatı üzerinde yapılan arama işlemini birleştirmiş. Bu arama algoritması, ağın daha olası gördüğü gidişatlara daha meyilli bir algoritma. Bundan sonra ağ, en yüksek tahta değerlemesine götüren hamleyi seçiyor.
Buradan anlıyoruz ki AlphaGo, Deep Blue’nun aksine, işe detaylı bir go bilgisine dayalı değerleme sistemiyle başlamamış. Bunun yerine, binlerce oyunu analiz ederek ve kendine karşı oynayarak, her biri çok küçük ve kademeli gelişme sağlayan milyarlarca çok küçük ayarlamayla bir sinir ağı yaratmış. Bu da AlphaGo’nun, iyi bir go oyuncusunun farklı tahta pozisyonlarının değerleriyle ilgili sezgisine benzeyen bir değerleme sistemi oluşturmasına yardımcı olmuş.
Bu anlamda, AlphaGo Deep Blue’dan çok daha radikal diyebiliriz. Bilgisayarlar, bilgisayarbiliminin ilk zamanlarından beri, bilinen fonksiyonların optimize edilmesi için yollar aramada kullanılagelmiştir. Deep Blue’nun yaklaşımı, karmaşık, fakat halihazırda var olan satranç bilgisini ifade eden fonksiyonların optimize edilmesini amaçlayan bir arama algoritması oluşturmaktı. Bu aramayı nasıl yaptığı konusunda oldukça zekiydi, fakat yine de 1960’larda yazılmış çoğu programdan pek de farklı değildi.
AlphaGo daha akıllıca bir arama stratejisine sahip olsa da, o da arama ve optimize etme yöntemlerini birlikte kullanıyor. Yeni ve alışılmadık olan, bir önceki aşama. Bu aşamada, bir tahta pozisyonunun iyi olduğunu sezmeye yardımcı olacak fonksiyonu öğrenmek için bir sinir ağı kullanıyor. AlphaGo’nun bu kadar yüksek seviye bir oyun çıkarmasını sağlayan şey bu iki aşamanın bir arada kullanılmasıydı.
Yapay zekâ ve sezgi
Sezgisel örüntü tanımaya benzer bir şey yaratan bu yeteneğe bir dönüm noktası diyebiliriz. Bu ayrıca daha büyük bir akımın da parçası. Önceki çalışmalardan birinde(2), AlphaGo’yu da yaratan Google DeepMind, 49 klasik atari 2600 video oyununu oynamayı öğrenen bir sinir ağı yaptı. Bu sinir ağı, çoğu zaman uzman seviyedeki insanların erişemediği seviyelere çıkmayı başarmış. Bu sorunun çözümü için klasik yaklaşım kullanılsaydı, DeepBlue’nun tarzına benzer bir yöntem kullanılırdı. Yani, programcı her bir oyunu ayrı ayrı analiz edip, oynamak için gerekli kontrol stratejilerini çözmeye çalışırdı.
Buna karşın DeepMind’ın sinir ağı çok sayıda oynama şeklini incelemiş. Başlangıçta, daha çok yeni öğrenen bir insan gibi amaçsızca ve agresif bir şekilde kontrolsüz hamleler yapıyormuş. Fakat ağ bazı durumlarda şans eseri zekice hamleler gösteriyormuş. Bir yerden sonra, iyi hamle dizilerini fark edebilmeyi, başka bir deyişle yüksek skora götüren hamle dizilerini, AlphaGo’nun yönteminden pek de farklı olmayan bir şekilde öğrenmiş. Bundan sonra ağ, davranışını pekiştirip, seviyesini kademeli şekilde artırmış.
Sinir ağlarının sezgi ve örüntü tanıma yetileri başka yerlerde de kullanılıyor. 2015’te Leon Gatys, Alexander Ecker ve Matthias Bethge arxiv.org’da bir çalışma(3) yayımladılar. Çalışmada bir sinir ağının sanatsal stilleri öğrenip bu stilleri başka resimlere uygulaması için bir yöntem tanımlanıyor. Fikir oldukça basit: Ağa çok fazla sayıda resim gösterilerek, benzer stile sahip resimleri fark edebilme yetisi kazanması sağlanıyor. Daha sonra ağ, bu stili başka resimler üzerine uygulayabiliyor. Resim 1’de, Vincent van Gogh’un stili (ortada) Eyfel Kulesi fotoğrafına (solda) uygulandığında, ortaya çıkan resmi (sağda) görebilirsiniz.
Ortaya çıkan sonuç sanatsal olarak çok büyük bir değer taşımasa da, bir sinir ağının sezgiselliği yakalayabilmesi ve bunu başka yerlere uygulayabilmesi adına dikkate değer bir örnek.
Sinir ağları, sezgiselliği yakalayabilmek ve örüntüleri fark edebilmek için geçtiğimiz birkaç yıl boyunca birçok alanda kullanıldı. Bu ağları kullanan, sanatsal stili tanıma veya iyi bir bilgisayar oyunu stratejisi geliştirme gibi birçok proje doğada da görülebilir. Fakat sezgiselliği ses ve dil gibi çok farklı alanlarda simüle eden çok çarpıcı ağ örnekleri de var.
Bu çok yönlülükten dolayı AlphaGo’yu devrimsel bir yenilikten ziyade, sezgiselliği yakalayabilen ve örüntüleri tanımayı öğrenebilen sistemler inşa edebilme yetisi gibi çok önemli bir gelişmenin öncüsü olarak görüyorum. Bilgisayar bilimcileri onlarca yıldır, pek ilerleme kaydedemeden bunun üzerinde çalışıyorlar. Fakat sinir ağlarının bu başarısı sayesinde artık bilgisayarlarla çözebileceğimiz problem türleri bir hayli artacak gibi.
Bu noktada sevinip, yapay zekânın sadece birkaç yıl uzağımızda olduğunu söylemek cazip gelebilir. Düşünme tarzını, sezgisel düşünme ve bilgisayarların iyi olduğunu bildiğimiz mantıksal düşünme olarak ikiye ayırdığınızı farz edin. Eğer AlphaGo ve benzeri sistemleri, bilgisayarların sezgiselliği simüle edebileceğinin kanıtı olarak görürsek, tüm detaylar halledilmiş gibi duruyor. Yani bilgisayarlar artık hem mantıksal hem sezgisel davranış gösterebilir. Elbette bu da yapay zekânın eli kulağında olduğunu gösterir.
Fakat burada teorik bir hata var. Birçok farklı zihinsel süreci aynı kefeye koyup, hepsine birden “sezgi” diyoruz. Sinir ağlarının spesifik bir durumda sezgiselliği yakalayabilmesi, başka durumlarda da aynı şekilde başarı göstereceği anlamına gelmiyor. Belki de bizim sezgisellik gerektiriyor diye düşündüğümüz başka işlerde bu kadar büyük bir başarı gösteremeyecek.
Yapay sinir ağları yanıltılabilir mi?
Aslına bakarsak, sinir ağlarıyla ilgili bilgimiz ve algımız oldukça zayıf. Örneğin, 2014’teki bir çalışma(4), sinir ağlarının nasıl yanıltılabileceğini gösteren “karşı örnekler” gösteriyor. Araştırmacılar, resim tanımada çok iyi olan bir sinir ağını kullanarak işe başlamışlar. İlk başta sinir ağlarının örüntü tanıma yeteneğinin klasik başarısını görmüşler. Fakat daha sonra resimlerde çok küçük değişiklikler yaparak sinir ağını kandırmanın mümkün olduğunu gösteriyorlar. Örneğin ağ, Resim 2’de solda görülen resmi doğru bir şekilde tanımlayabiliyor. Araştırmacılar bu resme ortadaki gibi çok küçük desenler eklediğinde, ortaya çıkan resim (sağda) orijinalinden ayırt edilemiyor olmasına rağmen, ağ bu resmi yanlış bir şekilde sınıflandırıyor.
Halihazırda var olan sistemlerin kısıtlamalarından biri de, öğrenmek için çok fazla sayıda örneğe ihtiyaç duymaları. Örneğin AlphaGo, insanlar tarafından oynanmış 150.000 oyun üzerinden öğrenme işlemini gerçekleştirdi. Bu çok büyük bir sayı. Buna karşın, insanlar çok daha az sayıda oyun oynayarak iyi bir seviyeye gelebiliyor. Benzer şekilde, resim tanıyan ve işleyen ağlar genellikle milyonlarca örnek resim üzerinden öğrenme işlemini gerçekleştiriyor. Bu örnek resimlerin her biri, resmin türüyle ilgili bilgiyi de içeriyor. Yani burada önemli nokta, daha az insan üretimi veriyle ve veriye dair daha az bilgiyle daha iyi sonuçlar üretebilen sistemler yaratabilmek.
Bununla birlikte, AlphaGo tarzı sistemler gerçekten heyecan verici. İnsan sezgiselliğinin en azından bazı biçimlerini üretebilmek için bilgisayar sistemlerini nasıl kullanmamız gerektiğini öğrenmiş olduk. Önümüzde bizi bekleyen çok fazla zorlu görev var: temsil edebileceğimiz sezgisel davranış türlerini artırmak, sistemleri kararlı hale getirmek, neden ve nasıl çalıştıklarını anlamak ve bunları, bilgisayar sistemlerinin var olan güçlü yönleriyle birleştirebilecek daha iyi yollar bulmak. Acaba matematiksel ispat yapmaya veya hikâye yazmaya varan bazı sezgisel yargıları temsil edebilmeyi öğrenebilecek miyiz? Görünen o ki, yapay zekâ açısından son derece umut vaat eden bir zaman dilimi içerisindeyiz.
Dipnotlar
1) http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html
2) http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html
3) http://arxiv.org/abs/1508.06576
4) http://arxiv.org/abs/1312.6199