Bagaimana meningkatkan gradien seperti gradient descent?

9

Saya membaca entri Wikipedia yang berguna tentang peningkatan gradien ( https://en.wikipedia.org/wiki/Gradient_boosting ), dan mencoba memahami bagaimana / mengapa kita dapat memperkirakan residu dengan langkah penurunan paling curam (juga disebut pseudo-gradient) ). Adakah yang bisa memberi saya intuisi tentang bagaimana keturunan paling curam terkait / mirip dengan residu? Bantuan sangat dihargai!

masukkan deskripsi gambar di sini

Wouter
sumber

Jawaban:

11

Misalkan kita berada dalam situasi berikut. Kami memiliki beberapa data , di mana setiap dapat berupa angka atau vektor, dan kami ingin menentukan fungsi yang mendekati hubungan , dalam arti bahwa kuadrat terkecil kesalahan:x i f f ( x i ) y i{xi,yi}xiff(xi)yi

12i(yif(xi))2

kecil.

Sekarang, pertanyaannya adalah apa yang kita inginkan dari domain menjadi. Pilihan yang merosot untuk domain hanyalah poin dalam data pelatihan kami. Dalam hal ini, kita dapat mendefinisikan , yang mencakup seluruh domain yang diinginkan, dan dilakukan dengan itu. Putaran tentang cara untuk sampai pada jawaban ini adalah dengan melakukan gradient descent dengan ruang diskrit ini sebagai domain. Ini membutuhkan sedikit perubahan dalam sudut pandang. Mari kita lihat kerugian sebagai fungsi dari titik true dan prediksi (untuk saat ini, bukan fungsi, tetapi hanya nilai prediksi)f ( x i ) = y y f fff(xi)=yy ff

L(f;y)=12(yf)2

dan kemudian ambil gradien sehubungan dengan prediksi

fL(f;y)=fy

Kemudian pembaruan gradien, mulai dari nilai awal adalahy0

y1=y0f(y0,y)=y0(y0y)=y

Jadi kami memulihkan prediksi sempurna kami dalam langkah gradien dengan pengaturan ini, yang bagus!

Cacat di sini adalah, tentu saja, bahwa kita ingin didefinisikan pada lebih dari sekedar titik data pelatihan kami. Untuk melakukan ini, kita harus membuat beberapa konsesi, karena kita tidak dapat mengevaluasi fungsi kerugian, atau gradiennya, pada titik mana pun selain dari kumpulan data pelatihan kita. f

Ide besar adalah untuk lemah perkiraan . L

Startdengan tebakan awal pada , hampir selalu fungsi konstan sederhana , ini didefinisikan di mana-mana. Sekarang buat dataset kerja baru dengan mengevaluasi gradien fungsi kerugian pada data pelatihan, menggunakan tebakan awal untuk :ff(x)=f0f

W={xi,f0y}

Now approximate L dengan memasang lemah pelajar untuk . Katakanlah kita mendapatkan pendekatan . Kami telah memperoleh ekstensi data di seluruh domain dalam bentuk , meskipun kami telah kehilangan presisi di titik-titik pelatihan, karena kami cocok dengan pelajar kecil.WFLWF(X)

Finally, gunakan sebagai pengganti dalam pembaruan gradien di seluruh domain:FLf0

f1(x)=f0(x)F(x)

Kami keluar , perkiraan baru , sedikit lebih baik dari . Mulai lagi dengan , dan sampai puas. f f 0 f 1f1ff0f1

Mudah-mudahan, Anda melihat bahwa yang benar-benar penting adalah mendekati gradien dari kerugian. Dalam kasus minimalisasi kuadrat, ini mengambil bentuk residu mentah, tetapi dalam kasus yang lebih canggih tidak. Mesin masih berlaku. Selama seseorang dapat membangun algoritma untuk menghitung kerugian dan gradien kerugian pada data pelatihan, kita dapat menggunakan algoritma ini untuk memperkirakan suatu fungsi yang meminimalkan kerugian tersebut.

Matthew Drury
sumber
Yah, saya pikir itu bagus. Satu-satunya hal yang perlu diperhatikan adalah bahwa jika Anda, misalnya, ingin meningkatkan untuk meminimalkan kerugian binomial maka gradien yang kami kembangkan tidak lagi terkait dengan residu secara alami.
iyilog(pi)+(1yi)log(1pi)
Matthew Drury
Terima kasih Matthew. Satu hal yang saya coba untuk mendapatkan kepalaku. Dalam literatur sering dinyatakan bahwa pembaruan model adalah F (m + 1) = F (m) + , di mana h (m) adalah pembelajar yang lemah. Jika saya memikirkan model berbasis pohon - apakah itu berarti baik untuk regresi maupun klasifikasi, kami secara praktis memperbarui prediksi kami untuk titik data tertentu dengan tambahan sederhana hasil dari kedua model? apakah itu juga berfungsi jika kita mencoba untuk mengklasifikasikan biner ini? atau tanda + tidak harus ditafsirkan secara harfiah? αmh(m)
Wouter
Tanda plus cukup literal. Tetapi untuk pelajar yang lemah berdasarkan pohon, prediksi model harus ditafsirkan sebagai rata-rata tertimbang dalam daun, bahkan dalam kasus di mana pohon tersebut cocok dengan data binomial. Perhatikan bahwa dalam meningkatkan, kita biasanya tidak cocok dengan data binomial, kita cocok dengan gradien dari kemungkinan yang dievaluasi pada prediksi tahap sebelumnya, yang tidak akan bernilai . 0,1
Matthew Drury
1
@MatthewDrury Saya pikir dalam banyak literatur, kami bukan pembaruan langsung dengan , tetapi dengan , di mana dari 0 hingga 1 adalah tingkat pembelajaran. f 0 - F ( x ) f 0 - α F ( x ) αf1f0F(x)f0αF(x)α
Haitao Du
@ hxd1011 Ya, itu benar sekali, dan penting untuk menggunakan peningkatan gradien dengan sukses.
Matthew Drury