“Tecrübe tekrarı” nedir ve faydaları nelerdir?


20

Google'ın DeepMind Atari belgesini okuyorum ve "deneyim tekrarı" kavramını anlamaya çalışıyorum. Tecrübe tekrarı diğer pek çok takviye öğrenme makalesinde (özellikle AlphaGo kağıdı) ortaya çıkıyor, bu yüzden nasıl çalıştığını anlamak istiyorum. Aşağıda bazı alıntılar bulunmaktadır.

İlk olarak, veriler üzerinde rasgele dağıtılan, böylece gözlem dizisindeki korelasyonları kaldıran ve veri dağılımındaki değişiklikler üzerinde yumuşayan, biyolojik olarak esinlenmiş bir mekanizma deneyimi yeniden adlandırması kullandık.

Kağıt daha sonra şu şekilde hazırlanır:

Diğer stabil yöntemleri bu tür sinirsel donatılmış Q-yineleme olarak, takviye öğrenme ortamında sinir ağları eğitimi için mevcut olmakla birlikte, bu yöntemler ağlarının tekrarlanan eğitim dahil de novo tekrarlamalar yüzlerce. Sonuç olarak, bu yöntemler algoritmamızın aksine, büyük sinir ağlarında başarılı bir şekilde kullanılamayacak kadar verimsizdir. Bu referans bir değer fonksiyon parameterize ki burada, Şekil 1 'de gösterilen derin konvolüsyonel sinir ağı kullanılarak. tekrarda S ağ parametreleri (yani, ağırlık) olan . Deneyim replay gerçekleştirmek için, ajan deneyimleri depolamak her bir zaman basamağı, enS(s,bir;θben)θbenbenet=(st,birt,rt,st+1)t veri kümesinde . Öğrenme sırasında , depolanan örnek havuzundan rastgele rasgele çizilen deneyim örneklerine (veya mini gruplarına) Q-öğrenme güncellemelerini uygularız . Yineleme Q-öğrenme güncelleme aşağıdaki kaybı fonksiyonunu kullanır:Dt={e1,...,et}(s,bir,r,s')~U(D)ben

Lben(θben)=E(s,bir,r,s')~U(D)[(r+γmaksimumbir'S(s',bir';θben-)-S(s,bir;θben))2]

Tecrübe tekrarı nedir ve Laymen'in terimleriyle faydaları nelerdir?

Yanıtlar:


26

Alıntılanan metnin anahtar kısmı:

Deneyim tekrarı yapmak için temsilcinin deneyimleriniet=(st,birt,rt,st+1)

Bu, simülasyon veya gerçek deneyim sırasında gerçekleşen durum / eylem çiftlerinde Q-öğrenme çalıştırmak yerine, sistem [durum, eylem, ödül, sonraki_stat] için keşfedilen verileri - genellikle büyük bir tabloda saklar. Bunun ilişkili değerleri kaydetmediğini unutmayın - bu, daha sonra eylem değeri hesaplamalarına beslenecek ham verilerdir.

Öğrenme aşaması daha sonra mantıksal olarak tecrübe kazanmaktan ve bu tablodan rastgele örnekler almaya dayanır. Politikayı geliştirmek, eylemleri en uygun olanlara yakın olanları keşfetmesi gereken farklı davranışlara yol açacak ve bunlardan öğrenmek isteyeceğiniz için, oyunculuk ve öğrenme gibi iki süreci bir araya getirmek istiyorsunuz. Bununla birlikte, bunu istediğiniz gibi bölebilirsiniz - örneğin bir adım atın, üç rastgele önceki adımdan öğrenin. Deneyim tekrarını kullanırken Q-Learning hedefleri çevrimiçi sürümle aynı hedefleri kullanır, bu nedenle bunun için yeni bir formül yoktur. Verilen kayıp formülü, deneyim tekrarlaması olmadan DQN için kullanacağınız formüldür. Fark sadece hangi bunu içine beslemek a', a, r s s.

DQN'de, DeepMind ekibi de iki ağı sürdürdü ve hangisinin öğrendiğini ve hangisinin mevcut eylem değeri tahminlerinde "bootstraps" olarak beslendiğini değiştirdi. Bu, doğrusal olmayan bir fonksiyon tahmincisi kullanılırken algoritmanın kararlılığına yardımcı oldu. çubuğun anlamı budur - ağırlıkların alternatif dondurulmuş versiyonunu gösterir .θben ¯

Deneyim tekrarının avantajları:

  • Onunla birçok kez öğrenerek önceki deneyimlerin daha verimli kullanımı. Bu, gerçek dünya deneyimini kazanmak maliyetli olduğunda anahtardır, tam olarak kullanabilirsiniz. Q-öğrenme güncellemeleri artımlıdır ve hızlı bir şekilde birleşmezler, bu nedenle aynı verilere sahip çoklu geçişler, özellikle aynı durum, eylem çifti göz önüne alındığında, acil sonuçlarda (ödül, sonraki durum) düşük sapma olduğunda faydalıdır.

  • Bir fonksiyon tahmincisini eğitirken daha iyi yakınsama davranışı. Kısmen bunun nedeni, verilerin daha çok denetimli öğrenme yakınsama kanıtlarında varsayılan verilere benzemesidir .

