Erken Durdurma Tuzağı: RL Çalışmalarımı Öğrenemeden Nasıl Öldürdüm

Erken durdurma (early stopping), öğrenmesini tamamlamış bir modele boşuna işlem gücü harcamanızı engellemek için vardır. Uzun bir süre boyunca, benim işlem gücümü harcayan şey buydu — iyi ajanları daha iyi olamadan öldürerek.

Pekiştirmeli öğrenme (RL) çalışmalarımdan daha fazlası kötü fikirlere değil, kendi erken durdurma kuralıma kurban gitti. Disiplinli olmak için inşa ettiğim acil durdurma düğmesi, sistemdeki en disiplinsiz şey çıktı.

Erken durdurulan, düşüşe geçen gürültülü bir örnek ödül eğrisi; kesik çizgiyle hiç ulaşamadığı tırmanışı gösteren bir devam Açıklayıcıdır, gerçek performans verisi değildir. Ajan normal bir düşüş sırasında durduruldu — tam tırmanışa geçeceği kısmın hemen öncesinde.

Geri tepen acil durdurma düğmesi

Erken durdurmayı, adeta kutsal bir kural olduğu denetimli öğrenmeden (supervised learning) ödünç aldım: validasyon kaybını (validation loss) izle ve bir süre iyileşmeyi bıraktığında dur — bu noktadan sonra yalnızca aşırı uyum (overfitting) yaparsın. Temiz, güvenli ve denetimli öğrenmede genellikle işe yarayan bir yaklaşımdır.

Ben de aynı fikri RL eğitimine bağladım: metriği izle, bir plato (plateau) sonrasında sabrını (patience) yitir, çalışmayı durdur, GPU saatlerinden tasarruf et. Sorumluluk sahibi bir davranış gibi geldi. Pratikte ise sessizce çalışmaları birer birer çöpe attı — çoğunu erkenden, ajan henüz hiçbir şey bulamadan. Sonunda elimde aslında hiç başlamamış çalışmalarla dolu bir klasör kaldı.

RL kuralı neden çiğner

Denetimli bir validasyon eğrisi oldukça pürüzsüz ve büyük ölçüde monotonik bir şeydir. Bir pekiştirmeli öğrenme ajanının ilerlemesi öyle değildir. Ödül (reward), yapısı gereği gürültülüdür: kendisi de değişmekte olan bir politikaya (policy) ve varyansla dolu bir ortamla etkileşime bağlıdır. İyileşme kesik kesik gelir — uzun düzlükler, ani sıçramalar, toparlayan düşüşler. RL’de bir plato çoğu zaman öğrenmenin sonu değildir. Tam ondan hemen öncesidir.

Dolayısıyla denetimli pürüzsüzlüğe göre ayarlanmış bir sabır, gayet normal RL varyansı sırasında tetiklenir. Tamamlanmış bir modeli yakalamazsınız; tam da ilginç olmak üzere olan birini idam edersiniz. Ve “tasarruf” bir yanılsamadır — erkenden ölen ve hiçbir şey döndürmeyen her çalışmanın bedelini yine de ödersiniz.

Erken durdurmayı bırak

Çözüm daha iyi bir sayı değildi. Varsayılanı tersine çevirmekti. Erken durdurma nadir olmalı, hevesli değil — gürültüye karşı bir hassas tetik değil, gerçek ve sürekli aşırı uyuma karşı bir koruma. Bu da çıtayı gürültünün gerçekçi biçimde ulaşamayacağı bir yere koymak ve bozulmayı, birkaç değerlendirmeyle değil, çalışmanın doğal varyansını gölgede bırakacak kadar uzun bir pencere üzerinden değerlendirmek demektir. Varsayılan devam etmek olmalı. İspat yükü durmaya aittir, devam etmeye değil.

Açıkça söyleyeyim: sabır da bir hiperparametredir (hyperparameter) ve çoğu yeni başlayan — ben dahil — onu sanki RL denetimli öğrenmeymiş gibi ayarlar. Değildir.

İnsanların hâlâ yeri olan yer

Bu, ilk yazıdaki dersle uyumlu. Hangi çalışmayı ne zaman keseceğime tek tek karar vermem — bu yine yalnızca bir tahmini sisteme dondurmak olur. Ben *“gerçekten kötüleşiyor”*un *“normal gürültü”*ye karşılık ne anlama geldiğine karar veriyorum ve durdurmayı o tanıma bırakıyorum. Her kararı elle vermiyorum, hâkimi tasarlıyorum. Hâkimi doğru kurarsanız, işe yarayacak çalışmaları çöpe atmayı bırakırsınız.

Çıkarım

RL’de en pahalı hata çoğu zaman sabırsızlıktır. İşlem gücü bütçenizi erkenden optimize etmek size işlem gücü kazandırmaz — size ajana mal olur ve işin acımasız tarafı, öldürdüğünüz sonucu hiçbir zaman göremezsiniz.

Yani çalışmalarınız sürekli “işe yaramıyorsa”, bunun için hiç şanslarının olup olmadığını kontrol edin. Bazen başarısız olan model değildir. Sizsinizdir.


Bu, bir pekiştirmeli öğrenme trading sistemi inşa etmenin devam eden, anonim günlüğünün 2. bölümüdür. Sinyallerle değil, yöntem ve hatalarla ilgilidir — buradaki hiçbir şey yatırım tavsiyesi değildir ve hiçbir strateji detayı paylaşılmamaktadır.