Gradyan ile Güçlendirilmiş Karar Ağaçları

Bagajlama ve artırma gibi, gradyan artırma da bir makine öğrenimi algoritması kullanıyor. Gayri resmî olarak, gradyan artırma iki tür model vardır:

  • "zayıf" modelidir ve bu model genelde bir karar ağacıdır.
  • "güçlü" birçok zayıf değer içeren makine öğrenimi modeli modeller.

Gradyan güçlendirmede, her adımda yeni bir zayıf model eğitilerek "hata" (buna sözde yanıt denir). "Hata" konusunu ayrıntılı olarak ele alacağız daha sonra. Şimdilik "hata" olduğunu varsayın iki hedef arasındaki tahmin ve regresif etiket içerir. Zayıf model (yani "hata"), sonra negatif bir işaretle güçlü modele eklenir. Böylece, güçlü bir modeldir.

Gradyan artırma yinelemeli bir işlemdir. Her yineleme aşağıdaki formülü çağırır:

\[ F_{i+1} = F_i - f_i \]

Bu örnekte:

  • $F_i$, $i$. adımdaki güçlü modeldir.
  • $f_i$, $i$. adımdaki zayıf modeldir.

Bu işlem, maksimum değer gibi bir durdurma ölçütü karşılanıncaya kadar tekrar eder iterasyon yani yineleme sayısını ya da (güçlü) modelin temel düzeyde ayrı doğrulama veri kümesi ekleyin.

Aşağıdaki gibi basit bir regresyon veri kümesinde gradyan artırmasını gösterelim:

  • Hedef, $x$ değerinden $y$ tahminini yapmaktır.
  • Güçlü model sıfır sabiti olacak şekilde başlatılır: $F_0(x) = 0$.
ziyaret edin.
# Simplified example of regressive gradient boosting.

y = ... # the labels
x = ... # the features

strong_model = []
strong_predictions = np.zeros_like(y) # Initially, the strong model is empty.

for i in range(num_iters):

    # Error of the strong model
    error = strong_predictions - y

    # The weak model is a decision tree (see CART chapter)
    # without pruning and a maximum depth of 3.
    weak_model = tfdf.keras.CartModel(
        task=tfdf.keras.Task.REGRESSION,
        validation_ratio=0.0,
        max_depth=3)
    weak_model.fit(x=x, y=error)

    strong_model.append(weak_model)

    weak_predictions = weak_model.predict(x)[:,0]

    strong_predictions -= weak_predictions

Bu kodu aşağıdaki veri kümesine uygulayalım:

Bir özellik, x ve y etiketi için kesin referans grafiği. Konu,
biraz sönümlü sinüs dizisi
dalgalar.

Şekil 25. Bir sayısal özelliğe sahip sentetik regresif veri kümesi. ziyaret edin.

 

Gradyan güçlendirmenin ilk iterasyonundan sonraki üç grafiği burada görebilirsiniz algoritma:

Üç hikaye. İlk grafik güçlü modelin tahminini gösterir.
0 ve y kesme noktası 0'ın düz bir çizgisi. İkinci grafikte,
güçlü model, yani sinüs dalgaları dizisi. Üçüncü şemada
zayıf modelin tahmini, rastgele sayıdaki karenin
dalgalar.

Şekil 26. İlk iterasyondan sonra üç grafik. ziyaret edin.

 

Şekil 26'daki grafikler hakkında aşağıdakilere dikkat edin:

  • İlk şemada, şu anda test edilmiş olan güçlü modelin her zaman 0 değerini alır.
  • İkinci grafikte, zayıf modelin etiketi olan hata gösterilmektedir.
  • Üçüncü grafikte zayıf model gösteriliyor.

İlk zayıf model, etiketin kaba bir temsilini öğrenmektir ve özellik alanının sol kısmına (en fazla varyasyon, Bu nedenle, sürekli yanlış model için en büyük hata).

Aşağıda, algoritmanın başka bir iterasyonu için aynı grafikler verilmiştir:

Üç hikaye. İlk grafik güçlü modelin tahminini gösterir.
önceki modele göre zayıf modelin tahmin grafiğinin tersi
Şekil. İkinci grafik, güçlü modelin hatasını gösteriyor. Bu hata,
sinüs dalgaları kümesidir. Üçüncü grafik zayıf modelin tahminini gösterir.
iki kare şeklinde
dalgalar.

Şekil 27. İkinci iterasyondan sonra üç grafik. ziyaret edin.

 

Şekil 27'deki grafikler hakkında aşağıdakilere dikkat edin:

  • Güçlü model artık tablodaki zayıf modelin son iterasyondur.
  • Güçlü modelin yeni hatası biraz daha azdır.
  • Zayıf modele yönelik yeni tahmin, artık sürecin sağ tarafına odaklanıyor. kullanabilirsiniz.

Algoritmayı 8 yineleme için daha çalıştırırız:

Grafikler, güçlü modelin gerçek doğruluğa giderek daha yaklaşmakta olduğunu gösteriyor.
Zayıf modelin öngörüsü de giderek yavaş yavaş
yardımcı olur.

Şekil 28. Üçüncü iterasyon ve onuncu iterasyondan sonra üç grafik. ziyaret edin.

 

Şekil 28'de, güçlü modelin tahmininin benzer şekilde görünmeye başladığını ve veri kümesinin grafiğini çizin.

Bu şekillerde, karar ağaçlarını ya da zayıf öğrenciler. Bu kombinasyona gradyan destekli (karar) ağaçlar denir.

Önceki grafikler, gradyan artırmanın özünü göstermektedir. Ancak bu örneğinde olduğu gibi, gerçek dünyaya ait aşağıdaki iki işleme sahip değildir:

  • Daralma
  • Newton yönteminin bir adımıyla yaprak değerlerinin optimizasyonu
ziyaret edin.

Çekme

Zayıf model $f_i$, küçük bir $\nu$ değeriyle çarpılır (örneğin, $\nu = 0,1$) önce ekleyebilirsiniz. Bu küçük değere düşüş. Başka bir deyişle her yineleme yerine formül:

\[ F_{i+1} = F_i - f_i \]

Her iterasyonda aşağıdaki formül kullanılır:

\[ F_{i+1} = F_i - \nu f_i \]

Gradyan artırmadaki küçülme, nöral ağlardaki öğrenme hızına benzer. Daralma, güçlü modelin ne kadar hızlı öğrendiğini kontrol eder. Bu da uyum sağlamasıdır. Yani 0,0'a yakın bir küçülme değeri, fazla uyum sağlamayı yaklaşık 1,0'a yakın bir düşüş değerinden

Yukarıdaki kodumuzda, daraltma aşağıdaki gibi uygulanır:

shrinkage = 0.1   # 0.1 is a common shrinkage value.
strong_predictions -= shrinkage * weak_predictions