Regresi linear: Hyperparameter

Hyperparameter adalah variabel yang mengontrol berbagai aspek pelatihan. Tiga hyperparameter umum adalah:

Sebaliknya, parameter adalah variabel, seperti bobot dan bias, yang merupakan bagian dari model itu sendiri. Dengan kata lain, hyperparameter adalah nilai yang Anda kontrol; parameter adalah nilai yang dihitung model selama pelatihan.

Kecepatan pembelajaran

Kecepatan pembelajaran adalah angka floating point yang Anda tetapkan yang memengaruhi seberapa cepat model berkonvergensi. Jika kecepatan pembelajaran terlalu rendah, model dapat memerlukan waktu lama untuk berkonvergensi. Namun, jika kecepatan pembelajaran terlalu tinggi, model tidak akan berkonvergensi, tetapi akan berfluktuasi di sekitar bobot dan bias yang meminimalkan kerugian. Tujuannya adalah memilih kecepatan pemelajaran yang tidak terlalu tinggi atau terlalu rendah agar model dikonvergensi dengan cepat.

Kecepatan belajar menentukan besarnya perubahan yang akan dilakukan pada bobot dan bias selama setiap langkah proses penurunan gradien. Model mengalikan gradien dengan kecepatan pembelajaran untuk menentukan parameter model (nilai bobot dan bias) untuk iterasi berikutnya. Pada langkah ketiga penurunan gradien, "jumlah kecil" untuk bergerak ke arah kemiringan negatif mengacu pada kecepatan pemelajaran.

Perbedaan antara parameter model lama dan parameter model baru sebanding dengan kemiringan fungsi kerugian. Misalnya, jika kemiringannya besar, model akan mengambil langkah besar. Jika kecil, diperlukan langkah kecil. Misalnya, jika magnitudo gradien adalah 2,5 dan kecepatan pembelajaran adalah 0,01, model akan mengubah parameter sebesar 0,025.

Kecepatan pembelajaran yang ideal membantu model untuk konvergensi dalam jumlah iterasi yang wajar. Pada Gambar 21, kurva kerugian menunjukkan bahwa model meningkat secara signifikan selama 20 iterasi pertama sebelum mulai dikonvergensi:

Gambar 21. Kurva kerugian yang menunjukkan kemiringan curam sebelum mendatar.

Gambar 21. Grafik kerugian yang menampilkan model yang dilatih dengan kecepatan pembelajaran yang konvergensi dengan cepat.

Sebaliknya, kecepatan pembelajaran yang terlalu kecil dapat memerlukan terlalu banyak iterasi untuk dikonvergensi. Pada Gambar 22, kurva kerugian menunjukkan model yang hanya membuat sedikit peningkatan setelah setiap iterasi:

Gambar 22. Kurva kerugian yang menunjukkan kemiringan hampir 45 derajat.

Gambar 22. Grafik kerugian yang menampilkan model yang dilatih dengan kecepatan belajar kecil.

Kecepatan pemelajaran yang terlalu besar tidak akan pernah berkonvergensi karena setiap iterasi menyebabkan kerugian berfluktuasi atau terus meningkat. Pada Gambar 23, kurva kerugian menunjukkan penurunan pada model, lalu kerugian yang meningkat setelah setiap iterasi, dan pada Gambar 24, kerugian akan meningkat pada iterasi berikutnya:

Gambar 23. Kurva kerugian yang menunjukkan garis naik turun yang tidak rata.

Gambar 23. Grafik loss yang menunjukkan model yang dilatih dengan kecepatan belajar yang terlalu besar, dengan kurva loss berfluktuasi secara drastis, naik dan turun seiring peningkatan iterasi.

Gambar 24. Kurva kerugian yang menunjukkan peningkatan kerugian pada iterasi berikutnya

Gambar 24. Grafik kerugian yang menunjukkan model yang dilatih dengan kecepatan belajar yang terlalu besar, dengan kurva kerugian meningkat drastis pada iterasi berikutnya.

Latihan: Periksa pemahaman Anda

Berapa kecepatan belajar yang ideal?
Kecepatan pembelajaran yang ideal bergantung pada masalah.
Setiap model dan set data akan memiliki kecepatan belajar idealnya sendiri.
0,01
1.0

Ukuran batch

Ukuran batch adalah hyperparameter yang mengacu pada jumlah contoh yang diproses model sebelum memperbarui bobot dan biasnya. Anda mungkin berpikir bahwa model harus menghitung kerugian untuk setiap contoh dalam set data sebelum memperbarui bobot dan bias. Namun, jika set data berisi ratusan ribu atau bahkan jutaan contoh, menggunakan batch penuh tidak praktis.