Deneyim tekrarının dezavantajı:

  • Önyargı (önyükleme nedeniyle) ve varyans (uzun vadeli sonuçlardaki gecikmeler ve rastgelelik nedeniyle) arasında denge kurarak daha iyi öğrenme eğrileri verecek şekilde ayarlanabilen Q ( ) gibi çok adımlı öğrenme algoritmaları kullanmak daha zordur ). Deneyim tekrarı olan çok adımlı DQN DQN, Rainbow: Derin Güçlendirme Öğrenimindeki Geliştirmeleri Birleştirme makalesinde incelenen uzantılardan biridir .λ

DQN'de kullanılan yaklaşım , bu video dersinin bazı bölümlerinde David Silver tarafından kısaca özetlenmiştir (01:17:00 civarında, ancak ondan önceki bölümleri görmeye değer). Vaktiniz varsa takviye öğrenimi konusunda yüksek lisans düzeyinde bir ders olan tüm diziyi izlemenizi tavsiye ederim.


Diyelim ki eğitim sırasında bir eyaletteyiz ve epsilon açgözlü politikaya göre bir eylemde bulunuyoruz ve sonuçta başka bir eyalette oluyorsunuz. Böylece ödüller ve bir sonraki durum elde edersiniz. Burada ödül oyunun puanı olabilir ve eyaletler ekrandaki piksel desenleri olabilir. Ve sonra fonksiyon tahmincimiz ile açgözlü politikadan aldığımız değer arasındaki hatayı zaten dondurulmuş fonksiyon tahmincisini kullanarak alıyoruz. Ancak, yaklaşıklaştırıcıyı optimize ederken deneyim tekrarı ile bazı rastgele durum eylem veri seti alırız. Haklı mıyım?
Şamane Siriwardhana

1
@ShamaneSiriwardhana: Evet bence haklısın. Gerçek yörüngedeki verilerle aynıdır, ancak yalnızca en son adımdan öğrenmek yerine, onu büyük bir tabloya kaydeder ve o tablodan örnek alırsınız (genellikle birden fazla örnek, seçim için önceki adımların 1000'lerinden oluşan bir mağaza ile ). Daha fazla açıklamaya ihtiyacınız varsa, belki de sitede bir soru sorun.
Neil Slater

Evet yine gazeteden geçtim. Ayrıca bu yöntemin politika dışı öğrenmeyi de geliştirebileceğini söylüyor. Çünkü Q'da epsilon-açgözlü politikasına göre hareket etmek, ancak değerleri güncelleme açgözlü politikaya göre hareket eder. Bu nedenle, her seferinde, nöral net parametrelerimiz, tam zamanlı adım istatistikleri ile ilgili olmayan, ancak bundan önce ne olduğu, verilerin ilişkisiz hale getirilmesine yardımcı olan mini parti istatistikleri ile güncellenir.
Şamane Siriwardhana

@Neil Slater, Rainbow gazetesinden geçtim ve deneyim tekrarını ve çok adımlı yöntemi birleştirmek için özel bir hile kullanma konusunda özel bir yorum görmedim. Ayrıca, çok adımlı yöntemin başlangıçta deneyim tekrarı ile birleştirilmesinin imkansız olduğunu duydum, ancak neden deneyim tekrarlamasından 1 yerine rasgele n-ardışık deneyimler seçmiyoruz, ancak her n-deneyim arasında hiçbir korelasyon bulunamadı. Bu çok adımlı deneyim tekrarı değil mi?
StL

@NeilSlater Neden "çok adımlı öğrenme algoritmalarını kullanmak daha zor"? Ne demek istedin?
Gülzar

0

Algoritma (veya Coursera RL kapak taşı projesinde uygulandığı şekliyle en azından bir versiyonu ) aşağıdaki gibidir:

  1. Son #buffer_sizeSARS (Eyalet, Aksiyon, Ödül, Yeni Eyalet) deneyimlerini saklayan bir Tekrar "Tamponu" oluşturun .

  2. Aracınızı çalıştırın ve yeniden (buffer) en az #batch_sizedeneyime sahip olana kadar replay-buffer'da deneyimler biriktirmesine izin verin .

    • S^(s,bir;θ)
  3. Bir kez ulaştığında #batch_sizeveya daha fazlası:

    • S^(s,bir;θ)θS^(s',bir';θ)num_replay

      1. #batch_sizetekrar tamponundan örnek deneyimler.

      2. S^(s,bir)=

    • bunu bir terminal durumuna ulaşıncaya kadar yapın.

    • Replay Buffer'a sürekli yeni deneyimler eklemeyi unutmayın

  4. İhtiyacınız olan sayıda bölüm için yayınlayın.

S(s,bir)S^(s,bir)Σ(S(s,bir)-S^(s,bir))2S(s,bir)=R,t+1+γmaksimumbir'S^(s',bir';θ)R,γ

İşte koddan bir alıntı:

def agent_step(self, reward, state):
    action = self.policy(state)
    terminal = 0
    self.replay_buffer.append(self.last_state, self.last_action, reward, terminal, state)
    if self.replay_buffer.size() > self.replay_buffer.minibatch_size:
        current_q = deepcopy(self.network)
        for _ in range(self.num_replay):
            experiences = self.replay_buffer.sample()
            optimize_network(experiences, self.discount, self.optimizer, self.network, current_q, self.tau)
    self.last_state = state
    self.last_action = action        
    return action
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.