Aracı, ardışık durum sırasını izlemezse, bir sorunu MDP olarak nasıl modelleyebilirim?

Dec 31 2020

Benim sorunumda, temsilci durumların birbirini izleyen sırasını takip etmiyor, ancak $\epsilon$-bir öncelik kuyruğundan en iyi çifti (durum, eylem) çözer. Daha spesifik olarak, temsilcim bir eyalete gittiğinde$s$ ve mevcut eylemlerini açar $\{ a_i \}$, sonra her birini tahmin eder $(s,a)$çifti (DQN ile regresyon) ve kuyruğa kaydeder. Temsilcimin durumu değiştirmesi için$s'$, mevcut eylemlerden birini takip etmek yerine kuyruktan en iyi çifti seçer $\{ a_i \}$ nın-nin $s$. Bir devletin diğerlerinden kısmen farklı bir eylem setine sahip olduğunu not ediyorum.

Ancak, bu şekilde, temsilcim ardışık durum sırasını izlemezse MDP'mi nasıl modelleyebilirim?

Daha spesifik olarak, birkaç tohum URL'sinin girdisine sahip odaklanmış bir tarayıcım var. Tohumlarla mümkün olduğunca çok sayıda alakalı URL çıkarmak istiyorum. RL çerçevesini aşağıdaki gibi modelliyorum.

  • Durum: web sayfası,
  • Eylemler: eyalet web sayfasının çıkış URL'leri,
  • Ödül: Harici kaynaktan web sayfası içeriğinin alakalı olup olmadığını biliyorum.

Sorun şu ki, aracı sürünürken, ardışık durum geçişini izleyerek ilerlemeye devam ederse, sürünen tuzaklara veya yerel optimaya düşebilir. Taramada öncelik sırasının önemli kullanılmasının nedeni budur. Sürünen ajan artık ardışık durum geçişleri sırasını izlemez. Her durum-eylem çifti, tahmini eylem değeriyle birlikte öncelik sırasına eklenir. Her seferinde, kuyruktaki tüm çiftler arasında en umut verici durum-eylem çiftini seçer. Her bir URL eyleminin, çıkarıldığı eyalet web sayfası dikkate alınarak tahmin edilebileceğini unutmayın.

Yanıtlar

1 FedericoMalerba Jan 03 2021 at 15:38

Temelde probleminiz, bu ortamda durum ve eylemlerin ne olduğunu karıştırmanızdır. Web sayfaları sizin eyaletleriniz değildir; senin durumudur tüm öncelik sırası (website-outlink)çiftleri + (new_website-outlink)çiftleri. İşleminiz, hangi çifti seçtiğinizdir.

Şimdi bu, değişken boyutlu bir durum uzayı ve aynı zamanda değişken boyutlu eylem alanı problem ayarıdır. Bununla uğraşmak belirterek başlamak sağlar state==observationihtiyacı olmayan (genel olarak) olmak. Öyleyse gözlemin nedir? Gözleminiz değişken boyutlu bir gruptur:

  1. (website-outlink)çiftler veya
  2. next_website(burada her next_websitebiri karşılık gelen çifti tarafından belirlenir)

Bu gözlemlerin her ikisi de işe yarayabilir, birini veya diğerini seçmek, temsilcinizin "hangi bağlantıları açmadan önce açması gerektiğini" veya "hangi bağlantıların anlamlı olduğunu (açtıktan sonra)" öğrenmesini isteyip istemediğinizle ilgilidir.

Öncelik kuyruğunuzun esas olarak yaptığı şey, sadece aşağıdaki gibi düzgün bir numara eklemektir:

  • Durumu düzenli tutmanın hesaplama karmaşıklığını kaydeder (durumunuzun bir websitedeğil, listesi / grubu olduğunu unutmayın website-outlink)
  • Eylemlerinizin her biri için Q değerlerini gereksiz yere yeniden hesaplamaktan kaçınır (bir eylemin bir outlink new_websiteseçmediğini, kuyruktaki tüm mevcut seçeneklerden bir outlink seçtiğini unutmayın )

Bununla birlikte, ikinci tasarrufu gerçekten elde etmek için her bir çift için Q değerlerini saklamanın çok önemli olduğunu unutmayın !!!

Unutulmaması gereken son önemli nokta, bir Yeniden Oynatma Arabelleği kullandığınız bir senaryoda (muhtemelen bir DQN seçmiş olduğunuza göre), RB'den öğrenirken öncelik sırasını kullanamazsınız. Nedenini görmek için (ve öğrenme süreci aslında nasıl göründüğünü ayrıntılı olarak görmek için), Q-değeri güncellemeler formülle verilmesini hatırlayarak başlamak burada ; eyaletiniz s_tbir (yarı sıralı 1 ) çiftler grubudur. Q(s_t, a_t)üzerinde DQN gerileme çalışan sadece çıkışı sadece (bu toplu en iyi web sitesi / çifti varbu durumdan hangi eylemin alındığı konusunda tutarlı olmak için, RB'ye geçişler eklerken en iyi seçeneği belirtmek için bir indeks eklemek). Eğer olur ancak optimum gelecek değerinin tahminini hesaplamak için gereken sonraki durumda her web sitesi / çiftinin Q-değeri recompute. RB'den eğitim alırken öncelik sırasını KULLANAMAZSINIZ.

1 Son web sitesine bakarken içinde sahip olduğunuz tüm web siteleri için öncelik sırasına sahipsiniz, ancak new_website-outlinkşu anda eklediğiniz tüm çiftler henüz sipariş edilmemiştir. Yine de aracıyı üzerlerinde çalıştırmanız gerekir ve ardından bir sonraki durumu oluşturmak için onları öncelik sırasının geri kalanıyla birlikte sipariş edebilirsiniz ( new_new_website-outinkçiftleriniz olacağı için hala sıralanmayacaktır ).