17 Mart 2016

Yapay Zeka, Dünya Go Şampiyonunu 4-1 yendi.



Google'ın yapay zekası AlphaGo, daha önce Avrupa Go Şampiyonu Fan Hui'yi turnuva kuralları çerçevesinde 5-0 yenmeyi başarmıştı. Mart 2016'da yapay zeka AlphaGo bu kez dünya şampiyonu Lee Sedol ile karşı karşıya geldi. Dünya go şampiyonu ile AlphaGo arasında 5 maç oynandı. Müsabakalar öncesinde Lee Sedol kendinden çok emindi, "5-0 ya da 4-1" kazanacağını söylüyordu. Fakat AlphaGo ilk üç maçı kazandı. 4. maçta ise dünya şampiyonu tecrübesini konuşturarak Google'ın yapay zekasını yenmeyi başardı ve durumu 3-1 e getirmiş oldu. Lee Sedol 5 saat süren uzun oyun sonucunda AlphaGo'yu yenmeyi başardığında : "Daha önce hiçbir galibiyetimde bu kadar tebrik edilmemiştim" şeklinde açıklama yaptı. Google yapay zeka ekibinin açıklamasına göre AlphaGo'nun kaybetmesinin sebebi, Lee Sedol'un kurduğu tuzağı anlayamaması. Deep Mind ekibinin lideri Demis Hassabis: "Hata 79. eldeydi ancak AlphaGo bu durumu ancak 87. el civarların farkedebildi." AlphaGo son maçta dünya şampiyonunu yenerek, seriyi 4-1 tamamladı. Ve yeni dünya go şampiyonu ünvanını almış oldu.
AlphaGo'nun başarısı herkesi şaşırtırken, AlphaGo tarafından oyunda yapılan kimi hamlelerin insanlar tarafından düşünülmemiş olduğu ve oyunda standart olarak kullanılan hamleler haline gelebileceği söyleniyor.


 

Peki AlphaGo nasıl bu kadar hızlı öğrenebiliyor? 18 kere dünya şampiyonu olan Lee Sedol'ü nasıl kolayca yenmeyi başardı? AlphaGo'nun yapay zekasını ve öğrenme mekanizmasını biraz daha yakından inceleyelim. Öncelikle AlphaGo tıpkı Kasparov'u yenen DeepBlue gibi Monte Carlo Tree Search algoritmasını kullanıyor. Bu yönteme göre makina bir hamle yapmadan önce olası tüm başlangıç hamlelerini hesaplıyor. Olası her başlangıç hamlesini takiben oluşacak yeni hamleleri de hesaplayarak dallanıp budaklanmış bir arama ağacı oluşturuyor. Arama ağacının son hamlesindeki konuma makina tarafından bir skor atanıyor. En yüksek skoru alan arama ağacı makina tarafından seçilen hamleyi belirliyor. Satrançta bu adımlar go'ya kıyasla daha kolay çünkü olası hamle sayısı daha az ve tahta konumunu puanlamak daha kolay. Ayrıca satrançta taşların değerleri var ve taşların rolleri sayesinde birbirine olan konumları skorlanabiliyor. AlphaGo bu noktada devreye yapay sinir ağlarını sokuyor. Go oyununda olası hamle sayısı fazla olduğu için ağacın dallarını sezgisel olarak budamak çok önemli. AlphaGo bu sorunu KGS Go'da oynanmış amatör ve pro oyunlarını kullanarak çözüyor. Her oyun düzeni için bir sonraki hamleyi tahmin eden bir policy network eğitiliyor. Bunun için de görsel datayı işlemede en yaygın yöntem olan convolutional neural network kullanılıyor. Bu kısım ilginç zira, AlphaGo öncesi iddialardan biri go sezgisel bir oyun olduğu için makineler asla bu sezgiye sahip olamaz şeklindeydi. Policy network sayesinde makine en olası hamleleri arama ağacında dallandırıp zamandan tasarruf ediyor ve daha önceden benzer konumda kullanılmış hamleleri denemeyi tercih ediyor. Satrançtan farklı olarak olası bir konumu skorlamak için elimizde net bir formül olmadığından ağacın yapraklarındakı konfigurasyonların skorlanması için yeni bir çözüme ihtiyaç var. AlphaGo value network ile bu işi çözüyor. 


Yine policy network gibi CNN kullanarak olası konumda kimin kazanacağına dair bir skor üretiyor. Policy network'un ürettiği olası hamlelerin her biri için bir skor var elimizde. Bu skorlamayı öğrenmek için de gerçek oyunlardaki sonuçlar kullanılıyor ve makine kendi kendine oyunlar oynayıp, oyun sonuçlarını ve ara zamanlardaki konfigürasyonları kullanarak value network'u eğitiyor.


Tüm bu karmaşık yapının çalışır hale gelmesi gerçekten çok etkileyici. Yine de şeytanın avukatlığını yapmak gerekirse:
1- Daha önceki go oynayan makinelerin hiç biri bu kadar çok hesaplama gücüne sahip değildi. AlphaGo onlarca gpu/cpu kullanıyor ve onlarca saatlik eğitim almış durumda. Soru şu acaba aynı miktarda efor (insan saati & makine saati) diğer makineler için harcansaydı fark nasıl olurdu?

2- Bir insanın 1 milyon maç yapabilmesi için 40 yıl boyunca günde 70 maç yapması gerekiyor. Acaba aynı miktarda maç deneyimiyle bir insanı yenmek mümkün mü?
3- İnsan faktörünü devreden çıkarıp, tamamıyla kendi kendine oynayan bir makinenin oyun tarzı bir insanınkine benzer miydi? İlk iki maçtaki hamleleri ile bir turing testi yapılsa kimse hangisi makine hangisi insan fark edemezdi. Zira yapılan farklı hamleler bile bir pro'dan beklenecek farklı hamlelerdi (çılgın bir dizi hamle görmedik). Bu durumda kendi kendine öğrenmiş bir makineden yeni fuseki ya da josekiler görmemiz mümkün müdür? Yoksa şu an bilinen hamle dizileri yeterince büyük bir alt küme mi?

Hiç yorum yok:

Yorum Gönderme

Related Posts Plugin for WordPress, Blogger...