AlphaGo'nun politika ağı ile değer ağı arasındaki fark


25

Google’ın AlphaGo’su hakkında yüksek düzeyde bir özet okuyordum ( http://googleresearch.blogspot.co.uk/2016/01/alphago-mastering-ancient-game-of-go.html ) ve "politika" terimlerini karşıladım ağ "ve" değer ağı ". Yüksek düzeyde, politika ağının hareketler önermek için kullanıldığını ve değer ağının "Arama ağacının derinliğini azaltın (ve her yere arama yapmak yerine kazananı tahmin etmesini) kullanıldığını biliyorum. oyunun sonu."

Bu iki ağ bana gereksiz geliyor. Politika ağı politikalarını budamak için değer ağını kullanmıyorsa ne yapıyor? Değer ağının derin bir öğrenme sinir ağı olduğu açıktır; politika ağı sadece teorik bir soyutlama değil, gerçek bir sinir ağı mı? Değer ağı için hedef değişken kazanç / kayıp gibi görünüyor. Politika ağı için bir hedef değişken var mı; öyleyse, bu nedir? Politika ağı neyi optimize etmeye çalışıyor?

Google’ın Nature’da yayınlanan makalesinin pdf’sini burada bulabilirsiniz: https://vk.com/doc-44016343_437229031?dl=56ce06e325d42fbc72


Kısa bir not olarak: Politika ağı için hedef değişken bir olasılık dağılımıdır. Gazeteden: "Bu sinir ağı (değer ağı) politika ağına benzer bir
yapıya sahip

3
Eğer bu eski soruya başkası baskın gelirse, benim gibi, AlphaGo'nun halefi "AlphaGo Zero" ve onun halefi "AlphaZero" nun gerçekten fazlalıktan kurtulduğunu ve bunun sonucu olan ONE ağını eğiterek gerçekten fazlalıktan kurtulduğunu bilmek sizi memnun edecektir. Hem politika ağının (muhtemel hamlelere olasılık dağılımı verir) hem de değer ağının (yönetim kurulu verilen kazanma olasılığını verir) işlevlerini yerine getirir. Blog yazısı buraya: deepmind.com/blog/alphago-zero-learning-scratch ve makale içinde bağlantılı.
Kevin Wang

Yanıtlar:


11

Kısacası, her bir ağın bahsettiğiniz şekilde farklı bir amacı vardır:

  • Değer ağı, ağaç arama derinliğini azaltmak için yaprak düğümlerinde kullanıldı.
  • Politika ağı, aramanın genişliğini bir düğümden azaltmak için kullanıldı (gelecek vaad eden eylemlere doğru yol gösteren).

Genel olarak, en uygun politikayı bulmak için değer işlev yöntemlerini kullanabilir veya parametreli bir politika işlevini optimize etmek için doğrudan politika alanında arama yapabilirsiniz (tabii ki artıları ve eksileri vardır). Her durumda fonksiyon yaklaşık değerlerini (örn. Derin Ağlar) kullanabilirsiniz. Politika ağı ile ilgili esas olarak kafanızın karıştığını görüyorum, bu yüzden cevabımı buna yoğunlaştırıyorum.

Politika ağı ilk önce:

İnsanın büyük olasılıkla bir tahtaya verilen hareketi yapması için eğitilmiş (bu nedenle giriş bir tahta halidir ve çıktı, bu durumda verilen her bir eylemin olasılığını gösteren bir histogramdır). Ağ, eşlemenin altında yatan olasılık fonksiyonunu durumlardan eylemlere kadar yaklaştırabilir. Sonuçta politikanızı mevcut verilerden oluşturmaya başlamayı düşünmek mantıklıdır. Uzmanlar kullanılarak yapılan denetimli eğitimlerden sonra, politika net oyunu oynayabilir (yüksek lisans seviyesine rağmen). Basitçe, profesyonel oyuncuların genel eylem modelini yakalamaya çalıştınız.

Sonra,

Daha önce öğrenilmiş olan politikayı optimize etmek için rakibin kendisiyle yapılan oyunlarda eğitildi. Bu kez ağırlıkları REINFORCE algoritması kullanılarak güncellendi. Bunu yaparak, beklenen kazancı en üst düzeye çıkarmak için net parametreleri güncellersiniz. Sonunda sadece profesyonel bir oyuncu gibi eylemleri seçen değil, aynı zamanda oyunu kazanma yönünde bir net seçen var (Ancak planlayamaz!).

Bu aşamadan sonra, öğrenilen politikanın biraz daha gürültülü bir versiyonunun değer fonksiyonuna regresyon yoluyla yaklaşıyorlar (girdi, durum panosu ve oyunun sonucunu hedef alıyor). Yaprak düğümü değerlendirmesini etkilemek için bu ağı kullanabilirsiniz.

Kavramsal olarak konuşursak, politika ağı size eylemler konusunda bir olasılık verir, ancak bu, oyunu kazanmak için iyi bir sonuçta kalacağınızı göstermez. AlphaGo'nun bazı "kör noktaları" vardı ve turnuva sırasında bazı kötü hamleler yaptı, ama aynı zamanda bir insanın asla düşünemeyeceği olağanüstü bir hamle yaptı.

Sonunda, planlama algoritmanızı (MCTS) bu ağlarla birlikte kullanabilirsiniz. Neden bütün bu adımları attık? Kısaca, herhangi bir "sezgisi" olmayan basit MCTS başarısız olabilirdi.


Aktör-Eleştirmen hakkında bir şeyler öğrendikten ve saf Değere Dayalı Politikaya dayalı yöntemler arasındaki maliyetleri / faydaları nasıl telafi ettiğini bu soruya geri dönüyordum. Bence bu cevap bu detayı açıklamaya en yakın geliyor, ancak David Silver'ın konuşmasında çok iyi ele alındı : www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/pg.pdf (7. ders, bu YouTube’da da mevcuttur - youtube.com/… ).
Neil Slater

Saf MCTS temelli yaklaşımların olsa başarılı olduğu görülmüştür, bu nedenle daha geniş bir bağlamda başarısız olacağını söyleyemem.
Zimano

1
Ben sadece Go oyunu ve aynı zamanda Master oyun seviyesine ulaşma durumundan bahsediyorum. Aslında David Silver (diğer araştırmacılar gibi) doktorasından beri MCTS ile Go oyununu çözmeye çalışıyordu. Ancak, yukarıdaki yöntemlerin bir araya gelmesine kadar hiçbir şey en yüksek düzeyde rekabet edemezdi.
Constantinos

9

İşte benim iki farklı ağı anlamada özlü düşünce sürecim.

Her şeyden önce, amaç, kesinlikle zor olan kapsamlı bir arama kullanmadan en uygun çözümü (ya da en yakınına) bulmaktır.

Pozisyon veya durum başına, N hamle mümkün olacak ve her hamlede tam bir arama ağacında kendi derinliği D olacaktır. Tüm yollardan geçmek ve en uygun çözümü bulmak teorik ya da matematiksel olarak mümkün. Ancak, tam bir arama yapmak istemiyoruz.

Şimdi bir yaklaşım yaklaşımı geliştirmek için iki ayrı soru var.

S1. Her pozisyon için N'den bazı hareketleri nasıl atlayabilir veya ihmal edebiliriz? (yani, nefes azaltma)

S2. Optimal bir çözüm bulamadıkça, oyunun sonuna kadar yürümek yerine bir arama ağacında ara derinlikte nasıl durabiliriz? (yani, derinlik azaltma)

Politika ağı temel olarak N'den faydasız hareketleri filtrelemek için tasarlanmıştır, ancak optimal bir çözüm bulamadı. Burada bu ağ başlangıçta insan uzman hareketlerine, yani SL'ye dayanır ve daha sonra RL tarafından geliştirilir.

Değer ağı temel olarak tam bir arama yapmadan kazanma olasılığını bulmak için tasarlanmıştır.

Bu iki ağın en uygun çözümü bulma konusunda ortak bir hedefi vardır, ancak her stratejik seçimde, her ağ farklı bir rol oynar.

Umarım bu yardımcı olur. Hala yüksek bir seviyede olacağını biliyorum.


İki yönlü açıklamanız çok özlü
Tim

6

OP'nin AlphaGo'yu alfa-beta ile karıştırdığını düşünüyorum. Alfa-beta'da, budama işlemine yardımcı olmak için politika ağını gerçekten kullanırsınız, ancak burada değil. Yine, algoritma Monte-Carlo ağaç aramasına (MCTS) dayandığı için budama yoktur.

Cevabımın çok uzun olduğunu düşünen herkes, iki ağın neden gereksiz olmadığını belirttiğim özet bölümüne geçebilir.

Aşağıdaki örnekte, fikirlerimin daha kolay anlaşılmasını sağlamak için bazı basitleştirmeler yapacağım.

Örnek:

İki yasal hareketin olduğu bir konum olduğunu hayal edin. İlk hamle, sizin için bir kayıptır, ancak ikinci hamle size bir kazanç avantajı sağlar

  • İlk hamle: sizin için zorla kaybı
  • İkinci hamle: sizin için zorla kazanmak

Değerlendirme ağı

Google'ın size sunduğu değerlendirme ağının mükemmel olduğunu varsayalım. Örneğimizdeki herhangi bir yaprak konumunu mükemmel şekilde değerlendirebilir. Örnek olarak değer ağımızı değiştirmeyeceğiz.

Örneğimizi basitleştirmek için, değer ağımızın verdiğini varsayalım:

  • Sizin için bir kayıp olan herhangi bir yaprak pozisyonu için -1000
  • Herhangi bir yaprak pozisyonu için +1000.

Politika ağı

Google’ın size iki politika ağı sağladığını varsayalım. Konumumuz için yaratılan olasılıklar:

  • İlke 1: Taşıma 1 için 0.9 ve Taşıma 2 için 0.1
  • İlke 2: Hareket 1 için 0,2 ve Hareket 2 için 0,8

İlk politika ağımızın, örneğimiz için yanlış önceden olasılık verdiğini unutmayın . Kaybeden bir hareket olan hamle 1 için 0,9 verir. Bu iyi, çünkü Google bile mükemmel bir politika ağı geliştiremedi.

İlk politika ağıyla oynamak

AlphaGo'nun Monte-Carlo ile bir simülasyon yaratması gerekiyor ve 1 veya 2 numaralı hamleyi seçmesi gerekiyor. Şimdi, AlphaGo düzgün dağılmış bir rasgele değişken çiziyor ve seçecek:

  • Rastgele sayı <= 0,9 ise 1 taşıyın
  • Rasgele sayı> 0.9 ise 2

Bu yüzden AlphaGo'nun kaybolan hareketi simüle etmek için seçmesi çok daha muhtemeldir (ilk simülasyonumuzda). İlk simülasyonumuzda, simülasyon için bir puan almak için değer ağını da kullanacağız. Gazetede, bu:

görüntü tanımını buraya girin

Bu değer -1000 olacaktır, çünkü bu simülasyon bir kayba yol açacaktır.

Şimdi, AlphaGo'nun ikinci simülasyonu oluşturması gerekiyor. Yine, ilk hamlenin seçilmesi çok daha muhtemeldir. Fakat nihayetinde ikinci hamle de seçim olacaktır:

  • İkinci hamle için önceliğimiz, sıfır değil, 0.1'dir.
  • AlphaGo, fazlaca araştırılmayan hareketleri denemek için teşvik edilir. Makalede, bu denklem ile yapılır:

görüntü tanımını buraya girin

NHareket için aranan hareketlerin sayısı olduğunu ve bunun payda olduğunu unutmayın. İlk hareketimiz aranma olasılığı ne kadar yüksek olursa, uişlev o kadar küçüktür . Böylece, ikinci hamlememizi seçme olasılığı artar, çünkü AlphaGo aslında bu denklemden bir hamle alır:

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Bu anahtar denklemdir. Lütfen dikkatlice bakın:

  • PÖnceki olasılık için bir terim vardır (politika ağı tarafından verilen)
  • QDeğerlendirme puanları için bir terimi vardır (değer ağı tarafından verilen)

Şimdi, ikinci hamlemizin sonunda seçileceğini biliyoruz. Bu gerçekleştiğinde, değer ağı +1000 verir. Bu artacak Q, ikinci hamleyi daha sonraki simülasyonlarda daha muhtemel olarak seçti.

Yeterli simülasyon verildiğinde, ikinci hareketin simülasyon için seçilme sayısı ilk hareketin seçilme sayısından fazla olmalıdır.

Son olarak, AlphaGo'nun yapmaya karar verdiği hareket şudur: (kağıttan alıntı):

Arama tamamlandığında, algoritma en çok ziyaret edilen hareketi kök konumundan seçer.

İkinci politika ağıyla oynamak

İkinci politika ağımız, hamle 2'yi seçmek için daha az yinelemeye ihtiyaç duyacaktır, çünkü politika ağı tarafından verilen öncelikli olasılık ilk önce doğrudur.

Uyarılar

Buradaki her şey Bayesiananalize çok benzer . Öncelikli bir olasılıkla (politika ağı tarafından verilen) başlıyoruz, sonra olasılık bozulmasını (değer ağı tarafından verilen) taşımak için veri üretiyoruz.

Özetler

  • Politika ağı, Monte-Carlo araştırmasının ne yapması gerektiğini yönlendirmek için önceki olasılıkları oluşturmak için kullanılır.
  • Değer ağı, politika ağını doğrulamak için veri üretmek için kullanılır. Politika ağı kötüyse, AlphaGo'nun bir araya gelmesi için daha fazla hesaplama kaynağına ihtiyacı var (eğer varsa).
  • Bayes analizi gibi düşünebilirsiniz.

Bunun iç mekanizmalar hakkında daha derin bir içgörü sağladığını düşünüyorum. İki ağın neden açıklanıp açıklanmadığından hala emin değilim. Sahip olduğum konu "değerlendirme ağını varsaymak ... mükemmeldir". Durum buysa, politika ağı gerçekten de gereksiz. Sadece bir hamle ileriye bakın (tüm olası hamleler için) ve en iyi değer ağı değerlendirmesine sahip olanı seçin. Tabii ki değer ağı mükemmel değil ve oyunda ilerledikçe daha doğru hale geldiğinden şüpheleniyorum. . . fakat bunun ne kadar doğru / yararlı olduğunu veya bu cevabı tamamlayıp tamamlamadığını bilmiyorum.
Neil Slater

@NeilSlater Tamam. Ağlar mükemmel değil, fakat buradaki nedenler hala iyi, sadece daha fazla MC simülasyonuna ihtiyacımız var.
SmallChess

@StudentT Bazı kilit denklemlerin güzel açıklaması Küçük bir değişiklik yapardım: Monte Carlo Ağacı Aramasındaki pozisyonunu anlamak için "On adım ileride görmeniz gerekir" demenin pek bir anlamı yoktur. MCTS, derinlik ilk ispat numarası araştırmasıdır ve satrançta yinelemeli derinleşmeyle olduğu gibi sabit derinliklere hiç ulaşamıyoruz. Oyunun bitiminden önce düğümlerin değerlendirmesini yapmamıza izin veren değer ağıyla bile, yine de bunlara geniş kapsamlı bir şekilde ulaşmıyoruz ve düğümlerin min-max değerlendirmesi yok, vb.
Imran

@Imran Gönderimi düzenlemek için çekinmeyin.
SmallChess

3

Politika Ağı : Oyuna belirli bir Girdi vererek kesin bir çıktı vermeyi öğrenen Ağ, Politika Ağı olarak bilinir.

Değer Ağları : Değer ağı, mevcut durum için beklenen bir toplam puanı hesaplayarak, oyunun durumuna değer / puan atar s. Her durum değer ağından geçer. Daha fazla ödül alan devletler ağda daha fazla değer kazanıyor.

Animasyonlarla daha iyi anlama Buraya gidin: Politika Ağları ve Güçlendirme Öğreniminde Değer Ağları

görüntü tanımını buraya girin


0

Anladığım kadarıyla farklılık çıktılarda. Politika ağının olası hareketler üzerinde bir olasılık dağılımı oluşturduğu durumlarda, değer ağı, bu pano konfigürasyonuna göre kazanma olasılığı olarak yorumlanabilecek gerçek bir değer döndürür. Oradan Monte-Carlo ağacı araştırması, en üstteki K hareketlerinden alarak ve daha sonra en üstteki K değeri ağ çıkışlarını alarak arama ağacını daraltarak gerçekleştirilir.

Yanılıyorsam beni düzeltmek zorunda hisset.


2
Yanlış değilsin AFAIK, ama bunun soruyu cevapladığını sanmıyorum. OP, RL'deki değere dayalı veya politikaya dayalı bir model arasındaki farkın farkında gibi görünüyor. İki yaklaşımın aslında farklı çıktıları var. Ancak, ikisini birden değil, birini veya diğerini görmek daha yaygındır ve iki model genellikle S'nin şu an olduğu durum olan "Value_maxarg (S ') == Policy_maxarg (S, A)" için fazladandır. almak ve S 'ortaya çıkan bir durumdur. Diğer bir deyişle, her zamanki RL kurulumundaki iki ağ, çıktılar farklı olsa bile aynı sonucu verir.
Neil Slater
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.