Mengoptimalkan model dengan menggunakan penurunan gradien

Selesai

Kita telah mengetahui cara fungsi biaya mengevaluasi seberapa baik performa model dengan menggunakan data. Pengoptimal adalah bagian terakhir dari teka-teki.

Peran pengoptimal adalah mengubah model dengan cara yang meningkatkan performanya. Ini melakukan perubahan ini dengan memeriksa output model dan biaya dan menyarankan parameter baru untuk model.

Misalnya, dalam skenario peternakan, model linier kita memiliki dua parameter: perpotongan garis dan kemiringan garis. Jika intersepsi garis salah, model rata-rata meremehkan atau melepuhkan suhu. Jika kemiringan yang diatur salah, model tidak akan melakukan pekerjaan yang baik untuk menunjukkan bagaimana suhu telah berubah sejak tahun 1950-an. Pengoptimal mengubah kedua parameter ini sehingga model melakukan pekerjaan pemodelan suhu yang optimal dari waktu ke waktu.

Diagram that shows the optimizer part of the machine-learning lifecycle.

Penurunan gradien

Algoritma pengoptimalan yang paling umum saat ini adalah penurunan gradien. Beberapa varian algoritma ini ada, tetapi semuanya menggunakan konsep inti yang sama.

Penurunan gradien menggunakan kalkulus untuk memperkirakan bagaimana mengubah setiap parameter mengubah biaya. Misalnya, meningkatkan parameter dapat diprediksi untuk mengurangi biaya.

Penurunan gradien dinamakan demikian karena menghitung gradien (kemiringan) hubungan antara setiap parameter model dan biaya. Parameter kemudian diubah untuk bergerak menuruni kemiringan ini.

Algoritma ini sederhana dan canggih, tetapi tidak dijamin dapat menemukan parameter model optimal yang meminimalkan biaya. Dua sumber utama kesalahan adalah minimum lokal dan ketidakstabilan.

Minimum lokal

Contoh sebelumnya tampaknya melakukan pekerjaan dengan baik, dengan asumsi bahwa biaya akan terus naik saat parameternya lebih kecil dari 0 atau lebih besar dari 10:

Plot of cost versus model parameter, with a minima for cost when the model parameter is five.

Pekerjaan ini tidak akan begitu bagus jika parameter yang lebih kecil dari nol atau lebih besar dari 10 akan menghasilkan biaya yang lebih rendah, seperti pada gambar ini:

Plot of cost versus model parameter, with a local minima for cost when the model parameter is five but a lower cost when the model parameter is at negative six.

Dalam grafik sebelumnya, nilai parameter negatif tujuh akan menjadi solusi yang lebih baik dari lima, karena memiliki biaya yang lebih rendah. Penurunan gradien tidak mengetahui hubungan penuh antara setiap parameter dan biaya — yang diwakili oleh garis putus-putus — lebih lanjut. Oleh karena itu, rentan untuk menemukan minima lokal: perkiraan parameter yang bukan solusi terbaik, tetapi gradiennya adalah nol.

Ketidakstabilan

Masalah terkait adalah bahwa penurunan gradien terkadang menunjukkan ketidakstabilan. Instabilitas ini biasanya terjadi saat ukuran langkah atau kecepatan pembelajaran—jumlah di mana setiap parameter disesuaikan oleh setiap perulangan—terlalu besar. Parameter kemudian disesuaikan terlalu jauh pada setiap langkah, dan model sebenarnya menjadi lebih buruk dengan setiap perulangan:

Plot of cost versus model parameter, which shows cost moving in large steps with minimal decrease in cost.

Memiliki tingkat pembelajaran yang lebih lambat dapat menyelesaikan masalah ini, tetapi mungkin juga memperkenalkan masalah. Pertama, kecepatan pembelajaran yang lebih lambat bisa berarti bahwa pelatihan membutuhkan waktu lama, karena diperlukan lebih banyak langkah. Kedua, mengambil langkah-langkah yang lebih kecil membuatnya lebih mungkin pelatihan menyelesaikan minima lokal:

Plot of cost versus model parameter, showing small movements in cost.

Sebaliknya, kecepatan belajar yang lebih cepat dapat mempermudah untuk menghindari mencapai minimum lokal, karena langkah yang lebih besar dapat melewati maksimum lokal:

Plot of cost versus model parameter, with regular movements in cost until a minima is reached.

Seperti yang akan kita lihat di latihan berikutnya, ada ukuran langkah optimal untuk setiap masalah. Menemukan optimal ini adalah sesuatu yang sering membutuhkan eksperimen.