Beranda
Topics
penurunan gradien
Penurunan gradien adalah algoritma pengoptimalan yang biasanya digunakan untuk melatih model machine learning dan jaringan neural. Algoritma ini melatih model machine learning dengan meminimalkan kesalahan antara hasil prediksi dan hasil aktual.
Data pelatihan membantu model-model ini belajar dari waktu ke waktu, dan fungsi biaya dalam penurunan gradien secara khusus bertindak sebagai barometer, mengukur keakuratannya dengan setiap iterasi pembaruan parameter. Hingga fungsi mendekati atau sama dengan nol, model akan terus menyesuaikan parameternya untuk menghasilkan kesalahan sekecil mungkin. Setelah dioptimalkan untuk akurasi, model machine learning dapat menjadi alat yang andal untuk kecerdasan buatan (AI) dan aplikasi ilmu komputer.
Ketahui mengapa IBM dinobatkan sebagai Pemimpin dalam Gartner Magic Quadrant 2023 untuk Layanan Pengembang Cloud AI
Sebelum menyelami penurunan gradien, kita perlu meninjau beberapa konsep dari regresi linier. Anda mungkin ingat rumus berikut untuk kemiringan garis, yaitu y = mx + b, di mana m mewakili kemiringan dan b adalah intersep pada sumbu y.
Anda mungkin juga ingat memetakan scatterplot dalam statistik dan menemukan garis kecocokan terbaik, yang memerlukan penghitungan kesalahan antara hasil aktual dan hasil prediksi (y-hat) menggunakan rumus kesalahan kuadrat rata-rata. Algoritma penurunan gradien berperilaku serupa, tetapi didasarkan pada fungsi cembung.
Titik awal hanyalah titik sembarang bagi kita untuk mengevaluasi kinerja. Dari titik awal tersebut, kita akan menemukan turunan (atau kemiringan), dan dari sana, kita bisa menggunakan garis singgung untuk mengamati kecuraman lereng. Kemiringan akan menginformasikan pembaruan parameter—yaitu bobot dan bias. Kemiringan pada titik awal akan lebih curam, tetapi ketika parameter baru dihasilkan, kecuraman akan berkurang secara bertahap hingga mencapai titik terendah pada kurva, yang dikenal sebagai titik konvergensi.
Mirip dengan menemukan garis yang paling sesuai dalam regresi linier, tujuan penurunan gradien adalah meminimalkan fungsi biaya, atau kesalahan antara y prediksi dan aktual. Untuk melakukan hal ini, diperlukan dua titik data—arah dan tingkat pembelajaran. Faktor-faktor ini menentukan perhitungan turunan parsial dari iterasi di masa depan, sehingga memungkinkannya untuk secara bertahap mencapai nilai minimum lokal atau global (yaitu titik konvergensi).
Ada tiga jenis algoritma pembelajaran penurunan gradien: penurunan gradien batch, penurunan gradien stokastik, dan penurunan gradien batch mini.
Penurunan gradien batch menjumlahkan kesalahan untuk setiap titik dalam set pelatihan, memperbarui model hanya setelah semua contoh pelatihan dievaluasi. Proses ini disebut sebagai masa pelatihan.
Meskipun batching ini memberikan efisiensi komputasi, namun masih memiliki waktu pemrosesan yang lama untuk kumpulan data pelatihan yang besar karena masih perlu menyimpan semua data ke dalam memori. Penurunan gradien batch juga biasanya menghasilkan gradien kesalahan dan konvergensi yang stabil, tetapi terkadang titik konvergensi tersebut bukanlah yang paling ideal, menemukan minimum lokal dibandingkan dengan minimum global.
Penurunan gradien stokastik (SGD) menjalankan epoch pelatihan untuk setiap contoh dalam kumpulan data dan memperbarui parameter setiap contoh pelatihan satu per satu. Karena Anda hanya perlu memegang satu contoh pelatihan, maka lebih mudah disimpan dalam memori. Meskipun pembaruan yang sering dilakukan ini dapat memberikan lebih banyak detail dan kecepatan, namun hal ini dapat menyebabkan hilangnya efisiensi komputasi bila dibandingkan dengan penurunan gradien batch. Pembaruan yang sering dilakukan dapat menghasilkan gradien yang berisik, tetapi hal ini juga dapat membantu untuk keluar dari minimum lokal dan menemukan minimum global.
Penurunan gradien batch mini menggabungkan konsep dari penurunan gradien batch dan penurunan gradien stokastik. Metode ini membagi kumpulan data pelatihan menjadi ukuran batch kecil dan melakukan pembaruan pada masing-masing batch tersebut. Pendekatan ini memberikan keseimbangan antara efisiensi komputasi dari penurunan gradien batch dan kecepatan penurunan gradien stokastik.
Meskipun gradient descent merupakan pendekatan yang paling umum untuk masalah optimasi, namun pendekatan ini memiliki tantangan tersendiri. Beberapa di antaranya adalah:
Untuk masalah cembung, penurunan gradien dapat menemukan minimum global dengan mudah, tetapi ketika masalah non-cembung muncul, penurunan gradien akan kesulitan untuk menemukan minimum global, di mana model mencapai hasil terbaik.
Ingatlah bahwa ketika kemiringan fungsi biaya berada pada atau mendekati nol, model berhenti belajar. Beberapa skenario di luar minimum global juga dapat menghasilkan kemiringan ini, yang merupakan minimum lokal dan titik pelana. Minimum lokal meniru bentuk minimum global, di mana kemiringan fungsi biaya meningkat di kedua sisi titik saat ini. Namun, dengan titik pelana, gradien negatif hanya ada di satu sisi titik, mencapai maksimum lokal di satu sisi dan minimum lokal di sisi lainnya. Namanya terinspirasi dari pelana kuda.
Gradien yang bising dapat membantu gradien menghindari minimum lokal dan titik pelana.
Dalam jaringan neural yang lebih dalam, jaringan neural berulang tertentu, kita juga dapat menghadapi dua masalah lain ketika model dilatih dengan penurunan gradien dan propagasi balik.
Mulai dari alur kerja bisnis hingga operasi IT Anda, kami siap membantu Anda dengan otomatisasi bertenaga AI. Temukan cara perusahaan terkemuka bertransformasi.
IBM Research mengusulkan algoritma penurunan gradien stokastik terdistribusi dan sinkron secara massal yang memungkinkan agregasi gradien yang jarang dari masing-masing pelajar.
Terapkan pohon keputusan yang ditingkatkan gradien menggunakan algoritma XGBoost untuk melakukan tugas klasifikasi.