Dua teknik umum untuk mendapatkan gradien yang tepat secara rata-rata tanpa perlu melihat setiap contoh dalam set data sebelum memperbarui bobot dan bias adalah stochastic gradient descent dan mini-batch stochastic gradient descent:

  • Penurunan gradien stokastik (SGD): Penurunan gradien stokastik hanya menggunakan satu contoh (ukuran batch satu) per iterasi. Dengan iterasi yang cukup, SGD berfungsi, tetapi sangat berisik. "Derau" mengacu pada variasi selama pelatihan yang menyebabkan kerugian meningkat, bukan menurun selama iterasi. Istilah "stokastik" menunjukkan bahwa satu contoh yang terdiri dari setiap batch dipilih secara acak.

    Perhatikan pada gambar berikut bagaimana kerugian sedikit berfluktuasi saat model memperbarui bobot dan biasnya menggunakan SGD, yang dapat menyebabkan derau dalam grafik kerugian:

    Gambar 25. Kurva kerugian curam yang mendatar, tetapi dengan banyak fluktuasi kecil.

    Gambar 25. Model yang dilatih dengan penurunan gradien stokastik (SGD) yang menunjukkan derau dalam kurva kerugian.

    Perhatikan bahwa penggunaan stochastic gradient descent dapat menghasilkan derau di seluruh kurva kerugian, bukan hanya di dekat konvergensi.

  • Penurunan gradien stokastik tumpukan mini (SGD tumpukan mini): Penurunan gradien stokastik tumpukan mini adalah kompromi antara tumpukan penuh dan SGD. Untuk jumlah titik data $ N $, ukuran batch dapat berupa angka apa pun yang lebih besar dari 1 dan kurang dari $ N $. Model memilih contoh yang disertakan dalam setiap batch secara acak, menghitung rata-rata gradiennya, lalu memperbarui bobot dan bias satu kali per iterasi.

    Penentuan jumlah contoh untuk setiap batch bergantung pada set data dan resource komputasi yang tersedia. Secara umum, ukuran tumpukan kecil berperilaku seperti SGD, dan ukuran tumpukan yang lebih besar berperilaku seperti penurunan gradien tumpukan penuh.

    Gambar 26. Kurva kerugian yang curam yang mulai mendatar, dengan fluktuasi yang jauh lebih kecil di dekat konvergensi.

    Gambar 26. Model dilatih dengan batch mini PGS.

Saat melatih model, Anda mungkin berpikir bahwa derau adalah karakteristik yang tidak diinginkan dan harus dihilangkan. Namun, jumlah derau tertentu dapat menjadi hal yang baik. Dalam modul selanjutnya, Anda akan mempelajari bagaimana derau dapat membantu model menggeneralisasi dengan lebih baik dan menemukan bobot dan bias yang optimal di jaringan neural.

Epoch

Selama pelatihan, epoch berarti bahwa model telah memproses setiap contoh dalam set pelatihan satu kali. Misalnya, dengan set pelatihan yang berisi 1.000 contoh dan ukuran mini-batch 100 contoh, model akan memerlukan 10 iterations untuk menyelesaikan satu epoch.

Pelatihan biasanya memerlukan banyak epoch. Artinya, sistem perlu memproses setiap contoh dalam set pelatihan beberapa kali.

Jumlah epoch adalah hyperparameter yang Anda tetapkan sebelum model memulai pelatihan. Dalam banyak kasus, Anda harus bereksperimen dengan jumlah epoch yang diperlukan agar model berkonvergensi. Secara umum, lebih banyak epoch menghasilkan model yang lebih baik, tetapi juga memerlukan lebih banyak waktu untuk dilatih.

Gambar 27. Batch penuh adalah seluruh set data, batch mini adalah subset dari set data, dan epoch adalah penerusan penuh melalui sepuluh batch mini.

Gambar 27. Batch penuh versus batch mini.

Tabel berikut menjelaskan hubungan antara ukuran batch dan epoch dengan frekuensi model memperbarui parameternya.

Jenis batch Kapan pembaruan bobot dan bias terjadi
Batch lengkap Setelah model melihat semua contoh dalam set data. Misalnya, jika set data berisi 1.000 contoh dan model dilatih selama 20 epoch, model akan memperbarui bobot dan bias 20 kali, sekali per epoch.
Penurunan gradien stokastik Setelah model melihat satu contoh dari set data. Misalnya, jika set data berisi 1.000 contoh dan dilatih selama 20 epoch, model akan memperbarui bobot dan bias sebanyak 20.000 kali.
Penurunan gradien stokastik tumpukan mini Setelah model melihat contoh dalam setiap batch. Misalnya, jika set data berisi 1.000 contoh, dan ukuran batch adalah 100, dan model dilatih selama 20 epoch, model akan memperbarui bobot dan bias 200 kali.

Latihan: Periksa pemahaman Anda

1. Berapa ukuran tumpukan terbaik saat menggunakan batch mini PGS?
Tergantung
Ukuran batch yang ideal bergantung pada set data dan resource komputasi yang tersedia
10 contoh per batch
100 contoh per batch
2. Manakah dari pernyataan berikut ini yang tepat?
Batch yang lebih besar tidak cocok untuk data dengan banyak outlier.
Pernyataan ini salah. Dengan menjumlahkan lebih banyak gradien, ukuran batch yang lebih besar dapat membantu mengurangi efek negatif dari adanya outlier dalam data.
Melipatgandakan kecepatan pembelajaran dapat memperlambat pelatihan.
Pernyataan ini benar. Melipatgandakan kecepatan pembelajaran dapat menghasilkan kecepatan pembelajaran yang terlalu besar, dan oleh karena itu menyebabkan bobot "memantul", sehingga meningkatkan jumlah waktu yang diperlukan untuk konvergensi. Seperti biasa, hyperparameter terbaik bergantung pada set data Anda dan resource komputasi yang tersedia.