Over Fit, regulerisasi, dan penghentian awal

Tidak seperti hutan acak, pohon dengan peningkatan gradien dapat mengalami overfit. Oleh karena itu, untuk jaringan neural, Anda dapat menerapkan regulerisasi dan penghentian awal menggunakan set data validasi.

Misalnya, gambar berikut menunjukkan kurva akurasi dan kerugian untuk set pelatihan dan validasi saat melatih model GBT. Perhatikan seberapa berbeda kurva tersebut, yang menunjukkan tingkat overfit yang tinggi.

Banyaknya kerugian pelatihan dan kerugian validasi dibandingkan jumlah pohon keputusan. Kehilangan pelatihan secara bertahap berkurang seiring dengan meningkatnya jumlah pohon keputusan. Namun, kerugian validasi hanya berkurang hingga sekitar 40 pohon keputusan. Dengan lebih dari 40 pohon keputusan,
  kerugian validasi sebenarnya meningkat. Dengan 400 pohon keputusan, kesenjangan antara kerugian pelatihan dan kerugian validasi sangat besar.

Gambar 29. Kalah vs. jumlah pohon keputusan.

 

Banyaknya akurasi pelatihan dan akurasi validasi dibandingkan jumlah pohon keputusan. Akurasi pelatihan secara bertahap meningkat seiring dengan meningkatnya jumlah pohon keputusan, yang mencapai puncaknya hampir 1,0 pada 400 pohon keputusan. Akurasi validasi meningkat menjadi sekitar 0,86 pada 40 pohon keputusan, kemudian secara bertahap turun menjadi sekitar 0,83 pada 400 pohon keputusan.

Gambar 30. Akurasi vs. jumlah pohon keputusan.

 

Parameter regulerisasi umum untuk pohon yang diperkuat gradien mencakup:

  • Kedalaman maksimum hierarki.
  • Tingkat penyusutan.
  • Rasio atribut yang diuji di setiap node.
  • Koefisien L1 dan L2 pada kerugian.

Perhatikan bahwa pohon keputusan biasanya tumbuh jauh lebih dangkal daripada model hutan acak. Secara default, pohon pohon yang ditingkatkan gradien di TF-DF tumbuh hingga kedalaman 6. Karena pohonnya dangkal, jumlah minimum contoh per daun memiliki sedikit dampak dan umumnya tidak disesuaikan.

Kebutuhan akan set data validasi menjadi masalah jika jumlah contoh pelatihan kecil. Oleh karena itu, melatih kereta api gradien yang ditingkatkan di dalam loop validasi silang adalah hal yang umum, atau untuk menonaktifkan penghentian awal saat model diketahui tidak akan melakukan overfit.

Contoh penggunaan

Di bab sebelumnya, kita telah melatih hutan acak pada set data kecil. Dalam contoh ini, kita cukup mengganti model hutan acak dengan model pohon bersudut gradien:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Penggunaan dan batasan

Pohon yang mendorong gradien memiliki beberapa pro dan kontra.

Kelebihan

  • Seperti pohon keputusan, pohon ini secara native mendukung fitur numerik dan kategoris, dan sering kali tidak memerlukan pra-pemrosesan fitur.
  • Pohon yang ditingkatkan gradien memiliki hyperparameter default yang sering memberikan hasil yang bagus. Meskipun demikian, menyesuaikan hyperparameter tersebut dapat meningkatkan model secara signifikan.
  • Model pohon dengan peningkatan gradien umumnya kecil (dalam jumlah node dan dalam memori) dan cepat dijalankan (sering kali hanya berupa satu atau beberapa μs / contoh).

Kekurangan

  • Pohon keputusan harus dilatih secara berurutan, yang dapat memperlambat pelatihan secara signifikan. Namun, pelambatan pelatihan agak diimbangi dengan pohon keputusan yang lebih kecil.
  • Seperti hutan acak, pohon dengan peningkatan gradien tidak dapat mempelajari dan menggunakan kembali representasi internal. Setiap pohon keputusan (dan setiap cabang setiap pohon keputusan) harus mempelajari kembali pola set data. Dalam beberapa set data, terutama set data dengan data tidak terstruktur (misalnya, gambar, teks), hal ini menyebabkan pohon yang diperkuat gradien menampilkan hasil yang lebih buruk dibandingkan metode lainnya.